/* Scoped portfolio components extend the existing PMP Astra visual system. */
.pmp-portfolio-section { border-top:1px solid var(--pmp-line); }
.pmp-pf-hero { padding:72px 24px 62px; background:linear-gradient(125deg,#f3f8fb,#e9f7f5); }
.pmp-pf-hero .pmp-title { max-width:1000px; }
.pmp-portfolio-section .pmp-pf-intro { max-width:960px; color:var(--pmp-muted); font-size:18px; line-height:1.8; }
.pmp-pf-grid,.pmp-pf-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:34px 0; align-items:start; }
.pmp-pf-card,.pmp-pf-route { background:white; border:1px solid var(--pmp-line); border-radius:18px; overflow:hidden; box-shadow:0 12px 32px rgba(11,42,74,.05); min-width:0; }
.pmp-pf-media { height:240px; padding:18px; display:flex; align-items:center; justify-content:center; background:#f7fafb; border-bottom:1px solid var(--pmp-line); }
.pmp-pf-media img { width:100%; height:100%; object-fit:contain; }
.pmp-pf-card-body { padding:24px; }
.pmp-pf-card-body h3 { font-size:23px; line-height:1.25; }
.pmp-pf-card-body h4 { color:var(--pmp-navy); font-size:16px; line-height:1.45; margin:0 0 10px; }
.pmp-pf-card-body p,.pmp-pf-card-body li { color:#42566c; font-size:15px; line-height:1.7; overflow-wrap:anywhere; }
.pmp-pf-card-body ul { padding-left:19px; margin:18px 0; }
.pmp-pf-card-body li { margin-bottom:9px; }
.pmp-pf-card-body .pmp-pf-type { text-transform:uppercase; color:#117d78; letter-spacing:.08em; font-size:11px; font-weight:800; margin:0 0 12px; }
.pmp-pf-profile { margin-top:20px; padding-top:18px; border-top:1px solid var(--pmp-line); }
.pmp-pf-card-body .pmp-pf-note { background:#f2f8fa; border-left:3px solid var(--pmp-teal); padding:12px 14px; font-size:13px; margin:18px 0 0; }
.pmp-pf-route { color:var(--pmp-navy); text-decoration:none !important; display:flex; flex-direction:column; height:100%; }
.pmp-pf-route>img { width:100%; height:210px; object-fit:contain; padding:18px; background:#f7fafb; }
.pmp-pf-route>div { padding:24px; }
.pmp-pf-route h3 { font-size:22px; }
.pmp-pf-route p { color:var(--pmp-muted); font-size:16px; line-height:1.6; }
.pmp-pf-route .pmp-pf-route-link { color:#117d78; font-weight:800; font-size:14px; }
.pmp-pf-route h3 a { color:var(--pmp-navy); text-decoration:none; }
.pmp-pf-route:hover { border-color:var(--pmp-teal); box-shadow:0 12px 32px rgba(11,42,74,.1); }
.pmp-pf-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 28px; padding-left:21px; margin:26px 0; color:#42566c; line-height:1.75; }
.pmp-pf-list li { padding-right:12px; }
.pmp-pf-list li::marker { color:var(--pmp-teal); }
.pmp-pf-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:30px 0; }
.pmp-pf-gallery figure { margin:0; padding:16px; border:1px solid var(--pmp-line); border-radius:14px; background:#fff; }
.pmp-pf-gallery img { width:100%; height:210px; object-fit:contain; }
.pmp-pf-gallery figcaption { color:var(--pmp-muted); font-size:14px; line-height:1.5; margin-top:12px; }
.pmp-pf-actions { display:flex; flex-wrap:wrap; gap:14px; margin:30px 0; }
.pmp-pf-download { display:flex; align-items:center; justify-content:space-between; gap:24px; background:var(--pmp-navy); color:white; border-radius:18px; padding:30px; margin:32px 0; }
.pmp-pf-download h3,.pmp-pf-download p { color:white; }
.pmp-pf-download p { margin:0; font-size:15px; line-height:1.65; }
.pmp-pf-download .pmp-btn { flex-shrink:0; max-width:100%; text-align:center; }
.pmp-pf-source { color:var(--pmp-muted); font-size:13px; margin:28px 0 0; line-height:1.65; }
.pmp-pf-faq { max-width:980px; margin:36px 0; }
.pmp-pf-faq details { border-bottom:1px solid var(--pmp-line); padding:18px 0; }
.pmp-pf-faq summary { cursor:pointer; color:var(--pmp-navy); font-weight:800; }
.pmp-pf-faq details p { color:var(--pmp-muted); line-height:1.7; margin:14px 0 0; }
.pmp-pf-no-image { color:var(--pmp-muted); font-size:17px; text-align:center; }
.pmp-pf-footer { padding:22px 24px; background:#eef7f8; }
.pmp-pf-footer nav { display:flex; flex-wrap:wrap; gap:14px 24px; align-items:center; }
.pmp-pf-footer a { color:var(--pmp-navy); font-size:14px; font-weight:700; }
@media(max-width:980px){.pmp-pf-grid,.pmp-pf-route-grid,.pmp-pf-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }.pmp-pf-download { flex-direction:column; align-items:flex-start; }}
@media(max-width:640px){.pmp-pf-grid,.pmp-pf-route-grid,.pmp-pf-gallery,.pmp-pf-list { grid-template-columns:1fr; }.pmp-pf-hero { padding:48px 20px; }.pmp-pf-card-body { padding:22px; }.pmp-pf-download { padding:24px; }.pmp-pf-download .pmp-btn { white-space:normal; }.pmp-portfolio-section .pmp-pf-intro { font-size:17px; }}
