/* Alafkar Public Website / PublicWebsite — selected institutional design.
   Tokens follow the supplied institutional DESIGN.md; never applied to ERP surfaces. */
body:has(.pw-site) { margin: 0; }
.pw-site {
    --pw-cream: #fffdf9;
    --pw-subtle: #f8fafc;
    --pw-surface: #ffffff;
    --pw-tint: #eff4ff;
    --pw-ink: #0b1c30;
    --pw-muted: #45464d;
    --pw-navy: #0a0d17;
    --pw-navy-card: #161e31;
    --pw-indigo: #181445;
    --pw-amber: #f59e0b;
    --pw-amber-deep: #855300;
    --pw-orange: #ea580c;
    --pw-soft: #fef3c7;
    --pw-border: #f3e8d6;
    --pw-border-dark: #2e384d;
    --pw-on-dark: #eaf1ff;
    --pw-dark-muted: #bec6e0;
    --pw-error: #ba1a1a;
    --pw-space-xs: .25rem;
    --pw-space-sm: .5rem;
    --pw-space-md: 1rem;
    --pw-space-lg: 1.5rem;
    --pw-space-xl: 2.25rem;
    --pw-space-2xl: 3.5rem;
    --pw-space-3xl: 5rem;
    --pw-radius-sm: .5rem;
    --pw-radius-md: 1rem;
    --pw-radius-lg: 2rem;
    --pw-radius-xl: 3rem;
    --pw-pill: 9999px;
    --pw-shadow: 0 4px 20px -2px rgb(15 23 42 / .04), 0 2px 6px -1px rgb(245 158 11 / .03);
    --pw-shadow-high: 0 12px 32px -4px rgb(15 23 42 / .08), 0 4px 12px -2px rgb(217 119 6 / .06);
    --pw-shadow-amber: 0 10px 25px -3px rgb(245 158 11 / .25);
    --pw-border-glass: rgb(243 232 214 / .8);
    --pw-glass: rgb(255 253 249 / .94);
    --pw-focus: #855300;
    --pw-container: 80rem;
    --pw-gutter: 3rem;
    --pw-header-height: 7rem;
    --pw-motion-ease: cubic-bezier(.22, 1, .36, 1);
    --pw-reveal-duration: 800ms;
    --pw-hover-duration: 350ms;
    --pw-reveal-distance: 28px;
    --pw-card-lift: -8px;
    --pw-image-zoom: 1.04;
    --pw-mobile-image-duration: 1200ms;
    --pw-float-distance: -8px;
    --pw-float-duration: 6s;
    --pw-motion-highlight: color-mix(in srgb, var(--pw-amber) 16%, transparent);
    font-family: 'IBM Plex Sans Arabic', 'IBM Plex Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.85;
    color: var(--pw-ink);
    background: var(--pw-cream);
    min-block-size: 100vh;
    isolation: isolate;
    overflow-wrap: break-word;
    -webkit-font-smoothing: antialiased;
}
.pw-site *, .pw-site *::before, .pw-site *::after { box-sizing: border-box; }
.pw-site h1, .pw-site h2, .pw-site h3, .pw-site p, .pw-site figure, .pw-site blockquote { margin: 0; }
.pw-site a { color: inherit; text-decoration: none; }
.pw-site button, .pw-site input, .pw-site textarea, .pw-site select { font: inherit; }
.pw-site button, .pw-site summary { cursor: pointer; }
.pw-site img { display: block; max-inline-size: 100%; }
.pw-site a, .pw-site button, .pw-site summary { -webkit-tap-highlight-color: transparent; }
.pw-site :focus-visible { outline: 3px solid var(--pw-focus); outline-offset: 4px; }
/* Navigation focuses the non-interactive H1; retain focus without drawing a box. */
.pw-site h1[tabindex="-1"]:focus,
.pw-site h1[tabindex="-1"]:focus-visible { outline: none; }
.pw-site [id] { scroll-margin-block-start: var(--pw-header-height); }
.pw-site h1 { font-size: clamp(2.25rem, 3.8vw, 3.5rem); line-height: 1.45; font-weight: 700; }
.pw-site h2 { font-size: clamp(1.75rem, 2.6vw, 2.5rem); line-height: 1.5; font-weight: 700; }
.pw-site h3 { font-size: 1.25rem; line-height: 1.6; font-weight: 600; }
.pw-site p { color: var(--pw-muted); }
.pw-site p + p { margin-block-start: var(--pw-space-md); }
.pw-site small { font-size: .8125rem; }
.pw-container { inline-size: min(var(--pw-container), calc(100% - var(--pw-gutter) * 2)); margin-inline: auto; }
.pw-narrow { max-inline-size: 56rem; }
.pw-section { padding-block: var(--pw-space-3xl); }
.pw-tinted { background: var(--pw-subtle); }
.pw-centered { text-align: center; }
.pw-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: var(--pw-space-3xl); }
.pw-grid { display: grid; gap: var(--pw-space-lg); }
.pw-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pw-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pw-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pw-heading { margin-block-end: var(--pw-space-xl); }
.pw-heading p { margin-block-start: var(--pw-space-lg); font-size: 1.125rem; }
.pw-heading.pw-centered { max-inline-size: 48rem; margin-inline: auto; }
.pw-eyebrow { display: inline-flex; align-items: center; gap: var(--pw-space-sm); padding: var(--pw-space-xs) var(--pw-space-md); border-radius: var(--pw-pill); background: var(--pw-soft); color: var(--pw-amber-deep); font-size: .875rem; font-weight: 600; margin-block-end: var(--pw-space-lg); }
.pw-actions { display: flex; align-items: center; gap: var(--pw-space-md); flex-wrap: wrap; margin-block-start: var(--pw-space-xl); }
.pw-actions.pw-centered { justify-content: center; }
.pw-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--pw-space-sm); min-block-size: 3.25rem; padding: .75rem 1.75rem; border: 1px solid transparent; border-radius: var(--pw-pill); background: linear-gradient(115deg, var(--pw-amber), var(--pw-orange)); color: var(--pw-navy) !important; font-weight: 700; box-shadow: var(--pw-shadow-amber); transition: filter .2s ease; }
.pw-button:hover { filter: brightness(.94); }
.pw-button small { font-weight: 400; font-size: .6875rem; }
.pw-button-light { background: var(--pw-surface); border-color: var(--pw-border); box-shadow: none; }
.pw-button-outline { background: transparent; border-color: var(--pw-dark-muted); color: var(--pw-on-dark) !important; box-shadow: none; }
.pw-button:disabled { cursor: wait; opacity: .65; box-shadow: none; }
.pw-text-link { display: inline-flex; align-items: center; gap: var(--pw-space-sm); font-size: .9375rem; font-weight: 600; color: var(--pw-amber-deep) !important; text-underline-offset: .3em; }
.pw-text-link:hover { text-decoration: underline; }
.pw-card { padding: var(--pw-space-xl); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-lg); background: var(--pw-surface); box-shadow: var(--pw-shadow); min-inline-size: 0; }
.pw-card h3 { margin-block-end: var(--pw-space-sm); }
.pw-svg-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; inline-size: 1em; block-size: 1em; font-size: 24px; line-height: 1; vertical-align: middle; }
.pw-svg-icon > svg { display: block; inline-size: 1em; block-size: 1em; }
.pw-icon { display: inline-grid !important; place-items: center; inline-size: 3.5rem; block-size: 3.5rem; border-radius: var(--pw-radius-md); background: var(--pw-soft); color: var(--pw-amber-deep); margin-block-end: var(--pw-space-lg); font-size: 1.75rem !important; }
.pw-dark { background: radial-gradient(ellipse at top, var(--pw-indigo), transparent 70%), var(--pw-navy); color: var(--pw-on-dark); --pw-focus: var(--pw-amber); }
.pw-dark p { color: var(--pw-dark-muted); }
.pw-dark .pw-eyebrow { background: var(--pw-navy-card); color: var(--pw-amber); border: 1px solid var(--pw-border-dark); }
.pw-dark .pw-card { background: var(--pw-navy-card); border-color: var(--pw-border-dark); color: var(--pw-on-dark); box-shadow: none; }
.pw-dark .pw-icon { color: var(--pw-amber); background: var(--pw-navy); }
.pw-dark .pw-text-link { color: var(--pw-amber) !important; }
.pw-skip { position: fixed; inset-block-start: var(--pw-space-md); inset-inline-start: var(--pw-space-md); z-index: 100; padding: var(--pw-space-md); border-radius: var(--pw-radius-sm); background: var(--pw-surface); transform: translateY(-200%); }
.pw-skip:focus { transform: translateY(0); }
.pw-motion-toggle { min-inline-size: 8rem; background: transparent; color: var(--pw-amber); border: 1px solid var(--pw-border-dark); border-radius: var(--pw-pill); padding: var(--pw-space-xs) var(--pw-space-md); }
.pw-motion-toggle:disabled { cursor: default; color: var(--pw-dark-muted); }
.pw-motion-toggle[hidden] { display: inline-block; visibility: hidden; }
.pw-header { position: sticky; inset-block-start: 0; z-index: 40; padding-block: var(--pw-space-md); background: var(--pw-glass); backdrop-filter: blur(18px); }
.pw-header-inner { min-block-size: 5rem; display: flex; align-items: center; justify-content: space-between; gap: var(--pw-space-md); padding: var(--pw-space-sm) var(--pw-space-lg); border: 1px solid var(--pw-border-glass); border-radius: var(--pw-pill); box-shadow: var(--pw-shadow); background: var(--pw-surface); }
.pw-brand { display: inline-flex; align-items: center; gap: var(--pw-space-sm); min-inline-size: 0; }
.pw-brand > span:last-child { min-inline-size: 0; }
.pw-brand strong { display: block; font-size: 1.0625rem; overflow-wrap: anywhere; }
.pw-brand small { display: block; color: var(--pw-muted); font-size: .6875rem; }
.pw-brand-mark { display: grid; place-items: center; flex-shrink: 0; inline-size: 2.75rem; block-size: 2.75rem; border-radius: var(--pw-radius-md); background: var(--pw-navy); color: var(--pw-amber); font-size: 1.75rem; font-weight: 700; }
.pw-brand-mark img { inline-size: 2rem; block-size: 2rem; object-fit: contain; }
.pw-desktop-nav { display: flex; align-items: center; gap: var(--pw-space-xs); }
.pw-desktop-nav a { border-radius: var(--pw-pill); padding: var(--pw-space-sm) .875rem; font-size: .875rem; white-space: nowrap; }
.pw-desktop-nav a:hover, .pw-desktop-nav a[aria-current=page] { background: var(--pw-soft); color: var(--pw-amber-deep); }
.pw-desktop-nav a[aria-current=page] { font-weight: 600; }
.pw-header-cta { padding-inline: var(--pw-space-lg); min-block-size: 2.75rem; font-size: .875rem; }
.pw-header-cta small { display: none; }
.pw-header-login { display: inline-grid; place-items: center; flex: 0 0 2.75rem; inline-size: 2.75rem; block-size: 2.75rem; border: 1px solid var(--pw-border); border-radius: var(--pw-pill); background: var(--pw-surface); color: var(--pw-ink); }
.pw-header-login:hover { background: var(--pw-soft); color: var(--pw-amber-deep); }
.pw-mobile-nav { display: none; position: relative; }
.pw-mobile-nav summary { display: flex; align-items: center; gap: var(--pw-space-sm); padding: var(--pw-space-sm) var(--pw-space-md); border-radius: var(--pw-pill); background: var(--pw-soft); font-size: .875rem; list-style: none; }
.pw-mobile-nav summary::-webkit-details-marker { display: none; }
.pw-mobile-nav[open] summary { border: 1px solid var(--pw-amber); }
.pw-mobile-nav nav { position: absolute; inset-inline-end: 0; inset-block-start: calc(100% + var(--pw-space-md)); min-inline-size: 16rem; max-inline-size: calc(100vw - 3rem); display: grid; padding: var(--pw-space-md); background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-md); box-shadow: var(--pw-shadow-high); }
.pw-mobile-nav a { padding: var(--pw-space-sm) var(--pw-space-md); border-radius: var(--pw-radius-sm); }
.pw-mobile-nav a[aria-current=page] { background: var(--pw-soft); color: var(--pw-amber-deep); }
.pw-hero { padding-block: var(--pw-space-2xl) var(--pw-space-3xl); background: radial-gradient(ellipse at 25% 40%, var(--pw-soft), transparent 55%), linear-gradient(var(--pw-cream), var(--pw-subtle)); }
.pw-home-hero .pw-split { gap: var(--pw-space-2xl); }
.pw-hero .pw-heading { margin-block-end: 0; }
.pw-hero-art { position: relative; border-radius: var(--pw-radius-xl); padding: var(--pw-space-md); background: var(--pw-soft); margin-block: var(--pw-space-lg); }
.pw-hero-image { overflow: hidden; border-radius: var(--pw-radius-lg); }
.pw-hero-image > img { inline-size: 100%; block-size: 32rem; border-radius: var(--pw-radius-lg); object-fit: cover; }
.pw-art-caption { position: absolute; inset-block-end: var(--pw-space-3xl); inset-inline: var(--pw-space-xl); display: flex; align-items: center; gap: var(--pw-space-md); padding: var(--pw-space-md); background: var(--pw-glass); border-radius: var(--pw-radius-md); backdrop-filter: blur(10px); }
.pw-art-caption .pw-icon { margin: 0; flex-shrink: 0; }
.pw-art-caption strong, .pw-art-caption small { display: block; }
.pw-floating-stat { position: absolute; inset-block-start: var(--pw-space-xl); inset-inline-start: calc(-1 * var(--pw-space-lg)); display: flex; align-items: center; gap: var(--pw-space-md); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-md); background: var(--pw-surface); padding: var(--pw-space-md) var(--pw-space-lg); box-shadow: var(--pw-shadow-high); }
.pw-floating-stat strong { font-size: 3rem; color: var(--pw-amber-deep); line-height: 1; }
.pw-floating-stat span { font-size: .8125rem; }
.pw-hero-trust { display: flex; align-items: center; gap: var(--pw-space-md); margin-block-start: var(--pw-space-xl); }
.pw-hero-trust > span { color: var(--pw-amber-deep); font-size: 2rem; }
.pw-hero-trust p { font-size: .8125rem; }
.pw-hero-trust strong { font-weight: 500; }
.pw-metric-band { padding-block: var(--pw-space-xl); background: var(--pw-tint); border-block: 1px solid var(--pw-border); }
.pw-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--pw-space-lg); text-align: center; }
.pw-metrics > div { display: grid; gap: var(--pw-space-sm); }
.pw-metrics > div + div { border-inline-start: 1px solid var(--pw-border); }
.pw-metrics strong { font-size: 2.25rem; font-weight: 700; line-height: 1.4; color: var(--pw-amber-deep); font-variant-numeric: tabular-nums; }
.pw-metrics span { color: var(--pw-muted); font-size: .9375rem; }
.pw-dark .pw-metrics strong { color: var(--pw-amber); }
.pw-dark .pw-metrics span { color: var(--pw-dark-muted); }
.pw-dark .pw-metrics > div + div { border-color: var(--pw-border-dark); }
.pw-story-visual { border-radius: var(--pw-radius-lg); padding: var(--pw-space-2xl); }
.pw-story-visual h2 { font-size: clamp(2rem, 3vw, 3rem); margin-block-end: var(--pw-space-lg); }
.pw-mini-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pw-space-md); border-block-start: 1px solid var(--pw-border-dark); padding-block-start: var(--pw-space-lg); margin-block-start: var(--pw-space-2xl); }
.pw-mini-metrics strong { display: block; color: var(--pw-amber); font-size: 2rem; }
.pw-mini-metrics span { font-size: .8125rem; color: var(--pw-dark-muted); }
.pw-split > div > .pw-text-link { margin-block-start: var(--pw-space-lg); }
.pw-service-card { display: flex; flex-direction: column; align-items: start; }
.pw-service-card p { flex-grow: 1; }
.pw-service-card .pw-text-link { margin-block-start: var(--pw-space-lg); }
.pw-section-top { display: flex; align-items: center; justify-content: space-between; gap: var(--pw-space-lg); margin-block-end: var(--pw-space-xl); }
.pw-section-top .pw-heading { margin: 0; }
.pw-project-card { border-radius: var(--pw-radius-lg); overflow: hidden; border: 1px solid var(--pw-border); background: var(--pw-surface); box-shadow: var(--pw-shadow); }
.pw-project-image { position: relative; }
.pw-project-icon { block-size: 15rem; display: grid; place-items: center; background: var(--pw-soft); color: var(--pw-amber-deep); }
.pw-project-icon .pw-svg-icon { font-size: 5rem; }
.pw-service-achievement { color: var(--pw-amber-deep) !important; font-weight: 600; margin-block: var(--pw-space-lg) !important; }
.pw-project-image img { inline-size: 100%; block-size: 15rem; object-fit: cover; }
.pw-project-category { position: absolute; inset-block-start: var(--pw-space-md); inset-inline-start: var(--pw-space-md); padding: var(--pw-space-xs) var(--pw-space-md); border-radius: var(--pw-pill); background: var(--pw-soft); color: var(--pw-amber-deep); font-size: .8125rem; font-weight: 600; }
.pw-project-copy { padding: var(--pw-space-lg); }
.pw-project-copy > small { color: var(--pw-muted); }
.pw-project-copy h3 { margin-block: var(--pw-space-sm); }
.pw-project-copy p { font-size: .9375rem; }
.pw-project-figure { display: block; color: var(--pw-amber-deep); font-size: 1.375rem; margin-block-start: var(--pw-space-md); }
.pw-section-action { margin-block-start: var(--pw-space-xl); }
.pw-faq { display: grid; gap: var(--pw-space-md); }
.pw-faq details { border: 1px solid var(--pw-border); border-radius: var(--pw-radius-md); background: var(--pw-surface); }
.pw-faq summary { display: flex; align-items: center; justify-content: space-between; gap: var(--pw-space-lg); padding: var(--pw-space-lg); list-style: none; font-weight: 600; }
.pw-faq summary::-webkit-details-marker { display: none; }
.pw-faq summary > span { color: var(--pw-amber-deep); font-size: 1.5rem; }
.pw-faq details[open] { border-color: var(--pw-amber); }
.pw-faq details[open] summary > span { transform: rotate(45deg); }
.pw-faq details p { padding: 0 var(--pw-space-lg) var(--pw-space-lg); }
.pw-cta { border-radius: var(--pw-radius-lg); padding: var(--pw-space-2xl); text-align: center; }
.pw-cta h2 { max-inline-size: 48rem; margin-inline: auto; }
.pw-cta p { margin-block-start: var(--pw-space-lg); }
.pw-cta .pw-actions { justify-content: center; }
.pw-feature-image { position: relative; border-radius: var(--pw-radius-lg); overflow: hidden; background: var(--pw-navy); }
.pw-feature-image img { inline-size: 100%; block-size: 30rem; object-fit: cover; }
.pw-feature-image figcaption { position: absolute; inset-block-end: 0; inset-inline: 0; padding: var(--pw-space-xl); background: linear-gradient(transparent, var(--pw-navy)); color: var(--pw-on-dark); font-size: 1.25rem; font-weight: 600; }
.pw-step { display: inline-grid; place-items: center; inline-size: 3.5rem; block-size: 3.5rem; border-radius: var(--pw-radius-md); background: var(--pw-soft); color: var(--pw-amber-deep); font-size: 1.25rem; font-weight: 700; margin-block-end: var(--pw-space-lg); }
.pw-dark .pw-step { background: var(--pw-navy); color: var(--pw-amber); }
.pw-quote { padding-inline-start: var(--pw-space-xl); border-inline-start: 1px solid var(--pw-border-dark); }
.pw-quote-mark { color: var(--pw-amber); font-size: 5rem; line-height: 1; }
.pw-signature { font-size: 1.25rem; color: var(--pw-on-dark) !important; }
.pw-signature small { display: block; color: var(--pw-dark-muted); }
.pw-vision { background: var(--pw-soft); }
.pw-team-numbers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pw-space-lg); text-align: center; }
.pw-team-numbers .pw-card:first-child { grid-column: 1 / -1; }
.pw-team-numbers strong { display: block; font-size: 3rem; color: var(--pw-amber-deep); }
.pw-team-numbers .pw-dark strong { color: var(--pw-amber); }
.pw-service-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pw-space-md); padding: var(--pw-space-lg); border-radius: var(--pw-radius-lg); background: var(--pw-surface); border: 1px solid var(--pw-border); box-shadow: var(--pw-shadow); margin-block-start: calc(-1 * var(--pw-space-xl)); position: relative; }
.pw-service-tabs a { display: flex; align-items: center; gap: var(--pw-space-sm); padding: var(--pw-space-sm); border-radius: var(--pw-radius-sm); font-size: .875rem; }
.pw-service-tabs a:hover { background: var(--pw-soft); }
.pw-service-tabs .pw-svg-icon { color: var(--pw-amber-deep); }
.pw-service-list { display: grid; gap: var(--pw-space-3xl); }
.pw-service-detail { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: var(--pw-space-2xl); }
.pw-service-detail:nth-child(even) .pw-service-copy { order: 2; }
.pw-service-copy h2 { font-size: 1.75rem; margin-block-end: var(--pw-space-md); }
.pw-service-visual { border-radius: var(--pw-radius-lg); overflow: hidden; background: var(--pw-subtle); }
.pw-service-visual img { inline-size: 100%; block-size: 24rem; object-fit: cover; }
.pw-check-list { display: grid; gap: var(--pw-space-sm); list-style: none; padding: 0; margin-block: var(--pw-space-lg); }
.pw-check-list li { display: flex; align-items: baseline; gap: var(--pw-space-sm); }
.pw-check-list li > span { color: var(--pw-amber-deep); font-weight: 700; }
.pw-filters { display: flex; flex-wrap: wrap; gap: var(--pw-space-sm); }
.pw-filters button { padding: .625rem var(--pw-space-lg); border: 1px solid var(--pw-border); border-radius: var(--pw-pill); color: var(--pw-ink); background: var(--pw-surface); }
.pw-filters button[aria-pressed=true] { background: var(--pw-navy); border-color: var(--pw-navy); color: var(--pw-on-dark); }
.pw-filter-status { font-size: .875rem; padding-block: var(--pw-space-lg); }
.pw-location-panel { padding: var(--pw-space-2xl); border-radius: var(--pw-radius-lg); border: 1px solid var(--pw-border); background: radial-gradient(circle, var(--pw-soft), var(--pw-surface)); text-align: center; }
.pw-location-icon { font-size: 4rem !important; color: var(--pw-amber-deep); margin-block-end: var(--pw-space-md); }
.pw-location-panel .pw-text-link { margin-block-start: var(--pw-space-lg); }
.pw-partner-emblem { display: flex; flex-direction: column; align-items: center; padding: var(--pw-space-2xl); border-radius: var(--pw-radius-xl); text-align: center; }
.pw-partner-emblem > .pw-svg-icon { font-size: 5rem; color: var(--pw-amber); }
.pw-partner-emblem strong { font-size: 5rem; line-height: 1.5; font-variant-numeric: tabular-nums; }
.pw-partner-emblem .pw-eyebrow { margin-block-start: var(--pw-space-xl); margin-block-end: 0; }
.pw-contact-section { padding-block-start: var(--pw-space-xl); }
.pw-contact-grid { grid-template-columns: .85fr 1.15fr; align-items: start; gap: var(--pw-space-2xl); }
.pw-contact-card { display: flex; align-items: start; gap: var(--pw-space-lg); padding: var(--pw-space-lg); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-md); background: var(--pw-surface); margin-block-end: var(--pw-space-lg); }
.pw-contact-card .pw-icon { flex-shrink: 0; margin: 0; }
.pw-contact-card h2 { font-size: 1.125rem; margin-block-end: var(--pw-space-sm); }
.pw-contact-value { display: block; font-size: 1.125rem; text-align: start; overflow-wrap: anywhere; }
.pw-contact-card .pw-text-link { font-size: .8125rem; margin-block-start: var(--pw-space-sm); }
.pw-contact-help { padding: var(--pw-space-xl); border-radius: var(--pw-radius-lg); }
.pw-contact-help h2, .pw-form-card h2 { font-size: 1.75rem; margin-block-end: var(--pw-space-md); }
.pw-contact-help .pw-button { margin-block-start: var(--pw-space-lg); }
.pw-form { margin-block-start: var(--pw-space-xl); }
.pw-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pw-space-md); }
.pw-form label { display: block; font-weight: 600; font-size: .875rem; margin-block-end: var(--pw-space-sm); }
.pw-form label > span { color: var(--pw-error); }
.pw-form label small { font-weight: 400; color: var(--pw-muted); }
.pw-form input, .pw-form textarea { inline-size: 100%; min-inline-size: 0; padding: .875rem var(--pw-space-md); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-md); background: var(--pw-subtle); color: var(--pw-ink); margin-block-end: var(--pw-space-lg); }
.pw-form textarea { resize: vertical; }
.pw-form input:focus, .pw-form textarea:focus { outline: 2px solid var(--pw-focus); outline-offset: 2px; }
.pw-form input::placeholder, .pw-form textarea::placeholder { color: var(--pw-muted); opacity: 1; }
.pw-form-notice { display: flex; align-items: start; gap: var(--pw-space-sm); font-size: .8125rem; margin-block-end: var(--pw-space-lg) !important; }
.pw-form-notice .pw-svg-icon { font-size: 1.25rem; color: var(--pw-amber-deep); flex-shrink: 0; }
.pw-form-error { color: var(--pw-error) !important; margin-block-end: var(--pw-space-md) !important; }
.pw-form-handoff { padding: var(--pw-space-md); background: var(--pw-soft); border-radius: var(--pw-radius-md); margin-block-start: var(--pw-space-lg); }
.pw-form-handoff p { font-size: .875rem; }
.pw-proposal-form select { inline-size: 100%; padding: .875rem var(--pw-space-md); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-md); background: var(--pw-subtle); color: var(--pw-ink); margin-block-end: var(--pw-space-lg); }
.pw-service-options { border: 0; padding: 0; margin: 0 0 var(--pw-space-lg); min-inline-size: 0; }
.pw-service-options legend { font-weight: 600; font-size: .875rem; }
.pw-service-options legend > span { color: var(--pw-error); }
.pw-service-options > p { font-size: .8125rem; margin-block-end: var(--pw-space-md); }
.pw-form .pw-service-option { display: flex; align-items: center; gap: var(--pw-space-sm); padding: var(--pw-space-sm) var(--pw-space-md); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-sm); background: var(--pw-subtle); cursor: pointer; }
.pw-form .pw-service-option input { flex-shrink: 0; inline-size: 1.25rem; block-size: 1.25rem; min-inline-size: 0; padding: 0; margin: 0; accent-color: var(--pw-amber-deep); }
.pw-proposal-form [aria-invalid="true"] { border-color: var(--pw-error); }
.pw-footer { background: var(--pw-navy); color: var(--pw-on-dark); padding-block: var(--pw-space-2xl) var(--pw-space-lg); --pw-focus: var(--pw-amber); }
.pw-footer-grid { display: grid; grid-template-columns: 1.5fr .8fr 1.2fr 1.2fr; gap: var(--pw-space-xl); }
.pw-footer h2 { font-size: 1rem; margin-block-end: var(--pw-space-lg); }
.pw-footer-grid > nav > a, .pw-footer-grid > div > a:not(.pw-brand) { display: block; font-size: .8125rem; padding-block: var(--pw-space-xs); }
.pw-footer p, .pw-footer small { color: var(--pw-dark-muted); font-size: .8125rem; }
.pw-footer .pw-brand { margin-block-end: var(--pw-space-lg); }
.pw-footer .pw-brand small { color: var(--pw-dark-muted); font-size: .6875rem; }
.pw-footer .pw-brand-mark { background: var(--pw-navy-card); }
.pw-footer a:hover { color: var(--pw-amber); }
.pw-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--pw-space-lg); padding-block-start: var(--pw-space-lg); margin-block-start: var(--pw-space-2xl); border-block-start: 1px solid var(--pw-border-dark); }
.pw-footer-bottom nav { display: flex; flex-wrap: wrap; gap: var(--pw-space-lg); font-size: .6875rem; }
.pw-not-found { min-block-size: 55vh; display: grid; align-items: center; }
.pw-not-found p { margin-block: var(--pw-space-lg) var(--pw-space-xl); }
.pw-reconnect { min-block-size: 0; inline-size: min(24rem, calc(100vw - 2rem)); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-lg); padding: var(--pw-space-xl); box-shadow: var(--pw-shadow-high); }
.pw-reconnect:not([open]) { display: none; }
.pw-reconnect::backdrop { background: rgb(10 13 23 / .55); }
.pw-reconnect-content { text-align: center; }
.pw-reconnect .pw-button { margin-block-start: var(--pw-space-lg); }
.pw-reconnect .components-reconnect-first-attempt-visible,
.pw-reconnect .components-reconnect-repeated-attempt-visible,
.pw-reconnect .components-reconnect-failed-visible,
.pw-reconnect .components-pause-visible,
.pw-reconnect .components-resume-failed-visible { display: none; }
.pw-reconnect.components-reconnect-show .components-reconnect-first-attempt-visible,
.pw-reconnect.components-reconnect-retrying .components-reconnect-repeated-attempt-visible,
.pw-reconnect.components-reconnect-failed .components-reconnect-failed-visible,
.pw-reconnect.components-reconnect-paused .components-pause-visible,
.pw-reconnect.components-reconnect-resume-failed .components-resume-failed-visible { display: block; }
@media (min-width: 1500px) { .pw-site { --pw-gutter: 5rem; } }
@media (max-width: 1279px) {
    .pw-desktop-nav { display: none; }
    .pw-mobile-nav { display: block; }
    .pw-header-cta { margin-inline-start: auto; }
}
@media (max-width: 1199px) {
    .pw-split { gap: var(--pw-space-xl); }
    .pw-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pw-hero-image > img { block-size: 28rem; }
    .pw-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
    .pw-site { --pw-gutter: 1.5rem; --pw-header-height: 6rem; }
    .pw-section { padding-block: var(--pw-space-2xl); }
    .pw-split, .pw-service-detail { grid-template-columns: 1fr; }
    .pw-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pw-home-hero .pw-split { gap: var(--pw-space-xl); }
    .pw-hero-image > img { block-size: 25rem; }
    .pw-floating-stat { inset-inline-start: var(--pw-space-xl); }
    .pw-service-detail:nth-child(even) .pw-service-copy { order: initial; }
    .pw-service-visual img { block-size: 22rem; }
    .pw-service-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pw-feature-image img { block-size: 25rem; }
    .pw-contact-grid { gap: var(--pw-space-xl); }
    .pw-quote { padding-inline-start: 0; border-inline-start: 0; }
    .pw-footer-bottom { align-items: start; flex-direction: column; }
    .pw-partner-emblem { max-inline-size: 32rem; inline-size: 100%; margin-inline: auto; }
}
@media (max-width: 560px) {
    .pw-site { --pw-gutter: 1rem; }
    .pw-header { padding-block: var(--pw-space-sm); }
    .pw-header-inner { padding-inline: var(--pw-space-sm); gap: var(--pw-space-sm); min-block-size: 4.5rem; }
    .pw-header-cta { display: none; }
    .pw-header-login { margin-inline-start: auto; }
    .pw-mobile-nav { flex-shrink: 0; }
    .pw-mobile-nav summary { padding-inline: var(--pw-space-sm); }
    .pw-brand strong { font-size: .9375rem; }
    .pw-brand small { font-size: .625rem; }
    .pw-grid-2, .pw-grid-3, .pw-grid-4, .pw-form-row { grid-template-columns: 1fr; }
    .pw-hero { padding-block: var(--pw-space-xl) var(--pw-space-2xl); }
    .pw-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--pw-space-xl); }
    .pw-metrics strong { font-size: 1.75rem; }
    .pw-metrics span { font-size: .8125rem; }
    .pw-metrics > div:nth-child(3) { border-inline-start: 0; }
    .pw-card, .pw-story-visual, .pw-location-panel, .pw-contact-help { padding: var(--pw-space-lg); }
    .pw-section-top { align-items: start; flex-direction: column; }
    .pw-cta { padding: var(--pw-space-xl) var(--pw-space-lg); }
    .pw-actions > .pw-button { inline-size: 100%; }
    .pw-hero-image > img { block-size: 23rem; }
    .pw-art-caption { inset-inline: var(--pw-space-lg); gap: var(--pw-space-sm); }
    .pw-art-caption .pw-icon { inline-size: 2.75rem; block-size: 2.75rem; }
    .pw-art-caption strong { font-size: .9375rem; }
    .pw-art-caption small { font-size: .6875rem; }
    .pw-service-tabs { padding: var(--pw-space-sm); gap: var(--pw-space-sm); }
    .pw-service-tabs a { font-size: .8125rem; }
    .pw-service-tabs .pw-svg-icon { display: none; }
    .pw-service-visual img { block-size: 18rem; }
    .pw-contact-card { gap: var(--pw-space-md); padding: var(--pw-space-md); }
    .pw-contact-card .pw-icon { inline-size: 2.75rem; block-size: 2.75rem; }
    .pw-contact-value { font-size: 1rem; }
    .pw-footer-grid { grid-template-columns: 1fr; gap: var(--pw-space-xl); }
    .pw-form > .pw-button { inline-size: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .pw-site *, .pw-site *::before, .pw-site *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Optional motion: reveal translation composes with card tilt; hero tilt is image-only. */
.pw-site[data-pw-motion-state="active"] [data-pw-motion] {
    opacity: 1;
    transform: perspective(1100px) translateY(calc(var(--pw-reveal-y, 0px) + var(--pw-lift-y, 0px))) rotateX(var(--pw-tilt-x, 0deg)) rotateY(var(--pw-tilt-y, 0deg));
    transition: opacity var(--pw-reveal-duration) var(--pw-motion-ease) var(--pw-reveal-delay, 0ms), transform var(--pw-reveal-duration) var(--pw-motion-ease) var(--pw-reveal-delay, 0ms), box-shadow var(--pw-hover-duration) ease;
}
.pw-site[data-pw-motion-state="active"] .pw-motion-pending { opacity: 0; --pw-reveal-y: var(--pw-reveal-distance); }
.pw-site [data-pw-motion]:focus-within { opacity: 1 !important; --pw-reveal-y: 0px; transition-delay: 0ms !important; }
.pw-site [data-pw-motion="card"] { position: relative; }
.pw-site [data-pw-motion="card"]::after {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    background: radial-gradient(circle at var(--pw-pointer-x, 50%) var(--pw-pointer-y, 50%), var(--pw-motion-highlight), transparent 65%);
    opacity: 0; transition: opacity var(--pw-hover-duration) ease;
}
.pw-motion-image-clip, .pw-project-image { overflow: hidden; }
.pw-feature-image figcaption, .pw-project-category { z-index: 1; }
.pw-site[data-pw-motion-state="active"] [data-pw-motion="hero"] { transform: translateY(var(--pw-reveal-y, 0px)); }
.pw-site[data-pw-motion-state="active"] .pw-hero-image > img {
    transform: perspective(1100px) rotateX(var(--pw-tilt-x, 0deg)) rotateY(var(--pw-tilt-y, 0deg));
    transition: transform 700ms var(--pw-motion-ease);
}
.pw-site[data-pw-motion-state="active"] .pw-art-caption,
.pw-site[data-pw-motion-state="active"] .pw-floating-stat {
    animation: pw-float var(--pw-float-duration) ease-in-out infinite;
    animation-play-state: paused;
}
.pw-site[data-pw-motion-state="active"] .pw-floating-stat { animation-delay: -3s; }
.pw-site[data-pw-motion-state="active"] .pw-motion-in-view .pw-art-caption,
.pw-site[data-pw-motion-state="active"] .pw-motion-in-view .pw-floating-stat { animation-play-state: running; }
.pw-site.pw-motion-tab-hidden .pw-art-caption,
.pw-site.pw-motion-tab-hidden .pw-floating-stat { animation-play-state: paused !important; }
@keyframes pw-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(var(--pw-float-distance)); } }
@media (hover: hover) and (pointer: fine) {
    .pw-site[data-pw-motion-state="active"] [data-pw-motion="card"].pw-motion-hover {
        --pw-lift-y: var(--pw-card-lift); box-shadow: var(--pw-shadow-high);
        transition-duration: var(--pw-reveal-duration), var(--pw-hover-duration), var(--pw-hover-duration); transition-delay: 0ms;
    }
    .pw-site[data-pw-motion-state="active"] .pw-motion-hover::after { opacity: 1; }
    .pw-site[data-pw-motion-state="active"] [data-pw-motion="card"] .pw-icon { transition: transform var(--pw-hover-duration) var(--pw-motion-ease); }
    .pw-site[data-pw-motion-state="active"] .pw-motion-hover > .pw-icon { transform: rotate(-6deg) scale(1.06); }
    .pw-site[data-pw-motion-state="active"] [data-pw-motion="image"] img,
    .pw-site[data-pw-motion-state="active"] .pw-project-image img { transition: transform 700ms var(--pw-motion-ease); }
    .pw-site[data-pw-motion-state="active"] [data-pw-motion="image"]:hover img,
    .pw-site[data-pw-motion-state="active"] .pw-project-card:hover img { transform: scale(var(--pw-image-zoom)); }
}
@media (hover: none), (pointer: coarse) {
    .pw-site[data-pw-motion-state="active"] .pw-mobile-image-enter {
        animation: pw-mobile-image-enter var(--pw-mobile-image-duration) var(--pw-motion-ease) both;
    }
}
.pw-site.pw-motion-tab-hidden .pw-mobile-image-enter { animation-play-state: paused !important; }
@keyframes pw-mobile-image-enter {
    from { transform: scale(var(--pw-image-zoom)); }
    to { transform: scale(1); }
}
.pw-site[data-pw-motion-state="paused"] [data-pw-motion],
.pw-site[data-pw-motion-state="paused"] [data-pw-motion] img,
.pw-site[data-pw-motion-state="paused"] [data-pw-motion] .pw-icon,
.pw-site[data-pw-motion-state="paused"] .pw-art-caption,
.pw-site[data-pw-motion-state="paused"] .pw-floating-stat { opacity: 1; transform: none; animation: none; transition: none; }
.pw-site[data-pw-motion-state="paused"] [data-pw-motion]::after { opacity: 0; transition: none; }
.pw-site[data-pw-motion-state="paused"] *,
.pw-site[data-pw-motion-state="paused"] *::before,
.pw-site[data-pw-motion-state="paused"] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
@media (prefers-reduced-motion: reduce) {
    .pw-site [data-pw-motion], .pw-site [data-pw-motion] img, .pw-site [data-pw-motion] .pw-icon,
    .pw-site .pw-art-caption, .pw-site .pw-floating-stat { opacity: 1 !important; transform: none !important; animation: none !important; }
    .pw-site [data-pw-motion]::after { opacity: 0 !important; }
}
