/* ============================================================
   cch001-public-profile.css
   New public profile design for provider / course / enquiry /
   reviews pages. All rules are scoped under the page sections
   (#provider, #course, #enquire, #reviews) or the shared .pp-*
   prefix so nothing leaks into the rest of the site (which still
   runs bootstrap + v5style).
   ============================================================ */

.pp-page-section{
  --pp-dark:#404040;
  --pp-dark-2:#333333;
  --pp-blue:#0083CA;
  --pp-blue-dark:#00699e;
  --pp-yellow:#FFC50A;
  --pp-fg:#D8DEE3;
  --pp-bg:#F4F6F7;
  --pp-white:#ffffff;
  --pp-text:#2A2C2E;
  --pp-text-muted:#6B7075;
  --pp-border:#E2E5E8;
  --pp-radius:10px;
  --pp-radius-lg:14px;
  --pp-measure:760px;
  --pp-shadow:0 1px 2px rgba(0,0,0,0.04), 0 4px 14px rgba(0,0,0,0.05);
  --pp-star-fill:#ffc50b;   /* matches the legacy icon-star tiles */
  --pp-star-empty:#D6D6D6;

  background:var(--pp-bg);
  color:var(--pp-text);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Open Sans',sans-serif;
  -webkit-font-smoothing:antialiased;
  font-size:14px;
  line-height:1.5;
}
.pp-page-section *{box-sizing:border-box;}
.pp-page-section a:hover{text-decoration:underline;}
.pp-page-section img{max-width:100%;}
.pp-page-section h1,.pp-page-section h2,.pp-page-section h3,.pp-page-section h4{
  font-family:inherit;margin-top:0;
}

/* --- Buttons (own class; bootstrap .btn untouched).
       Scoped under .pp-page-section so they outrank the
       `.pp-page-section a` link colour. --- */
.pp-page-section .pp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:9px 18px;border-radius:999px;font-size:14px;font-weight:600;
  border:1.5px solid var(--pp-blue);cursor:pointer;font-family:inherit;
  transition:background .15s ease;text-decoration:none;
}
.pp-page-section .pp-btn:hover,.pp-page-section .pp-btn:focus{text-decoration:none;}
.pp-page-section .pp-btn-primary{background:var(--pp-blue);color:var(--pp-white);}
.pp-page-section .pp-btn-primary:hover,.pp-page-section .pp-btn-primary:focus{background:var(--pp-blue-dark);color:var(--pp-white);}
.pp-page-section .pp-btn-outline{background:transparent;color:var(--pp-white);border-color:rgba(255,255,255,0.4);}
.pp-page-section .pp-btn-outline:hover,.pp-page-section .pp-btn-outline:focus{background:rgba(255,255,255,0.08);color:var(--pp-white);}
.pp-page-section .pp-btn-sm{padding:7px 14px;font-size:13px;}
.pp-page-section .pp-btn[disabled],.pp-page-section .pp-btn.disabled{opacity:.55;cursor:not-allowed;}

/* ============================================================
   Stars: server rendered.  <span class="pp-stars pp-stars-14">
   five <span class="pp-star on|off"> tiles inside.
   ============================================================ */
.pp-stars{display:inline-flex;align-items:center;--pp-star-size:16px;}
.pp-star{
  display:inline-flex;align-items:center;justify-content:center;
  width:var(--pp-star-size);height:var(--pp-star-size);
  border-radius:3px;background:var(--pp-star-empty);margin-right:3px;flex:none;
}
.pp-star.on{background:var(--pp-star-fill);}
.pp-star.half{
  background:linear-gradient(to right, var(--pp-star-fill) 0%, var(--pp-star-fill) 50%, var(--pp-star-empty) 50%, var(--pp-star-empty) 100%);
}
.pp-star::after{
  content:'';width:70%;height:70%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='white' d='M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z'/%3E%3C/svg%3E") no-repeat center/contain;
}
.pp-stars-13{--pp-star-size:13px;}
.pp-stars-14{--pp-star-size:14px;}
.pp-stars-15{--pp-star-size:15px;}
.pp-stars-16{--pp-star-size:16px;}
.pp-stars-20{--pp-star-size:20px;}
.pp-stars-24{--pp-star-size:24px;}

/* ============================================================
   Icons (fixed-colour inline SVG backgrounds)
   ============================================================ */
.pp-ico{
  display:inline-block;width:18px;height:18px;flex:none;
  background:no-repeat center/contain;vertical-align:-3px;
}
.pp-ico-pin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 12-9 12s-9-5-9-12a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");}
.pp-ico-phone{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");}
.pp-ico-mail{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Cpath d='M4 4h16v16H4z'/%3E%3Cpath d='M22 6l-10 7L2 6'/%3E%3C/svg%3E");}
.pp-ico-globe{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20 15 15 0 0 1 0-20z'/%3E%3C/svg%3E");}
.pp-ico-check{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");}
.pp-ico-search{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7075' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E");}
.pp-ico-spark{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Cpath d='M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M18.4 5.6l-2.1 2.1M7.7 16.3l-2.1 2.1'/%3E%3C/svg%3E");}
.pp-ico-lock{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Crect x='3' y='11' width='18' height='10' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");}
.pp-ico-info{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");}
.pp-ico-tick-green{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a9e5c' stroke-width='2.5'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");}

/* ============================================================
   Breadcrumb bar (page renders its own; ul.breadcrumb inside is
   restyled away from bootstrap)
   ============================================================ */
.pp-crumbbar{background:var(--pp-white);border-bottom:1px solid var(--pp-border);}
.pp-crumbbar-inner{
  max-width:1180px;margin:0 auto;padding:12px 24px;
  display:flex;align-items:center;justify-content:space-between;
  font-size:13px;color:var(--pp-text-muted);flex-wrap:wrap;gap:8px;
}
.pp-crumbbar ul.breadcrumb{
  background:none;border-radius:0;margin:0;padding:0;
  display:flex;align-items:center;flex-wrap:wrap;list-style:none;font-size:13px;
  flex:1; /* span the bar so the JS-appended back link can push to the right edge */
}
.pp-crumbbar ul.breadcrumb > li{display:inline-flex;align-items:center;color:var(--pp-text-muted);}
.pp-crumbbar ul.breadcrumb > li + li:before{
  content:"/";margin:0 6px;color:#c3c7cb;padding:0;
}
.pp-crumbbar ul.breadcrumb > li a{color:var(--pp-blue);}
.pp-crumbbar .pp-crumb-back a{color:var(--pp-blue);white-space:nowrap;}
/* legacy JS appends li.breadcrumb-back for "back to search results" */
.pp-crumbbar ul.breadcrumb > li.breadcrumb-back:before{content:"";margin:0;}
.pp-crumbbar ul.breadcrumb > li.breadcrumb-back{margin-left:auto;padding-left:16px;float:none;}
/* v5style bumps .breadcrumb-back links to 16px/500 - keep it matching the crumbs */
.pp-crumbbar ul.breadcrumb > li.breadcrumb-back a{font-size:13px;font-weight:400;color:var(--pp-blue);}

/* ============================================================
   Hero (provider + course)
   ============================================================ */
#provider .pp-hero, #course .pp-hero{
  position:relative;color:var(--pp-white);
  background:linear-gradient(180deg, rgba(30,32,34,0.45), rgba(24,26,28,0.85));
  background-color:var(--pp-dark-2);
  min-height:240px;
}
#provider .pp-hero.has-banner, #course .pp-hero.has-banner{
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
#provider .pp-hero-inner, #course .pp-hero-inner{
  max-width:1180px;margin:0 auto;padding:44px 24px 40px;
}
#provider .pp-hero-inner > *, #course .pp-hero-inner > *{max-width:var(--pp-measure);}
.pp-eyebrow{
  font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--pp-yellow);margin:0 0 10px;
}
#provider .pp-hero h1, #course .pp-hero h1{
  font-size:32px;font-weight:800;line-height:1.2;letter-spacing:-0.01em;
  margin:0 0 10px;max-width:var(--pp-measure);color:var(--pp-white);
}
#provider .pp-hero-top{display:flex;align-items:center;gap:18px;margin-bottom:18px;max-width:var(--pp-measure);}
#provider .pp-hero-top .pp-eyebrow{margin:0 0 6px;}
#provider .pp-hero-top h1{margin:0;}
#provider .pp-hero-logo{
  width:76px;height:76px;background:var(--pp-white);border-radius:16px;
  border:1px solid var(--pp-border);box-shadow:var(--pp-shadow);flex:none;
  display:flex;align-items:center;justify-content:center;padding:9px;overflow:hidden;
}
#provider .pp-hero-logo img{width:100%;height:100%;object-fit:contain;}
#provider .pp-hero-logo .pp-logo-initial{font-weight:800;color:var(--pp-blue);font-size:26px;}
#provider .pp-hero p.pp-tagline{
  font-size:16px;color:var(--pp-fg);max-width:var(--pp-measure);margin:0 0 20px;line-height:1.55;
}
.pp-rating-pill{
  display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.22);padding:8px 16px;border-radius:999px;font-size:14px;
  color:var(--pp-white);text-decoration:none;transition:background .15s ease;margin-bottom:20px;
}
a.pp-rating-pill:hover{background:rgba(255,255,255,0.2);text-decoration:none;color:var(--pp-white);}
.pp-rating-pill b{font-weight:700;}
#provider .pp-hero-actions, #course .pp-hero-actions{
  margin-top:0;display:flex;flex-wrap:wrap;gap:10px;max-width:var(--pp-measure);
}

/* course hero extras */
#course .pp-provider-chip{
  display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.22);padding:6px 16px 6px 6px;border-radius:999px;margin-bottom:18px;
  color:var(--pp-fg);text-decoration:none;
}
#course .pp-provider-chip:hover{background:rgba(255,255,255,0.18);text-decoration:none;color:var(--pp-fg);}
#course .pp-provider-chip img{
  width:34px;height:34px;border-radius:50%;background:var(--pp-white);object-fit:contain;padding:4px;flex:none;
}
#course .pp-provider-chip .pp-chip-initial{
  width:34px;height:34px;border-radius:50%;background:var(--pp-white);color:var(--pp-blue);
  display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:none;
}
#course .pp-provider-chip span{font-size:13.5px;}
#course .pp-provider-chip b{color:var(--pp-white);font-weight:700;}
#course .pp-hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;max-width:var(--pp-measure);}
#course .pp-hero-badge{
  display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.22);padding:7px 14px;border-radius:999px;font-size:13.5px;
  color:var(--pp-white);
}
#course a.pp-hero-badge{text-decoration:none;transition:background .15s ease;}
#course a.pp-hero-badge:hover{background:rgba(255,255,255,0.2);text-decoration:none;color:var(--pp-white);}

/* ============================================================
   Page shell / grid / cards
   ============================================================ */
#provider .pp-page, #course .pp-page, #enquire .pp-page{
  max-width:1180px;margin:0 auto;padding:36px 24px 60px;
  display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start;
}
#reviews .pp-page{
  max-width:1180px;margin:0 auto;padding:36px 24px 60px;
  display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;align-items:start;
}
#provider .pp-main > section, #course .pp-main > section{margin-bottom:30px;}
#provider .pp-main > section:last-child, #course .pp-main > section:last-child{margin-bottom:0;}
#provider .pp-main h2, #course .pp-main h2, #reviews .pp-main h2, #enquire .pp-main h2{
  font-size:20px;font-weight:800;letter-spacing:-0.01em;margin:0 0 12px;color:var(--pp-text);
}
#provider .pp-main p, #course .pp-main p, #reviews .pp-main p, #enquire .pp-main p{
  font-size:14.5px;line-height:1.7;color:var(--pp-text);
}
.pp-page-section .card{
  background:var(--pp-white);border:1px solid var(--pp-border);
  border-radius:var(--pp-radius-lg);padding:22px;box-shadow:var(--pp-shadow);
}
.pp-page-section .card + .card{margin-top:20px;}
.pp-page-section .card h3{font-size:15px;font-weight:700;margin:0 0 14px;color:var(--pp-text);}
.pp-muted{font-size:13.5px;color:var(--pp-text-muted);}

/* ============================================================
   Sidebar cards
   ============================================================ */
.pp-sidebar .pp-contact-row{
  display:flex;gap:10px;align-items:flex-start;font-size:13.5px;margin-bottom:12px;color:var(--pp-text);
  word-break:break-word;
}
.pp-sidebar .pp-contact-row:last-child{margin-bottom:0;}
.pp-sidebar .pp-contact-row .pp-ico{margin-top:1px;}
.pp-social-row{display:flex;gap:10px;margin-top:16px;}
.pp-social-row a{
  width:32px;height:32px;border-radius:50%;background:var(--pp-bg);border:1px solid var(--pp-border);
  display:flex;align-items:center;justify-content:center;color:var(--pp-blue);
  font-size:13px;font-weight:700;text-decoration:none;font-style:normal;
}
.pp-social-row a:hover{text-decoration:none;border-color:var(--pp-blue);}
.pp-social-row a i.icon{font-size:15px;}

/* review summary card */
.pp-score-big{font-size:28px;font-weight:800;line-height:1;color:var(--pp-text);}
.pp-score-big small{font-size:13px;font-weight:500;color:var(--pp-text-muted);}
.pp-score-count{font-size:12.5px;color:var(--pp-text-muted);margin:4px 0 14px;}
a.pp-review-count-link{color:var(--pp-blue);font-weight:600;}
.pp-dist{display:flex;flex-direction:column;gap:2px;font-size:12.5px;}
a.pp-rs-row{
  display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;
  border-radius:6px;margin:0 -4px;padding:2px 4px;
}
a.pp-rs-row:hover{background:var(--pp-bg);text-decoration:none;}
a.pp-rs-row:hover .pp-rs-label{color:var(--pp-blue);text-decoration:underline;}
span.pp-rs-row{display:flex;align-items:center;gap:8px;margin:0 -4px;padding:2px 4px;}
.pp-rs-label{width:38px;flex:none;}
.pp-rs-bar{flex:1;height:6px;background:var(--pp-bg);border-radius:3px;overflow:hidden;}
.pp-rs-bar > span{display:block;height:100%;background:var(--pp-yellow);}
.pp-rs-count{width:44px;flex:none;text-align:right;color:var(--pp-text-muted);}

/* recent reviews card */
.pp-review-list{display:flex;flex-direction:column;}
.pp-review-item{padding:16px 0;border-bottom:1px solid var(--pp-border);}
.pp-review-item:first-child{padding-top:0;}
.pp-review-item:last-child{border-bottom:none;padding-bottom:0;}
.pp-review-item .pp-stars{display:inline-flex;margin-bottom:8px;}
.pp-quote-row{display:flex;gap:6px;align-items:flex-start;margin-bottom:8px;}
.pp-quote-icon{font-family:Georgia,serif;font-size:26px;line-height:0.5;color:var(--pp-border);flex:none;margin-top:9px;}
.pp-quote{font-size:13px;line-height:1.55;color:var(--pp-text);margin:0;font-style:italic;}
.pp-review-meta{font-size:12px;color:var(--pp-text-muted);margin:0;}
.pp-review-meta b{color:var(--pp-text);font-weight:600;font-style:normal;}
.pp-review-response{
  font-size:12px;color:var(--pp-text-muted);margin:8px 0 0;padding:8px 10px;
  background:var(--pp-bg);border-radius:8px;line-height:1.5;
}
.pp-readall{display:block;text-align:center;font-size:13px;font-weight:600;margin-top:14px;}
/* "Read more" on truncated recent-review quotes: lives inside the quote
   paragraph so it lines up with the text's left edge (past the " icon);
   clicking toggles the excerpt/full text in place (Read more <-> Read less).
   The chevron is a ::before so the JS can swap the label with textContent. */
.pp-readmore{
  /* flex (not inline-flex) so it always breaks onto its own line below the
     quote text; max-content keeps the click target no wider than the label */
  display:flex;width:max-content;align-items:center;gap:4px;
  font-size:12px;font-weight:600;font-style:normal;color:var(--pp-blue);margin-top:5px;
}
.pp-readmore::before{
  content:'';width:12px;height:12px;flex:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat center/contain;
  transition:transform .15s ease;
}
.pp-readmore.open::before{transform:rotate(180deg);}
/* bootstrap outlines a:focus even on mouse click - keep the ring for
   keyboard focus only */
.pp-readmore:focus{outline:none;}
.pp-readmore:focus-visible{outline:2px solid var(--pp-blue);outline-offset:2px;border-radius:4px;}
/* fade over the excerpt's last line, hinting at hidden text;
   the fade lives on the short span only, so expanding removes it naturally */
.pp-quote-short{display:block;position:relative;}
.pp-quote-short::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:1.4em;
  background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 100%);
  pointer-events:none;
}
.pp-quote-full.is-hidden{display:none;}

/* map card */
.pp-map-card{padding:0 !important;overflow:hidden;}
.pp-map-card .pp-map{width:100%;height:220px;display:block;border:0;}
.pp-map-card .pp-map-caption{padding:14px 18px;font-size:12.5px;color:var(--pp-text-muted);}

/* accreditation / location chips */
.pp-chip-grid{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.pp-chip{
  font-size:11.5px;color:var(--pp-text-muted);background:var(--pp-bg);
  border:1px solid var(--pp-border);padding:5px 10px;border-radius:999px;
}
.pp-chip.is-hidden{display:none;}
.pp-chip-toggle{
  font-size:11.5px;font-weight:600;color:var(--pp-blue);background:var(--pp-white);
  border:1px solid var(--pp-blue);padding:5px 10px;border-radius:999px;cursor:pointer;font-family:inherit;
}
.pp-chip-toggle:hover{background:rgba(0,131,202,0.06);}
.pp-loc-intro{font-size:12.5px;color:var(--pp-text-muted);margin:-6px 0 12px;}

/* course details / info rows */
.pp-info-row{display:flex;justify-content:space-between;font-size:13.5px;padding:9px 0;border-bottom:1px solid var(--pp-border);gap:10px;}
.pp-info-row:last-of-type{border-bottom:none;padding-bottom:0;}
.pp-info-row span:first-child{color:var(--pp-text-muted);flex:none;}
.pp-info-row span:last-child{font-weight:600;text-align:right;max-width:170px;}

/* provider mini card */
.pp-provider-card{display:flex;align-items:center;gap:16px;}
.pp-provider-card .pp-logo-box{
  width:76px;height:76px;border-radius:16px;background:var(--pp-white);border:1px solid var(--pp-border);
  box-shadow:var(--pp-shadow);padding:10px;flex:none;display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.pp-provider-card .pp-logo-box img{width:100%;height:100%;object-fit:contain;}
.pp-provider-card .pp-logo-box .pp-logo-initial{font-weight:800;color:var(--pp-blue);font-size:20px;}
.pp-provider-card .pp-info{flex:1;min-width:0;}
.pp-provider-card .pp-pname{font-weight:700;font-size:15.5px;margin-bottom:6px;color:var(--pp-text);}
.pp-provider-card .pp-stars{display:inline-flex;margin-bottom:4px;}
.pp-provider-card .pp-prating{font-size:12.5px;color:var(--pp-text-muted);white-space:nowrap;margin-bottom:6px;}
.pp-provider-card a.pp-view-link{font-size:12.5px;font-weight:600;}

/* ============================================================
   AI summary card
   ============================================================ */
.pp-ai-summary-card{
  background:linear-gradient(180deg,rgba(0,131,202,0.05),rgba(0,131,202,0.02));
  border:1px solid rgba(0,131,202,0.18);border-radius:14px;padding:18px 20px;
}
.pp-ai-summary-head{
  display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;
  letter-spacing:.03em;text-transform:uppercase;color:var(--pp-blue);margin-bottom:10px;
}
.pp-ai-summary-head .pp-ico{width:16px;height:16px;}
.pp-ai-summary-text{font-size:14.5px;line-height:1.65;color:var(--pp-text);margin:0 0 12px;}
.pp-ai-summary-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.pp-ai-tag{
  font-size:12px;font-weight:600;color:var(--pp-blue-dark);background:var(--pp-white);
  border:1px solid rgba(0,131,202,0.25);padding:5px 12px;border-radius:999px;
}
.pp-ai-summary-disclaimer{font-size:11.5px;color:var(--pp-text-muted);margin:0;}

/* ============================================================
   Provider page: main column
   ============================================================ */
#provider section.pp-about p{font-size:14.5px;line-height:1.7;color:var(--pp-text);margin:0 0 12px;}
#provider .pp-why-us-card{background:var(--pp-white);border:1px solid var(--pp-border);border-radius:var(--pp-radius-lg);padding:22px;box-shadow:var(--pp-shadow);}
#provider .pp-why-us-card h2{margin:0 0 14px;}
#provider .pp-why-us-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
#provider .pp-why-us-list li{
  display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.55;color:var(--pp-text);
}
#provider .pp-why-us-list li .pp-ico{margin-top:2px;}

/* video embed (shared with course page) — 16:9 like the design's
   .video-embed. mn-fix2.css also styles .videoWrapper (padding-bottom
   + padding-top:25px + margin), so zero those out explicitly or the
   paddings stack and the video renders almost square. */
.pp-page-section .videoWrapper{
  position:relative;width:100%;height:0;margin:0;
  padding:56.25% 0 0 0;border-radius:var(--pp-radius-lg);
  overflow:hidden;background:var(--pp-dark);box-shadow:var(--pp-shadow);
}
.pp-page-section .videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;}
.pp-page-section video{max-width:100%;border-radius:var(--pp-radius-lg);}

/* news */
#provider .pp-news-section h2{margin:0 0 4px;}
#provider .pp-news-section .pp-muted{margin:0 0 16px;display:block;}
#provider .pp-news-item{
  background:var(--pp-white);border:1px solid var(--pp-border);border-radius:var(--pp-radius-lg);
  padding:18px 20px;box-shadow:var(--pp-shadow);
}
#provider .pp-news-item p{font-size:14px;line-height:1.65;color:var(--pp-text);margin:0 0 12px;}
#provider .pp-news-item p:last-child{margin-bottom:0;}

/* ============================================================
   Provider page: course catalogue
   ============================================================ */
#provider .pp-catalogue-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px;}
#provider .pp-catalogue-head h2{margin:0 0 4px;}
#provider .pp-search-wrap{position:relative;margin-bottom:10px;}
#provider .pp-search-wrap input{
  width:100%;padding:13px 16px 13px 42px;border-radius:999px;border:1.5px solid var(--pp-border);
  font-size:14.5px;font-family:inherit;background:var(--pp-white);color:var(--pp-text);
  box-shadow:0 1px 2px rgba(0,0,0,0.03);
}
#provider .pp-search-wrap input:focus{outline:none;border-color:var(--pp-blue);box-shadow:0 0 0 3px rgba(0,131,202,0.12);}
#provider .pp-search-wrap .pp-ico-search{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:16px;height:16px;}
#provider .pp-search-meta{font-size:13px;color:var(--pp-text-muted);margin-bottom:24px;}
#provider .pp-search-meta b{color:var(--pp-text);}
#provider .pp-cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;}
#provider .pp-cat-chip{
  font-size:13px;font-weight:600;color:var(--pp-text);background:var(--pp-white);
  border:1px solid var(--pp-border);padding:7px 14px;border-radius:999px;cursor:pointer;font-family:inherit;
}
#provider .pp-cat-chip:hover{border-color:var(--pp-blue);color:var(--pp-blue);}
#provider .pp-category-block{margin-bottom:40px;}
#provider .pp-category-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;
  padding:2px 0 12px 14px;border-left:4px solid var(--pp-blue);border-bottom:1px solid var(--pp-border);
}
#provider .pp-category-head h3{
  font-size:21px;font-weight:800;letter-spacing:-0.01em;margin:0;display:flex;align-items:center;gap:10px;
}
#provider .pp-cat-count{
  font-size:12.5px;font-weight:600;color:var(--pp-text);background:rgba(0,131,202,0.08);
  padding:3px 11px;border-radius:999px;
}
#provider .pp-course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
#provider .pp-course-card{
  background:var(--pp-white);border:1px solid var(--pp-border);border-radius:var(--pp-radius);
  padding:16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;
  transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
#provider .pp-course-card:hover{
  border-color:var(--pp-blue);transform:translateY(-4px);
  box-shadow:0 10px 22px rgba(0,0,0,0.10), 0 2px 6px rgba(0,131,202,0.12);
}
#provider .pp-course-card.is-hidden{display:none;}
#provider a.pp-course-name{font-size:14.5px;font-weight:600;line-height:1.35;color:var(--pp-blue);text-decoration:none;}
#provider .pp-course-card:hover a.pp-course-name, #provider a.pp-course-name:hover{text-decoration:underline;}
#provider .pp-course-rating{font-size:12.5px;color:var(--pp-text-muted);display:flex;align-items:center;gap:6px;margin-top:auto;}
#provider .pp-no-reviews{font-size:12.5px;color:var(--pp-text-muted);font-style:italic;margin-top:auto;}
.pp-view-all-btn{
  width:100%;margin-top:14px;padding:11px;border-radius:var(--pp-radius);border:1.5px dashed var(--pp-border);
  background:transparent;color:var(--pp-blue);font-weight:600;font-size:13.5px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;text-decoration:none;
}
.pp-view-all-btn:hover{border-color:var(--pp-blue);background:rgba(0,131,202,0.04);text-decoration:none;}
#provider .pp-no-results{display:none;text-align:center;padding:40px 20px;color:var(--pp-text-muted);font-size:14px;}

/* ============================================================
   Course page: main column
   ============================================================ */
#course .pp-req-pill{
  display:inline-flex;align-items:center;gap:7px;background:var(--pp-bg);border:1px solid var(--pp-border);
  padding:8px 14px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--pp-text);margin-top:4px;
}
#course .pp-req-pill .pp-ico{width:15px;height:15px;}
/* freeform "what you will learn" html gets the tick-list look */
#course .pp-learn ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
#course .pp-learn ul li{
  position:relative;padding-left:28px;font-size:14.5px;line-height:1.5;color:var(--pp-text);
}
#course .pp-learn ul li::before{
  content:'';position:absolute;left:0;top:2px;width:18px;height:18px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230083CA' stroke-width='2'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") no-repeat center/contain;
}

/* reviews carousel */
#course .pp-reviews-carousel{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:2px 2px 10px;}
#course .pp-review-carousel-card{
  background:var(--pp-white);border:1px solid var(--pp-border);border-radius:var(--pp-radius-lg);
  padding:18px;display:flex;flex-direction:column;
}
#course .pp-carousel-quote-icon{font-family:Georgia,serif;font-size:34px;line-height:1;color:var(--pp-border);margin:6px 0 4px;}
#course .pp-carousel-quote-text{font-size:13.5px;line-height:1.6;color:var(--pp-text);font-style:italic;margin:0 0 14px;flex:1;}
#course .pp-carousel-foot{
  display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--pp-border);
  padding-top:10px;font-size:12.5px;
}
#course .pp-carousel-foot b{font-weight:600;color:var(--pp-text);}
#course .pp-carousel-foot span{color:var(--pp-text-muted);}

/* related courses */
#course .pp-related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;}
#course .pp-related-card{
  background:var(--pp-white);border:1px solid var(--pp-border);border-radius:var(--pp-radius);
  padding:14px 16px;cursor:pointer;transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
#course .pp-related-card:hover{
  border-color:var(--pp-blue);transform:translateY(-4px);
  box-shadow:0 10px 22px rgba(0,0,0,0.10), 0 2px 6px rgba(0,131,202,0.12);
}
#course a.pp-related-name{font-size:14px;font-weight:600;color:var(--pp-blue);text-decoration:none;display:block;margin-bottom:6px;}
#course .pp-related-card:hover a.pp-related-name, #course a.pp-related-name:hover{text-decoration:underline;}
#course .pp-related-rating{font-size:12.5px;color:var(--pp-text-muted);display:flex;align-items:center;gap:6px;}
#course .pp-view-all-btn{width:auto;display:inline-flex;padding:10px 18px;}

/* further information link pills */
#course .pp-links-panel p{margin:0 0 10px;}
#course .pp-links-panel a{font-weight:600;}

/* ============================================================
   Enquiry page
   ============================================================ */
#enquire .pp-page-head{background:var(--pp-white);border-bottom:1px solid var(--pp-border);}
#enquire .pp-page-head-inner{max-width:1180px;margin:0 auto;padding:26px 24px;}
#enquire .pp-page-head .pp-eyebrow{color:var(--pp-blue);margin:0 0 8px;}
#enquire .pp-page-head h1{font-size:25px;font-weight:800;margin:0 0 6px;letter-spacing:-0.01em;color:var(--pp-text);}
#enquire .pp-page-head p{font-size:13.5px;color:var(--pp-text-muted);margin:0;}
#enquire .pp-course-strip{
  display:flex;align-items:center;gap:12px;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--pp-border);
}
#enquire .pp-course-strip img{
  width:44px;height:44px;border-radius:10px;border:1px solid var(--pp-border);object-fit:contain;
  padding:5px;background:var(--pp-white);flex:none;
}
#enquire .pp-course-strip .pp-ename{font-weight:700;font-size:15.5px;}
#enquire .pp-course-strip .pp-ename a{color:var(--pp-text);}
#enquire .pp-course-strip .pp-ename a:hover{color:var(--pp-blue);}
#enquire .pp-course-strip .pp-eprovider{font-size:12.5px;color:var(--pp-text-muted);margin-top:2px;}
#enquire .pp-enq-form h2{font-size:19px;font-weight:800;margin:0 0 4px;}
#enquire .pp-enq-form p.pp-muted{margin:0 0 20px;}
#enquire .pp-enq-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
#enquire .pp-enq-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
#enquire .pp-enq-field label{font-size:13px;font-weight:600;color:var(--pp-text);margin:0;}
#enquire .pp-enq-field label .pp-req{color:var(--pp-blue);margin-left:2px;}
#enquire .pp-enq-field label .pp-opt{font-weight:500;color:var(--pp-text-muted);font-size:12px;}
#enquire .pp-enq-field input, #enquire .pp-enq-field textarea{
  font-family:inherit;font-size:14.5px;padding:11px 14px;border-radius:var(--pp-radius);
  border:1.5px solid var(--pp-border);background:var(--pp-white);color:var(--pp-text);width:100%;
}
#enquire .pp-enq-field input:focus, #enquire .pp-enq-field textarea:focus{
  outline:none;border-color:var(--pp-blue);box-shadow:0 0 0 3px rgba(0,131,202,0.12);
}
#enquire .pp-enq-field textarea{resize:vertical;min-height:110px;line-height:1.55;}
#enquire .pp-enq-field.error input, #enquire .pp-enq-field.error textarea{border-color:#c0392b;}
#enquire .pp-enq-field span.help-inline{font-size:12px;color:#c0392b;}
#enquire .pp-enq-consent{
  display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--pp-text-muted);
  margin-bottom:20px;line-height:1.5;
}
#enquire .pp-enq-consent input{margin:3px 0 0;accent-color:var(--pp-blue);flex:none;width:auto;}
#enquire .pp-enq-consent label{font-weight:400;margin:0;}
#enquire .pp-enq-captcha{margin-bottom:20px;}
#enquire .pp-enq-trust{
  display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--pp-text-muted);
  margin-top:16px;line-height:1.5;
}
#enquire .pp-enq-trust .pp-ico{width:16px;height:16px;margin-top:1px;}
#enquire .pp-enq-success{text-align:center;padding:36px 10px 14px;}
#enquire .pp-enq-success .pp-tick{
  width:52px;height:52px;border-radius:50%;background:rgba(26,158,92,0.1);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px;
}
#enquire .pp-enq-success .pp-tick .pp-ico{width:26px;height:26px;}
#enquire .pp-enq-success h2{font-size:19px;font-weight:800;margin:0 0 8px;}
#enquire .pp-enq-success p{font-size:14px;color:var(--pp-text-muted);line-height:1.6;max-width:360px;margin:0 auto;}
#enquire .pp-enq-success .pp-btn{margin-top:20px;border-color:var(--pp-border);color:var(--pp-text);}

/* ============================================================
   Reviews page
   ============================================================ */
#reviews .pp-page-head{background:var(--pp-white);border-bottom:1px solid var(--pp-border);}
#reviews .pp-page-head-inner{max-width:1180px;margin:0 auto;padding:28px 24px;}
#reviews .pp-page-head h1{font-size:26px;font-weight:800;letter-spacing:-0.01em;margin:0 0 10px;color:var(--pp-text);}
#reviews .pp-head-rating{display:flex;flex-direction:column;gap:6px;}
#reviews .pp-head-rating-text{font-size:15px;color:var(--pp-text);}
#reviews .pp-head-rating-text b{font-size:17px;font-weight:800;}
#reviews .pp-head-rating-text a{color:var(--pp-blue);font-weight:600;}
#reviews .pp-ai-summary-card{margin-top:20px;}
#reviews .pp-page-head .pp-ai-summary-card{max-width:none;}

/* filter sidebar */
#reviews .pp-filter-sidebar h3{font-size:14px;font-weight:700;margin:0 0 14px;}
#reviews .pp-rating-filter{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;}
#reviews .pp-rating-filter a{
  display:flex;align-items:center;gap:8px;font-size:13.5px;padding:5px 6px;border-radius:6px;
  color:var(--pp-text);text-decoration:none;
}
#reviews .pp-rating-filter a:hover{background:var(--pp-bg);text-decoration:none;}
#reviews .pp-rating-filter a.active{background:rgba(0,131,202,0.08);}
#reviews .pp-rating-filter a.disabled{opacity:.45;pointer-events:none;}
#reviews .pp-rating-filter .pp-rf-stars{flex:none;white-space:nowrap;line-height:1;display:inline-flex;}
#reviews .pp-rating-filter .pp-rf-count{color:var(--pp-text-muted);font-size:12.5px;flex:none;}
#reviews .pp-clear-filter{display:block;text-align:center;font-size:13px;font-weight:600;margin-top:12px;}

/* results */
#reviews .pp-results-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
#reviews .pp-results-count{font-size:14px;color:var(--pp-text-muted);margin:0;}
#reviews .pp-results-count b{color:var(--pp-text);}
#reviews .pp-sort-wrap{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--pp-text-muted);}
#reviews .pp-sort-wrap select{
  font-family:inherit;font-size:13.5px;padding:8px 12px;border-radius:var(--pp-radius);
  border:1px solid var(--pp-border);background:var(--pp-white);color:var(--pp-text);height:auto;width:auto;
}
#reviews .pp-review-card{
  background:var(--pp-white);border:1px solid var(--pp-border);border-radius:var(--pp-radius-lg);
  padding:22px 24px;margin-bottom:14px;
}
#reviews .pp-review-card > .pp-stars{margin-bottom:10px;}
#reviews .pp-review-card .pp-quote-row{margin-bottom:12px;}
#reviews .pp-review-card .pp-quote-icon{font-size:32px;margin-top:12px;}
#reviews .pp-review-card .pp-quote{font-size:15px;line-height:1.65;}
#reviews .pp-review-loc{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--pp-text-muted);
  background:var(--pp-bg);padding:3px 10px;border-radius:999px;margin-bottom:12px;
}
#reviews .pp-review-loc .pp-ico{width:11px;height:11px;}
#reviews .pp-review-foot{
  display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--pp-text-muted);
  border-top:1px solid var(--pp-border);padding-top:12px;flex-wrap:wrap;gap:10px;
}
#reviews .pp-review-foot b{color:var(--pp-text);font-weight:600;}
#reviews .pp-helpful-btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
#reviews .pp-helpful-btns a.review-update{
  font-family:inherit;font-size:12.5px;color:var(--pp-text-muted);background:var(--pp-bg);
  border:1px solid var(--pp-border);padding:5px 12px;border-radius:999px;cursor:pointer;text-decoration:none;
}
#reviews .pp-helpful-btns a.review-update:hover{border-color:var(--pp-blue);color:var(--pp-blue);text-decoration:none;}
#reviews a.pp-report-link{color:var(--pp-text-muted);font-size:12.5px;}
#reviews .pp-review-card .postb{font-size:12.5px;color:var(--pp-blue);margin:6px 0 0;}
#reviews .pp-review-card .pp-review-response{font-size:13px;margin-top:10px;}

/* pagination (restyles the ul.pagination markup from the Nav template) */
#reviews ul.pagination{
  display:flex;align-items:center;justify-content:center;gap:4px;margin:28px 0 0;flex-wrap:wrap;
  border-radius:0;
}
#reviews ul.pagination li{display:block;}
#reviews ul.pagination li a{
  min-width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;font-size:13.5px;color:var(--pp-text);border:1px solid var(--pp-border);
  background:var(--pp-white);padding:0 6px;margin:0;float:none;text-decoration:none;
}
#reviews ul.pagination li a:hover{border-color:var(--pp-blue);color:var(--pp-blue);background:var(--pp-white);}
#reviews ul.pagination li.active a{
  background:var(--pp-blue);color:var(--pp-white);border-color:var(--pp-blue);font-weight:600;
}
#reviews ul.pagination li.disabled a{opacity:.45;pointer-events:none;background:var(--pp-white);color:var(--pp-text);}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:900px){
  #provider .pp-page, #course .pp-page, #enquire .pp-page, #reviews .pp-page{
    grid-template-columns:1fr;gap:24px;
  }
  #reviews .pp-main{order:1;}
  #reviews .pp-filter-sidebar{order:2;}

  /* provider: catalogue drops below the sidebar cards.
     align-items:stretch overrides the grid rule's align-items:start,
     which in a column flexbox shrinks items to content width. */
  #provider .pp-page{display:flex;flex-direction:column;align-items:stretch;}
  #provider .pp-page > .pp-main, #provider .pp-page > .pp-sidebar{display:contents;}
  #provider .pp-page .pp-main > section{order:0;margin-bottom:30px;}
  #provider .pp-page .pp-sidebar > .card{order:50;margin-top:0;margin-bottom:20px;}
  #provider .pp-page .pp-main > section.pp-catalogue{order:99;margin-bottom:0;}
  #provider .pp-course-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:720px){
  .pp-crumbbar-inner{padding-left:16px;padding-right:16px;}
  #provider .pp-page, #course .pp-page, #enquire .pp-page, #reviews .pp-page{padding:24px 16px 44px;}

  #provider .pp-hero, #course .pp-hero{min-height:0;}
  #provider .pp-hero-inner, #course .pp-hero-inner{padding:26px 16px 24px;}
  #provider .pp-hero h1, #course .pp-hero h1{font-size:24px;line-height:1.25;}
  #provider .pp-main h2, #course .pp-main h2, #reviews .pp-main h2, #enquire .pp-main h2{font-size:18px;}

  #provider .pp-hero-top{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:14px;}
  #provider .pp-hero-logo{width:56px;height:56px;border-radius:12px;}

  #provider .pp-hero-actions, #course .pp-hero-actions{flex-direction:column;align-items:stretch;width:100%;}
  #provider .pp-hero-actions .pp-btn, #course .pp-hero-actions .pp-btn{width:100%;}
  .pp-page-section .pp-btn{padding:12px 18px;min-height:44px;}
  #course .pp-hero-badges{gap:8px;margin-bottom:16px;}

  #provider .pp-course-grid,
  #course .pp-reviews-carousel,
  #course .pp-related-grid,
  #enquire .pp-enq-row{grid-template-columns:1fr;}

  .pp-page-section .card{padding:18px;}
  .pp-provider-card{gap:12px;}
  .pp-provider-card .pp-logo-box{width:56px;height:56px;border-radius:12px;}

  .pp-info-row{flex-wrap:wrap;gap:2px;}
  .pp-info-row span:last-child{max-width:none;text-align:left;}
  .pp-crumbbar-inner{font-size:12px;}
}

@media (max-width:480px){
  #provider .pp-hero h1, #course .pp-hero h1{font-size:21px;}
  #provider .pp-hero-inner, #course .pp-hero-inner{padding:22px 14px 20px;}
  #provider .pp-page, #course .pp-page, #enquire .pp-page, #reviews .pp-page{padding:20px 14px 36px;}
  .pp-page-section .card{padding:16px;}
  #provider .pp-main p, #course .pp-main p, #reviews .pp-main p, #enquire .pp-main p{font-size:14px;}
}
