/*
Theme Name: Pitchhperfect Proposals
Theme URI: https://pitchperfectproposals.com/
Author: Pitchhperfect Proposals
Description: Lightweight Elementor-compatible theme for the Pitchhperfect Proposals website. Page layouts and content are edited in Elementor; custom features live in Pitchhperfect Core.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: pitchhperfect-proposals
License: GPL-2.0-or-later
*/

/* Elementor Site Settings set global colors and typography. These are safe defaults. */
:root {
  --pp-navy: var(--e-global-color-primary, #0b2045);
  --pp-blue: var(--e-global-color-accent, #1554dc);
  --pp-ink: var(--e-global-color-text, #16243f);
  --pp-muted: #66758a;
  --pp-soft: #f3f4f4;
  --pp-line: #e5e8ed;
  --pp-white: #fff;
  --pp-font: var(--e-global-typography-text-font-family, 'Poppins', Arial, sans-serif);
  --pp-heading-font: var(--e-global-typography-primary-font-family, 'Poppins', Arial, sans-serif);
  --pp-width: 1160px;
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; scroll-padding-top: 105px; }
body { margin: 0; min-width: 280px; background: var(--pp-soft); color: var(--pp-ink); font-family: var(--pp-font); line-height: 1.65; overflow-x: clip; }
body, button, input, textarea, select { font-family: var(--pp-font); }
img, video, canvas, svg { max-width: 100%; }
img { height: auto; }
a { color: var(--pp-blue); }
button, input, textarea, select { font: inherit; }
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible { outline: 3px solid #f1a147; outline-offset: 4px; }
::selection { background: #cfe0ff; color: var(--pp-navy); }
.pp-shell { width: min(var(--pp-width), calc(100% - 48px)); margin-inline: auto; }
.pp-screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.pp-skip-link { position: fixed; z-index: 100000; top: 8px; left: 8px; transform: translateY(-160%); background: var(--pp-navy); color: #fff; padding: 10px 14px; border-radius: 8px; }
.pp-skip-link:focus { transform: none; }
.pp-content-anchor { height: 0; scroll-margin-top: 105px; }

/* Native header, shown until an Elementor Pro header is assigned. */
.pp-site-header { position: sticky; top: 16px; z-index: 50; width: min(1120px, calc(100% - 32px)); margin: 16px auto 0; background: rgba(255,255,255,.97); border: 1px solid #e9edf3; border-radius: 14px; box-shadow: 0 8px 28px #0b20450d; backdrop-filter: blur(16px); }
.pp-header-inner { display: flex; align-items: center; gap: 24px; width: 100%; padding: 0 20px; min-height: 72px; }
.pp-brand { flex: 0 0 auto; max-width: 165px; }
.pp-brand .custom-logo-link, .pp-default-logo { display: block; position: relative; width: 160px; height: 66px; overflow: hidden; }
.pp-brand .custom-logo { width: 100%; height: 100%; object-fit: contain; }
.pp-default-logo img { display: block; width: 160px; max-width: none; height: 160px; position: absolute; top: 50%; transform: translateY(-51%); object-fit: contain; }
.pp-primary-nav { margin-left: auto; }
.pp-menu, .pp-cta-menu, .pp-footer-menu { list-style: none; padding: 0; margin: 0; }
.pp-menu { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; column-gap: clamp(13px, 2vw, 30px); row-gap: 0; }
.pp-menu li { position: relative; }
.pp-menu a { display: inline-flex; align-items: center; min-height: 42px; color: var(--pp-navy); text-decoration: none; font-size: 13px; font-weight: 600; line-height: 1.25; }
.pp-menu a:hover, .pp-menu .current-menu-item > a, .pp-menu .current_page_item > a { color: var(--pp-blue); }
.pp-menu .sub-menu { position: absolute; top: 100%; left: -18px; min-width: 220px; list-style: none; padding: 10px 18px; margin: 0; border: 1px solid var(--pp-line); border-radius: 10px; background: #fff; box-shadow: 0 12px 25px #0b20451a; display: none; }
.pp-menu .sub-menu a { padding: 5px 0; white-space: normal; }
.pp-menu li:hover > .sub-menu, .pp-menu li:focus-within > .sub-menu { display: block; }
.pp-header-cta { flex: 0 0 auto; }
.pp-cta-menu a, .pp-button { display: inline-flex; gap: 16px; align-items: center; justify-content: center; background: var(--pp-blue); color: #fff; padding: 12px 17px; border: 1px solid var(--pp-blue); border-radius: 8px; text-decoration: none; font-weight: 650; font-size: 12px; line-height: 1.3; transition: background .2s ease, transform .2s ease; }
.pp-cta-menu a:hover, .pp-button:hover { background: var(--pp-navy); border-color: var(--pp-navy); color: #fff; transform: translateY(-2px); }
.pp-menu-toggle { display: none; align-items: center; gap: 10px; background: none; border: 0; color: var(--pp-navy); padding: 9px 10px; margin-left: auto; cursor: pointer; font-size: 13px; font-weight: 600; }
.pp-menu-icon { font-size: 19px; line-height: 1; }

/* Generic Elementor container styles. All inner text and media stay editable. */
.pp-hero { text-align: center; padding: clamp(64px, 9vw, 118px) 24px clamp(42px, 6vw, 80px); }
.pp-hero h1 { color: var(--pp-navy); font-family: var(--pp-heading-font); font-size: clamp(42px, 5vw, 68px); line-height: 1.07; font-weight: 600; letter-spacing: -.055em; }
.pp-hero p { max-width: 680px; margin-inline: auto; }
.pp-section { padding-block: clamp(56px, 7vw, 96px); }
.pp-section-soft { background: var(--pp-soft); }
.pp-section-white { background: var(--pp-white); }
.pp-section-dark { background: var(--pp-navy); color: #fff; }
.pp-section-dark :where(h1,h2,h3,h4,p) { color: inherit; }
.pp-section-title { color: var(--pp-navy); font-family: var(--pp-heading-font); font-size: clamp(30px, 3.4vw, 46px); line-height: 1.18; font-weight: 600; letter-spacing: -.045em; }
.pp-section-dark .pp-section-title { color: #fff; }
.pp-eyebrow { color: var(--pp-blue); font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.pp-section-dark .pp-eyebrow { color: #b8cfff; }
.pp-lead { color: var(--pp-muted); font-size: clamp(16px, 1.5vw, 20px); line-height: 1.7; }
.pp-editorial { max-width: 860px; margin-inline: auto; }
.pp-two-col, .pp-three-col, .pp-four-col, .pp-card-grid { display: grid !important; gap: clamp(16px, 2vw, 24px); align-items: stretch; }
.pp-two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pp-three-col, .pp-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pp-four-col { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.elementor .e-con.pp-card { min-width: 0; padding: 24px; background: #fff; border: 1px solid var(--pp-line); border-radius: 15px; box-shadow: 0 6px 18px #10234108; overflow: hidden; }
.pp-card-photo { border-radius: 12px; overflow: hidden; }
.pp-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.pp-cta-band { border-radius: 18px; padding: clamp(28px, 5vw, 64px); background: linear-gradient(160deg, var(--pp-blue), #7899da 52%, #e9effa); }
.pp-faq details, .pp-faq .elementor-accordion-item, .pp-faq .e-n-accordion-item { background: #fff; border: 1px solid var(--pp-line); border-radius: 10px; margin-bottom: 10px; }
.pp-faq details { padding: 16px 20px; }
.pp-faq summary { cursor: pointer; font-weight: 600; color: var(--pp-navy); }
.pp-chip-row { display: flex !important; flex-wrap: wrap; gap: 9px; }
.pp-chip-row > * { width: auto !important; }

/* Elementor renders the class on each widget wrapper; target its editable
   inner control rather than replacing widgets with a block of custom HTML. */
.pp-hero .elementor-widget-heading,
.pp-hero .elementor-widget-text-editor,
.pp-hero .elementor-widget-button,
.pp-section > .e-con-inner > .elementor-widget-heading,
.pp-section > .e-con-inner > .elementor-widget-text-editor { text-align: center; }
.pp-hero .elementor-widget-button,
.pp-section > .e-con-inner > .elementor-widget-button { align-self: center; width: auto; }
.pp-hero-title .elementor-heading-title { max-width: 850px; margin-inline: auto; color: var(--pp-navy); font-size: clamp(42px, 5vw, 68px); line-height: 1.07; letter-spacing: -.055em; }
.pp-section-title .elementor-heading-title { color: var(--pp-navy); font-size: clamp(30px, 3.4vw, 46px); line-height: 1.18; letter-spacing: -.045em; }
.pp-eyebrow .elementor-heading-title { color: var(--pp-blue); font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.pp-hero-copy p { max-width: 670px; margin-inline: auto; color: var(--pp-muted); font-size: 17px; }
.pp-section > .e-con-inner > .elementor-widget-pp_content_grid,
.pp-section > .e-con-inner > .elementor-widget-pp_journey_3d,
.pp-section > .e-con-inner > .pp-two-col,
.pp-section > .e-con-inner > .pp-three-col,
.pp-section > .e-con-inner > .pp-four-col,
.pp-section > .e-con-inner > .pp-showcase { margin-top: clamp(25px, 4vw, 45px); }
.pp-card .pp-card-title .elementor-heading-title { color: var(--pp-navy); font-size: 22px; line-height: 1.25; letter-spacing: -.035em; }
.pp-card .elementor-widget-text-editor p { color: var(--pp-muted); font-size: 14px; line-height: 1.65; }
.pp-card .pp-card-photo { margin: -24px -24px 20px; width: calc(100% + 48px); }
.pp-card .pp-card-photo img { width: 100%; height: 190px; object-fit: cover; }
.pp-card .pp-text-button .elementor-button { padding: 0; border: 0; background: none; color: var(--pp-blue); font-size: 13px; font-weight: 700; }
.elementor .e-con.pp-showcase { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 20px; align-items: stretch; overflow-x: auto; overflow-y: hidden; padding: 14px 5px 25px; scroll-snap-type: x mandatory; scrollbar-width: thin; scroll-behavior: smooth; }
.pp-showcase.is-dragging { scroll-behavior: auto; scroll-snap-type: none; }
.elementor .pp-showcase > .e-con.pp-card { flex: 0 0 min(290px, 78vw); min-height: 345px; scroll-snap-align: center; }
.pp-showcase > .pp-card:nth-child(even) { background: linear-gradient(180deg, #fff 36%, #eaf0ff 69%, #a9c0f1); }
.pp-showcase > .pp-card:nth-child(4) { background: linear-gradient(180deg, #fff 30%, #dce8ff 61%, #416ad3); }
.pp-showcase > .pp-card:nth-child(4) .elementor-button { color: #fff; }
.pp-showcase-controls { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.pp-showcase-controls button { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--pp-line); border-radius: 50%; background: #fff; color: var(--pp-blue); cursor: pointer; }
.pp-showcase-controls button:disabled { opacity: .4; cursor: default; }
.pp-showcase-controls [data-pp-motion-toggle] { width: auto; height: 34px; border-radius: 7px; padding: 0 12px; font-size: 11px; }
.pp-cta-band .pp-section-title .elementor-heading-title,
.pp-cta-band .pp-lead p,
.pp-cta-band .pp-eyebrow .elementor-heading-title { color: #fff; }
.pp-cta-band .elementor-button { background: #fff; color: var(--pp-navy); border-radius: 8px; }
.pp-form-wrap { max-width: 700px; margin: 25px auto 0; padding: clamp(20px, 4vw, 45px); background: #fff; border: 1px solid var(--pp-line); border-radius: 16px; box-shadow: 0 12px 30px #0b204511; }
.pp-form-wrap form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.pp-form-row { min-width: 0; }
.pp-form-row:has(textarea), .pp-form-wrap .pp-form-submit, .pp-form-note { grid-column: 1 / -1; }
.pp-form-row label { display: block; color: var(--pp-navy); font-size: 13px; font-weight: 650; margin-bottom: 7px; }
.pp-form-row input, .pp-form-row select, .pp-form-row textarea { display: block; width: 100%; min-height: 45px; padding: 10px 13px; border: 1px solid #c8d3e2; border-radius: 7px; background: #fff; color: var(--pp-ink); }
.pp-form-row textarea { resize: vertical; }
.pp-form-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pp-form-submit { justify-self: start; padding: 12px 20px; border: 0; border-radius: 7px; background: var(--pp-blue); color: #fff; font-weight: 650; cursor: pointer; }
.pp-form-submit:hover { background: var(--pp-navy); }
.pp-form-note { color: var(--pp-muted); font-size: 12px; margin: 0; }
.pp-form-status, .pp-form-error { padding: 12px 16px; border-radius: 7px; }
.pp-form-status { background: #e7f5ed; color: #155934; }
.pp-form-error { background: #fff0ed; color: #8a2618; }

/* Native WordPress page/post/archive fallbacks. */
.pp-main { min-height: 38vh; }
.pp-page-heading { padding: 70px 0 20px; }
.pp-page-heading h1, .pp-article-heading h1, .pp-listing-heading h1, .pp-not-found h1 { color: var(--pp-navy); font-family: var(--pp-heading-font); font-size: clamp(36px, 4.2vw, 58px); font-weight: 600; letter-spacing: -.05em; line-height: 1.13; margin: 0; }
body:not(.pp-elementor-page) .pp-page-content { width: min(760px, calc(100% - 48px)); margin: 0 auto; padding-bottom: 80px; }
.pp-elementor-page .pp-article-layout { width: 100%; max-width: none; padding: 0; }
.pp-elementor-page .pp-post-footer, .pp-elementor-page .pp-post-navigation, .pp-elementor-page .pp-comments { width: min(850px, calc(100% - 32px)); margin-left: auto; margin-right: auto; }
.pp-page-content::after, .pp-article-content::after { content: ''; display: table; clear: both; }
.pp-page-content :where(p, li), .pp-article-content :where(p, li) { overflow-wrap: anywhere; }
.pp-page-content a, .pp-article-content a { text-underline-offset: .16em; }
.pp-article-layout { max-width: 850px; padding-top: 70px; padding-bottom: 90px; }
.pp-article-heading { margin-bottom: 35px; }
.pp-article-heading h1 { margin-bottom: 30px; }
.pp-kicker { color: var(--pp-blue); font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; margin: 0 0 15px; }
.pp-featured-image { overflow: hidden; border-radius: 14px; }
.pp-featured-image img { display: block; width: 100%; height: auto; }
.pp-article-content { font-size: 17px; line-height: 1.8; }
.pp-article-content :where(h2,h3,h4) { color: var(--pp-navy); letter-spacing: -.025em; line-height: 1.25; margin-top: 1.8em; }
.pp-post-footer { border-top: 1px solid var(--pp-line); padding: 24px 0; margin-top: 40px; font-size: 14px; }
.pp-post-navigation { margin-top: 20px; }
.pp-post-navigation .nav-links { display: flex; justify-content: space-between; gap: 20px; }
.pp-post-navigation .nav-links > div { max-width: 45%; }
.pp-post-navigation a { display: grid; gap: 4px; text-decoration: none; }
.pp-post-navigation a span { color: var(--pp-muted); font-size: 12px; }
.pp-post-navigation a strong { color: var(--pp-navy); font-size: 16px; }
.pp-comments { margin-top: 55px; border-top: 1px solid var(--pp-line); padding-top: 32px; }
.pp-comments h2 { color: var(--pp-navy); font-size: 24px; }
.pp-comment-list { padding-left: 22px; }
.pp-comment-list li { margin-bottom: 25px; }
.pp-comments textarea { width: 100%; min-height: 135px; border: 1px solid #c9d3e3; border-radius: 8px; padding: 12px; }
.pp-comments input:not([type='submit']) { max-width: 100%; border: 1px solid #c9d3e3; border-radius: 8px; padding: 9px; }
.pp-comments input[type='submit'] { border: 0; border-radius: 8px; background: var(--pp-blue); color: #fff; padding: 11px 17px; cursor: pointer; }
.pp-page-links { margin: 24px 0; }
.pp-listing { padding-top: 74px; padding-bottom: 88px; }
.pp-listing-heading { max-width: 740px; margin-bottom: 42px; }
.pp-listing-description { color: var(--pp-muted); font-size: 17px; }
.pp-listing .pp-card-grid { margin-bottom: 35px; }
.pp-card-link { display: block; height: 100%; color: inherit; text-decoration: none; }
.pp-card-link:hover h2 { color: var(--pp-blue); }
.pp-card-image { height: 190px; background: #e8eefd; overflow: hidden; }
.pp-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pp-card-placeholder { display: grid; place-items: center; color: var(--pp-blue); font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.pp-card-body { padding: 23px; }
.pp-card-body h2 { color: var(--pp-navy); font-size: 22px; letter-spacing: -.035em; line-height: 1.25; margin: 0 0 13px; transition: color .2s; }
.pp-card-body > p:not(.pp-kicker) { color: var(--pp-muted); font-size: 14px; line-height: 1.6; margin: 0 0 22px; }
.pp-card-more { color: var(--pp-blue); font-size: 13px; font-weight: 700; }
.pp-card-more span { margin-left: 12px; }
.pp-empty-state { padding: 55px; background: #fff; border-radius: 16px; }
.pp-empty-state h2 { color: var(--pp-navy); margin: 0 0 8px; }
.pp-empty-state p { color: var(--pp-muted); }
.pp-not-found { padding-top: clamp(85px, 12vw, 150px); padding-bottom: 120px; text-align: center; }
.pp-not-found h1 { max-width: 700px; margin: auto; }
.pp-not-found > p:not(.pp-kicker) { color: var(--pp-muted); }
.pp-not-found .pp-search-form { max-width: 500px; margin: 28px auto; }
.pp-search-form { display: flex; gap: 8px; align-items: stretch; width: 100%; max-width: 480px; }
.pp-search-form input { min-width: 0; flex: 1; height: 44px; background: #fff; border: 1px solid #c9d3e3; border-radius: 8px; padding: 9px 12px; color: var(--pp-ink); }
.pp-search-form button { border: 0; border-radius: 8px; background: var(--pp-blue); color: #fff; font-size: 13px; font-weight: 700; padding: 8px 14px; cursor: pointer; }
.pp-search-form button:hover { background: var(--pp-navy); }
.navigation.pagination { margin-top: 32px; }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 7px; }
.navigation.pagination .page-numbers { display: grid; place-items: center; min-width: 35px; min-height: 35px; padding: 4px 8px; border: 1px solid var(--pp-line); border-radius: 6px; background: #fff; color: var(--pp-navy); text-decoration: none; }
.navigation.pagination .page-numbers.current { background: var(--pp-blue); color: #fff; border-color: var(--pp-blue); }

/* Footer matches the approved airy layout; links are managed in Menus. */
.pp-site-footer { background: #fff; padding: 60px 0 0; overflow: hidden; }
.pp-footer-main { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: clamp(25px, 5vw, 70px); padding-bottom: 55px; }
.pp-footer-eyebrow { color: var(--pp-blue); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; font-weight: 700; }
.pp-footer-title { color: var(--pp-navy); font-size: 22px; line-height: 1.25; font-weight: 650; letter-spacing: -.04em; margin: 0 0 12px; }
.pp-footer-intro > p:last-child { color: var(--pp-muted); font-size: 14px; max-width: 320px; }
.pp-footer-main h2 { color: var(--pp-navy); font-size: 13px; font-weight: 700; margin: 0 0 16px; }
.pp-footer-menu { columns: 2; column-gap: 20px; }
.pp-footer-menu li { break-inside: avoid; }
.pp-footer-menu a { display: inline-block; color: var(--pp-muted); font-size: 12px; text-decoration: none; padding: 3px 0; }
.pp-footer-menu a:hover { color: var(--pp-blue); }
.pp-footer-meta { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--pp-line); padding: 19px 0; color: #58677d; font-size: 11px; }
.pp-footer-meta a { color: inherit; text-decoration: none; }
.pp-footer-wordmark { color: #b8c7e4; font: 400 clamp(40px, 10.7vw, 150px)/1 Georgia, serif; letter-spacing: -.055em; text-align: center; white-space: nowrap; overflow: hidden; padding-top: 40px; }

@media (max-width: 1100px), (hover: none) {
  .pp-menu-toggle { display: inline-flex; }
  .pp-primary-nav { position: absolute; top: calc(100% + 1px); left: -1px; right: -1px; display: none; margin: 0; padding: 18px 20px 22px; background: #fff; border: 1px solid var(--pp-line); border-radius: 0 0 14px 14px; box-shadow: 0 14px 26px #0b20451a; max-height: min(76vh, 680px); overflow-y: auto; }
  .pp-primary-nav.is-open { display: block; }
  .pp-menu { display: block; }
  .pp-menu > li > a { min-height: 43px; }
  .pp-menu .sub-menu { display: block; position: static; min-width: 0; padding: 0 0 4px 16px; border: 0; box-shadow: none; }
  .pp-menu .sub-menu a { min-height: 36px; }
  .pp-header-cta { margin-left: 0; }
  .pp-four-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .pp-shell { width: calc(100% - 32px); }
  .pp-site-header { top: 10px; width: calc(100% - 24px); margin-top: 10px; }
  .pp-header-inner { min-height: 66px; padding: 0 14px; gap: 10px; }
  .pp-brand .custom-logo-link, .pp-default-logo { width: 138px; height: 60px; }
  .pp-default-logo img { width: 138px; height: 138px; }
  .pp-header-cta { display: none; }
  .pp-hero { padding: 64px 16px 48px; }
  .pp-hero h1 { font-size: clamp(38px, 10vw, 52px); }
  .pp-section { padding-block: 55px; }
  .pp-two-col, .pp-three-col, .pp-four-col, .pp-card-grid { grid-template-columns: 1fr; }
  .pp-listing, .pp-article-layout { padding-top: 55px; padding-bottom: 65px; }
  .pp-card-image { height: 220px; }
  .pp-footer-main { grid-template-columns: 1fr 1fr; gap: 30px 18px; }
  .pp-footer-intro { grid-column: 1 / -1; }
  .pp-footer-search { grid-column: 1 / -1; }
  .pp-footer-wordmark { padding-top: 25px; font-size: 10.7vw; }
  .pp-form-wrap form { grid-template-columns: 1fr; }
  .pp-showcase > .pp-card { min-height: 320px; }
}
@media (max-width: 420px) {
  .pp-footer-main { grid-template-columns: 1fr; }
  .pp-footer-intro, .pp-footer-search { grid-column: auto; }
  .pp-footer-menu { columns: 1; }
  .pp-footer-meta { flex-direction: column; }
  .pp-post-navigation .nav-links { flex-direction: column; }
  .pp-post-navigation .nav-links > div { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .pp-showcase { scroll-behavior: auto; }
}

/* 2026 editorial finish: restrained surfaces, strong hierarchy and soft depth. */
body { background: #f8f9fc; }
.pp-site-header { border-radius: 20px; border-color: #e7eaf3; box-shadow: 0 12px 40px #10254b12; }
.pp-hero { background: radial-gradient(ellipse 58% 45% at 50% 10%, #edf1ff 0, transparent 85%), #f8f9fc; }
.pp-section-soft { background: #f6f7fb; }
.pp-section-white { background: #fff; }
.elementor .e-con.pp-cta-band { width: min(var(--pp-width), calc(100% - 32px)); margin: 60px auto; border-radius: 26px; background: radial-gradient(circle at 86% 20%, #6c68c9, transparent 37%), linear-gradient(125deg, #142b64, #2854ab 55%, #5c4b9d); box-shadow: 0 20px 55px #20376b2c; }
.pp-hero-title .elementor-heading-title { font-weight: 600; letter-spacing: -.06em; text-wrap: balance; }
.pp-section-title .elementor-heading-title { font-weight: 600; text-wrap: balance; }
.pp-hero-copy p, .pp-lead p { text-wrap: pretty; }
.pp-section > .e-con-inner > .elementor-widget-text-editor.pp-lead { max-width: 760px; margin-inline: auto; }
.elementor .e-con.pp-card { border-radius: 22px; border-color: #e6eaf2; box-shadow: 0 14px 40px #1527450b; }
.elementor .e-con.pp-card:not(.pp-showcase > .pp-card) { transition: transform .25s ease, box-shadow .25s ease; }
.elementor .e-con.pp-card:not(.pp-showcase > .pp-card):hover { transform: translateY(-4px); box-shadow: 0 22px 54px #15274517; }
.elementor-widget-button:not(.pp-text-button) .elementor-button,
.pp-cta-menu a, .pp-button, .pp-form-submit { border-radius: 999px; padding: 14px 23px; font-weight: 600; box-shadow: 0 8px 18px #1554dc24; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }
.elementor-widget-button:not(.pp-text-button) .elementor-button:hover,
.pp-cta-menu a:hover, .pp-button:hover, .pp-form-submit:hover { transform: translateY(-2px); box-shadow: 0 13px 27px #1554dc30; }
.pp-text-button .elementor-button { background: transparent; color: var(--pp-blue); border: 0; box-shadow: none; padding: 4px 0; font-weight: 700; }
.pp-text-button .elementor-button:hover { background: transparent; color: var(--pp-navy); box-shadow: none; transform: translateX(3px); }
.pp-calendly-booking .pp-calendly-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 49px; border: 1px solid #5360c6; border-radius: 999px; padding: 13px 24px; background: linear-gradient(110deg, #182d6f, #4e4cbd 65%, #6658bd); color: #fff; box-shadow: 0 13px 28px #403a9f32; font-weight: 600; text-decoration: none; cursor: pointer; transition: transform .24s ease, box-shadow .24s ease, filter .24s ease; }
.pp-calendly-booking .pp-calendly-trigger:hover { color: #fff; transform: translateY(-3px); box-shadow: 0 19px 38px #403a9f42; filter: brightness(1.07); }
.pp-calendly-booking .pp-calendly-trigger:focus-visible { outline: 3px solid #eeb06a; outline-offset: 4px; }
.pp-calendly-booking .pp-calendly-trigger > span[aria-hidden="true"] { display: inline-grid; place-items: center; width: 25px; height: 25px; border: 1px solid #ffffff70; border-radius: 50%; font-size: 15px; line-height: 1; }

/* The rail remains a normal editable Elementor container with editable cards. */
.elementor .e-con.pp-showcase { width: min(1480px, calc(100vw - 32px)) !important; max-width: none !important; position: relative; left: 50%; transform: translateX(-50%); overflow-x: auto; flex-wrap: nowrap !important; padding: 16px 3px 27px; scroll-padding-inline: 16px; scrollbar-width: none; }
.elementor .e-con.pp-showcase::-webkit-scrollbar { display: none; }
.elementor .pp-showcase > .e-con.pp-card { flex: 0 0 clamp(290px, 31vw, 390px); width: clamp(290px, 31vw, 390px); min-height: 430px; border-radius: 28px; padding: 34px; box-shadow: 0 13px 33px #1b23531a; transition: box-shadow .25s ease, filter .25s ease; }
.elementor .pp-showcase > .e-con.pp-card:hover { box-shadow: 0 20px 48px #1b235328; }
.pp-showcase > .pp-card:not(:has(.pp-card-photo)) { background: linear-gradient(168deg, #fff 31%, #e9e3ff 59%, #7048a7 100%); }
.pp-showcase > .pp-card:not(:has(.pp-card-photo)):nth-child(4n) { background: linear-gradient(168deg, #fff 24%, #dbe8ff 55%, #264eaa 100%); }
.pp-showcase > .pp-card:not(:has(.pp-card-photo)) .pp-card-title .elementor-heading-title { font-size: clamp(24px, 2vw, 31px); line-height: 1.14; letter-spacing: -.045em; }
.pp-showcase > .pp-card:not(:has(.pp-card-photo)) .pp-text-button { margin-top: auto; }
.pp-showcase > .pp-card:not(:has(.pp-card-photo)) .pp-text-button .elementor-button { color: #fff; }
.pp-showcase > .pp-card:not(:has(.pp-card-photo)) .pp-text-button .elementor-button:hover { color: #fff; }
.pp-showcase > .pp-card:has(> .pp-card-photo) { position: relative; display: flex !important; flex-direction: column !important; justify-content: flex-end; padding: 22px; background: #d8e1ef; isolation: isolate; }
.pp-showcase > .pp-card:has(> .pp-card-photo) > .pp-card-photo { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; margin: 0; border-radius: 0; }
.pp-showcase > .pp-card:has(> .pp-card-photo) > .pp-card-photo .elementor-widget-container,
.pp-showcase > .pp-card:has(> .pp-card-photo) > .pp-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.pp-showcase > .pp-card:has(> .pp-card-photo)::before { content: ''; position: absolute; z-index: 1; top: auto; left: 13px; right: 13px; bottom: 13px; height: 225px; border-radius: 14px; background: #fffffff2; box-shadow: 0 9px 30px #071d4133; backdrop-filter: blur(14px); pointer-events: none; }
.pp-showcase > .pp-card:has(> .pp-card-photo) > .pp-card-title,
.pp-showcase > .pp-card:has(> .pp-card-photo) > .elementor-widget-text-editor,
.pp-showcase > .pp-card:has(> .pp-card-photo) > .pp-text-button { position: relative; z-index: 2; margin-inline: 7px; }
.pp-showcase > .pp-card:has(> .pp-card-photo) .pp-card-title .elementor-heading-title { font-size: 22px; }
.pp-showcase > .pp-card:has(> .pp-card-photo) .elementor-widget-text-editor p { margin: 0; font-size: 13px; }
.pp-showcase > .pp-card:has(> .pp-card-photo) .pp-text-button .elementor-button { color: #315db4; }
.pp-showcase-controls { width: min(calc(100% - 4px), 1480px); margin-inline: auto; }
.pp-showcase-controls button { width: 40px; height: 40px; border-radius: 50%; font-size: 18px; }
.pp-showcase-controls [data-pp-motion-toggle] { min-width: 88px; height: 40px; border-radius: 999px; font-size: 12px; }

/* The team page accepts a real Featured Image later; initials are only a starter fallback. */
.pp-type-pp_team_member .pp-team-placeholder { width: 100%; height: 100%; min-height: 180px; display: grid; place-items: center; background: radial-gradient(circle at 72% 20%, #a9b8ff, transparent 38%), linear-gradient(140deg, #1d346d, #5d4da2); color: #fff; font-family: var(--pp-heading-font); font-size: clamp(40px, 5vw, 72px); font-weight: 600; letter-spacing: -.045em; }
.pp-listing .pp-card { min-width: 0; overflow: hidden; border: 1px solid #e7eaf2; border-radius: 20px; background: #fff; box-shadow: 0 12px 32px #1527450b; transition: transform .22s ease, box-shadow .22s ease; }
.pp-listing .pp-card:hover { transform: translateY(-4px); box-shadow: 0 20px 42px #1527451c; }
.pp-listing .pp-card-image { height: auto; aspect-ratio: 1.55; }
.pp-listing .pp-card-image img { display: block; height: 100%; }
.pp-listing .pp-card-link { height: 100%; }
.pp-listing .pp-card-body { display: flex; flex-direction: column; align-items: flex-start; min-height: 230px; }
.pp-listing .pp-card-more { margin-top: auto; }

/* Manual mode wins over the device setting. The small head script selects the
   system preference on first visit, and site.js persists an explicit choice. */
html[data-pp-theme="dark"] { color-scheme: dark; --pp-navy: #e7eeff; --pp-blue: #96b5ff; --pp-ink: #e7ecf7; --pp-muted: #b7c3d8; --pp-soft: #0c162a; --pp-line: #34415c; --pp-white: #15223a; }
html[data-pp-theme="dark"] body { background: #0c162a; color: var(--pp-ink); }
html[data-pp-theme="dark"] a { color: #a9c2ff; }
html[data-pp-theme="dark"] ::selection { color: #081329; background: #acc4ff; }
html[data-pp-theme="dark"] .pp-site-header { background: #121f39ed; border-color: #35425e; box-shadow: 0 16px 42px #0005; }
html[data-pp-theme="dark"] .pp-menu a { color: #e3ebfb; }
html[data-pp-theme="dark"] .pp-menu a:hover,
html[data-pp-theme="dark"] .pp-menu .current-menu-item > a,
html[data-pp-theme="dark"] .pp-menu .current_page_item > a { color: #a9c2ff; }
html[data-pp-theme="dark"] .pp-menu .sub-menu,
html[data-pp-theme="dark"] .pp-primary-nav { background: #16233e; border-color: #35425e; }
html[data-pp-theme="dark"] .pp-menu-toggle { color: #e3ebfb; }
html[data-pp-theme="dark"] .pp-theme-toggle { background: #1c2b49; color: #f6d77a; border-color: #455473; box-shadow: none; }
html[data-pp-theme="dark"] .pp-theme-toggle:hover { background: #2b3d60; }
html[data-pp-theme="dark"] .pp-hero { background: radial-gradient(ellipse 58% 43% at 50% 10%, #1c2c59 0, transparent 85%), #0c162a; }
html[data-pp-theme="dark"] .pp-section-soft { background: #0c162a; }
html[data-pp-theme="dark"] .pp-section-white { background: #111d34; }
html[data-pp-theme="dark"] .pp-section-dark { background: #070e1e; }
html[data-pp-theme="dark"] .pp-hero h1,
html[data-pp-theme="dark"] .pp-section-title,
html[data-pp-theme="dark"] .pp-page-heading h1,
html[data-pp-theme="dark"] .pp-article-heading h1,
html[data-pp-theme="dark"] .pp-listing-heading h1,
html[data-pp-theme="dark"] .pp-not-found h1,
html[data-pp-theme="dark"] .pp-article-content :where(h2,h3,h4),
html[data-pp-theme="dark"] .pp-hero-title .elementor-heading-title,
html[data-pp-theme="dark"] .pp-section-title .elementor-heading-title,
html[data-pp-theme="dark"] .pp-card .pp-card-title .elementor-heading-title,
html[data-pp-theme="dark"] .pp-card-body h2 { color: #eaf0ff; }
html[data-pp-theme="dark"] .pp-section-dark .pp-section-title .elementor-heading-title { color: #fff; }
html[data-pp-theme="dark"] .pp-eyebrow,
html[data-pp-theme="dark"] .pp-eyebrow .elementor-heading-title { color: #a9c2ff; }
html[data-pp-theme="dark"] .pp-hero-copy p,
html[data-pp-theme="dark"] .pp-card .elementor-widget-text-editor p,
html[data-pp-theme="dark"] .pp-lead p { color: var(--pp-muted); }
html[data-pp-theme="dark"] .elementor .e-con.pp-card,
html[data-pp-theme="dark"] .pp-empty-state { background: #182640; border-color: #35425e; box-shadow: 0 12px 32px #0003; }
html[data-pp-theme="dark"] .pp-listing .pp-card { background: #182640; border-color: #35425e; box-shadow: 0 12px 32px #0003; }
html[data-pp-theme="dark"] .pp-showcase > .pp-card:not(:has(.pp-card-photo)) { background: linear-gradient(166deg, #192742 27%, #35325e 62%, #58367b); }
html[data-pp-theme="dark"] .pp-showcase > .pp-card:not(:has(.pp-card-photo)):nth-child(4n) { background: linear-gradient(166deg, #172440 27%, #263b69 61%, #29477e); }
html[data-pp-theme="dark"] .pp-showcase > .pp-card:has(> .pp-card-photo)::before { background: #13223aef; border: 1px solid #53627a; }
html[data-pp-theme="dark"] .pp-showcase > .pp-card:has(> .pp-card-photo) .pp-card-title .elementor-heading-title { color: #f2f6ff; }
html[data-pp-theme="dark"] .pp-showcase > .pp-card:has(> .pp-card-photo) .pp-text-button .elementor-button { color: #b6caff; }
html[data-pp-theme="dark"] .pp-cta-band { background: linear-gradient(150deg, #243d81, #463e88 60%, #263b6f); }
html[data-pp-theme="dark"] .pp-cta-band .elementor-button { background: #f4f6ff; color: #10254d; }
html[data-pp-theme="dark"] .pp-cta-menu a,
html[data-pp-theme="dark"] .pp-button,
html[data-pp-theme="dark"] .pp-form-submit,
html[data-pp-theme="dark"] .pp-search-form button,
html[data-pp-theme="dark"] .pp-comments input[type='submit'],
html[data-pp-theme="dark"] .elementor-widget-button:not(.pp-text-button) .elementor-button { background: #365fc9; border-color: #365fc9; color: #fff; }
html[data-pp-theme="dark"] .pp-cta-menu a:hover,
html[data-pp-theme="dark"] .pp-button:hover,
html[data-pp-theme="dark"] .pp-form-submit:hover,
html[data-pp-theme="dark"] .pp-search-form button:hover,
html[data-pp-theme="dark"] .elementor-widget-button:not(.pp-text-button) .elementor-button:hover { background: #4a75e0; border-color: #4a75e0; }
html[data-pp-theme="dark"] .pp-calendly-booking .pp-calendly-trigger { background: linear-gradient(110deg, #344d99, #6254a5 70%, #775bb3); border-color: #7788d3; color: #fff; }
html[data-pp-theme="dark"] .pp-calendly-booking { --pp-calendly-ink: #eaf0ff; }
html[data-pp-theme="dark"] .pp-calendly-privacy,
html[data-pp-theme="dark"] .pp-calendly-unavailable { color: #bac6d9; }
html[data-pp-theme="dark"] .pp-calendly-dialog,
html[data-pp-theme="dark"] .pp-calendly-inline-panel { background: #182640; border-color: #3c4964; color: #eaf0ff; }
html[data-pp-theme="dark"] .pp-calendly-shell,
html[data-pp-theme="dark"] .pp-calendly-close { background: #182640; color: #eaf0ff; border-color: #3c4964; }
html[data-pp-theme="dark"] .pp-calendly-status { color: #eaf0ff; }
html[data-pp-theme="dark"] .pp-cta-band .elementor-widget-button:not(.pp-text-button) .elementor-button { background: #f4f6ff; border-color: #f4f6ff; color: #10254d; }
html[data-pp-theme="dark"] .pp-text-button .elementor-button { background: transparent; border: 0; color: #b2c8ff; }
html[data-pp-theme="dark"] .pp-faq details,
html[data-pp-theme="dark"] .pp-faq .elementor-accordion-item,
html[data-pp-theme="dark"] .pp-faq .e-n-accordion-item,
html[data-pp-theme="dark"] .pp-form-wrap { background: #182640; border-color: #35425e; box-shadow: none; }
html[data-pp-theme="dark"] .pp-faq summary,
html[data-pp-theme="dark"] .pp-form-row label { color: #eaf0ff; }
html[data-pp-theme="dark"] .pp-form-row input,
html[data-pp-theme="dark"] .pp-form-row select,
html[data-pp-theme="dark"] .pp-form-row textarea,
html[data-pp-theme="dark"] .pp-search-form input,
html[data-pp-theme="dark"] .pp-comments textarea,
html[data-pp-theme="dark"] .pp-comments input:not([type='submit']) { background: #0f1b32; border-color: #4a5873; color: #edf2ff; }
html[data-pp-theme="dark"] .pp-form-status { background: #173c32; color: #beeed1; }
html[data-pp-theme="dark"] .pp-form-error { background: #482b35; color: #ffd6d6; }
html[data-pp-theme="dark"] .pp-site-footer { background: #0a1325; }
html[data-pp-theme="dark"] .pp-footer-title,
html[data-pp-theme="dark"] .pp-footer-main h2 { color: #eaf0ff; }
html[data-pp-theme="dark"] .pp-footer-meta { color: #bac5dc; }
html[data-pp-theme="dark"] .pp-footer-wordmark { color: #465c8b; }
html[data-pp-theme="dark"] .pp-card-image,
html[data-pp-theme="dark"] .pp-card-placeholder { background: #263653; }
html[data-pp-theme="dark"] .navigation.pagination .page-numbers,
html[data-pp-theme="dark"] .pp-showcase-controls button { background: #192741; border-color: #3d4b66; color: #dce6ff; }
html[data-pp-theme="dark"] .navigation.pagination .page-numbers.current { background: #365fc9; border-color: #365fc9; color: #fff; }
html[data-pp-theme="dark"] .pp-content-widget,
html[data-pp-theme="dark"] .pp-journey { --pp-blue: #adc5ff; --pp-ink: #edf2ff; --pp-muted: #b8c5d9; --pp-line: #3c4964; }
html[data-pp-theme="dark"] .pp-content-widget .pp-content-card,
html[data-pp-theme="dark"] .pp-content-widget .pp-grid-filters button,
html[data-pp-theme="dark"] .pp-journey-detail,
html[data-pp-theme="dark"] .pp-journey-static-stage { background: #1b2944; border-color: #3c4964; color: #eaf0ff; }
html[data-pp-theme="dark"] .pp-content-widget .pp-grid-filters button[aria-pressed="true"],
html[data-pp-theme="dark"] .pp-journey-stages button[aria-pressed="true"] { background: #365fc9; border-color: #5075d6; color: #fff; }
html[data-pp-theme="dark"] .pp-journey-static { background: radial-gradient(circle, #283a64, #14223b 70%); }
html[data-pp-theme="dark"] .pp-journey-services { color: #bdc9dd; }
html[data-pp-theme="dark"] .pp-journey-motion[aria-pressed="true"] { background: #243f76; border-color: #4467a8; }
.pp-site-header .pp-cta-menu a { gap: 11px; padding: 12px 18px; border: 1px solid #565fc1; border-radius: 999px; background: linear-gradient(110deg, #172b67, #4f4db5 68%, #6654b3); color: #fff; box-shadow: 0 8px 19px #403a9f30; white-space: nowrap; }
.pp-site-header .pp-cta-menu a::after { content: '↗'; font-size: 16px; font-weight: 400; line-height: 1; }
.pp-site-header .pp-cta-menu a:hover { background: linear-gradient(110deg, #213a81, #6158c8 68%, #795fca); border-color: #696bd3; color: #fff; box-shadow: 0 13px 27px #403a9f3c; }
html[data-pp-theme="dark"] .pp-site-header .pp-cta-menu a { background: linear-gradient(110deg, #344d99, #6254a5 70%, #775bb3); border-color: #7788d3; color: #fff; }
html[data-pp-theme="dark"] .pp-site-header .pp-cta-menu a:hover { background: linear-gradient(110deg, #405bb0, #7263bd 70%, #876bc5); }

@media (max-width: 700px) {
  .pp-header-inner { gap: 5px; }
  .pp-hero-title .elementor-heading-title { font-size: clamp(38px, 10vw, 55px); }
  .elementor .e-con.pp-showcase { width: calc(100vw - 24px) !important; gap: 14px; }
  .elementor .pp-showcase > .e-con.pp-card { flex-basis: min(83vw, 340px); width: min(83vw, 340px); min-height: 390px; }
  .pp-showcase-controls { width: min(calc(100% - 4px), calc(100vw - 24px)); }
}
@media (max-width: 360px) {
  .pp-brand .custom-logo-link, .pp-default-logo { width: 120px; height: 54px; }
  .pp-default-logo img { width: 120px; height: 120px; }
  .pp-menu-toggle { padding-inline: 5px; }
  .pp-menu-toggle > span:first-child { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor .e-con.pp-card,
  .pp-calendly-booking .pp-calendly-trigger { transition: none; }
  .elementor .e-con.pp-card:hover,
  .pp-calendly-booking .pp-calendly-trigger:hover { transform: none; }
}

/* PitchPerfect's own editorial system: architectural, asymmetric and calm. */
.pp-site-header { top: 0; width: 100%; margin: 0; border: 0; border-bottom: 1px solid #e5eaf1; border-radius: 0; background: #fffffff2; box-shadow: none; }
.pp-header-inner { max-width: 1380px; margin-inline: auto; min-height: 82px; }
.pp-menu a { font-size: 12px; letter-spacing: .01em; }
.pp-site-header .pp-cta-menu a { border-color: #0b2045; background: #0b2045; box-shadow: none; }
.pp-site-header .pp-cta-menu a:hover { border-color: #244995; background: #244995; box-shadow: 0 10px 20px #10234122; }
.pp-footer-legal-menu { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 0; padding: 0; }
.pp-footer-legal-menu a { color: #53657f; font-size: 12px; text-decoration: none; }
.pp-footer-legal-menu a:hover { color: #1554dc; text-decoration: underline; }

.elementor .e-con.pp-home-hero { width: min(1440px, calc(100% - 40px)) !important; max-width: none !important; min-height: 640px; margin: 22px auto 0; padding: 0; overflow: hidden; border-radius: 26px; background: #0b2045; box-shadow: 0 30px 75px #0b20452b; text-align: left; }
.elementor .e-con.pp-home-hero > .e-con-inner { width: 100%; max-width: none !important; min-height: 640px; display: grid !important; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 0; }
.elementor .e-con.pp-home-hero-copy { display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center; gap: 24px; min-width: 0; padding: clamp(36px, 5vw, 76px); background: radial-gradient(circle at 90% 12%, #173b7c, transparent 44%), #0b2045; }
.pp-home-hero .elementor-widget-heading, .pp-home-hero .elementor-widget-text-editor { text-align: left; }
.pp-home-hero .pp-eyebrow .elementor-heading-title { color: #afc9ff !important; }
.pp-home-hero .pp-hero-title .elementor-heading-title { max-width: 760px; margin: 0; color: #fff !important; font-size: clamp(44px, 4.6vw, 78px); line-height: 1.04; letter-spacing: -.065em; }
.pp-home-hero .pp-hero-copy p { max-width: 590px; margin: 0; color: #d9e5fb; font-size: clamp(15px, 1.3vw, 18px); line-height: 1.7; }
.elementor .e-con.pp-home-hero-actions { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; gap: 20px; }
.pp-home-hero-actions .pp-calendly-booking { align-items: flex-start; }
.pp-home-hero-actions .pp-calendly-booking .pp-calendly-trigger { border-color: #fff; background: #fff; color: #0b2045; box-shadow: 0 14px 30px #0003; }
.pp-home-hero-actions .pp-calendly-booking .pp-calendly-trigger:hover { color: #0b2045; background: #eef4ff; }
.pp-home-hero-actions .pp-calendly-trigger > span[aria-hidden="true"] { border-color: #0b204544; }
.pp-home-hero-actions .pp-text-button .elementor-button { border: 1px solid #9cb7e5; border-radius: 999px; background: transparent; color: #e7eeff; box-shadow: none; }
.pp-home-hero-actions .pp-text-button .elementor-button:hover { border-color: #e7eeff; background: #ffffff17; color: #fff; }
.pp-home-hero .pp-home-hero-meta p { margin: 14px 0 0; color: #a8bfdf; font-size: 10px; font-weight: 600; letter-spacing: .15em; line-height: 1.7; }
.elementor .e-con.pp-home-hero-visual { position: relative; display: block !important; min-width: 0; min-height: 640px; overflow: hidden; background: #d9e3ef; }
.pp-home-hero-visual::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(150deg, #0b204500 45%, #0b204555 100%); }
.pp-home-hero-visual > .pp-home-hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; }
.pp-home-hero-photo .elementor-widget-container, .pp-home-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.elementor .e-con.pp-home-hero-note { position: absolute; z-index: 2; right: 28px; bottom: 28px; width: min(330px, calc(100% - 56px)); padding: 22px 25px; border: 1px solid #ffffffb8; border-radius: 15px; background: #fffef6ec; box-shadow: 0 18px 36px #071d4140; backdrop-filter: blur(14px); }
.pp-home-hero-note .pp-eyebrow .elementor-heading-title { color: #1554dc; }
.pp-home-hero-note .pp-home-note-title .elementor-heading-title { color: #0b2045; font-size: 24px; line-height: 1.17; letter-spacing: -.045em; }
.pp-home-hero-note .pp-home-note-copy p { margin: 0; color: #526680; font-size: 12px; }

.elementor .e-con.pp-inner-hero { padding-block: clamp(62px, 8vw, 110px); background: linear-gradient(105deg, #f0f5fd, #fafcff 72%); text-align: left; }
.elementor .e-con.pp-inner-hero > .e-con-inner { display: grid !important; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: clamp(30px, 5vw, 75px); }
.elementor .e-con.pp-inner-hero--text > .e-con-inner { grid-template-columns: minmax(0, 1fr); }
.elementor .e-con.pp-inner-hero-copy { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 22px; max-width: 820px; }
.pp-inner-hero .elementor-widget-heading, .pp-inner-hero .elementor-widget-text-editor { text-align: left; }
.pp-inner-hero .pp-hero-title .elementor-heading-title { max-width: 820px; margin: 0; font-size: clamp(40px, 4.3vw, 66px); }
.pp-inner-hero .pp-hero-copy p { max-width: 640px; margin: 0; }
.pp-inner-hero .elementor-widget-button, .pp-inner-hero .pp-calendly-booking { align-self: flex-start; }
.elementor .e-con.pp-inner-hero-visual { min-height: 380px; overflow: hidden; border-radius: 20px; box-shadow: 0 20px 46px #0b204526; }
.pp-inner-hero-visual .pp-hero-photo, .pp-inner-hero-visual .pp-hero-photo .elementor-widget-container, .pp-inner-hero-visual .pp-hero-photo img { display: block; width: 100%; height: 100%; min-height: 380px; object-fit: cover; }

.pp-home-pathways.pp-section > .e-con-inner > .elementor-widget-heading,
.pp-home-pathways.pp-section > .e-con-inner > .elementor-widget-text-editor,
.pp-home-services.pp-section > .e-con-inner > .elementor-widget-heading,
.pp-home-services.pp-section > .e-con-inner > .elementor-widget-text-editor,
.pp-home-team.pp-section > .e-con-inner > .elementor-widget-heading,
.pp-home-team.pp-section > .e-con-inner > .elementor-widget-text-editor,
.pp-home-method.pp-section > .e-con-inner > .elementor-widget-heading,
.pp-home-method.pp-section > .e-con-inner > .elementor-widget-text-editor { text-align: left; }
.pp-home-pathways .pp-section-title .elementor-heading-title,
.pp-home-services .pp-section-title .elementor-heading-title,
.pp-home-team .pp-section-title .elementor-heading-title,
.pp-home-method .pp-section-title .elementor-heading-title { max-width: 760px; }
.pp-home-pathways .pp-lead p, .pp-home-services .pp-lead p, .pp-home-team .pp-lead p, .pp-home-method .pp-lead p { margin-left: 0; }
.elementor .e-con.pp-pathway-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: 100%; margin-top: 34px; }
.elementor .e-con.pp-pathway { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 16px; min-width: 0; min-height: 285px; padding: clamp(25px, 3vw, 38px); border-top: 3px solid #1554dc; border-radius: 10px 10px 18px 18px; background: #f3f7fd; }
.elementor .e-con.pp-pathway:nth-child(2) { border-top-color: #0b2045; background: #e8f0fb; }
.elementor .e-con.pp-pathway:nth-child(3) { border-top-color: #9bafe0; background: #f7f9fd; }
.pp-pathway .pp-card-title .elementor-heading-title { color: #0b2045; font-size: clamp(23px, 2vw, 29px); letter-spacing: -.04em; }
.pp-pathway .elementor-widget-text-editor p { color: #53657f; font-size: 14px; line-height: 1.68; }
.pp-pathway .pp-text-button { margin-top: auto; }
.pp-pathway .pp-text-button .elementor-button { padding: 0; background: transparent; color: #164cae; box-shadow: none; }

.elementor .e-con.pp-home-services { background: #eef3fa; }
.elementor .pp-showcase > .e-con.pp-card { min-height: 405px; border-radius: 16px; box-shadow: 0 13px 31px #10234114; }
.pp-showcase > .pp-card:not(:has(.pp-card-photo)),
.pp-showcase > .pp-card:not(:has(.pp-card-photo)):nth-child(4n) { background: linear-gradient(145deg, #fff, #dfeafb); }
.elementor .pp-showcase > .e-con.pp-card.pp-showcase-card-royal:not(:has(.pp-card-photo)) { background: linear-gradient(145deg, #183773, #0b2045); }
.pp-showcase > .pp-card.pp-showcase-card-royal:not(:has(.pp-card-photo)) .pp-card-title .elementor-heading-title,
.pp-showcase > .pp-card.pp-showcase-card-royal:not(:has(.pp-card-photo)) .elementor-widget-text-editor p { color: #fff; }
.pp-showcase > .pp-card.pp-showcase-card-royal:not(:has(.pp-card-photo)) .pp-text-button .elementor-button { color: #fff; }
.pp-home-team .pp-type-pp_team_member .pp-card-image { aspect-ratio: 1.35; }
.pp-home-team .pp-type-pp_team_member .pp-content-card { border-radius: 18px; }
.pp-type-pp_team_member .pp-team-placeholder { background: radial-gradient(circle at 74% 15%, #6f9df3, transparent 37%), linear-gradient(140deg, #0b2045, #244e9c); }

.elementor .e-con.pp-cta-band { border: 1px solid #d7e3f3; background: #edf3fb; box-shadow: none; }
.elementor .e-con.pp-cta-band > .e-con-inner { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 35px; }
.pp-cta-band > .e-con-inner > .pp-eyebrow,
.pp-cta-band > .e-con-inner > .pp-section-title,
.pp-cta-band > .e-con-inner > .pp-lead { grid-column: 1; text-align: left; }
.pp-cta-band > .e-con-inner > .pp-calendly-booking { grid-column: 2; grid-row: 1 / 4; }
.pp-cta-band .pp-section-title .elementor-heading-title { color: #0b2045; }
.pp-cta-band .pp-lead p { color: #53657f; }
.pp-cta-band .pp-eyebrow .elementor-heading-title { color: #1554dc; }
.pp-cta-band .pp-calendly-booking .pp-calendly-trigger { border-color: #0b2045; background: #0b2045; box-shadow: none; }

@media (max-width: 900px) {
  .elementor .e-con.pp-home-hero > .e-con-inner { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); }
  .elementor .e-con.pp-home-hero-copy { padding: 42px 30px; }
  .pp-home-hero .pp-hero-title .elementor-heading-title { font-size: clamp(40px, 5.7vw, 60px); }
  .elementor .e-con.pp-inner-hero > .e-con-inner { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); }
}
@media (max-width: 700px) {
  .pp-site-header { width: 100%; top: 0; margin: 0; border-radius: 0; }
  .pp-header-inner { min-height: 70px; }
  .elementor .e-con.pp-home-hero { width: calc(100% - 24px) !important; margin-top: 12px; border-radius: 18px; }
  .elementor .e-con.pp-home-hero > .e-con-inner { display: flex !important; flex-direction: column !important; min-height: 0; }
  .elementor .e-con.pp-home-hero-copy { padding: 44px 27px 36px; }
  .pp-home-hero .pp-hero-title .elementor-heading-title { font-size: clamp(36px, 9.3vw, 52px); }
  .pp-home-hero .pp-home-hero-meta p { font-size: 9px; letter-spacing: .08em; }
  .elementor .e-con.pp-home-hero-visual { min-height: 310px; }
  .elementor .e-con.pp-home-hero-note { bottom: 18px; right: 18px; width: min(285px, calc(100% - 36px)); padding: 17px; }
  .pp-home-hero-note .pp-home-note-title .elementor-heading-title { font-size: 19px; }
  .elementor .e-con.pp-inner-hero > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: stretch; }
  .elementor .e-con.pp-inner-hero-visual, .pp-inner-hero-visual .pp-hero-photo, .pp-inner-hero-visual .pp-hero-photo .elementor-widget-container, .pp-inner-hero-visual .pp-hero-photo img { min-height: 260px; }
  .elementor .e-con.pp-pathway-grid { grid-template-columns: 1fr; }
  .elementor .e-con.pp-pathway { min-height: 0; }
  .elementor .e-con.pp-cta-band > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start; }
  .pp-cta-band > .e-con-inner > .pp-calendly-booking { align-items: flex-start; }
  .elementor .pp-showcase > .e-con.pp-card { min-height: 370px; }
}
