/*
 * Theme additions on top of the prototype CSS.
 * Mostly the prototype's inline styles moved into classes, plus WordPress-specific rules.
 */

/* Skip link */
.cwp-skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:var(--space-3) var(--space-4);background:var(--surface);color:var(--accent);font:600 15px/1.2 var(--font-body)}
.cwp-skip-link:focus{left:var(--space-4);top:var(--space-4);outline:2px solid var(--focus-ring);outline-offset:2px}

/* Page shell (prototype: <main> fade-in) */
.cwp-main{animation:cwpFadeUp var(--duration-slow) var(--ease-standard) both}
@media (prefers-reduced-motion:reduce){.cwp-main{animation:none}}

/* Header bar (prototype: fixed wrapper around .cwp-header) */
.cwp-header-bar{position:fixed;top:0;left:0;right:0;z-index:50}
.cwp-header-bar .cwp-header{position:relative;border-bottom:0;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}
.cwp-header__home{display:block}
.admin-bar .cwp-header-bar{top:32px}
@media (max-width:782px){.admin-bar .cwp-header-bar{top:46px}}

/* Mobile menu (prototype: role="dialog" overlay) */
.cwp-mobile-menu{position:fixed;inset:0;z-index:60;background:var(--surface);color:var(--text);display:flex;flex-direction:column;overflow-y:auto}
.cwp-mobile-menu[hidden]{display:none}
.cwp-mobile-menu__bar{height:80px;display:flex;align-items:center;justify-content:space-between;width:100%;flex:none}
.cwp-mobile-menu__bar .cwp-logo{height:44px}
.cwp-mobile-menu__close{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;color:var(--accent);cursor:pointer}
.cwp-mobile-menu__nav{display:flex;flex-direction:column;gap:var(--space-2);padding-top:40px;width:100%}
.cwp-mobile-menu__nav>a{font:400 36px/1.3 var(--font-head);text-transform:uppercase;letter-spacing:.01em;color:var(--heading);padding:var(--space-2) 0}
.cwp-mobile-menu__cta{margin-top:var(--space-6)}
.cwp-mobile-menu__pattern{margin-top:auto;height:180px;flex:none}
.cwp-mobile-menu__close:focus-visible,.cwp-header__menu:focus-visible,.cwp-mobile-menu__nav>a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
body.cwp-menu-open{overflow:hidden}

/* Footer (prototype inline styles) */
.cwp-footer{border-top:1px solid var(--border)}
.cwp-footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4)}
.cwp-footer__legal .cwp-caption{font-size:14px}
.cwp-footer__col a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
/* Footer columns follow the "Footer" menu (one column per top-level item) */
.cwp-footer__grid{grid-template-columns:2fr repeat(var(--cwp-footer-cols,3),1fr)}
@media (max-width:1023px){.cwp-footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:767px){.cwp-footer__grid{grid-template-columns:1fr}}

/* Page title section on pages without a hero (page.php); the next section supplies the gap */
.cwp-section--flush-bottom{padding-bottom:0}

/* Section blocks: image on the left (desktop only; text stays first on mobile) */
@media (min-width:768px){.cwp-split--reverse>:first-child{order:2}}

/* Menu sub-items (Appearance → Menus). Not in the prototype: styled from its nav and surface tokens. */
.cwp-nav{align-items:center}
.cwp-nav__group{position:relative}
.cwp-nav__group>a::after{content:"";display:inline-block;width:6px;height:6px;margin:0 2px 3px 8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.cwp-nav__sub{position:absolute;top:100%;left:calc(-1 * var(--space-4));min-width:220px;display:flex;flex-direction:column;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),visibility 0s linear var(--duration-fast)}
.cwp-nav__group:hover>.cwp-nav__sub,.cwp-nav__group:focus-within>.cwp-nav__sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.cwp-nav__sub a{white-space:nowrap}
.cwp-mobile-menu__sub{display:flex;flex-direction:column;gap:var(--space-2);padding:0 0 var(--space-3) var(--space-4);border-left:1px solid var(--border)}
.cwp-mobile-menu__sub a{font:400 18px/1.4 var(--font-body);color:var(--text)}
.cwp-mobile-menu__sub a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}

/* Pages whose first section is not a hero: clear the fixed header */
.cwp-main--offset{padding-top:var(--header-height)}

/* Chinese text */
:lang(zh){font-family:var(--font-cjk)}

/* Shared section pieces (prototype inline styles) */
.cwp-figure{margin:0}
.cwp-figure .cwp-caption{margin-top:var(--space-2)}
.cwp-media--4x3{aspect-ratio:4 / 3}
.cwp-split--top{align-items:start}
.cwp-section-intro{margin-bottom:var(--space-7)}
.cwp-subhead--spaced{margin-bottom:var(--space-5)}
.cwp-hero-title--flush{margin-bottom:0}

/* Marquee under the Home hero */
.cwp-marquee{background:var(--surface-tint);color:var(--text-muted);height:56px;overflow:hidden;display:flex;align-items:center;border-top:1px solid var(--border)}
.cwp-marquee__track{display:flex;white-space:nowrap;font:600 13px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;padding-left:56px;animation:cwpMarquee 70s linear infinite}
.cwp-marquee__run,.cwp-marquee__item{display:inline-flex;align-items:center;gap:56px}
.cwp-marquee__run{padding-right:56px}
.cwp-marquee__dot{width:4px;height:4px;background:var(--accent);display:inline-block}
@media (prefers-reduced-motion:reduce){.cwp-marquee__track{animation:none}}

/* Split: numbered points row, titled list */
.cwp-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--space-5);margin-top:var(--space-9)}
.cwp-points__item{border-top:1px solid var(--border);padding-top:var(--space-5)}
.cwp-points__item .cwp-eyebrow,.cwp-points__item .cwp-card-title{margin-bottom:var(--space-3)}
.cwp-titled-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.cwp-titled-list li{padding:20px 0;border-bottom:1px solid var(--border)}
.cwp-titled-list .cwp-card-title{margin-bottom:6px}
.cwp-story__sentence--lead{max-width:26em;margin-bottom:var(--space-9)}

/* People: bullets + lawyer cards */
.cwp-bullets{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.cwp-bullets li{color:var(--text);padding:var(--space-4) 0;border-bottom:1px solid var(--border);display:flex;gap:var(--space-4);align-items:baseline;margin:0}
.cwp-bullets__dot{width:6px;height:6px;background:var(--accent);flex:none;transform:translateY(-2px)}
.cwp-people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}

/* Card grids */
.cwp-cards{display:grid}
.cwp-cards--numbered{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--space-5)}
.cwp-cards--numbered .cwp-cards__item{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}
.cwp-cards--numbered .cwp-eyebrow{margin:0}
.cwp-cards--grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}
.cwp-cards--grid .cwp-cards__item{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:40px;background:var(--surface-raised)}
.cwp-cards--grid .cwp-card-title{margin-bottom:var(--space-3)}
.cwp-cards--grid .cwp-body-sm{max-width:34em}

/* Burgundy statement */
.cwp-statement{background:var(--surface);color:var(--text);position:relative;overflow:hidden}
.cwp-statement__art{position:absolute;top:0;bottom:0;right:0;width:30%}
.cwp-statement__inner{position:relative;padding-top:var(--space-10);padding-bottom:var(--space-10)}
.cwp-statement__text{max-width:62%}
.cwp-statement__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--space-6)}

/* Page hero wrapper (prototype: burgundy strip that clears the header) */
.cwp-pagehero-wrap{background:var(--surface);padding-top:80px}

/* Events */
.cwp-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--space-6)}
.cwp-event .cwp-media{margin-bottom:var(--space-4)}
.cwp-event__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3)}
.cwp-event__meta .cwp-eyebrow{margin:0}
.cwp-event__meta .cwp-caption{font-size:14px}
.cwp-event .cwp-card-title{margin-bottom:var(--space-2)}

@media (max-width:1023px){
.cwp-statement__art{display:none}
.cwp-statement__text{max-width:none}
.cwp-statement__inner{padding-top:var(--space-9);padding-bottom:var(--space-9)}
}

/* Prototype fix: .cwp-band__inner / .cwp-pagehero__inner reset the container's side padding,
   so their text sat 80px left of every other section on desktop. Restore it. */
.cwp-container.cwp-band__inner,.cwp-container.cwp-pagehero__inner{padding-left:var(--page-margin-desktop);padding-right:var(--page-margin-desktop)}
@media (max-width:1023px){.cwp-container.cwp-band__inner,.cwp-container.cwp-pagehero__inner{padding-left:var(--page-margin-mobile);padding-right:var(--page-margin-mobile)}}

/* WordPress adds width/height attributes to <img>; let the prototype's aspect-ratio rules size them. */
img.cwp-media,img.cwp-person__photo{height:auto}

/* ===== Step 4: lawyers, practices, contact, legal, insights ===== */

/* Shared */
.cwp-media--4x5{aspect-ratio:4 / 5;object-position:center top}
.cwp-media--16x9{aspect-ratio:16 / 9}
.cwp-body--stack{margin-bottom:var(--space-4)}
.cwp-eyebrow--gap{margin-top:var(--space-8)}
.cwp-section-title--spaced{margin-bottom:var(--space-7)}
.cwp-link--plain{color:var(--text)}
.cwp-back{margin-top:var(--space-7)}
.cwp-breadcrumb{display:flex;flex-wrap:wrap;gap:var(--space-3);color:var(--text-muted)}
.cwp-breadcrumb a{color:var(--text)}
.cwp-pagehero-crumb{padding-top:40px}
.cwp-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:20px}
.cwp-chip{font:400 14px/1.2 var(--font-body);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;transition:border-color var(--duration-fast) var(--ease-standard)}
.cwp-chip:hover{color:var(--text);border-color:var(--accent)}
.cwp-iconlink{display:flex;gap:var(--space-3);align-items:center;color:var(--text)}
.cwp-iconlink__icon{color:var(--accent);display:inline-flex;flex:none}
.cwp-chip:focus-visible,.cwp-iconlink:focus-visible,.cwp-contact__row:focus-visible,.cwp-breadcrumb a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}

/* Lawyer directory */
.cwp-lawyer-list__intro{margin-bottom:var(--space-8)}
.cwp-lawyer-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:var(--space-7)}
.cwp-lawyer-list__lead{margin-top:var(--space-4);max-width:34em}
.cwp-lawyer-list__more{margin-top:28px}

/* Lawyer profile */
.cwp-profile-hero{background:var(--surface);color:var(--text);padding-top:80px}
.cwp-profile-hero__inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:var(--space-8);align-items:end;padding-top:var(--space-8);padding-bottom:var(--space-9)}
.cwp-profile-hero .cwp-breadcrumb{margin-bottom:40px}
.cwp-profile-hero .cwp-chips{margin-top:var(--space-5)}
.cwp-profile-hero__photo{justify-self:end;width:100%;max-width:400px}
.cwp-profile-hero__empty{border:3px solid var(--cream)}
/* Prototype used auto-fit/minmax(340px) with the main column spanning 2, which only fits the
   sidebar beside it from ~1310px wide; at 1280px it dropped below. Fixed 2:1 columns instead. */
.cwp-profile{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:var(--space-8);align-items:start}
.cwp-profile__main{min-width:0}
.cwp-rowlinks{border-top:1px solid var(--border)}
.cwp-rowlink{flex-direction:row;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid var(--border)}
.cwp-rowlink .cwp-arrow{margin-top:0}
.cwp-glance{background:var(--surface-tint);border-radius:var(--radius-sm);padding:var(--space-6);position:sticky;top:112px}
.cwp-glance__block{border-top:1px solid var(--border);padding:20px 0}
.cwp-glance__block .cwp-label{margin:0 0 var(--space-2)}
.cwp-glance__block .cwp-body-sm{color:var(--text)}
.cwp-glance__contact{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:0}
.cwp-glance__contact .cwp-label{margin:0}
.admin-bar .cwp-glance{top:144px}
@media (max-width:1023px){.cwp-profile{grid-template-columns:1fr}.cwp-glance{position:static}}

/* Practice directory */
.cwp-directory{border-top:1px solid var(--border)}
.cwp-directory__row{flex-direction:row;flex-wrap:wrap;gap:var(--space-5) var(--space-7);padding:40px 0;border-bottom:1px solid var(--border);align-items:flex-start}
.cwp-directory__n{margin:6px 0 0;width:40px;flex:none}
.cwp-directory__text{flex:1 1 360px;min-width:0}
.cwp-directory__text .cwp-subhead{margin-bottom:var(--space-3)}
.cwp-directory__text .cwp-body-sm{max-width:32em}
.cwp-directory__top{list-style:none;margin:0;padding:0;flex:1 1 240px;display:flex;flex-direction:column;gap:var(--space-2)}
.cwp-directory__top li{color:var(--text);padding-left:var(--space-4);border-left:1px solid var(--accent);margin:0}
.cwp-directory__arrow{margin-top:6px}
.cwp-directory__row:hover .cwp-subhead{color:var(--accent-hover)}
.cwp-others{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}
.cwp-others__item{background:var(--surface-raised);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--space-6);min-height:200px}
.cwp-others__item .cwp-card-title{margin-bottom:var(--space-3)}

/* Practice page */
.cwp-practice-figure{margin-top:var(--space-6)}
.cwp-matters{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));column-gap:var(--space-8);border-top:1px solid var(--border)}
.cwp-matters li{color:var(--text);max-width:none;padding:20px 0;border-bottom:1px solid var(--border);display:flex;gap:var(--space-4);align-items:baseline}
.cwp-matters .cwp-bullets__dot{transform:translateY(-3px)}
.cwp-caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--space-6)}
.cwp-caps__item{border-top:1px solid var(--border-strong);padding-top:var(--space-5)}
.cwp-caps__item .cwp-eyebrow,.cwp-caps__item .cwp-card-title{margin-bottom:var(--space-3)}

/* Contact */
.cwp-contact__title{margin-bottom:var(--space-6)}
.cwp-contact{border-top:1px solid var(--border)}
.cwp-contact__row{display:flex;gap:var(--space-4);padding:20px 0;border-bottom:1px solid var(--border);color:var(--text)}
.cwp-contact__row .cwp-body-sm{color:var(--text);margin:0}
.cwp-contact__hours{margin-top:var(--space-4)}
.cwp-media--office{aspect-ratio:16 / 10.6}

/* ===== G8: enquiry form and meeting request (prototype inline styles as classes) ===== */
[hidden]{display:none!important}
.cwp-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--space-5)}
.cwp-form__full,.cwp-form-grid>.cwp-msg,.cwp-form-grid>.cwp-turnstile{grid-column:1 / -1}
.cwp-consent{display:flex;flex-direction:column;gap:var(--space-2)}
.cwp-consent__label{display:flex;gap:var(--space-3);align-items:flex-start;color:var(--text);cursor:pointer;margin:0}
.cwp-consent__label input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--accent)}
.cwp-consent__link{border-bottom:1px solid currentColor}
.cwp-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cwp-form-success{background:var(--surface-tint);border-radius:var(--radius-sm);padding:var(--space-7)}
.cwp-form-success .cwp-subhead{margin-bottom:var(--space-4)}
.cwp-form-success .cwp-body{margin-bottom:var(--space-6)}
.cwp-form-success:focus{outline:none}
.cwp-form-grid button[disabled]{opacity:.6;cursor:progress}

.cwp-meeting{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}
.cwp-meeting__scrim{position:absolute;inset:0;background:var(--scrim)}
.cwp-meeting__panel{position:relative;width:min(1040px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-menu);animation:cwpFadeUp var(--duration-base) var(--ease-standard) both}
.cwp-meeting__head{display:flex;justify-content:space-between;gap:var(--space-5);padding:40px var(--space-7) var(--space-6);border-bottom:1px solid var(--border)}
.cwp-meeting__head .cwp-subhead{margin-bottom:var(--space-3)}
.cwp-meeting__note{max-width:36em}
.cwp-meeting__icon-btn{width:48px;height:48px;flex:none;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer}
.cwp-meeting__icon-btn[disabled]{opacity:.35;cursor:default}
.cwp-meeting__prev svg{transform:rotate(90deg)}
.cwp-meeting__next svg{transform:rotate(-90deg)}
.cwp-meeting__sent{padding:var(--space-6) var(--space-7) var(--space-7)}
.cwp-meeting__summary{margin:0 0 var(--space-6);border-top:1px solid var(--border)}
.cwp-meeting__summary div{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-5);padding:var(--space-4) 0;border-bottom:1px solid var(--border)}
.cwp-meeting__summary dt{width:160px}
.cwp-meeting__summary dd{margin:0;color:var(--text)}
.cwp-meeting__form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr))}
.cwp-meeting__col{padding:var(--space-6) var(--space-7) 40px}
.cwp-meeting__col--details{background:var(--surface-raised);border-left:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-5)}
.cwp-meeting__step{margin:0 0 var(--space-4)}
.cwp-meeting__step--gap{margin-top:var(--space-6)}
.cwp-meeting__step--sm{margin:0 0 var(--space-3)}
.cwp-meeting__tz{font-weight:400}
.cwp-meeting__month{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}
.cwp-meeting__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1)}
.cwp-meeting__wd{text-align:center;padding:6px 0;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.cwp-meeting__day,.cwp-meeting__time{height:48px;border:1px solid var(--border);background:var(--surface-raised);color:var(--text);border-radius:var(--radius-sm);font:400 15px/1 var(--font-body);cursor:pointer}
.cwp-meeting__day:hover,.cwp-meeting__time:hover{border-color:var(--accent)}
.cwp-meeting__day[aria-pressed="true"],.cwp-meeting__time[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--on-accent);font-weight:600}
.cwp-meeting__off{height:48px;display:flex;align-items:center;justify-content:center;color:var(--border-strong);font:400 15px/1 var(--font-body);opacity:.45}
.cwp-meeting__times{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--space-2)}
[data-cwp-field="slot"] .cwp-msg{margin-top:var(--space-3)}
.cwp-meeting__pills{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.cwp-meeting__pill{white-space:nowrap;min-height:48px;padding:0 var(--space-4);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);font:400 14px/1.2 var(--font-body);cursor:pointer}
.cwp-meeting__pill[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--on-accent);font-weight:600}
.cwp-meeting__details-label{margin:var(--space-2) 0 calc(-1 * var(--space-2))}
.cwp-meeting__pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--space-4)}
.cwp-meeting__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-5);border-top:1px solid var(--border)}
.cwp-meeting__when{color:var(--text);font-weight:600}
.cwp-meeting button:focus-visible,.cwp-consent input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@media (max-width:767px){
.cwp-meeting{padding:0}
.cwp-meeting__panel{max-height:100vh;height:100%;border-radius:0}
.cwp-meeting__head,.cwp-meeting__col,.cwp-meeting__sent{padding-left:var(--space-5);padding-right:var(--space-5)}
.cwp-meeting__col--details{border-left:0;border-top:1px solid var(--border)}
}

/* Rich text (legal pages, articles) */
.cwp-prose{max-width:760px}
.cwp-prose>*{margin:0 0 var(--space-4)}
.cwp-prose h2{font:var(--type-card-title-weight) var(--type-card-title-size)/var(--type-card-title-lh) var(--font-head);letter-spacing:var(--type-card-title-tracking);color:var(--heading);margin:40px 0 var(--space-3)}
.cwp-prose h3{font:600 18px/1.4 var(--font-body);color:var(--heading);margin:var(--space-6) 0 var(--space-2)}
.cwp-prose>:first-child{margin-top:0}
.cwp-prose p,.cwp-prose li{font:400 var(--type-body-size)/var(--type-body-lh) var(--font-body);color:var(--text-muted)}
.cwp-prose ul,.cwp-prose ol{padding-left:1.25em}
.cwp-prose a{color:var(--accent);border-bottom:1px solid currentColor}
.cwp-prose blockquote{border-left:2px solid var(--accent);padding-left:var(--space-5);font:400 24px/1.4 var(--font-head);color:var(--heading)}
@media (max-width:767px){.cwp-prose p,.cwp-prose li{font-size:var(--type-body-size-mobile)}}
/* Legal pages (prototype: each heading + paragraph block ends with 40px) */
.cwp-prose--legal>:last-child{margin-bottom:40px}

/* Insights */
.cwp-article__image{max-width:760px;margin-bottom:var(--space-7)}
.cwp-paging{display:flex;justify-content:space-between;gap:var(--space-5);margin-top:var(--space-8);font:600 15px/1.2 var(--font-body)}

/* 404 */
.cwp-notfound{background:var(--surface);padding-bottom:var(--space-9)}

/* Home hero credentials (cms-spec B1; no prototype design: kept quiet, under the buttons) */
.cwp-hero__credentials{list-style:none;margin:var(--space-6) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5)}
.cwp-hero__credentials li{color:var(--text-muted);letter-spacing:.04em;margin:0}

/* ---- Section blocks: Size & spacing tab and layout options (inc/blocks.php cwp_block_style) ----
 * Presets follow the design's own scale, with phone values. Custom px values arrive as CSS variables
 * on the section; on phones custom spacing shrinks to 60%, custom titles to 70% (hero titles capped
 * at 56px) and custom text is capped at 20px. Nothing here applies to a block left on its defaults. */

/* Space above / below */
.cwp-pt-none{--cwp-pt:0px}.cwp-pt-s{--cwp-pt:64px}.cwp-pt-l{--cwp-pt:160px}.cwp-pt-xl{--cwp-pt:200px}.cwp-pt-custom{--cwp-pt:var(--cwp-pt-px)}
.cwp-pb-none{--cwp-pb:0px}.cwp-pb-s{--cwp-pb:64px}.cwp-pb-l{--cwp-pb:160px}.cwp-pb-xl{--cwp-pb:200px}.cwp-pb-custom{--cwp-pb:var(--cwp-pb-px)}
@media (max-width:1023px){
.cwp-pt-s{--cwp-pt:40px}.cwp-pt-l{--cwp-pt:96px}.cwp-pt-xl{--cwp-pt:120px}.cwp-pt-custom{--cwp-pt:calc(var(--cwp-pt-px) * .6)}
.cwp-pb-s{--cwp-pb:40px}.cwp-pb-l{--cwp-pb:96px}.cwp-pb-xl{--cwp-pb:120px}.cwp-pb-custom{--cwp-pb:calc(var(--cwp-pb-px) * .6)}}
.cwp-section[class*="cwp-pt-"],.cwp-band[class*="cwp-pt-"] .cwp-band__inner,.cwp-statement[class*="cwp-pt-"] .cwp-statement__inner{padding-top:var(--cwp-pt)}
.cwp-section[class*="cwp-pb-"],.cwp-band[class*="cwp-pb-"] .cwp-band__inner,.cwp-statement[class*="cwp-pb-"] .cwp-statement__inner{padding-bottom:var(--cwp-pb)}

/* Title size */
.cwp-section-title{--cwp-tbase:var(--type-section-size)}.cwp-subhead{--cwp-tbase:var(--type-subhead-size)}.cwp-hero-title{--cwp-tbase:var(--type-hero-size)}
@media (min-width:1024px){.cwp-hero__inner .cwp-hero-title{--cwp-tbase:70px}}
@media (max-width:767px){.cwp-section-title{--cwp-tbase:var(--type-section-size-mobile)}.cwp-subhead{--cwp-tbase:var(--type-subhead-size-mobile)}.cwp-hero-title{--cwp-tbase:var(--type-hero-size-mobile)}}
.cwp-tsize-s{--cwp-ts:.8}.cwp-tsize-l{--cwp-ts:1.2}.cwp-tsize-xl{--cwp-ts:1.4}
:is(.cwp-tsize-s,.cwp-tsize-l,.cwp-tsize-xl) :is(.cwp-section-title,.cwp-subhead,.cwp-hero-title){font-size:calc(var(--cwp-tbase) * var(--cwp-ts))}
.cwp-tsize-custom :is(.cwp-section-title,.cwp-subhead,.cwp-hero-title){font-size:var(--cwp-title-px)}
@media (max-width:767px){
.cwp-tsize-custom :is(.cwp-section-title,.cwp-subhead){font-size:calc(var(--cwp-title-px) * .7)}
.cwp-tsize-custom .cwp-hero-title{font-size:min(calc(var(--cwp-title-px) * .7),56px)}}

/* Text size */
.cwp-body,.cwp-hero__sub{--cwp-xbase:var(--type-body-size)}.cwp-body-sm{--cwp-xbase:var(--type-body-sm-size)}
@media (max-width:767px){.cwp-body,.cwp-hero__sub{--cwp-xbase:var(--type-body-size-mobile)}}
.cwp-xsize-s{--cwp-xs:.9}.cwp-xsize-l{--cwp-xs:1.15}
:is(.cwp-xsize-s,.cwp-xsize-l) :is(.cwp-body,.cwp-hero__sub,.cwp-body-sm){font-size:calc(var(--cwp-xbase) * var(--cwp-xs))}
.cwp-xsize-custom :is(.cwp-body,.cwp-hero__sub){font-size:var(--cwp-text-px)}
.cwp-xsize-custom .cwp-body-sm{font-size:calc(var(--cwp-text-px) * .85)}
@media (max-width:767px){
.cwp-xsize-custom :is(.cwp-body,.cwp-hero__sub){font-size:min(var(--cwp-text-px),20px)}
.cwp-xsize-custom .cwp-body-sm{font-size:min(calc(var(--cwp-text-px) * .85),18px)}}

/* Gap under the title, content width */
.cwp-hgap-tight :is(.cwp-section-title,.cwp-hero-title,.cwp-subhead){margin-bottom:var(--space-3)}
.cwp-hgap-loose :is(.cwp-section-title,.cwp-hero-title,.cwp-subhead){margin-bottom:var(--space-7)}
.cwp-width-narrow .cwp-container{max-width:calc(880px + 2 * var(--page-margin-desktop))}
.cwp-width-wide .cwp-container{max-width:calc(1440px + 2 * var(--page-margin-desktop))}

/* Home hero: text position, height, alignment */
.cwp-hero--middle .cwp-hero__inner{justify-content:center;padding-bottom:var(--space-9)}
.cwp-hero--top .cwp-hero__inner{justify-content:flex-start;padding-top:calc(var(--header-height) + var(--space-9))}
.cwp-hero--medium{min-height:64vh}
.cwp-hero--compact{min-height:48vh}
.cwp-hero--center .cwp-hero__inner{align-items:center;text-align:center}
.cwp-hero--center .cwp-hero-title,.cwp-hero--center .cwp-hero__sub{margin-left:auto;margin-right:auto}
.cwp-hero--center .cwp-cta,.cwp-hero--center .cwp-hero__credentials{justify-content:center}
.cwp-hero--center .cwp-hero__scrim{background:linear-gradient(0deg,#2a0b07b3 0%,#2a0b0780 100%)}

/* Text and image: column widths */
.cwp-split--balanced{grid-template-columns:1fr 1fr}
.cwp-split--text-wide{grid-template-columns:6fr 4fr}
@media (max-width:767px){.cwp-split--balanced,.cwp-split--text-wide{grid-template-columns:1fr}}

/* Cards: centred heading, fixed columns */
.cwp-section--center>.cwp-container>:is(.cwp-eyebrow,.cwp-section-title,.cwp-section-intro){text-align:center}
.cwp-section--center .cwp-section-intro{margin-left:auto;margin-right:auto}
.cwp-cards--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cwp-cards--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:767px){.cwp-cards--cols-2,.cwp-cards--cols-3{grid-template-columns:1fr}}

/* ---- Request a Meeting with Google Calendar booking pages (inc/meetings.php, assets/js/booking.js) ----
 * Reuses the meeting dialog shell (.cwp-meeting__*). Step 1: choose a lawyer; step 2: their Google page. */
.cwp-booking__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--space-4);padding:var(--space-6) var(--space-7) 40px}
.cwp-booking__lawyer{display:flex;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4);text-align:left;font:inherit;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}
.cwp-booking__lawyer:hover{border-color:var(--accent)}
.cwp-booking__lawyer:hover .cwp-card-title{color:var(--accent-hover)}
.cwp-booking__photo{width:64px;height:80px;flex:none;object-fit:cover;border:2px solid var(--cream)}
.cwp-booking__who{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}
.cwp-booking__lawyer .cwp-arrow{flex:none}
.cwp-booking__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);padding:var(--space-4) var(--space-7);border-bottom:1px solid var(--border)}
.cwp-booking__bar button.cwp-link{background:none;border:0;border-bottom:1px solid currentColor;padding:0 0 var(--space-2);cursor:pointer}
.cwp-booking__bar button[hidden]{display:none}
.cwp-booking__frame iframe{display:block;width:100%;height:min(720px,calc(100vh - 260px));min-height:480px;border:0;background:#fff}
@media (max-width:767px){
.cwp-booking__list,.cwp-booking__bar{padding-left:var(--space-5);padding-right:var(--space-5)}
.cwp-booking__frame iframe{height:calc(100vh - 230px);min-height:420px}
}
