
/*
 Theme Name: GP Portal Child
 Template: generatepress
 Version: 1.0.0
 Description: GeneratePress child theme with a gensen-like search-first home. Provides block patterns and CSS for the Portal UI.
 Author: Portal Project
*/
:root{
  --portal-accent:#0ea5e9; /* sky-500 */
  --portal-accent-2:#2563eb; /* blue-600 */
  --portal-bg:#0b1220; /* dark hero bg */
  --portal-card:#ffffff;
  --portal-muted:#64748b;
  --portal-radius:14px;
  --portal-shadow: 0 10px 20px rgba(2,6,23,.08), 0 2px 8px rgba(2,6,23,.06);
}
/* small utilities */
.container-narrow{max-width:960px;margin-inline:auto}
.container-wide{max-width:1200px;margin-inline:auto}
.portal-pill{display:inline-block;padding:.25rem .6rem;border-radius:9999px;background:#f1f5f9;color:#0f172a;font-size:.75rem}
/* hero */
.portal-hero{position:relative;min-height:360px;padding:64px 16px;color:#fff;display:flex;align-items:center}
.portal-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,42,.75),rgba(15,23,42,.55)),var(--portal-hero-img,none);background-size:cover;background-position:center;filter:saturate(1.05);}
.portal-hero > .hero-inner{position:relative;z-index:2;width:100%}
.portal-hero h1{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.2;margin:0 0 8px}
.portal-hero p.sub{color:#e2e8f0;margin:0 0 18px}

/* filter form layout */
.portal-hero .plf-form{background:rgba(255,255,255,.96);backdrop-filter:saturate(140%) blur(4px);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow);padding:12px;gap:12px;align-items:end}
.portal-hero .plf-form label{color:#0f172a;font-weight:600}
.portal-hero .plf-form select,
.portal-hero .plf-form input[type=search]{min-width:220px;padding:.6rem .7rem;border:1px solid #dbe2ee;border-radius:10px}
.portal-hero .plf-submit{background:var(--portal-accent-2);border-radius:10px;padding:.7rem 1.1rem}
.portal-hero #plf-count{color:#0f172a}

/* listing cards */
.plf-results{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:18px;margin:28px 0}
@media (min-width:768px){ .plf-results{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1024px){ .plf-results{grid-template-columns:repeat(3,minmax(0,1fr));} }
.plf-card{background:var(--portal-card);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow);padding:18px}
.plf-card .plf-title{font-size:1.05rem;margin:.2rem 0 .4rem}
.plf-card .plf-cta .plf-btn{display:inline-block;margin-right:.4rem;background:#0ea5e9;color:#fff;padding:.45rem .8rem;border-radius:8px;text-decoration:none}
.plf-card .plf-addr,.plf-card .plf-phone{color:#334155;margin:.2rem 0}

/* blog section */
.portal-blog{padding:40px 16px}
.portal-blog h2{font-size:clamp(1.4rem,2.6vw,2rem);margin-bottom:12px}
.portal-blog .intro{color:#475569;margin-bottom:22px}
/* make core/post-template grid look nicer */
.portal-blog .wp-block-post-template{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:18px}
@media(min-width:768px){.portal-blog .wp-block-post-template{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(min-width:1024px){.portal-blog .wp-block-post-template{grid-template-columns:repeat(3,minmax(0,1fr));}}
.portal-blog .wp-block-post{background:#fff;border-radius:12px;box-shadow:var(--portal-shadow);overflow:hidden}
.portal-blog .wp-block-post-featured-image img{display:block;width:100%;height:190px;object-fit:cover}
.portal-blog .wp-block-post-title{font-size:1rem;padding:10px 14px;margin:0}
.portal-blog .wp-block-post-excerpt{padding:0 14px 14px;color:#475569}
.portal-blog .wp-block-query-pagination{margin-top:12px}
