/*
 * CWP component classes (cwp-*).
 * Extracted verbatim from _reference/CWP_Website.html (prototype). Asset URLs rewritten to theme files.
 */
/* CWP component classes (prefix cwp-). Mirrors the source system's components/bundle.css. */
.cwp-root,.cwp-root *{box-sizing:border-box}
.cwp-root{font:400 var(--type-body-size)/var(--type-body-lh) var(--font-body);color:var(--text);-webkit-font-smoothing:antialiased}
[data-theme]{color:var(--text)}
.cwp-btn:focus-visible,.cwp-link:focus-visible,.cwp-arrow:focus-visible,.cwp-card:focus-visible,.cwp-input:focus-visible,.cwp-nav a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}

/* Layout */
.cwp-container{max-width:calc(var(--container-max) + 2 * var(--page-margin-desktop));margin:0 auto;padding:0 var(--page-margin-desktop)}
.cwp-section{background:var(--surface);color:var(--text);padding:var(--section-padding-desktop) 0}
.cwp-section--tint{background:var(--surface-tint)}
.cwp-split{display:grid;grid-template-columns:4fr 6fr;gap:var(--space-8);align-items:center}
.cwp-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-5);margin-bottom:var(--gap-heading-content)}
.cwp-head-row .cwp-section-title{margin-bottom:0}

/* Type */
.cwp-eyebrow{font:var(--type-eyebrow-weight) var(--type-eyebrow-size)/var(--type-eyebrow-lh) var(--font-body);letter-spacing:var(--type-eyebrow-tracking);text-transform:uppercase;color:var(--eyebrow);margin:0 0 var(--gap-eyebrow-headline)}
.cwp-eyebrow--line{display:flex;align-items:center;gap:var(--space-3);text-transform:none;letter-spacing:0;font-weight:400;font-size:14px}
.cwp-eyebrow--line::before{content:"";width:1px;height:20px;background:currentColor}
.cwp-hero-title{font:var(--type-hero-weight) var(--type-hero-size)/var(--type-hero-lh) var(--font-head);letter-spacing:var(--type-hero-tracking);text-transform:uppercase;color:var(--heading);margin:0 0 var(--gap-headline-body);text-wrap:balance}
.cwp-section-title{font:var(--type-section-weight) var(--type-section-size)/var(--type-section-lh) var(--font-head);letter-spacing:var(--type-section-tracking);text-transform:uppercase;color:var(--heading);margin:0 0 var(--gap-headline-body);text-wrap:balance}
.cwp-subhead{font:var(--type-subhead-weight) var(--type-subhead-size)/var(--type-subhead-lh) var(--font-head);letter-spacing:var(--type-subhead-tracking);color:var(--heading);margin:0}
.cwp-card-title{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:0}
.cwp-body{font:400 var(--type-body-size)/var(--type-body-lh) var(--font-body);color:var(--text-muted);margin:0;max-width:34em;text-wrap:pretty}
.cwp-body-sm{font:400 var(--type-body-sm-size)/var(--type-body-sm-lh) var(--font-body);color:var(--text-muted);margin:0;text-wrap:pretty}
.cwp-caption{font:400 var(--type-caption-size)/var(--type-caption-lh) var(--font-body);color:var(--text-muted);margin:0}
.cwp-cjk-name{font:var(--type-cjk-name-weight) 0.88em/1 var(--font-cjk);letter-spacing:var(--type-cjk-name-tracking);margin-left:var(--space-3)}
.cwp-cta{margin-top:var(--gap-body-cta);display:flex;flex-wrap:wrap;gap:var(--space-5);align-items:center}

/* Buttons & links */
.cwp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-min-height);padding:var(--space-3) 28px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font:var(--type-button-weight) var(--type-button-size)/var(--type-button-lh) var(--font-body);letter-spacing:var(--type-button-tracking);text-decoration:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}
.cwp-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.cwp-btn--secondary{background:transparent;color:var(--accent);border-color:var(--accent)}
.cwp-btn--secondary:hover{background:transparent;color:var(--accent-hover);border-color:var(--accent-hover)}
.cwp-btn--on-media.cwp-btn--secondary{color:var(--text);border-color:var(--text)}
.cwp-btn[disabled],.cwp-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;pointer-events:none}
.cwp-link{display:inline-flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid currentColor;color:var(--accent);font:var(--type-button-weight) var(--type-button-size)/var(--type-button-lh) var(--font-body);letter-spacing:var(--type-button-tracking);text-decoration:none;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard)}
.cwp-link:hover{color:var(--accent-hover)}
.cwp-link--caps{text-transform:uppercase;letter-spacing:.08em;font-size:14px}
.cwp-link svg,.cwp-arrow svg{transition:transform var(--duration-base) var(--ease-standard)}
.cwp-link:hover svg,.cwp-arrow:hover svg,.cwp-card:hover .cwp-arrow svg{transform:translateX(4px)}
.cwp-arrow{display:inline-flex;color:var(--accent);line-height:0}
.cwp-icon{display:inline-block;flex:none;vertical-align:middle}

/* Logos (CSS urls resolve relative to this file) */
.cwp-logo{display:block;background:no-repeat left center/contain;flex:none}
.cwp-logo--horizontal-en{aspect-ratio:540.15/283.72;background-image:url("../img/logo/logo-horizontal-en.svg")}
.cwp-logo--horizontal-zh{aspect-ratio:462.9/283.72;background-image:url("../img/logo/logo-horizontal-zh.svg")}
.cwp-logo--horizontal-wordmark{aspect-ratio:462.9/283.72;background-image:url("../img/logo/logo-horizontal-wordmark.svg")}
.cwp-logo--vertical-en{aspect-ratio:363.78/435.63;background-image:url("../img/logo/logo-vertical-en.svg")}
.cwp-logo--vertical-zh{aspect-ratio:286.51/435.22;background-image:url("../img/logo/logo-vertical-zh.svg")}
.cwp-logo--vertical-wordmark{aspect-ratio:286.51/401.58;background-image:url("../img/logo/logo-vertical-wordmark.svg")}
.cwp-logo--mark{aspect-ratio:141.9/283.8;background-image:url("../img/logo/logo-mark.svg")}
.cwp-logo--cream.cwp-logo--horizontal-en{background-image:url("../img/logo/logo-horizontal-en-cream.svg")}
.cwp-logo--cream.cwp-logo--horizontal-zh{background-image:url("../img/logo/logo-horizontal-zh-cream.svg")}
.cwp-logo--cream.cwp-logo--horizontal-wordmark{background-image:url("../img/logo/logo-horizontal-wordmark-cream.svg")}
.cwp-logo--cream.cwp-logo--vertical-en{background-image:url("../img/logo/logo-vertical-en-cream.svg")}
.cwp-logo--cream.cwp-logo--vertical-zh{background-image:url("../img/logo/logo-vertical-zh-cream.svg")}
.cwp-logo--cream.cwp-logo--vertical-wordmark{background-image:url("../img/logo/logo-vertical-wordmark-cream.svg")}
.cwp-logo--cream.cwp-logo--mark{background-image:url("../img/logo/logo-mark-cream.svg")}

/* Pattern + imagery */
.cwp-pattern{background:#71150c url("../img/pattern.svg") top left/192px 360px repeat}
.cwp-media{display:block;width:100%;object-fit:cover;background:var(--cream-light)}
.cwp-media--framed{border:3px solid var(--cream)}
.cwp-img-default{background:var(--cream-light) url("../img/imagery/img-default.webp") center/cover no-repeat}

/* Hero */
.cwp-hero{position:relative;min-height:var(--hero-height);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);color:var(--text)}
.cwp-hero__media{position:absolute;inset:0;background-size:cover;background-position:center}
.cwp-hero__video{position:absolute;top:0;left:0;width:125%;height:125%;object-fit:cover;transform-origin:top left}
.cwp-hero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,var(--scrim) 0%,#2a0b0780 45%,#2a0b0700 75%),linear-gradient(0deg,#2a0b0799 0%,#2a0b0700 60%)}
.cwp-hero__inner{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-top:var(--header-height);padding-bottom:var(--space-10);width:100%}
.cwp-hero__inner .cwp-hero-title{max-width:12em}
.cwp-hero__sub{font:400 var(--type-body-size)/var(--type-body-lh) var(--font-body);color:var(--text-muted);margin:0;max-width:32em}
@media (prefers-reduced-motion:reduce){.cwp-hero__video{display:none}}

/* Page hero + closing band */
.cwp-pagehero,.cwp-band{position:relative;background:var(--surface);color:var(--text);overflow:hidden}
.cwp-pagehero__inner{padding:var(--space-9) 0;position:relative}
.cwp-pagehero__inner .cwp-hero-title{max-width:10.5em}
.cwp-pagehero__art{position:absolute;top:0;bottom:0;right:0;width:34%}
.cwp-band__inner{padding:var(--space-10) 0;position:relative}
.cwp-band__inner .cwp-section-title{max-width:11em}
.cwp-band__art{position:absolute;top:0;bottom:0;right:0;width:38%}
.cwp-pagehero__text,.cwp-band__text{max-width:58%}

/* Story */
.cwp-story__sentence{font:400 40px/1.2 var(--font-head);letter-spacing:0;color:var(--heading);margin:0;text-wrap:pretty}
.cwp-story__window{aspect-ratio:var(--ratio-window);width:100%;max-width:360px}

/* Cards */
.cwp-practice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}
.cwp-card{text-decoration:none;color:inherit;display:flex;flex-direction:column}
.cwp-practice{background:var(--surface-raised);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--space-6);min-height:230px;gap:var(--space-3);transition:background-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}
.cwp-practice:hover{background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent)}
.cwp-practice .cwp-arrow{margin-top:auto;align-self:flex-end}
.cwp-person{gap:0}
.cwp-person__photo{aspect-ratio:var(--ratio-person);width:100%;object-fit:cover;object-position:center top;display:block;margin-bottom:var(--space-5)}
.cwp-person__photo--empty{background:#71150c url("../img/pattern.svg") top left/192px 360px repeat}
.cwp-person__name{display:inline;background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size var(--duration-base) var(--ease-standard)}
.cwp-person:hover .cwp-person__name{background-size:100% 1px}
.cwp-person .cwp-body-sm{margin-top:var(--space-2);font-size:15px}
.cwp-person-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
.cwp-insight__img{aspect-ratio:var(--ratio-wide);width:100%;object-fit:cover;display:block;margin-bottom:var(--space-4)}
.cwp-insight__meta{display:flex;gap:var(--space-4);align-items:baseline;margin-bottom:var(--space-2)}
.cwp-insight__meta .cwp-eyebrow{margin:0}
.cwp-insight .cwp-arrow{margin-top:var(--space-4)}
.cwp-insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}

/* Header */
.cwp-header{position:relative;z-index:10;height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);color:var(--text)}
.cwp-header--over{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,#2a0b07cc 0%,#2a0b0700 100%);border-bottom-color:transparent}
.cwp-header__inner{height:100%;display:flex;align-items:center;gap:var(--space-7)}
.cwp-header__inner .cwp-logo{height:44px}
.cwp-nav{display:flex;gap:var(--space-6);margin-left:auto}
.cwp-nav a{font:var(--type-nav-weight) var(--type-nav-size)/var(--type-nav-lh) var(--font-body);letter-spacing:var(--type-nav-tracking);color:var(--text);text-decoration:none;padding:var(--space-2) 0;border-bottom:1px solid transparent;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard)}
.cwp-nav a:hover{border-bottom-color:var(--border-strong)}
.cwp-nav a[aria-current="page"]{border-bottom-color:var(--accent)}
.cwp-header .cwp-btn{min-height:44px}
.cwp-header__menu{display:none;width:48px;height:48px;align-items:center;justify-content:center;background:none;border:0;color:var(--accent);cursor:pointer;margin-left:auto}

/* Footer */
.cwp-footer{background:var(--surface);color:var(--text);padding:var(--space-9) 0 var(--space-6)}
.cwp-footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--gutter-desktop)}
.cwp-footer__brand .cwp-logo{height:96px;margin-bottom:var(--space-5)}
.cwp-footer__brand .cwp-caption{font-size:14px;line-height:1.45;color:var(--text-muted)}
.cwp-footer__col{display:flex;flex-direction:column;gap:var(--space-3)}
.cwp-footer__col .cwp-eyebrow{margin-bottom:var(--space-3)}
.cwp-footer__col a{font:400 16px/1.4 var(--font-body);color:var(--text);text-decoration:none;cursor:pointer}
.cwp-footer__col a:hover{text-decoration:underline;text-underline-offset:4px}
.cwp-footer__legal{margin-top:var(--space-9);padding-top:var(--space-5);border-top:1px solid var(--border)}

/* Form field */
.cwp-field{display:flex;flex-direction:column;gap:var(--space-2)}
.cwp-label{font:var(--type-label-weight) var(--type-label-size)/var(--type-label-lh) var(--font-body);color:var(--text)}
.cwp-input{width:100%;min-height:var(--control-min-height);padding:var(--space-3) var(--space-4);background:var(--surface-raised);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:400 16px/1.4 var(--font-body);transition:border-color var(--duration-fast) var(--ease-standard)}
.cwp-input::placeholder{color:var(--text-muted)}
textarea.cwp-input{min-height:144px;resize:vertical}
.cwp-input[aria-invalid="true"]{border:2px solid var(--error);padding:11px 15px}
.cwp-help{font:400 14px/1.5 var(--font-body);color:var(--text-muted);letter-spacing:.01em;margin:0}
.cwp-msg{display:flex;gap:var(--space-3);align-items:flex-start;font:600 14px/1.45 var(--font-body);margin:0}
.cwp-msg .cwp-icon{margin-top:-1px}
.cwp-msg--error{color:var(--error)}
.cwp-msg--success{color:var(--success)}

/* Responsive */
@media (max-width:1023px){
.cwp-container{padding:0 var(--page-margin-mobile)}
.cwp-section{padding:var(--section-padding-mobile) 0}
.cwp-nav,.cwp-header .cwp-btn{display:none}
.cwp-header__menu{display:inline-flex}
.cwp-pagehero__art,.cwp-band__art{display:none}
.cwp-pagehero__text,.cwp-band__text{max-width:none}
.cwp-practice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cwp-footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
.cwp-split{grid-template-columns:1fr;gap:var(--space-7)}
.cwp-hero-title{font-size:var(--type-hero-size-mobile)}
.cwp-section-title{font-size:var(--type-section-size-mobile)}
.cwp-body{font-size:var(--type-body-size-mobile)}
.cwp-practice-grid,.cwp-person-grid,.cwp-insight-grid{grid-template-columns:1fr}
.cwp-footer__grid{grid-template-columns:1fr}
.cwp-head-row{flex-direction:column;align-items:flex-start}
}
