/* Image 3 profile surface. All rules are scoped so the homepage and directory stay untouched. */
.professional-profile-body { background:#f7faf9; color:#102b46; }
.professional-profile-body > .notice,.professional-profile-body > .header,.professional-profile-body > footer { display:none; }
.professional-profile-body #main { min-height:100vh; }
.pp-shell { --pp-navy:#102b46; --pp-green:#008b67; --pp-deep:#005e57; --pp-pale:#edf7f3; --pp-muted:#667c91; --pp-line:#e4ebef; max-width:1120px; margin:0 auto; padding:0 22px calc(28px + env(safe-area-inset-bottom)); font-family:inherit; }
.pp-shell *, .pp-shell *::before,.pp-shell *::after { box-sizing:border-box; }
.pp-shell a { color:inherit; }
.pp-topbar { min-height:78px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:14px; }
.pp-topbar h1 { margin:0; color:var(--pp-navy); font-size:22px; font-weight:750; text-align:center; }
.pp-top-actions { display:flex; justify-content:flex-end; gap:8px; }
.pp-top-actions { position:relative; }
.pp-menu { position:absolute; z-index:8; top:48px; right:0; min-width:170px; padding:6px; border:1px solid var(--pp-line); border-radius:12px; background:#fff; box-shadow:0 8px 26px #102b4624; }
.pp-menu[hidden] { display:none; }
.pp-menu a,.pp-menu button { width:100%; padding:10px; display:block; border:0; border-radius:8px; background:transparent; color:#28475e; text-align:left; text-decoration:none; font:inherit; font-size:12px; cursor:pointer; }
.pp-menu a:hover,.pp-menu button:hover { background:#eff7f3; }
.pp-icon-button { border:0; background:transparent; min-width:42px; min-height:42px; display:inline-flex; align-items:center; justify-content:center; color:var(--pp-navy); text-decoration:none; font:inherit; font-size:28px; line-height:1; border-radius:50%; cursor:pointer; }
.pp-icon-button:hover:not(:disabled) { background:#eaf4f0; }
.pp-icon-button:disabled { opacity:.52; }
.pp-topbar > .pp-icon-button { justify-self:start; font-size:38px; }
.pp-cover { height:clamp(250px,35vw,380px); min-height:250px; overflow:hidden; position:relative; isolation:isolate; border-radius:26px; background:linear-gradient(115deg,#e5f6ef,#b9e6d7 52%,#0a7666); color:#fff; }
.pp-cover-image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 38%; }
.pp-cover-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(4,36,48,.96) 0%,rgba(4,48,55,.86) 38%,rgba(7,57,60,.28) 72%,rgba(4,35,43,.08)); }
.pp-cover-art { position:absolute; z-index:-2; inset:0; display:flex; align-items:center; justify-content:flex-end; padding-right:10%; background:radial-gradient(ellipse at 75% 45%,#9bd9c4 0 19%,transparent 20%),linear-gradient(115deg,#0b303e 0 38%,#086957 100%); }
.pp-cover-art span { font-size:clamp(100px,20vw,220px); font-weight:900; letter-spacing:-.09em; color:rgba(255,255,255,.1); }
.pp-cover-art i { position:absolute; right:20%; top:18%; color:#e5bb37; font-size:45px; font-style:normal; }
.pp-cover-copy { position:absolute; left:clamp(22px,5vw,54px); top:50%; transform:translateY(-50%); width:min(54%,540px); }
.pp-kicker { display:inline-block; padding:6px 11px; border-radius:999px; color:#e4fff3; background:rgba(0,139,103,.45); font-size:11px; font-weight:750; letter-spacing:.075em; text-transform:uppercase; }
.pp-cover-copy h2 { max-width:520px; margin:14px 0 8px; font-size:clamp(28px,4vw,46px); line-height:1.08; letter-spacing:-.035em; }
.pp-cover-copy p { max-width:440px; margin:0; color:rgba(255,255,255,.88); font-size:15px; line-height:1.5; }
.pp-cover-points { display:flex; gap:14px; flex-wrap:wrap; margin-top:20px; color:#f7f3db; font-size:12px; font-weight:650; }
.pp-cover-points span+span { border-left:1px solid rgba(255,255,255,.4); padding-left:14px; }
.pp-cover-view { position:absolute; right:16px; bottom:14px; border:1px solid rgba(255,255,255,.5); border-radius:20px; padding:7px 12px; color:white; background:rgba(7,34,44,.62); cursor:pointer; }
.pp-identity { display:grid; grid-template-columns:116px minmax(0,1fr) auto; gap:16px; align-items:center; padding:16px 4px 15px; }
.pp-avatar { width:112px; height:112px; overflow:hidden; border:4px solid white; border-radius:50%; background:#def2e9; color:var(--pp-green); box-shadow:0 2px 14px #102b4622; display:grid; place-items:center; font-size:42px; font-weight:800; }
.pp-avatar img { width:100%; height:100%; object-fit:cover; }
.pp-name-line { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pp-name-line h2 { margin:0; font-size:clamp(20px,2.5vw,26px); line-height:1.22; letter-spacing:-.025em; }
.pp-verified { padding:6px 10px; border-radius:20px; background:#e2f6ee; color:#007954; font-size:11px; font-weight:700; white-space:nowrap; }
.pp-demo-note { margin:5px 0 0; color:#8b5f13; font-size:11px; font-weight:650; }
.pp-category,.pp-rating,.pp-meta,.pp-hours { margin:5px 0 0; font-size:14px; }
.pp-category,.pp-meta { color:#526c81; }
.pp-rating { display:flex; align-items:center; gap:6px; }
.pp-rating > span:first-child { color:#f2b91f; font-size:20px; }
.pp-rating a { color:#61778c; font-size:13px; text-decoration:none; }
.pp-hours { color:#4f6d7d; font-size:12px; }
.pp-hours > span:last-child { color:var(--pp-navy); font-weight:600; }
.pp-open-dot { display:inline-block; width:8px; height:8px; margin-right:4px; border-radius:50%; background:#8597a2; }
.pp-member { align-self:start; margin-top:7px; color:#74869a; font-size:12px; line-height:1.55; text-align:right; }
.pp-member strong { color:var(--pp-navy); }
.pp-actions { display:grid; grid-template-columns:1.12fr 1fr .8fr 1fr; gap:8px; }
.pp-action { min-height:48px; padding:9px 10px; display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid #dbe8e6; border-radius:13px; background:#f2f8f6; color:#075b56 !important; text-decoration:none; text-align:center; font-size:13px; font-weight:700; }
.pp-action-primary { border-color:#006e61; background:#006e61; color:#fff !important; }
.pp-action:disabled { opacity:.8; cursor:not-allowed; }
.pp-contact-note { margin:7px 2px 10px; color:#708394; font-size:11px; text-align:right; }
.pp-tabs { position:sticky; top:0; z-index:5; display:flex; justify-content:space-between; gap:10px; overflow:auto; padding:0 4px; border-bottom:1px solid var(--pp-line); background:rgba(247,250,249,.97); scrollbar-width:none; }
.pp-tabs::-webkit-scrollbar { display:none; }
.pp-tabs a { flex:0 0 auto; padding:15px 12px 12px; border-bottom:3px solid transparent; color:#657c8d; text-decoration:none; font-size:13px; }
.pp-tabs a:first-child,.pp-tabs a:hover,.pp-tabs a:focus-visible { border-color:var(--pp-green); color:var(--pp-deep); font-weight:750; }
.pp-section { padding:21px 0 4px; scroll-margin-top:66px; }
.pp-section h2,.pp-info-card h2,.pp-urgent h2 { margin:0; color:var(--pp-navy); font-size:18px; letter-spacing:-.02em; }
.pp-overview { display:grid; grid-template-columns:minmax(0,1fr) 245px; gap:28px; align-items:start; }
.pp-overview-copy > p { margin:10px 0 15px; color:#42596e; font-size:14px; line-height:1.65; }
.pp-trust-facts { display:flex; flex-wrap:wrap; gap:12px 22px; padding:7px 0; color:var(--pp-deep); font-size:18px; }
.pp-trust-facts span { display:flex; align-items:center; gap:7px; }
.pp-trust-facts small { color:#53697b; font-size:11px; }
.pp-price-card { padding:17px 18px; display:flex; flex-direction:column; border:1px solid #dceae5; border-radius:17px; background:linear-gradient(145deg,#fff,#eff8f3); box-shadow:0 4px 16px #143e3910; }
.pp-price-card small { color:#6e8290; font-size:11px; }
.pp-price-card strong { margin:1px 0; color:var(--pp-navy); font-size:27px; line-height:1.2; }
.pp-price-card hr { width:100%; margin:12px 0 8px; border:0; border-top:1px solid #dce7e3; }
.pp-price-card span { margin-top:7px; color:#446372; font-size:11px; }
.pp-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:11px; }
.pp-section-heading > a,.pp-section-action { color:#008368; text-decoration:none; font-size:12px; font-weight:700; }
.pp-section-heading h2 span { font-size:14px; color:#657b8d; }
.pp-service-chips { display:flex; flex-wrap:wrap; gap:9px; }
.pp-service-chip { min-height:43px; max-width:100%; padding:9px 14px; display:inline-flex; align-items:center; gap:9px; border:1px solid #e6edf1; border-radius:24px; background:#eef3f8; color:#164c55 !important; text-decoration:none; font-size:12px; }
.pp-service-chip b { color:#008369; }
.pp-gallery-empty,.pp-empty { color:#647b8b; font-size:13px; }
.pp-gallery-empty { min-height:86px; padding:17px; display:flex; align-items:center; gap:14px; border:1px dashed #cbded7; border-radius:14px; background:#f4f9f7; }
.pp-gallery-empty > span { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:#e0f2e9; color:#008369; font-size:22px; }
.pp-gallery-empty strong { color:#314d62; font-size:13px; }
.pp-gallery-empty p { margin:4px 0 0; font-size:12px; }
.pp-reviews { display:grid; gap:10px; }
.pp-review { padding:15px; display:grid; grid-template-columns:40px minmax(0,1fr); gap:11px; border:1px solid #e7edf0; border-radius:14px; background:#fff; box-shadow:0 2px 8px #102b4608; }
.pp-review-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:#e0f2e9; color:#007c66; font-weight:800; }
.pp-review-heading { display:flex; justify-content:space-between; gap:12px; color:var(--pp-navy); font-size:13px; }
.pp-review-heading time { color:#778b99; font-size:11px; }
.pp-review p { margin:5px 0 0; color:#455c70; font-size:12px; line-height:1.5; }
.pp-review .pp-review-stars { color:#f0b51d; letter-spacing:1px; }
.pp-review .pp-review-service { color:#738695; font-size:11px; }
.pp-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding-top:20px; scroll-margin-top:68px; }
.pp-info-card { min-height:100px; padding:16px; display:flex; align-items:flex-start; gap:12px; border:1px solid #e7edf0; border-radius:15px; background:#fff; }
.pp-info-icon { width:38px; height:38px; flex:0 0 auto; display:grid; place-items:center; border-radius:12px; background:#e0f2e9; color:#008368; font-size:21px; }
.pp-info-card h2 { font-size:14px; }
.pp-info-card p { margin:6px 0 0; color:#61798a; font-size:12px; line-height:1.5; }
.pp-info-card a { display:inline-block; margin-top:6px; color:#008368; font-size:11px; }
.pp-urgent { margin:18px 0 0; padding:13px 15px; display:flex; align-items:center; gap:12px; border:1px solid #cfe6db; border-radius:15px; background:#f0f8f4; }
.pp-urgent-icon { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; border-radius:13px; background:#dff3e9; color:#008368; font-size:21px; }
.pp-urgent h2 { font-size:15px; }
.pp-urgent p { margin:4px 0 0; color:#718492; font-size:12px; }
.pp-urgent > a { margin-left:auto; padding:11px 14px; display:flex; align-items:center; gap:10px; border:1px solid #83b9a5; border-radius:24px; background:#fff; color:#075b56; text-decoration:none; white-space:nowrap; font-size:12px; font-weight:700; }
.pp-urgent > a span { font-size:20px; line-height:12px; }
.pp-image-dialog { width:min(92vw,900px); max-width:none; max-height:92vh; padding:0; overflow:visible; border:0; border-radius:18px; background:#071d25; }
.pp-image-dialog::backdrop { background:#04171dcf; }
.pp-image-dialog img { width:100%; max-height:88vh; display:block; object-fit:contain; border-radius:18px; }
.pp-image-dialog button { position:absolute; top:-15px; right:-12px; width:42px; height:42px; border:0; border-radius:50%; background:#fff; color:#102b46; font-size:28px; cursor:pointer; }
@media (min-width:900px) { .pp-identity { padding-top:19px; padding-bottom:18px; } .pp-actions { max-width:860px; } }
@media (max-width:640px) {
  .pp-shell { padding:0 15px calc(18px + env(safe-area-inset-bottom)); }
  .pp-topbar { min-height:65px; grid-template-columns:36px minmax(0,1fr) auto; gap:7px; }
  .pp-topbar h1 { font-size:17px; white-space:nowrap; }
  .pp-top-actions { gap:0; }
  .pp-icon-button { min-width:36px; min-height:40px; font-size:24px; }
  .pp-topbar > .pp-icon-button { font-size:34px; }
  .pp-cover { height:250px; min-height:0; border-radius:20px; }
  .pp-cover-image { object-position:62% center; }
  .pp-cover-shade { background:linear-gradient(90deg,rgba(4,36,48,.94),rgba(4,48,55,.78) 49%,rgba(7,57,60,.12)); }
  .pp-cover-copy { left:20px; width:68%; }
  .pp-cover-copy h2 { margin:12px 0 6px; font-size:clamp(26px,7vw,34px); }
  .pp-cover-copy p { font-size:12px; }
  .pp-cover-points { gap:7px; margin-top:14px; font-size:9px; }
  .pp-cover-points span+span { padding-left:7px; }
  .pp-kicker { padding:5px 8px; font-size:9px; }
  .pp-identity { grid-template-columns:72px minmax(0,1fr); gap:11px; padding:13px 0; }
  .pp-avatar { width:70px; height:70px; border-width:3px; font-size:28px; }
  .pp-name-line { gap:6px; }
  .pp-name-line h2 { font-size:17px; }
  .pp-verified { padding:4px 7px; font-size:9px; }
  .pp-category,.pp-rating,.pp-meta { margin-top:3px; font-size:11px; }
  .pp-rating > span:first-child { font-size:16px; }
  .pp-rating a { font-size:11px; }
  .pp-hours { font-size:10px; }
  .pp-member { display:none; }
  .pp-actions { grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
  .pp-action { min-height:53px; padding:7px 4px; flex-direction:column; gap:3px; border-radius:11px; font-size:17px; }
  .pp-action span { font-size:9px; line-height:1.15; }
  .pp-contact-note { margin:6px 0 8px; font-size:10px; text-align:left; }
  .pp-tabs { margin:0 -15px; padding:0 8px; gap:4px; }
  .pp-tabs a { padding:13px 11px 10px; font-size:12px; }
  .pp-section { padding-top:17px; }
  .pp-section h2 { font-size:16px; }
  .pp-overview { grid-template-columns:1fr; gap:13px; }
  .pp-overview-copy > p { margin:8px 0 10px; font-size:12px; }
  .pp-trust-facts { gap:8px 13px; }
  .pp-trust-facts small { font-size:9px; }
  .pp-price-card { padding:13px 14px; }
  .pp-price-card strong { font-size:23px; }
  .pp-price-card hr { margin:8px 0 4px; }
  .pp-price-card span { margin-top:5px; }
  .pp-service-chips { gap:7px; }
  .pp-service-chip { min-height:38px; padding:8px 11px; font-size:11px; }
  .pp-info-grid { gap:8px; padding-top:16px; }
  .pp-info-card { min-height:100px; padding:11px 9px; gap:8px; }
  .pp-info-icon { width:32px; height:32px; font-size:17px; }
  .pp-info-card h2 { font-size:12px; }
  .pp-info-card p { font-size:10px; }
  .pp-urgent { padding:10px; gap:8px; }
  .pp-urgent-icon { width:34px; height:34px; font-size:18px; }
  .pp-urgent h2 { font-size:13px; }
  .pp-urgent p { font-size:10px; }
  .pp-urgent > a { padding:9px 10px; gap:5px; font-size:10px; }
}
@media (max-width:370px) { .pp-shell { padding-left:11px; padding-right:11px; } .pp-top-actions .pp-icon-button { min-width:32px; } .pp-cover-copy { width:72%; } .pp-verified { display:none; } .pp-urgent > a { padding:8px; } }
