/* =========================================================================
   Prime Billboard – front-end styles
   Ported from the Base44 Tailwind/shadcn theme (index.css) to plain CSS.
   All rules are scoped under .pbc so they never leak into the rest of WP.
   ========================================================================= */

.pbc {
	--background: 220 20% 4%;
	--foreground: 0 0% 96%;
	--card: 220 18% 8%;
	--primary: 38 92% 55%;
	--primary-foreground: 220 20% 4%;
	--secondary: 220 14% 14%;
	--muted-foreground: 220 10% 55%;
	--accent: 38 92% 55%;
	--border: 220 14% 18%;
	--ring: 38 92% 55%;
	--radius: 0.75rem;

	direction: rtl;
	font-family: 'Heebo', sans-serif;
	background: hsl(var(--background));
	color: hsl(var(--foreground));
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
.pbc *, .pbc *::before, .pbc *::after { box-sizing: border-box; }
.pbc img { max-width: 100%; display: block; }
.pbc h1,.pbc h2,.pbc h3,.pbc h4 { margin: 0; line-height: 1.15; color: hsl(var(--foreground)); }
.pbc p { margin: 0; }
/* Buttons must inherit the section's foreground colour, not the theme/Elementor
   default button/link colour (which on this install is a pink #cc3366). */
.pbc button { font-family: inherit; cursor: pointer; color: inherit; background: none; border: none; }
.pbc a { text-decoration: none; color: inherit; }

/* ---------- Layout ---------- */
.pbc-section { padding: 5rem 1.5rem; }
@media (min-width:768px){ .pbc-section { padding: 8rem 1.5rem; } }
.pbc-section--alt { background: hsl(var(--secondary) / .2); }
.pbc-section--muted { background: hsl(var(--secondary) / .3); }
.pbc-section--grad { background: linear-gradient(to bottom, hsl(var(--background)), hsl(var(--secondary) / .1), hsl(var(--background))); }
.pbc-container { max-width: 72rem; margin: 0 auto; }
.pbc-container--sm { max-width: 48rem; }
.pbc-container--md { max-width: 56rem; }
.pbc-container--lg { max-width: 64rem; }

.pbc-section__head { text-align: center; margin-bottom: 4rem; }
.pbc-h2 { font-size: clamp(1.875rem, 4vw, 3rem); font-weight: 900; margin-bottom: 1rem; }
.pbc-lead { color: hsl(var(--muted-foreground)); font-size: 1.125rem; max-width: 36rem; margin: 0 auto; }
.pbc-text-primary { color: hsl(var(--primary)); }
.pbc-muted-sm { color: hsl(var(--muted-foreground)); font-size: .8rem; }
.pbc-mono { font-family: ui-monospace, monospace; color: hsl(var(--muted-foreground)); font-size: .75rem; }
.pbc-center { text-align: center; }
.pbc-eyebrow { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: hsl(var(--muted-foreground)); margin-bottom: .35rem; }

.pbc-badge {
	display: inline-block; padding: .375rem 1rem; border-radius: 9999px;
	background: hsl(var(--primary) / .1); color: hsl(var(--primary));
	font-size: .875rem; font-weight: 500; margin-bottom: 1rem;
	border: 1px solid hsl(var(--primary) / .2);
}

/* ---------- Buttons ---------- */
.pbc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	padding: .625rem 1.25rem; border-radius: 9999px; font-weight: 700; font-size: .875rem;
	border: 1px solid transparent; transition: all .2s; color: hsl(var(--foreground));
}
.pbc-btn--primary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); box-shadow: 0 10px 25px hsl(var(--primary) / .25); }
.pbc-btn--primary:hover { background: hsl(var(--primary) / .9); }
.pbc-btn--outline { background: transparent; border-color: hsl(var(--primary)); color: hsl(var(--primary)); }
.pbc-btn--outline:hover { background: hsl(var(--primary) / .1); }
.pbc-btn--soft { background: hsl(var(--secondary)); border-color: hsl(var(--border)); width: 100%; margin-top: 1rem; padding: .625rem; border-radius: .75rem; }
.pbc-btn--soft:hover { background: hsl(var(--primary) / .1); color: hsl(var(--primary)); }
.pbc-btn--lg { padding: 1rem 2rem; font-size: 1.125rem; border-radius: 9999px; }
.pbc-btn--block { width: 100%; border-radius: 1rem; padding: 1rem; font-size: 1.125rem; }
.pbc-btn:disabled { opacity: .4; cursor: not-allowed; }

.pbc-card { background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 1rem; }
.pbc-pad { padding: 1.5rem; }
.pbc-pad-sm { padding: 1rem; }
.pbc-card__title { font-size: 1.125rem; font-weight: 900; margin-bottom: 1rem; }
.pbc-card__title-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.pbc-pill { display: inline-block; font-size: .7rem; font-weight: 700; padding: .35rem .75rem; border-radius: 9999px; background: hsl(var(--primary) / .2); color: hsl(var(--primary)); }
.pbc-pill--primary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.pbc-pill--accent { background: hsl(var(--accent)); color: hsl(var(--primary-foreground)); }
.pbc-crown { font-size: 1.25rem; }

/* level heading */
.pbc-level-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem; }
.pbc-level-num { width: 2rem; height: 2rem; border-radius: 9999px; background: hsl(var(--primary) / .1); border: 1px solid hsl(var(--primary) / .3); color: hsl(var(--primary)); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .875rem; flex: 0 0 auto; }
.pbc-level-head h3 { font-size: 1.05rem; font-weight: 700; color: hsl(var(--primary)); }
.pbc-rule { flex: 1; height: 1px; background: hsl(var(--border)); }

/* ---------- Hero ---------- */
.pbc-hero { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.pbc-hero__bg { position: absolute; inset: 0; }
.pbc-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.pbc-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, hsl(var(--background) / .7), hsl(var(--background) / .75), hsl(var(--background))); }
.pbc-hero__content { position: relative; z-index: 1; text-align: center; padding: 0 1.5rem; max-width: 64rem; }
.pbc-hero__title { font-size: clamp(2.25rem, 7vw, 4.5rem); font-weight: 900; margin-bottom: 1.5rem; text-shadow: 0 2px 20px rgba(0,0,0,.8); }
.pbc-hero__sub { font-size: 1.125rem; color: hsl(var(--muted-foreground)); max-width: 42rem; margin: 0 auto 2.5rem; padding: .75rem 1rem; border-radius: .75rem; background: hsl(var(--background) / .5); backdrop-filter: blur(4px); }
.pbc-hero__sub strong { color: hsl(var(--foreground)); }
.pbc-hero__stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem 2.5rem; margin-bottom: 3rem; }
.pbc-stat { display: flex; align-items: center; gap: .75rem; }
.pbc-stat__icon { width: 3rem; height: 3rem; border-radius: .75rem; background: hsl(var(--primary) / .1); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; }
.pbc-stat__val { font-size: 1.5rem; font-weight: 700; }
.pbc-stat__label { font-size: .875rem; color: hsl(var(--muted-foreground)); }

/* ---------- Features ---------- */
.pbc-features-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width:768px){ .pbc-features-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width:1024px){ .pbc-features-grid { grid-template-columns: 1fr 1fr 1fr; } }
.pbc-feature { padding: 1.5rem; border-radius: 1rem; background: hsl(var(--card)); border: 1px solid hsl(var(--border)); transition: border-color .2s; }
.pbc-feature:hover { border-color: hsl(var(--primary) / .3); }
.pbc-feature__icon { width: 3rem; height: 3rem; border-radius: .75rem; background: hsl(var(--primary) / .1); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; margin-bottom: 1rem; }
.pbc-feature h3 { font-size: 1.125rem; font-weight: 700; margin-bottom: .5rem; }
.pbc-feature p { color: hsl(var(--muted-foreground)); font-size: .875rem; }

/* ---------- Forms (shared) ---------- */
.pbc-grid-2 { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width:768px){ .pbc-grid-2 { grid-template-columns: 1fr 1fr; } }
.pbc-field { display: flex; flex-direction: column; gap: .5rem; }
.pbc-field--full { grid-column: 1 / -1; }
.pbc-field > span { font-size: .8rem; font-weight: 500; display: flex; align-items: center; gap: .4rem; }
.pbc-field input, .pbc-field select, .pbc-field textarea,
.pbc-sim textarea, .pbc-sim input {
	width: 100%; background: hsl(var(--secondary) / .5); border: 1px solid hsl(var(--border));
	border-radius: .65rem; padding: .65rem .85rem; font-size: .9rem; color: hsl(var(--foreground));
	font-family: inherit;
}
.pbc-field textarea { resize: vertical; }
.pbc-field input:focus, .pbc-field select:focus, .pbc-field textarea:focus { outline: none; border-color: hsl(var(--primary)); }
.pbc-field select option { background: hsl(var(--card)); }
.pbc-hint { text-align: center; font-size: .75rem; color: hsl(var(--muted-foreground)); margin-top: .5rem; }

/* ---------- Pricing ---------- */
.pbc-pricing-head { display: flex; align-items: center; gap: .5rem; margin-bottom: 1.25rem; font-size: 1.25rem; }
.pbc-pricing-head h3 { font-size: 1.25rem; font-weight: 700; }
.pbc-pricing-presets { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; margin-bottom: 1.25rem; }
@media (min-width:640px){ .pbc-pricing-presets { grid-template-columns: repeat(5,1fr); } }
.pbc-preset { padding: 1rem; border-radius: .75rem; border: 2px solid hsl(var(--border)); background: hsl(var(--card)); text-align: center; transition: all .2s; }
.pbc-preset:hover { border-color: hsl(var(--primary) / .5); }
.pbc-preset.is-active { border-color: hsl(var(--primary)); background: hsl(var(--primary) / .1); }
.pbc-preset__num { display: block; font-weight: 700; font-size: 1.5rem; }
.pbc-preset__label { font-size: .75rem; color: hsl(var(--muted-foreground)); }
.pbc-pricing-custom { padding: 1rem; border-radius: .75rem; border: 2px dashed hsl(var(--border)); background: hsl(var(--card)); }
.pbc-stepper { display: flex; align-items: center; gap: .75rem; margin-top: .5rem; }
.pbc-stepper button { width: 2.25rem; height: 2.25rem; border-radius: .5rem; background: hsl(var(--secondary)); border: none; color: hsl(var(--foreground)); font-size: 1rem; }
.pbc-stepper input { flex: 1; text-align: center; font-weight: 700; font-size: 1.125rem; background: hsl(var(--secondary) / .5); border: 1px solid hsl(var(--border)); border-radius: .5rem; padding: .5rem; color: hsl(var(--foreground)); }
.pbc-pricing-result { margin-top: 1.25rem; padding: 1.25rem; border-radius: .75rem; background: hsl(var(--primary) / .1); border: 1px solid hsl(var(--primary) / .3); }
.pbc-pricing-result__head { font-weight: 700; color: hsl(var(--primary)); margin-bottom: .5rem; }
.pbc-pricing-result__line { font-weight: 700; font-size: 1.125rem; }

/* ---------- Packages ---------- */
.pbc-pkg-level { margin-top: 3rem; }
.pbc-pkg-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width:768px){ .pbc-pkg-grid.pbc-cols-2 { grid-template-columns: 1fr 1fr; } }
.pbc-pkg-card { position: relative; border-radius: 1rem; border: 2px solid hsl(var(--border)); background: hsl(var(--card)); padding: 1.5rem; transition: all .2s; cursor: pointer; }
.pbc-pkg-card:hover { border-color: hsl(var(--primary) / .5); }
.pbc-pkg-card.is-highlight { border-color: hsl(var(--primary) / .4); }
.pbc-pkg-card.is-selected { border-color: hsl(var(--primary)); background: hsl(var(--primary) / .1); box-shadow: 0 10px 25px hsl(var(--primary) / .2); }
.pbc-pkg-card.is-blocked, .pbc-pkg-card.is-sold { opacity: .45; cursor: not-allowed; }
.pbc-pkg-card.is-sold { opacity: .6; }
.pbc-pkg-card__status { position: absolute; top: 1rem; left: 1rem; font-size: .7rem; font-weight: 700; padding: .25rem .6rem; border-radius: 9999px; background: hsl(var(--secondary)); color: hsl(var(--muted-foreground)); }
.pbc-pkg-card.is-selected .pbc-pkg-card__status { background: hsl(var(--primary) / .2); color: hsl(var(--primary)); }
.pbc-pkg-card__top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: .75rem; gap: .75rem; }
.pbc-pkg-card__top h4 { font-size: 1.5rem; font-weight: 900; letter-spacing: -.02em; }
.pbc-pkg-size { color: hsl(var(--primary)); font-weight: 700; font-size: 1.125rem; margin-top: .25rem; }
.pbc-pkg-desc { font-size: .875rem; color: hsl(var(--muted-foreground)); }
.pbc-pkg-blocks { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid hsl(var(--border)); font-size: .75rem; color: hsl(var(--muted-foreground)); }
.pbc-pkg-cta { margin-top: 2.5rem; padding: 1.5rem; border-radius: 1rem; background: hsl(var(--primary) / .1); border: 1px solid hsl(var(--primary) / .3); display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }

/* wall map */
.pbc-wallmap { padding: 1.5rem; margin-bottom: 3rem; }
.pbc-wallmap__frame { position: relative; width: 100%; padding-bottom: 22%; background: hsl(var(--secondary) / .3); border-radius: .75rem; overflow: hidden; margin-top: 1rem; }
.pbc-wallmap__zone { position: absolute; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 10px; transition: all .2s; }
.pbc-wallmap__zone[data-wm="TOP"]    { left:0; right:0; top:0; height:50%; }
.pbc-wallmap__zone[data-wm="BOTTOM"] { left:0; right:0; bottom:0; height:50%; }
.pbc-wallmap__zone[data-wm="CORNER"] { top:0; height:50%; right:0; width:22%; }
.pbc-wallmap__zone[data-wm="EAST"]   { top:0; height:50%; right:22%; width:39%; }
.pbc-wallmap__zone[data-wm="WEST"]   { top:0; height:50%; right:61%; width:39%; }
.pbc-wallmap__zone[data-wm="FULL_WALL"] { inset:0; }
.pbc-wallmap__legend { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-top: 1rem; }
.pbc-wallmap__legend span { display: flex; align-items: center; gap: .35rem; font-size: .75rem; color: hsl(var(--muted-foreground)); }
.pbc-wallmap__legend i { width: .75rem; height: .75rem; border-radius: .2rem; border: 1px solid; display: inline-block; }

/* ---------- Simulator ---------- */
.pbc-steps { display: flex; align-items: center; justify-content: center; margin-bottom: 2.5rem; }
.pbc-step { display: flex; align-items: center; gap: .5rem; padding: .375rem .75rem; border-radius: 9999px; font-size: .75rem; font-weight: 700; background: hsl(var(--card)); border: 1px solid hsl(var(--border)); color: hsl(var(--muted-foreground)); }
.pbc-step + .pbc-step { margin-right: 1rem; }
.pbc-step.is-active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: transparent; }
.pbc-step.is-done { background: hsl(var(--primary) / .2); color: hsl(var(--primary)); border-color: transparent; }
.pbc-step__num { width: 1.1rem; height: 1.1rem; display: inline-flex; align-items: center; justify-content: center; }
@media (max-width:640px){ .pbc-step__label { display: none; } }
.pbc-sim__step > * + * { margin-top: 1.5rem; }
.pbc-sim__scene-wrap { overflow: hidden; }
.pbc-sim__scene-head { padding: .75rem 1rem; border-bottom: 1px solid hsl(var(--border)); display: flex; align-items: center; justify-content: space-between; font-size: .875rem; font-weight: 700; }
.pbc-sim__scene { position: relative; width: 100%; background: #000; aspect-ratio: 3 / 1; }
.pbc-sim__scene svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.pbc-sim__level + .pbc-sim__level { margin-top: 1.5rem; }
.pbc-sim__zones { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr; }
.pbc-sim__zones.pbc-cols-1 { grid-template-columns: 1fr; }
@media (min-width:768px){ .pbc-sim__zones.pbc-cols-3 { grid-template-columns: 1fr 1fr 1fr; } }
.pbc-zone-card { border-radius: 1rem; border: 2px solid hsl(var(--border)); background: hsl(var(--card)); padding: 1rem; text-align: right; transition: all .2s; }
.pbc-zone-card:hover { border-color: hsl(var(--primary) / .5); }
.pbc-zone-card.is-selected { border-color: hsl(var(--primary)); background: hsl(var(--primary) / .1); box-shadow: 0 10px 25px hsl(var(--primary) / .2); }
.pbc-zone-card h4 { font-size: 1rem; font-weight: 900; }
.pbc-zone-size { font-weight: 700; font-size: .9rem; margin-top: .15rem; }
.pbc-days { display: flex; flex-wrap: wrap; gap: .5rem; }
.pbc-day-pill { padding: .5rem 1rem; border-radius: 9999px; font-size: .875rem; font-weight: 700; border: 1px solid hsl(var(--border)); background: transparent; color: hsl(var(--muted-foreground)); }
.pbc-day-pill.is-active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: hsl(var(--primary)); }
.pbc-days-custom { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; }
.pbc-days-custom input { width: 7rem; }
.pbc-dropzone { border: 2px dashed hsl(var(--border)); border-radius: .75rem; padding: 2.5rem; text-align: center; cursor: pointer; background: hsl(var(--secondary) / .2); transition: all .2s; }
.pbc-dropzone:hover, .pbc-dropzone.is-drag { border-color: hsl(var(--primary)); background: hsl(var(--primary) / .1); }
.pbc-dropzone__icon { font-size: 2rem; }
.pbc-dropzone__title { font-weight: 700; font-size: 1.125rem; margin: .5rem 0 .25rem; }
.pbc-file-preview { display: flex; align-items: center; gap: 1rem; padding: 1rem; border-radius: .75rem; background: hsl(var(--secondary) / .4); }
.pbc-file-preview img { height: 3.5rem; width: 5rem; object-fit: contain; border-radius: .5rem; }
.pbc-file-preview button { margin-right: auto; border: 1px solid hsl(var(--border)); background: transparent; color: hsl(var(--muted-foreground)); border-radius: .5rem; padding: .4rem .6rem; font-size: .75rem; }
.pbc-sim__back { display: flex; align-items: center; gap: .75rem; font-size: .875rem; font-weight: 700; }
.pbc-sim__back button { background: none; border: none; color: hsl(var(--muted-foreground)); font-size: .75rem; }
.pbc-summary { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; font-size: .875rem; }
.pbc-summary .full { grid-column: 1 / -1; }
.pbc-summary b { font-weight: 700; }
.pbc-note-box { border-radius: .75rem; background: hsl(var(--secondary) / .4); padding: 1rem; font-size: .875rem; color: hsl(var(--muted-foreground)); }
.pbc-note-box__title { color: hsl(var(--foreground)); font-weight: 700; margin-bottom: .25rem; }
.pbc-success { text-align: center; padding: 4rem 1rem; }
.pbc-success__icon { width: 5rem; height: 5rem; border-radius: 9999px; background: rgba(34,197,94,.1); border: 2px solid rgba(34,197,94,.3); color: #22c55e; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; margin: 0 auto 1rem; }
.pbc-success h3 { font-size: 1.875rem; font-weight: 900; margin-bottom: .5rem; }

/* ---------- Gallery ---------- */
.pbc-gallery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
@media (min-width:768px){ .pbc-gallery-grid { grid-template-columns: 1fr 1fr 1fr; gap: 1rem; } }
.pbc-gallery-item { position: relative; border-radius: .75rem; overflow: hidden; cursor: pointer; margin: 0; }
.pbc-gallery-item img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/3; transition: transform .5s; }
.pbc-gallery-item.is-feature { grid-column: span 2; grid-row: span 2; }
.pbc-gallery-item.is-feature img { aspect-ratio: 16/10; }
.pbc-gallery-item:hover img { transform: scale(1.1); }
.pbc-gallery-item figcaption { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 1rem; font-size: .875rem; font-weight: 500; background: linear-gradient(to top, hsl(var(--background) / .8), transparent); opacity: 0; transition: opacity .3s; }
.pbc-gallery-item:hover figcaption { opacity: 1; }

/* lightbox + modal shared overlay */
.pbc-lightbox, .pbc-modal { position: fixed; inset: 0; z-index: 9999; background: hsl(var(--background) / .95); display: flex; align-items: center; justify-content: center; padding: 1rem; }
.pbc-lightbox__inner { max-width: 64rem; width: 100%; text-align: center; }
.pbc-lightbox__inner img { width: 100%; max-height: 80vh; object-fit: contain; border-radius: .75rem; }
.pbc-lightbox__inner p { margin-top: 1rem; font-size: 1.125rem; font-weight: 500; }
.pbc-lightbox__close, .pbc-modal__close { position: absolute; top: 1rem; left: 1rem; width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: hsl(var(--secondary)); border: none; color: hsl(var(--foreground)); font-size: 1rem; z-index: 2; }
.pbc-modal__close { left: auto; right: 1rem; background: hsl(var(--background) / .8); }
.pbc-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: hsl(var(--secondary)); border: none; color: hsl(var(--foreground)); font-size: 1.25rem; }
.pbc-lightbox__prev { right: 1rem; }
.pbc-lightbox__next { left: 1rem; }

/* ---------- Location ---------- */
.pbc-location-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 3rem; }
@media (min-width:768px){ .pbc-location-grid { grid-template-columns: 2fr 1fr; } }
.pbc-location-map .pbc-card { height: 24rem; }
.pbc-location-map iframe { width: 100%; height: 100%; }
.pbc-location-addr { display: flex; align-items: center; gap: .5rem; margin-top: 1rem; font-size: .875rem; color: hsl(var(--muted-foreground)); }
.pbc-location-stats { display: flex; flex-direction: column; gap: .75rem; }
.pbc-loc-stat { display: flex; gap: .75rem; padding: 1rem; border-radius: .75rem; background: hsl(var(--card)); border: 1px solid hsl(var(--border)); }
.pbc-loc-stat__icon { width: 2.25rem; height: 2.25rem; border-radius: .5rem; background: hsl(var(--primary) / .1); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.pbc-loc-stat__val { font-weight: 700; font-size: 1.125rem; }
.pbc-traffic { padding: 2rem; background: linear-gradient(135deg, hsl(var(--primary) / .05), hsl(var(--card)), hsl(var(--primary) / .05)); border-color: hsl(var(--primary) / .2); }
.pbc-traffic h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 1.5rem; }
.pbc-traffic-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width:768px){ .pbc-traffic-grid { grid-template-columns: 1fr 1fr 1fr; } }
.pbc-traffic-grid ul { list-style: none; padding: 0; margin: .75rem 0 0; display: flex; flex-direction: column; gap: .5rem; font-size: .875rem; }

/* ---------- Campaigns ---------- */
.pbc-campaign-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width:768px){ .pbc-campaign-grid { grid-template-columns: 1fr 1fr 1fr; } }
.pbc-campaign-card { position: relative; border-radius: 1rem; overflow: hidden; border: 1px solid hsl(var(--border)); height: 24rem; text-align: right; padding: 0; background: hsl(var(--card)); transition: transform .2s, border-color .2s; }
.pbc-campaign-card:hover { border-color: hsl(var(--primary) / .5); transform: translateY(-5px); }
.pbc-campaign-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.pbc-campaign-card:hover img { transform: scale(1.1); }
.pbc-campaign-card__body { position: absolute; inset: 0; padding: 1.5rem; display: flex; flex-direction: column; justify-content: flex-end; background: linear-gradient(to top, hsl(var(--background)), hsl(var(--background) / .5), transparent); }
.pbc-campaign-card__body h3 { font-size: 1.25rem; font-weight: 700; margin: .25rem 0; }
.pbc-clamp { color: hsl(var(--muted-foreground)); font-size: .875rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pbc-campaign-more { margin-top: 1rem; color: hsl(var(--primary)); font-weight: 500; font-size: .875rem; opacity: 0; transition: opacity .2s; }
.pbc-campaign-card:hover .pbc-campaign-more { opacity: 1; }
.pbc-modal__box { position: relative; max-width: 42rem; width: 100%; background: hsl(var(--card)); border-radius: 1rem; border: 1px solid hsl(var(--border)); overflow: hidden; }
.pbc-modal__grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; padding: 2rem; }
@media (min-width:768px){ .pbc-modal__grid { grid-template-columns: 1fr 1fr; } }
.pbc-modal__img { border-radius: .75rem; overflow: hidden; border: 1px solid hsl(var(--border)); height: 16rem; }
.pbc-modal__img img { width: 100%; height: 100%; object-fit: cover; }
.pbc-modal__content h2 { font-size: 1.5rem; font-weight: 900; margin-bottom: 1rem; }
.pbc-modal__sec { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid hsl(var(--border)); font-size: .875rem; }
.pbc-modal__days { border-radius: .5rem; background: hsl(var(--primary) / .1); border: 1px solid hsl(var(--primary) / .2); padding: .75rem; }
.pbc-modal__nav { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 2rem; border-top: 1px solid hsl(var(--border)); background: hsl(var(--secondary) / .3); }
.pbc-modal__nav button { width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: hsl(var(--secondary)); border: none; color: hsl(var(--foreground)); font-size: 1.25rem; }
.pbc-modal__nav span { font-size: .875rem; color: hsl(var(--muted-foreground)); }

/* ---------- FAQ ---------- */
.pbc-faq-list { display: flex; flex-direction: column; gap: .75rem; }
.pbc-faq-item { border-radius: 1rem; border: 1px solid hsl(var(--border)); background: hsl(var(--card)); overflow: hidden; }
.pbc-faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem; background: none; border: none; text-align: right; color: inherit; }
.pbc-faq-q:hover { background: hsl(var(--secondary) / .2); }
.pbc-faq-q__ico { width: 2.25rem; height: 2.25rem; border-radius: .75rem; background: hsl(var(--primary) / .1); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.pbc-faq-q__text { flex: 1; font-weight: 700; }
.pbc-faq-q__chev { transition: transform .2s; color: hsl(var(--muted-foreground)); }
.pbc-faq-item.is-open .pbc-faq-q__chev { transform: rotate(180deg); }
.pbc-faq-a { max-height: 0; overflow: hidden; transition: max-height .25s ease; }
.pbc-faq-item.is-open .pbc-faq-a { max-height: 25rem; }
.pbc-faq-a p { padding: 0 1.25rem 1.25rem 4rem; color: hsl(var(--muted-foreground)); font-size: .875rem; border-top: 1px solid hsl(var(--border)); padding-top: 1rem; }

/* ---------- Contact / success ---------- */
.pbc-form-success { text-align: center; padding: 2rem 0 0; }
.pbc-form-success h3 { font-size: 1.5rem; font-weight: 700; margin-bottom: .5rem; }

/* ---------- Footer ---------- */
.pbc-footer { border-top: 1px solid hsl(var(--border)); padding: 2.5rem 1.5rem; }
.pbc-footer__inner { display: flex; flex-direction: column; align-items: center; gap: 1rem; text-align: center; }
@media (min-width:768px){ .pbc-footer__inner { flex-direction: row; justify-content: space-between; text-align: right; } }
.pbc-footer__logo { font-size: 1.125rem; font-weight: 900; }

/* ---------- Sticky header (added by JS) ---------- */
.pbc-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: all .3s; }
.pbc-header.is-scrolled { background: hsl(var(--background) / .8); backdrop-filter: blur(20px); border-bottom: 1px solid hsl(var(--border)); }
.pbc-header__inner { max-width: 72rem; margin: 0 auto; padding: 0 1.5rem; height: 4rem; display: flex; align-items: center; justify-content: space-between; }
.pbc-header__logo { font-size: 1.25rem; font-weight: 900; background: none; border: none; color: inherit; }
.pbc-header__nav { display: none; align-items: center; gap: 2rem; }
@media (min-width:768px){ .pbc-header__nav { display: flex; } }
.pbc-header__nav a { font-size: .875rem; font-weight: 500; color: hsl(var(--mute