/* ==========================================================================
   PixelBlueprintWorks — shared design system
   Style direction: "Cyanotype" — a Warszawa web design studio identity
   built on the literal language of architectural blueprints: deep
   cyanotype blue paper with white/amber linework, numbered detail
   callouts, a technical title-block device, T-square/compass mark.
   Deliberately blue-dominant rather than near-black, breaking from every
   prior dark-hero build's charcoal/navy/screen-black palette.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Nunito+Sans:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  /* ---- palette ---- */
  --pbw-blue:        #0E2F4F;   /* cyanotype blueprint blue */
  --pbw-blue-soft:    #153F66;
  --pbw-paper:        #F7F8FA;  /* technical drafting-paper white, cool not warm */
  --pbw-paper-2:       #E9EDF1;
  --pbw-canvas:        #FCFCFD;
  --pbw-amber:         #F5A623;  /* drafting-pencil amber */
  --pbw-amber-d:       #D48A0F;
  --pbw-stamp:         #D64545;  /* rare-use "approval stamp" red */
  --pbw-blue-ink-70: rgba(14,47,79,.72);
  --pbw-blue-ink-50: rgba(14,47,79,.5);
  --pbw-blue-ink-20: rgba(14,47,79,.16);
  --pbw-paper-70: rgba(247,248,250,.72);
  --pbw-paper-50: rgba(247,248,250,.5);
  --pbw-paper-20: rgba(247,248,250,.16);

  /* ---- type ---- */
  --pbw-display: 'Oswald', -apple-system, sans-serif;
  --pbw-body: 'Nunito Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --pbw-mono: 'IBM Plex Mono', ui-monospace, monospace;

  /* ---- layout ---- */
  --pbw-radius-s: 3px;
  --pbw-radius-m: 8px;
  --pbw-radius-l: 14px;
  --pbw-maxw: 1240px;
  --pbw-maxw-wide: 1520px;
  --pbw-border: 1.5px solid var(--pbw-blue-ink-20);

  --pbw-ease: cubic-bezier(.22,.68,.32,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html.pbw-lock{ overflow:hidden; }
body{
  margin:0;
  font-family:var(--pbw-body);
  background:var(--pbw-canvas);
  color:var(--pbw-blue);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4,p{ margin:0; }

.pbw-wrap{ max-width:var(--pbw-maxw); margin:0 auto; padding:0 32px; }
.pbw-wrap-wide{ max-width:var(--pbw-maxw-wide); margin:0 auto; padding:0 32px; }

.pbw-tag{
  font-family:var(--pbw-mono); font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  color:var(--pbw-blue-ink-70); display:inline-flex; align-items:center; gap:8px;
  border:1.5px solid var(--pbw-blue-ink-20); padding:6px 12px; border-radius:var(--pbw-radius-s);
}
.pbw-tag::before{ content:"◈"; color:var(--pbw-amber); }
section[data-tone="dark"] .pbw-tag{ color:var(--pbw-paper-70); border-color:var(--pbw-paper-20); }

.pbw-h2{
  font-family:var(--pbw-display); font-weight:600; text-transform:uppercase;
  font-size:clamp(30px,4.2vw,48px); line-height:1.08; letter-spacing:0; margin-top:16px;
}
.pbw-h2 mark{ background:none; color:var(--pbw-amber); }
section[data-tone="dark"] .pbw-h2 mark{ color:var(--pbw-amber); }

.pbw-lede{ font-size:16.5px; line-height:1.65; color:var(--pbw-blue-ink-70); max-width:560px; margin-top:18px; }
section[data-tone="dark"] .pbw-lede{ color:var(--pbw-paper-70); }
section[data-tone="dark"] .pbw-h2, section[data-tone="dark"]{ color:var(--pbw-paper); }

/* ---- buttons ---- */
.pbw-btn{
  display:inline-flex; align-items:center; gap:10px; padding:14px 24px;
  border-radius:var(--pbw-radius-s); font-weight:700; font-size:13.5px; letter-spacing:.02em; text-transform:uppercase;
  border:1.5px solid transparent;
  transition:transform .18s var(--pbw-ease), background .18s var(--pbw-ease), box-shadow .18s var(--pbw-ease), color .18s var(--pbw-ease), border-color .18s var(--pbw-ease);
  white-space:nowrap;
}
.pbw-btn:hover{ transform:translateY(-2px); }
.pbw-btn-primary{ background:var(--pbw-blue); color:var(--pbw-paper); box-shadow:0 10px 24px -10px rgba(14,47,79,.4); }
.pbw-btn-primary:hover{ background:#081E33; }
.pbw-btn-amber{ background:var(--pbw-amber); color:var(--pbw-blue); box-shadow:0 10px 24px -10px rgba(245,166,35,.5); }
.pbw-btn-amber:hover{ background:var(--pbw-amber-d); }
.pbw-btn-ghost{ background:transparent; color:var(--pbw-blue); border-color:var(--pbw-blue-ink-20); }
.pbw-btn-ghost:hover{ border-color:var(--pbw-blue); }
section[data-tone="dark"] .pbw-btn-ghost{ color:var(--pbw-paper); border-color:var(--pbw-paper-20); }
section[data-tone="dark"] .pbw-btn-ghost:hover{ border-color:var(--pbw-paper); }
.pbw-link-arrow{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:13.5px; color:var(--pbw-blue); font-family:var(--pbw-mono); transition:gap .18s var(--pbw-ease); }
.pbw-link-arrow i{ transition:transform .18s var(--pbw-ease); font-size:11px; color:var(--pbw-amber-d); }
.pbw-link-arrow:hover{ gap:12px; }
.pbw-link-arrow:hover i{ transform:translateX(3px); }
section[data-tone="dark"] .pbw-link-arrow{ color:var(--pbw-paper); }
section[data-tone="dark"] .pbw-link-arrow i{ color:var(--pbw-amber); }

/* ==========================================================================
   HEADER — light text by default (opens on the deep blueprint-blue hero),
   switches to blue-ink text once the scrolled background turns opaque/light.
   ========================================================================== */
.pbw-header{ position:fixed; top:0; left:0; right:0; z-index:500; padding:22px 0; transition:padding .28s var(--pbw-ease), background .28s var(--pbw-ease), border-color .28s var(--pbw-ease); border-bottom:1.5px solid transparent; }
.pbw-header.pbw-scrolled{ padding:14px 0; background:rgba(252,252,253,.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom-color:var(--pbw-blue-ink-20); }
.pbw-header-inner{ max-width:var(--pbw-maxw); margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.pbw-brand{ display:flex; align-items:center; gap:11px; font-family:var(--pbw-display); font-size:17px; font-weight:600; text-transform:uppercase; color:var(--pbw-paper); transition:color .28s var(--pbw-ease); }
.pbw-header.pbw-scrolled .pbw-brand{ color:var(--pbw-blue); }
.pbw-brand svg{ width:32px; height:32px; flex:none; }
.pbw-brand mark{ background:none; color:var(--pbw-amber); }

.pbw-nav{ display:flex; align-items:center; gap:32px; }
.pbw-nav a{ font-size:13.5px; font-weight:600; color:var(--pbw-paper-70); position:relative; padding:4px 0; transition:color .28s var(--pbw-ease); }
.pbw-header.pbw-scrolled .pbw-nav a{ color:var(--pbw-blue-ink-70); }
.pbw-nav a::after{ content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:var(--pbw-amber); transition:width .22s var(--pbw-ease); }
.pbw-nav a:hover, .pbw-nav a.pbw-active{ color:var(--pbw-paper); }
.pbw-header.pbw-scrolled .pbw-nav a:hover, .pbw-header.pbw-scrolled .pbw-nav a.pbw-active{ color:var(--pbw-blue); }
.pbw-nav a:hover::after, .pbw-nav a.pbw-active::after{ width:100%; }

.pbw-header-actions{ display:flex; align-items:center; gap:18px; }
.pbw-burger{ display:none; flex-direction:column; justify-content:center; gap:5px; width:38px; height:38px; border:1.5px solid var(--pbw-paper-20); border-radius:var(--pbw-radius-s); background:transparent; transition:border-color .28s var(--pbw-ease); }
.pbw-header.pbw-scrolled .pbw-burger{ border-color:var(--pbw-blue-ink-20); }
.pbw-burger span{ width:16px; height:1.5px; background:var(--pbw-paper); margin:0 auto; transition:transform .25s var(--pbw-ease), opacity .2s, background .28s var(--pbw-ease); }
.pbw-header.pbw-scrolled .pbw-burger span{ background:var(--pbw-blue); }
.pbw-burger.pbw-open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.pbw-burger.pbw-open span:nth-child(2){ opacity:0; }
.pbw-burger.pbw-open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

.pbw-mobile-panel{
  position:fixed; inset:0; top:0; z-index:490; background:var(--pbw-canvas);
  padding:100px 32px 40px; display:flex; flex-direction:column; gap:6px;
  transform:translateY(-8px); opacity:0; visibility:hidden;
  transition:opacity .28s var(--pbw-ease), transform .28s var(--pbw-ease), visibility 0s linear .28s;
}
.pbw-mobile-panel.pbw-show{ opacity:1; visibility:visible; transform:translateY(0); transition:opacity .28s var(--pbw-ease), transform .28s var(--pbw-ease), visibility 0s; }
.pbw-mobile-panel a{ font-family:var(--pbw-display); font-size:27px; text-transform:uppercase; padding:14px 0; border-bottom:1.5px solid var(--pbw-blue-ink-20); color:var(--pbw-blue); }
.pbw-mobile-panel a.pbw-active{ color:var(--pbw-amber-d); }
.pbw-mobile-cta{ margin-top:24px; }

@media (max-width:900px){
  .pbw-nav{ display:none; }
  .pbw-header-actions .pbw-btn{ display:none; }
  .pbw-burger{ display:flex; }
}

/* ==========================================================================
   SECTIONS - generic
   ========================================================================== */
section{ position:relative; }
section[data-tone="dark"]{ background:var(--pbw-blue); }
section[data-tone="light"]{ background:var(--pbw-canvas); }
section[data-tone="alt"]{ background:var(--pbw-paper-2); }

.pbw-reveal{ opacity:0; transform:translateY(24px); transition:opacity .65s var(--pbw-ease), transform .65s var(--pbw-ease); }
html.pbw-js-ready .pbw-reveal{ opacity:0; transform:translateY(24px); }
html.pbw-js-ready .pbw-reveal.pbw-inview{ opacity:1; transform:translateY(0); }
.pbw-reveal.pbw-d1{ transition-delay:.06s; }
.pbw-reveal.pbw-d2{ transition-delay:.12s; }
.pbw-reveal.pbw-d3{ transition-delay:.18s; }
.pbw-reveal.pbw-d4{ transition-delay:.24s; }
.pbw-reveal.pbw-d5{ transition-delay:.3s; }
.pbw-reveal.pbw-d6{ transition-delay:.36s; }
noscript{ display:block; }

@media (prefers-reduced-motion: reduce){
  html.pbw-js-ready .pbw-reveal{ transition:none !important; opacity:1 !important; transform:none !important; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ==========================================================================
   HERO — centered copy, full-bleed blueprint grid backdrop
   ========================================================================== */
.pbw-hero{ padding:176px 0 128px; overflow:hidden; color:var(--pbw-paper); isolation:isolate; }
.pbw-hero-grid{ position:absolute; inset:0; z-index:-1; opacity:.6; }
.pbw-hero-grid svg{ width:100%; height:100%; }
.pbw-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse 60% 50% at 50% 5%, rgba(245,166,35,.12), transparent 60%), var(--pbw-blue); }
.pbw-hero-inner{ text-align:center; max-width:860px; margin:0 auto; }
.pbw-hero .pbw-tag{ margin:0 auto; }
.pbw-hero-title{ font-family:var(--pbw-display); font-weight:600; text-transform:uppercase; font-size:clamp(36px,6.6vw,76px); line-height:1.02; margin-top:20px; }
.pbw-hero-title mark{ background:none; color:var(--pbw-amber); }
.pbw-hero-sub{ font-size:18px; line-height:1.65; color:var(--pbw-paper-70); max-width:560px; margin:24px auto 0; }
.pbw-hero-ctas{ display:flex; justify-content:center; gap:16px; margin-top:36px; flex-wrap:wrap; }
.pbw-hero-meta{ display:flex; justify-content:center; gap:0; margin-top:70px; flex-wrap:wrap; border-top:1px solid var(--pbw-paper-20); }
.pbw-hero-meta div{ text-align:center; padding:22px 34px; border-right:1px solid var(--pbw-paper-20); }
.pbw-hero-meta div:last-child{ border-right:none; }
.pbw-hero-meta .pbw-num{ font-family:var(--pbw-display); font-size:26px; color:var(--pbw-amber); }
.pbw-hero-meta .pbw-lab{ font-size:10.5px; font-family:var(--pbw-mono); letter-spacing:.04em; text-transform:uppercase; color:var(--pbw-paper-50); margin-top:4px; }

/* page-hero: shorter version for contact/legal */
.pbw-page-hero{ padding:172px 0 74px; color:var(--pbw-paper); background:var(--pbw-blue); position:relative; overflow:hidden; }
.pbw-page-hero .pbw-hero-grid{ opacity:.4; }
.pbw-page-hero-inner{ max-width:680px; }
.pbw-page-hero h1{ font-family:var(--pbw-display); font-weight:600; text-transform:uppercase; font-size:clamp(32px,5vw,50px); line-height:1.05; margin-top:16px; }
.pbw-page-hero p{ font-size:16.5px; color:var(--pbw-paper-70); margin-top:14px; max-width:520px; line-height:1.6; }

/* ==========================================================================
   TRUST STRIP
   ========================================================================== */
.pbw-trust{ padding:52px 0; border-bottom:var(--pbw-border); }
.pbw-trust-label{ font-size:11px; font-family:var(--pbw-mono); font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--pbw-blue-ink-50); margin-bottom:26px; text-align:center; }
.pbw-trust-row{ display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.pbw-trust-row span{ font-family:var(--pbw-display); font-weight:600; text-transform:uppercase; font-size:16px; color:var(--pbw-blue-ink-50); white-space:nowrap; transition:color .2s var(--pbw-ease); }
.pbw-trust-row span:hover{ color:var(--pbw-amber-d); }

/* ==========================================================================
   SERVICES — numbered rows, detail-callout styling
   ========================================================================== */
.pbw-services{ padding:120px 0; }
.pbw-services-head{ text-align:center; max-width:640px; margin:0 auto 56px; }
.pbw-services-head .pbw-lede{ margin-left:auto; margin-right:auto; }
.pbw-srows{ border-top:var(--pbw-border); max-width:900px; margin:0 auto; }
.pbw-srow{ display:grid; grid-template-columns:90px 1fr auto; align-items:center; gap:26px; padding:28px 0; border-bottom:var(--pbw-border); transition:background .2s var(--pbw-ease); }
.pbw-srow:hover{ background:var(--pbw-paper-2); }
.pbw-srow-detail{ font-family:var(--pbw-mono); font-size:11px; color:var(--pbw-amber-d); border:1.5px solid var(--pbw-blue-ink-20); border-radius:var(--pbw-radius-s); padding:8px 10px; text-align:center; }
.pbw-srow-body h3{ font-family:var(--pbw-display); font-size:19px; font-weight:600; text-transform:uppercase; }
.pbw-srow-body p{ font-size:14.5px; line-height:1.6; color:var(--pbw-blue-ink-70); margin-top:8px; max-width:520px; }
.pbw-srow .pbw-link-arrow{ justify-self:end; }
@media (max-width:820px){
  .pbw-srow{ grid-template-columns:1fr; gap:12px; padding:24px 0; }
  .pbw-srow-detail{ width:fit-content; }
  .pbw-srow .pbw-link-arrow{ justify-self:start; }
}

/* ==========================================================================
   PRICING — single outer frame, spec-sheet columns
   ========================================================================== */
.pbw-pricing{ padding:128px 0; }
.pbw-pricing-head{ text-align:center; max-width:640px; margin:0 auto 56px; }
.pbw-pricing-head .pbw-lede{ margin-left:auto; margin-right:auto; }
.pbw-pframe{ border:1.5px solid var(--pbw-paper-20); border-radius:var(--pbw-radius-l); overflow:hidden; display:grid; grid-template-columns:repeat(3,1fr); background:var(--pbw-blue-soft); }
.pbw-pcol{ padding:38px 30px; display:flex; flex-direction:column; border-left:1.5px solid var(--pbw-paper-20); color:var(--pbw-paper); }
.pbw-pcol:first-child{ border-left:none; }
.pbw-pcol-featured{ background:rgba(245,166,35,.1); position:relative; }
.pbw-pcol-tag{ font-family:var(--pbw-mono); font-size:10.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--pbw-amber); }
.pbw-pcol h3{ font-family:var(--pbw-display); font-size:23px; font-weight:600; text-transform:uppercase; margin-top:10px; }
.pbw-pcol .pbw-pdesc{ font-size:13px; color:var(--pbw-paper-70); margin-top:10px; line-height:1.55; min-height:40px; }
.pbw-pprice{ display:flex; align-items:baseline; gap:8px; margin-top:24px; padding-top:22px; border-top:1.5px dashed var(--pbw-paper-20); }
.pbw-pprice .pbw-amt{ font-family:var(--pbw-display); font-size:34px; font-weight:600; }
.pbw-pprice .pbw-per{ font-size:11.5px; color:var(--pbw-paper-50); font-family:var(--pbw-mono); }
.pbw-pfeat{ margin-top:22px; display:flex; flex-direction:column; gap:11px; flex:1; }
.pbw-pfeat li{ display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.5; color:var(--pbw-paper-70); }
.pbw-pfeat i{ color:var(--pbw-amber); margin-top:3px; font-size:11px; }
.pbw-pcol .pbw-btn{ margin-top:26px; justify-content:center; }
@media (max-width:900px){
  .pbw-pframe{ grid-template-columns:1fr; }
  .pbw-pcol{ border-left:none; border-top:1.5px solid var(--pbw-paper-20); }
  .pbw-pcol:first-child{ border-top:none; }
}

/* ==========================================================================
   ADDITIONAL SERVICES — "bill of materials" table
   ========================================================================== */
.pbw-table-sec{ padding:120px 0; }
.pbw-table-head{ text-align:center; max-width:640px; margin:0 auto 48px; }
.pbw-table-head .pbw-lede{ margin-left:auto; margin-right:auto; }
.pbw-ptable{ width:100%; border-collapse:collapse; border:var(--pbw-border); border-radius:var(--pbw-radius-m); overflow:hidden; }
.pbw-ptable thead th{ font-family:var(--pbw-mono); font-size:11px; text-transform:uppercase; letter-spacing:.03em; text-align:left; padding:16px 20px; background:var(--pbw-blue); color:var(--pbw-paper); }
.pbw-ptable thead th:last-child{ text-align:right; }
.pbw-ptable tbody td{ padding:17px 20px; border-top:1px solid var(--pbw-blue-ink-20); font-size:14.5px; vertical-align:middle; }
.pbw-ptable tbody tr:hover{ background:var(--pbw-paper-2); }
.pbw-ptable td.pbw-titem{ font-family:var(--pbw-mono); font-size:11px; color:var(--pbw-blue-ink-50); width:70px; }
.pbw-ptable td.pbw-tprice{ font-family:var(--pbw-display); font-size:18px; text-transform:uppercase; }
.pbw-ptable td.pbw-taction{ text-align:right; }
.pbw-ptable td.pbw-taction a{ font-family:var(--pbw-mono); font-size:11.5px; font-weight:600; color:var(--pbw-amber-d); text-transform:uppercase; display:inline-flex; align-items:center; gap:6px; }
.pbw-ptable td.pbw-taction a:hover{ text-decoration:underline; }
.pbw-table-scroll{ overflow-x:auto; }
@media (max-width:760px){
  .pbw-ptable thead{ display:none; }
  .pbw-ptable, .pbw-ptable tbody, .pbw-ptable tr, .pbw-ptable td{ display:block; width:100%; }
  .pbw-ptable tr{ border-top:var(--pbw-border); padding:14px 0; }
  .pbw-ptable td{ border-top:none; padding:5px 4px; }
  .pbw-ptable td.pbw-taction{ text-align:left; }
}

/* ==========================================================================
   ABOUT — prose + elevation-drawing visual side by side
   ========================================================================== */
.pbw-about{ padding:126px 0; }
.pbw-about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.pbw-about-prose p{ font-size:15.5px; line-height:1.75; color:var(--pbw-paper-70); margin-top:16px; }
.pbw-about-visual{ aspect-ratio:4/5; border-radius:var(--pbw-radius-l); overflow:hidden; background:var(--pbw-blue-soft); border:1.5px solid var(--pbw-paper-20); display:flex; align-items:center; justify-content:center; }
.pbw-about-visual svg{ width:80%; height:80%; }
.pbw-stats{ margin-top:76px; padding-top:44px; border-top:1.5px solid var(--pbw-paper-20); display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.pbw-stat .pbw-stat-num{ font-family:var(--pbw-display); font-size:36px; font-weight:600; color:var(--pbw-amber); }
.pbw-stat .pbw-stat-lab{ font-size:12px; font-family:var(--pbw-mono); color:var(--pbw-paper-70); margin-top:8px; text-transform:uppercase; }
@media (max-width:900px){
  .pbw-about-grid{ grid-template-columns:1fr; }
  .pbw-about-visual{ order:-1; max-width:340px; margin:0 auto; }
  .pbw-stats{ grid-template-columns:repeat(2,1fr); }
}

/* ==========================================================================
   REVIEWS — featured + 3 supporting, "approved" stamp styling
   ========================================================================== */
.pbw-reviews{ padding:120px 0; }
.pbw-reviews-head{ text-align:center; max-width:600px; margin:0 auto 56px; }
.pbw-reviews-head .pbw-lede{ margin-left:auto; margin-right:auto; }
.pbw-rgrid{ display:grid; grid-template-columns:1.3fr 1fr; gap:22px; }
.pbw-rfeatured{ background:var(--pbw-blue); color:var(--pbw-paper); border-radius:var(--pbw-radius-l); padding:44px 38px; display:flex; flex-direction:column; justify-content:space-between; position:relative; }
.pbw-rfeatured .pbw-rstamp{ position:absolute; top:28px; right:32px; border:2px solid var(--pbw-amber); color:var(--pbw-amber); font-family:var(--pbw-mono); font-size:10px; text-transform:uppercase; padding:5px 10px; border-radius:var(--pbw-radius-s); transform:rotate(-6deg); }
.pbw-rfeatured p{ font-size:21px; font-weight:600; line-height:1.42; margin-top:16px; max-width:90%; }
.pbw-rside{ display:flex; flex-direction:column; gap:22px; }
.pbw-rcard{ background:var(--pbw-paper-2); border-radius:var(--pbw-radius-m); padding:22px; display:flex; flex-direction:column; gap:12px; flex:1; }
.pbw-rcard p{ font-size:13.5px; line-height:1.55; }
.pbw-rauthor{ display:flex; align-items:center; gap:12px; margin-top:auto; padding-top:16px; }
.pbw-avatar{ width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; color:var(--pbw-paper); flex:none; }
.pbw-rauthor-name{ font-weight:700; font-size:13.5px; }
.pbw-rauthor-role{ font-size:11.5px; color:var(--pbw-blue-ink-50); }
.pbw-rfeatured .pbw-rauthor-role{ color:var(--pbw-paper-50); }
@media (max-width:900px){ .pbw-rgrid{ grid-template-columns:1fr; } }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.pbw-footer{ background:var(--pbw-blue); color:var(--pbw-paper-70); padding:88px 0 0; }
.pbw-footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:48px; padding-bottom:60px; border-bottom:1.5px solid var(--pbw-paper-20); }
.pbw-footer-brand .pbw-brand{ color:var(--pbw-paper); }
.pbw-footer-brand p{ font-size:14px; line-height:1.65; margin-top:18px; max-width:280px; }
.pbw-footer-socials{ display:flex; gap:12px; margin-top:24px; }
.pbw-footer-socials a{ width:36px; height:36px; border-radius:50%; border:1.5px solid var(--pbw-paper-20); display:flex; align-items:center; justify-content:center; font-size:13px; transition:background .2s, border-color .2s; }
.pbw-footer-socials a:hover{ background:var(--pbw-amber); border-color:var(--pbw-amber); color:var(--pbw-blue); }
.pbw-footer h5{ font-size:11px; font-family:var(--pbw-mono); letter-spacing:.04em; text-transform:uppercase; color:var(--pbw-paper-50); margin-bottom:20px; }
.pbw-footer-col ul{ display:flex; flex-direction:column; gap:13px; }
.pbw-footer-col a{ font-size:14px; transition:color .18s; }
.pbw-footer-col a:hover{ color:var(--pbw-paper); }
.pbw-footer-col li{ display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.5; }
.pbw-footer-col li i{ color:var(--pbw-amber); margin-top:3px; font-size:12px; }
.pbw-footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:24px 0; flex-wrap:wrap; gap:12px; font-size:12px; font-family:var(--pbw-mono); color:var(--pbw-paper-50); }
.pbw-footer-bottom-links{ display:flex; gap:22px; }
.pbw-footer-bottom-links a:hover{ color:var(--pbw-paper); }

@media (max-width:900px){ .pbw-footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .pbw-footer-grid{ grid-template-columns:1fr; } }

/* ==========================================================================
   CONTACT PAGE
   ========================================================================== */
.pbw-contact-sec{ padding:78px 0 128px; }
.pbw-contact-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:24px; align-items:start; }
.pbw-ccards{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.pbw-ccard{ border:var(--pbw-border); border-radius:var(--pbw-radius-m); padding:26px; background:var(--pbw-canvas); transition:border-color .2s, transform .2s; }
.pbw-ccard:hover{ border-color:var(--pbw-amber-d); transform:translateY(-4px); }
.pbw-ccard-icon{ width:42px; height:42px; border-radius:var(--pbw-radius-s); background:var(--pbw-paper-2); color:var(--pbw-amber-d); display:flex; align-items:center; justify-content:center; font-size:15px; margin-bottom:16px; }
.pbw-ccard h4{ font-size:11px; font-family:var(--pbw-mono); letter-spacing:.03em; text-transform:uppercase; color:var(--pbw-blue-ink-50); }
.pbw-ccard .pbw-cval{ font-family:var(--pbw-display); font-weight:600; font-size:16.5px; margin-top:8px; line-height:1.4; text-transform:uppercase; }
.pbw-ccard a.pbw-cval:hover{ color:var(--pbw-amber-d); }
.pbw-side-panel{ background:var(--pbw-blue); color:var(--pbw-paper); border-radius:var(--pbw-radius-l); padding:34px 28px; display:flex; flex-direction:column; height:100%; }
.pbw-side-panel h3{ font-family:var(--pbw-display); font-weight:600; text-transform:uppercase; font-size:22px; }
.pbw-side-panel p{ font-size:14px; color:var(--pbw-paper-70); line-height:1.6; margin-top:14px; }
.pbw-side-panel .pbw-btn{ margin-top:24px; justify-content:center; }
.pbw-side-hours{ margin-top:28px; padding-top:22px; border-top:1px solid var(--pbw-paper-20); font-size:13px; font-family:var(--pbw-mono); }
.pbw-side-hours div{ display:flex; justify-content:space-between; padding:6px 0; color:var(--pbw-paper-70); }
.pbw-map-wrap{ margin-top:24px; border-radius:var(--pbw-radius-l); overflow:hidden; border:var(--pbw-border); height:400px; }
.pbw-map-wrap iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(.2) contrast(1.05); }
@media (max-width:900px){
  .pbw-contact-grid{ grid-template-columns:1fr; }
  .pbw-ccards{ grid-template-columns:1fr; }
}

/* ==========================================================================
   LEGAL PAGE
   ========================================================================== */
.pbw-legal-sec{ padding:78px 0 128px; }
.pbw-legal-intro{ max-width:760px; font-size:15px; line-height:1.7; color:var(--pbw-blue-ink-70); padding-bottom:38px; border-bottom:var(--pbw-border); margin-bottom:0; }
.pbw-legal-subnav{ position:sticky; top:78px; z-index:50; background:var(--pbw-canvas); display:flex; gap:8px; padding:18px 0; margin-bottom:20px; border-bottom:var(--pbw-border); flex-wrap:wrap; }
.pbw-legal-subnav a{ padding:9px 16px; border-radius:var(--pbw-radius-s); font-size:12.5px; font-weight:600; font-family:var(--pbw-mono); text-transform:uppercase; border:1.5px solid var(--pbw-blue-ink-20); transition:background .2s, color .2s, border-color .2s; }
.pbw-legal-subnav a:hover, .pbw-legal-subnav a.pbw-active{ background:var(--pbw-blue); color:var(--pbw-paper); border-color:var(--pbw-blue); }
.pbw-legal-doc{ max-width:760px; padding:54px 0; border-bottom:var(--pbw-border); scroll-margin-top:150px; }
.pbw-legal-doc:last-child{ border-bottom:none; }
.pbw-legal-doc h2{ font-family:var(--pbw-display); font-size:27px; font-weight:600; text-transform:uppercase; }
.pbw-legal-doc .pbw-legal-updated{ font-size:12px; font-family:var(--pbw-mono); color:var(--pbw-blue-ink-50); margin-top:8px; }
.pbw-legal-doc h3{ font-family:var(--pbw-display); font-size:16.5px; font-weight:600; text-transform:uppercase; margin-top:30px; }
.pbw-legal-doc p{ font-size:14.5px; line-height:1.75; color:var(--pbw-blue-ink-70); margin-top:13px; }
.pbw-legal-doc ul{ margin-top:13px; display:flex; flex-direction:column; gap:10px; }
.pbw-legal-doc ul li{ font-size:14.5px; line-height:1.6; color:var(--pbw-blue-ink-70); padding-left:20px; position:relative; }
.pbw-legal-doc ul li::before{ content:"→"; position:absolute; left:0; color:var(--pbw-amber-d); }

/* ==========================================================================
   COOKIE BANNER
   ========================================================================== */
.pbw-cookie{
  position:fixed; left:24px; right:24px; bottom:-200px; z-index:800; max-width:520px; margin:0 auto;
  background:var(--pbw-blue); color:var(--pbw-paper); border-radius:var(--pbw-radius-l); padding:24px 26px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5); border:1.5px solid rgba(247,248,250,.14);
  transition:bottom .5s var(--pbw-ease);
}
.pbw-cookie.pbw-show{ bottom:24px; }
.pbw-cookie p{ font-size:13px; line-height:1.6; color:var(--pbw-paper-70); }
.pbw-cookie a{ color:var(--pbw-amber); text-decoration:underline; }
.pbw-cookie-actions{ display:flex; gap:12px; margin-top:16px; }
.pbw-cookie-actions button{ flex:1; padding:10px 16px; border-radius:var(--pbw-radius-s); font-size:12px; font-weight:700; text-transform:uppercase; border:1.5px solid rgba(247,248,250,.2); background:transparent; color:var(--pbw-paper); transition:background .2s, color .2s; }
.pbw-cookie-actions .pbw-cookie-accept{ background:var(--pbw-amber); border-color:var(--pbw-amber); color:var(--pbw-blue); }
.pbw-cookie-actions .pbw-cookie-accept:hover{ background:var(--pbw-amber-d); }
.pbw-cookie-actions .pbw-cookie-decline:hover{ background:rgba(247,248,250,.1); }

/* generic responsive section paddings */
@media (max-width:760px){
  .pbw-hero{ padding:150px 0 90px; }
  .pbw-page-hero{ padding:138px 0 58px; }
  .pbw-services, .pbw-pricing, .pbw-table-sec, .pbw-about, .pbw-reviews{ padding:72px 0; }
  .pbw-hero-meta{ margin-top:52px; }
  .pbw-footer{ padding-top:60px; }
}
