/*
Theme Name: Bandung Parking News Premium
Theme URI: https://bandungparking.com/
Author: BandungParking.com
Description: Theme WordPress editorial premium bergaya majalah bisnis untuk Bandung Parking News.
Version: 1.0.2
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: bandungparking-news
*/
:root{
 --paper:#fbfaf6;--card:#fff;--paper2:#f1eee7;--ink:#151515;--ink2:#44433f;--muted:#77736a;
 --hair:#ddd7ca;--blue:#0a4f87;--blue2:#0d6ca8;--red:#b21f2d;--gold:#c9a34e;
 --serif:Georgia,"Times New Roman",serif;--sans:Inter,Arial,sans-serif
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);line-height:1.58}a{text-decoration:none;color:inherit}img{max-width:100%;height:auto;display:block}.wrap{width:min(1240px,93vw);margin:auto}
.topbar{background:#111;color:#eee;font:500 .72rem var(--sans)}.topbar .wrap{min-height:38px;display:flex;align-items:center;justify-content:space-between}.topbar b{color:#fff}.topbar a{color:#fff}
.mast{padding:27px 0 20px;border-bottom:1px solid var(--hair)}.mast-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:25px}.brand{font-size:clamp(2.8rem,7vw,5rem);font-weight:900;line-height:.9;letter-spacing:-.045em}.brand span{color:var(--blue)}.brand small{display:block;font:700 .62rem var(--sans);letter-spacing:.23em;text-transform:uppercase;color:var(--muted);margin-top:8px}.edition{font:600 .68rem var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);text-align:right}
.navbar{position:sticky;top:0;z-index:100;background:rgba(251,250,246,.98);backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}.nav-inner{height:52px;display:flex;align-items:center;justify-content:space-between}.main-nav ul{list-style:none;display:flex;gap:24px;padding:0;margin:0}.main-nav a{font:800 .76rem var(--sans);letter-spacing:.08em;text-transform:uppercase}.main-nav a:hover{color:var(--blue)}.nav-tools{display:flex;gap:7px}.nav-btn,.menu-btn{width:36px;height:36px;border:1px solid var(--hair);background:#fff;display:grid;place-items:center;cursor:pointer}.menu-btn{display:none}
.hero{padding:38px 0 50px}.hero-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:38px}.kicker{font:800 .66rem var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}.lead h1{font-size:clamp(2.25rem,4.8vw,3.8rem);line-height:1.05;margin:8px 0 12px;letter-spacing:-.025em}.lead h1 a:hover{color:var(--blue)}.dek{font-size:1.1rem;color:var(--ink2);max-width:68ch}.meta{font:500 .72rem var(--sans);color:var(--muted);margin:10px 0 17px}.lead-img{display:block;aspect-ratio:16/9;background:#e6e3dc;overflow:hidden}.lead-img img{width:100%;height:100%;object-fit:cover;transition:.5s}.lead-img:hover img{transform:scale(1.03)}.subgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px 26px;margin-top:24px}.substory{border-top:1px solid var(--hair);padding-top:13px}.substory h3{font-size:1.17rem;line-height:1.25;margin:5px 0}.substory h3:hover{color:var(--blue)}
.rail{border-top:3px solid var(--ink)}.rail-head{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--hair)}.rail-head h2{margin:0;font-size:1.5rem}.rank{display:grid;grid-template-columns:60px 1fr;gap:13px;padding:15px 0;border-bottom:1px solid var(--hair)}.rank-num{font-size:2.4rem;font-weight:900;line-height:1}.rank h3{font-size:1.02rem;line-height:1.23;margin:4px 0}.rank:hover .rank-num,.rank:hover h3{color:var(--blue)}
.breaking{background:#0a4f87;color:#fff}.breaking .wrap{display:flex;gap:18px;align-items:center;min-height:42px}.breaking b{font:900 .7rem var(--sans);text-transform:uppercase;letter-spacing:.1em;background:#fff;color:#0a4f87;padding:4px 8px}.breaking span{font:600 .82rem var(--sans)}
.section{padding:48px 0}.section.alt{background:var(--paper2);border-block:1px solid var(--hair)}.section-head{border-top:3px solid var(--ink);padding-top:11px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center}.section-head h2{font-size:1.68rem;margin:0}.section-head a{font:800 .67rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.section-head a:hover{color:var(--blue)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.card{background:#fff;border:1px solid var(--hair)}.thumb{display:block;aspect-ratio:3/2;background:#e9e6df;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;transition:.4s}.card:hover .thumb img{transform:scale(1.04)}.card-in{padding:16px}.card h3{font-size:1.23rem;line-height:1.25;margin:5px 0}.card h3:hover{color:var(--blue)}.excerpt{font-size:.94rem;color:var(--ink2)}
.duo{display:grid;grid-template-columns:1.15fr .85fr;gap:35px}.list{list-style:none;padding:0;margin:0}.list li{border-bottom:1px solid var(--hair);padding:15px 0}.list h3{font-size:1.16rem;line-height:1.25;margin:4px 0}.list h3:hover{color:var(--blue)}
.feature-band{background:#111;color:#eee;padding:52px 0}.feature-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}.feature-band .kicker{color:#7fc7f0}.feature-band h2{font-size:clamp(2rem,4vw,3rem);line-height:1.12;margin:8px 0}.feature-band p{color:#bbb}.feature-band .thumb{border:1px solid #333}
.opinion{background:#0f2234;color:#eaf2f8}.opinion .section-head{border-color:#eaf2f8}.opinion .section-head h2{color:#fff}.opgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.opcard{padding-top:16px;border-top:1px solid #36506a}.opcard blockquote{font-size:1.28rem;line-height:1.4;margin:0 0 12px}.opcard blockquote:before{content:"“";color:#6cc5ef;font-size:2rem}.opcard .meta{color:#9fb5c8}
.page-hero{background:var(--paper2);border-bottom:1px solid var(--hair);padding:45px 0}.page-hero h1{font-size:2.65rem;line-height:1.15;margin:0}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:32px;padding:48px 0}.entry{background:#fff;border:1px solid var(--hair);padding:33px}.entry h1,.entry h2,.entry h3{line-height:1.22}.entry h2{margin-top:32px}.entry a{color:var(--blue);text-decoration:underline}.sidebar .widget{background:#fff;border:1px solid var(--hair);padding:20px;margin-bottom:18px}.sidebar h3{margin-top:0}.sidebar ul{padding-left:18px}.search-form{display:flex}.search-form input{flex:1;min-width:0;padding:10px;border:1px solid var(--hair)}.search-form button{border:0;background:#111;color:#fff;padding:0 13px}.pagination{display:flex;gap:7px;flex-wrap:wrap;margin:30px 0}.pagination .page-numbers{padding:7px 12px;border:1px solid var(--hair);background:#fff}.pagination .current{background:#111;color:#fff}
.newsletter{background:var(--blue);color:white;padding:42px 0}.nl-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.newsletter h2{font-size:2.1rem;line-height:1.12;margin:5px 0}.newsletter p{color:#d9e8f4}.nl-form{display:flex;gap:8px}.nl-form input{flex:1;padding:12px;border:0}.nl-form button{border:0;background:#111;color:#fff;padding:0 18px;font-weight:800}
footer{background:#0c0c0c;color:#aaa;padding:48px 0 20px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px}.footer-brand{font-size:2.4rem;font-weight:900;color:#fff}.footer-grid h4{font:800 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff}.footer-grid a{display:block;padding:4px 0;font:500 .84rem var(--sans)}.footer-grid a:hover{color:#fff}.footer-bottom{border-top:1px solid #292929;margin-top:28px;padding-top:16px;font:500 .68rem var(--sans;)}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:99;background:#25d366;color:white;padding:12px 16px;border-radius:7px;font:850 .86rem var(--sans);box-shadow:0 12px 30px rgba(0,0,0,.22)}
@media(max-width:980px){.hero-grid,.duo,.feature-grid,.content-grid,.nl-grid{grid-template-columns:1fr}.grid3,.opgrid{grid-template-columns:1fr 1fr}.edition{display:none}}
@media(max-width:720px){.main-nav{display:none;position:absolute;top:52px;left:0;right:0;background:#fff;border-bottom:1px solid var(--hair);padding:14px 4vw}.main-nav.open{display:block}.main-nav ul{flex-direction:column;align-items:flex-start}.menu-btn{display:grid}.mast{padding:20px 0 15px}.brand{font-size:3rem}.hero{padding:28px 0 38px}.lead h1{font-size:2.45rem}.subgrid,.grid3,.opgrid,.footer-grid{grid-template-columns:1fr}.section{padding:38px 0}.entry{padding:22px}.page-hero h1{font-size:2rem}.nl-form{flex-direction:column}.nl-form button{padding:12px}.wa-float{left:14px;right:14px;text-align:center}.footer-bottom{padding-bottom:60px}}

/* v1.0.1 — Article image reliability */
.bpn-img{width:100%;height:100%;object-fit:cover;display:block}
.image-placeholder{width:100%;height:100%;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(135deg,#e9e6df,#f6f3ec);color:#0a4f87;padding:24px}
.image-placeholder strong{font:900 1rem var(--sans);text-transform:uppercase;letter-spacing:.06em}
.image-placeholder small{font:600 .7rem var(--sans);color:#77736a;margin-top:5px}
.article-featured{aspect-ratio:16/9;overflow:hidden;background:#e9e6df;margin-bottom:26px}
.entry figure,.entry .wp-block-image{max-width:100%;margin:24px 0}
.entry figure img,.entry .wp-block-image img,.entry p img{max-width:100%;height:auto;display:block}
.entry .wp-block-gallery{display:grid;gap:10px}
.entry figcaption{font:500 .72rem var(--sans);color:var(--muted);margin-top:6px}
@media(max-width:720px){.article-featured{margin-left:-22px;margin-right:-22px;margin-top:-22px}.entry figure.alignwide,.entry figure.alignfull{margin-left:0;margin-right:0}}

/* v1.0.2 image hardening */
.lead-img,.thumb,.article-featured{position:relative}
.lead-img img,.thumb img,.article-featured img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;opacity:1!important;visibility:visible!important}
.bpn-fallback{object-fit:cover!important}
.wp-post-image{display:block!important;opacity:1!important;visibility:visible!important}
