/*
Theme Name: Prudent Broker
Description: Editable Gutenberg foundation for Prudent Broker.
Version: 0.2.0
Requires at least: 6.6
Requires PHP: 8.2
Text Domain: prudent-broker
*/

/* Shared frontend/editor typography comes from theme.json. */
:where(.wp-site-blocks, .editor-styles-wrapper) { overflow-wrap: anywhere; }
.pb-main { min-height: 50vh; padding-block: clamp(2rem, 5vw, 4rem); }
.pb-main > .wp-block-post-title.alignwide { max-width: var(--wp--style--global--wide-size); }
.pb-section { padding-block: 1rem; }
.pb-surface { padding: clamp(1rem, 4vw, 2rem); border-radius: 8px; background: var(--wp--preset--color--surface); }
.pb-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.pb-grid > * { min-width: 0; margin-block: 0; }
.pb-card { padding: 1.5rem; border: 1px solid var(--wp--preset--color--border); border-radius: 8px; background: var(--wp--preset--color--white); }
.pb-card h3 { margin-top: 0; }
.pb-placeholder { color: var(--wp--preset--color--muted); font-size: 0.95rem; }
.pb-eyebrow, .pb-local-note { font-size: 0.8rem; }
main.pb-main .pb-breadcrumb { font-size: 0.85rem; color: var(--wp--preset--color--muted); }
main.pb-main .pb-breadcrumb ol { display:flex; flex-wrap:wrap; gap:0 .5rem; list-style:none; padding:0; margin:0; }
main.pb-main .pb-breadcrumb li { display:flex; align-items:center; gap:.5rem; max-width:100%; min-width:0; min-height:2.75rem; }
main.pb-main .pb-breadcrumb a { display:inline-flex; align-items:center; min-height:2.75rem; min-width:0; text-underline-offset:.2em; }
main.pb-main .pb-breadcrumb [aria-current="page"] { min-width:0; }
:where(.wp-site-blocks, .editor-styles-wrapper) a:focus-visible,
:where(.wp-site-blocks, .editor-styles-wrapper) button:focus-visible { outline: 3px solid var(--wp--preset--color--navy); outline-offset: 4px; }

@media(max-width:599px){.pb-grid{grid-template-columns:minmax(0,1fr)}.pb-card{padding:1.25rem}}
/* PHASE 3B-1 refinement: shared chrome, using native Gutenberg blocks. */
.pb-header { background:#fff; border-bottom:1px solid var(--wp--preset--color--border); }
.pb-header-inner { max-width:1200px; min-height:104px; padding-block:1rem; gap:2rem; flex-wrap:nowrap !important; box-sizing:border-box; }
.pb-header .wp-block-site-logo { flex-shrink:0; }
.pb-header .wp-block-site-logo img { width:190px; height:auto; object-fit:contain; }
.pb-header-actions { gap:1.75rem; margin:0 !important; }
.pb-header-cta { flex-shrink:0; }
.pb-header-cta a,.pb-mobile-contact .wp-element-button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:.75rem 1.25rem; font-size:1rem; line-height:1.4; box-sizing:border-box; }
.pb-primary-nav { font-size:var(--wp--preset--font-size--navigation); font-weight:500; line-height:1.4; }
.pb-primary-nav .wp-block-navigation__container { gap:1rem; }
.pb-primary-nav .wp-block-navigation-item__content { display:inline-flex; align-items:center; min-height:44px; padding-block:.5rem; text-decoration:none; box-sizing:border-box; }
.pb-primary-nav a:hover { text-decoration:underline; text-underline-offset:.3em; }
.pb-primary-nav a[aria-current="page"] { font-weight:700; text-decoration:underline; text-underline-offset:.3em; }
.pb-primary-nav .wp-block-navigation__submenu-icon { display:flex; align-items:center; justify-content:center; flex:0 0 24px; width:24px; height:44px; margin:0; border-radius:4px; }
.pb-primary-nav .wp-block-navigation__submenu-icon svg { width:12px; height:12px; }
.pb-primary-nav .wp-block-navigation__submenu-icon:hover { background:var(--wp--preset--color--surface); }
.pb-primary-nav .wp-block-navigation__submenu-container { min-width:17rem; padding:.5rem; border:1px solid var(--wp--preset--color--border); border-radius:6px; background:#fff; }
.pb-primary-nav .wp-block-navigation__submenu-container a { padding:.625rem .75rem; width:100%; border-radius:3px; }
.pb-primary-nav .wp-block-navigation__submenu-container a:hover,.pb-primary-nav .wp-block-navigation__submenu-container a[aria-current="page"] { background:var(--wp--preset--color--surface); }
.pb-mobile-brand,.pb-mobile-contact { display:none; }
.pb-primary-nav .wp-block-navigation__responsive-container-open,.pb-primary-nav .wp-block-navigation__responsive-container-close { min-width:48px; min-height:48px; justify-content:center; align-items:center; border:1px solid var(--wp--preset--color--border); border-radius:6px; background:var(--wp--preset--color--surface); color:var(--wp--preset--color--navy); }
.pb-primary-nav .wp-block-navigation__responsive-container-close { display:flex; }
.pb-footer { margin-top:0; background:var(--wp--preset--color--surface); border-top:1px solid var(--wp--preset--color--border); }
.pb-footer-inner { max-width:1200px; width:calc(100% - 2 * clamp(1rem,4vw,2rem)); margin-inline:auto; padding-block:4rem; }
.pb-footer-grid { display:grid; grid-template-columns:1.25fr 1fr 1.4fr 1fr; gap:1.5rem 2rem; align-items:start; }
.pb-footer-grid>* { min-width:0; margin:0; }
.pb-footer h2 { font-size:1.0625rem; font-weight:700; margin:0 0 .75rem; }
.pb-footer p,.pb-footer .wp-block-navigation { font-size:var(--wp--preset--font-size--small); line-height:1.55; margin-block:0 .5rem; }
.pb-footer .wp-block-navigation { margin-block:0; }
.pb-footer .wp-block-site-logo { margin:0 0 .75rem -.875rem; }
.pb-footer .wp-block-site-logo img { max-width:100%; height:auto; object-fit:contain; }
.pb-footer .wp-block-navigation__container { align-items:flex-start; gap:0; }
.pb-footer .wp-block-navigation-item { margin:0; }
.pb-footer .wp-block-navigation-item__content { padding-block:0; }
.pb-footer-contact p { display:flex; flex-direction:column; align-items:flex-start; gap:0; margin:0; }
.pb-footer-contact p br { display:none; }
.pb-footer-contact .pb-footer-address { flex-direction:row; align-items:flex-start; gap:.625rem; margin-top:.25rem; }
.pb-footer-contact .pb-footer-address::before { content:""; display:block; flex:0 0 18px; width:18px; height:18px; margin-top:.2em; background:currentColor; mask:url("assets/icons/map-pin.svg") center/contain no-repeat; }
.pb-footer a { text-decoration:none; }
.pb-footer a:hover { text-decoration:underline; text-underline-offset:.25em; }
.pb-footer a { display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; max-width:100%; }
.pb-footer :is(.pb-footer-links,.pb-legal-nav,.pb-footer-contact) a { min-height:2rem; }
/* Decorative SVG masks keep the editable link text and accessible names intact. */
:is(.pb-footer-contact,.pb-mobile-contact) a:is([href^="tel:"],[href^="mailto:"],[href^="https://lin.ee/"]) { gap:.625rem; }
:is(.pb-footer-contact,.pb-mobile-contact) a:is([href^="tel:"],[href^="mailto:"],[href^="https://lin.ee/"])::before {
 content:""; display:block; flex:0 0 18px; width:18px; height:18px; background:currentColor;
 mask:url("assets/icons/phone.svg") center/contain no-repeat;
}
.pb-footer-contact a[href^="mailto:"]::before { mask-image:url("assets/icons/mail.svg"); }
:is(.pb-footer-contact,.pb-mobile-contact) a[href^="https://lin.ee/"]::before { background:url("assets/icons/line.svg") center/contain no-repeat; mask:none; }
.pb-footer-contact a[href^="https://lin.ee/"]::before { background:currentColor; mask:url("assets/icons/line-outline.svg") center/contain no-repeat; }
.chaty-widget a.chaty-link:focus-visible { outline:3px solid var(--wp--preset--color--navy); outline-offset:4px; }
.pb-copyright { background:var(--wp--preset--color--deep-navy); color:#fff; padding:.875rem clamp(1rem,4vw,2rem); text-align:center; }
.pb-footer > .pb-copyright { margin-block-start:0; }
.pb-copyright p { max-width:1200px; margin:0 auto; font-size:var(--wp--preset--font-size--copyright); line-height:1.55; }

/* The root owns page scrollbar stability; no JS body-padding compensation. */
html:has(header .pb-primary-nav) { scrollbar-gutter:stable; }
html:has(header .pb-primary-nav .is-menu-open) {
 /* Match the white dialog across the root scrollbar gutter as well. */
 background:#fff;
 background-attachment:fixed;
}
@media (min-width:70.001rem) {
 .pb-primary-nav .wp-block-navigation__responsive-container-open { display:none; }
 .pb-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display:block; }
}
@media (max-width:70rem) {
 .pb-primary-nav { --pb-drawer-width:min(calc(var(--pb-viewport-width,100vw) - 24px),max(320px,50vw)); }
 .pb-header-inner { min-height:88px; }
 .pb-header-actions > .pb-header-cta { display:none; }
 .pb-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
 .pb-primary-nav .wp-block-navigation__responsive-container-open { display:flex; }
 /* Reset only the native primary dialog wrappers, including Core's admin offset. */
 .pb-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
  display:block; position:fixed; inset:var(--pb-admin-visible,0px) auto auto 0;
  width:var(--pb-viewport-width,100vw); max-width:none; height:calc(100vh - var(--pb-admin-visible,0px));
  height:calc(100dvh - var(--pb-admin-visible,0px)); max-height:none;
  margin:0; padding:0; box-sizing:border-box;
  overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain;
  /* The native modal remains full width; its inner panel becomes the drawer. */
  scrollbar-width:none;
  background:rgb(32 40 64 / 35%) !important; color:var(--wp--preset--color--navy) !important;
  animation:none; z-index:100000;
 }
 .pb-primary-nav .wp-block-navigation__responsive-container.is-menu-open::-webkit-scrollbar { display:none; }
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-close,
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-dialog,
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content {
  width:100%; max-width:none; min-width:0; margin:0 !important; padding:0 !important;
  box-sizing:border-box; gap:0; transform:none; align-items:stretch;
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-close {
  width:var(--pb-drawer-width); min-height:100%; margin-inline-start:auto !important;
  background:#fff; border-inline-start:1px solid var(--wp--preset--color--border);
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content { display:flex; }
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-dialog { position:relative; }
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-container-close {
  position:absolute; left:auto; right:var(--pb-menu-pad,24px); top:var(--pb-toggle-y);
  display:flex; width:48px; height:48px; z-index:2;
 }
 .pb-primary-nav .is-menu-open .pb-mobile-brand {
  display:block; position:relative; flex:none; width:100%; min-height:var(--pb-header-height,96px);
  margin:0; padding:0; background:#fff; border-bottom:1px solid var(--wp--preset--color--border); box-sizing:border-box;
 }
 .pb-mobile-brand .wp-block-site-logo { margin:0; padding:0; }
 .pb-mobile-brand .wp-block-site-logo a { position:absolute; left:var(--pb-menu-pad,24px); top:var(--pb-logo-y); width:var(--pb-logo-width); display:block; margin:0; padding:0; background:transparent; }
 .pb-primary-nav .pb-mobile-brand img {
  display:block; position:static; width:100% !important; max-width:none; height:auto;
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
  width:auto; max-width:none; align-self:stretch; margin:0; padding: .625rem var(--pb-menu-pad,24px) 0;
  gap:0; align-items:stretch; box-sizing:border-box;
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation-item { width:100%; margin:0; padding:0; border:0; align-items:stretch !important; }
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item {
  border-bottom:1px solid var(--wp--preset--color--border);
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation-item__content {
  display:flex; align-items:center; width:100%; min-height:52px; padding:.5rem 0;
  color:var(--wp--preset--color--navy); font-size:var(--wp--preset--font-size--menu); line-height:1.4;
  background:transparent; border:0; border-radius:0; box-sizing:border-box;
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation-item__content:hover { text-decoration:none; }
 .pb-primary-nav .is-menu-open .wp-block-navigation-item__content:not([aria-current="page"]):hover { background:transparent; }
 .pb-primary-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"] {
  color:var(--wp--preset--color--navy); background:#e5e9f3; border:0; font-weight:700;
  text-decoration:none;
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"] { box-shadow:inset 3px 0 var(--wp--preset--color--navy); padding-inline:.875rem; }
 .pb-primary-nav .is-menu-open .has-child { display:grid !important; grid-template-columns:minmax(0,1fr) 48px; }
 .pb-primary-nav .is-menu-open .has-child > .wp-block-navigation-item__content { grid-column:1; grid-row:1; }
 .pb-primary-nav .is-menu-open .wp-block-navigation__submenu-icon {
  display:flex !important; grid-column:2; grid-row:1; align-self:center;
  flex:none; width:48px; height:52px; color:var(--wp--preset--color--navy); background:transparent; border:0; border-radius:0;
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation__submenu-icon:hover { background:transparent; }
 .pb-primary-nav .is-menu-open .has-child:has(> .wp-block-navigation-item__content[aria-current="page"])
 > :is(.wp-block-navigation-item__content,.wp-block-navigation__submenu-icon) { background:#e5e9f3; }
 .pb-primary-nav .is-menu-open .wp-block-navigation__submenu-container {
  grid-column:1/-1; width:100%; min-width:0; max-width:none;
  margin:0; padding:.125rem 0 .5rem 2rem !important;
  border:0; border-radius:0; background:transparent; gap:0; box-sizing:border-box;
 }
 .pb-primary-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  font-size:1rem; line-height:1.45; min-height:44px; padding:.5rem 0;
 }
 .pb-primary-nav.pb-menu-ready .is-menu-open .has-child:not(.pb-submenu-open) > .wp-block-navigation__submenu-container { display:none !important; }
 .pb-primary-nav.pb-menu-ready .is-menu-open .pb-submenu-open > .wp-block-navigation__submenu-container { display:flex !important; visibility:visible; opacity:1; height:auto; position:static; }
 .pb-primary-nav .pb-submenu-open > .wp-block-navigation__submenu-icon svg { transform:rotate(180deg); }
 .pb-primary-nav .is-menu-open .pb-mobile-contact {
  display:block; width:100%; max-width:none; margin:0;
  padding:.875rem var(--pb-menu-pad,24px) max(1rem,env(safe-area-inset-bottom,0px)); box-sizing:border-box;
 }
 .pb-mobile-contact > .pb-header-cta { display:flex; }
 .pb-mobile-contact .wp-block-buttons,.pb-mobile-contact .wp-block-button { width:100%; margin:0; }
 .pb-primary-nav .pb-mobile-contact .wp-element-button {
  width:100%; min-height:48px; background:var(--wp--preset--color--navy); color:#fff;
  font-size:1rem; line-height:1.4; padding:.75rem 1rem; border-radius:6px;
 }
 .pb-primary-nav .pb-mobile-contact .wp-element-button:hover { background:var(--wp--preset--color--deep-navy); color:#fff; }
 .pb-primary-nav .is-menu-open :is(a,button):focus-visible { outline:3px solid var(--wp--preset--color--navy); outline-offset:3px; }
 .pb-primary-nav .is-menu-open .pb-mobile-brand a:focus-visible,
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-container-close:focus-visible { outline-color:var(--wp--preset--color--navy); }
 .pb-footer-grid { grid-template-columns:1.2fr 1fr; gap:1.5rem 2rem; }
}
@media (max-width:599px) {
 .pb-header-inner { min-height:84px; padding-block:.75rem; }
 .pb-header .wp-block-site-logo img { width:164px; }
 .pb-footer-inner { padding-block:3rem; }
 .pb-footer-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr)); gap:1.5rem 1rem; }
 .pb-footer-company,.pb-footer-contact { grid-column:1/-1; }
 .pb-footer-company { order:0; }.pb-footer-contact { order:1; }.pb-footer-shortcuts { order:2; }.pb-footer-policies { order:3; }
 /* Keep the Local LINE launcher above the wrapping copyright strip on small screens. */
 .chaty-widget.right-position { bottom:max(88px,calc(72px + env(safe-area-inset-bottom,0px))) !important; }
}
@media (max-width:359px) {
 .pb-primary-nav { --pb-menu-pad:20px; }
 .pb-footer-grid { grid-template-columns:minmax(0,1fr); }.pb-footer-grid>* { grid-column:1; }
}
@media (prefers-reduced-motion:no-preference) {
 .pb-primary-nav .is-menu-open .wp-block-navigation__responsive-close { animation:pb-drawer-in .24s cubic-bezier(.2,.7,.3,1); }
 /* Native fragment navigation; preserve URLs, history and keyboard behavior. */
 html:has(main.pb-main) { scroll-behavior:smooth; }
 .pb-primary-nav a,.pb-primary-nav button { transition:background-color .15s ease,color .15s ease; }
}
@keyframes pb-drawer-in {
 from { transform:translateX(100%); }
 to { transform:translateX(0); }
}
@media (max-width:70rem) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .pb-primary-nav .is-menu-open .wp-block-navigation-item__label { transition:transform .16s ease; }
 .pb-primary-nav .is-menu-open .wp-block-navigation-item__content:not([aria-current="page"]):hover .wp-block-navigation-item__label { transform:translateX(3px); }
}
.pb-card h3 a { display:inline-flex; align-items:center; min-height:44px; }
