/* Content-specific adjustments; the captured typography, motion and breakpoints remain. */
.tel-mark { display:block; width:100%; height:100%; fill:currentColor; }
.header__logo .tel-mark { width:84px; height:38px; color:var(--c-font-primary); }
.header__logo { overflow:visible; }
.header__logo-items { fill:currentColor; }
.tel-footer-mark { width:110px; height:56px; margin-bottom:1.5rem; color:var(--c-font-primary); }
.loader__inner { position:relative; }
.loader { pointer-events:none; }
.tel-loader-mark { position:absolute; width:clamp(90px,12vw,180px); height:auto; right:7%; bottom:5%; }
.banner-hero__logo-items .tel-mark { width:100%; height:auto; opacity:.28; }
.tel-product-hero { display:grid; place-items:center; min-height:340px; background:#eae6e3; border-radius:2px; }
.tel-product-hero img { display:block; width:clamp(120px,25vw,240px); max-width:70%; height:auto; border-radius:18%; }
.tel-source-link { text-decoration:underline; text-underline-offset:.2em; }
.tel-location { display:grid; place-items:center; min-height:280px; padding:3rem; border:1px solid currentColor; text-align:center; }
.tel-location .tel-mark { max-width:260px; height:120px; margin-bottom:2rem; }
.tel-initials { display:flex; align-items:center; justify-content:center; aspect-ratio:2/3; font-size:clamp(48px,7vw,110px); background:var(--c-font-primary); color:var(--c-bg-primary); }
.tel-form-notice { margin:1.5rem 0; max-width:55rem; line-height:1.5; }
.tel-services-heading { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.tel-error { min-height:60vh; padding:clamp(120px,16vw,240px) 7vw 80px; }
.tel-error p { margin:2rem 0; max-width:42rem; }
.tel-legal { padding:clamp(140px,17vw,250px) 8vw 6rem; max-width:1100px; }
.tel-legal h1 { margin-bottom:3rem; }
.tel-legal p { margin:1.5rem 0; line-height:1.65; }
.tel-legal a { text-decoration:underline; }
@media (max-width:1023px) { body > .grid-works__filter-content { z-index:150; height:calc(100dvh - 20px); } }

/* Original team card dimensions, grid and reveal behavior are inherited unchanged. */
.tel-initials { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:var(--c-font-primary); color:var(--c-bg-primary); font-size:clamp(40px,7vw,110px); }
.tel-product-hero img { width:100%; max-width:none; height:auto; border-radius:0; }

/* Adaptive colors interpolate inherited tokens, preserving component motion. */
@property --c-bg-primary { syntax:"<color>"; inherits:true; initial-value:#08090A; }
@property --c-bg-primary-addon { syntax:"<color>"; inherits:true; initial-value:#08090A; }
@property --c-font-primary { syntax:"<color>"; inherits:true; initial-value:#FFF8F1; }
@property --c-font-secondary { syntax:"<color>"; inherits:true; initial-value:#08090A; }
@property --c-brand-primary { syntax:"<color>"; inherits:true; initial-value:#FFF8F1; }
@property --pos-ink { syntax:"<color>"; inherits:true; initial-value:#FFF8F1; }
@property --pos-muted { syntax:"<color>"; inherits:true; initial-value:#DDD1D0; }
@property --pos-accent { syntax:"<color>"; inherits:true; initial-value:#FF654E; }
@property --pos-accent-soft { syntax:"<color>"; inherits:true; initial-value:#FFC5B4; }
@property --pos-on-accent { syntax:"<color>"; inherits:true; initial-value:#171A20; }
@property --pos-outline { syntax:"<color>"; inherits:true; initial-value:#797572; }
body[data-theme] { --tel-color-duration:22s; transition:background-color var(--tel-color-duration) linear, color var(--tel-color-duration) linear, --c-bg-primary var(--tel-color-duration) linear, --c-bg-primary-addon var(--tel-color-duration) linear, --c-font-primary var(--tel-color-duration) linear, --c-font-secondary var(--tel-color-duration) linear, --c-brand-primary var(--tel-color-duration) linear, --pos-ink var(--tel-color-duration) linear, --pos-muted var(--tel-color-duration) linear, --pos-accent var(--tel-color-duration) linear, --pos-accent-soft var(--tel-color-duration) linear, --pos-on-accent var(--tel-color-duration) linear, --pos-outline var(--tel-color-duration) linear; }
body[data-theme].tel-theme-manual { --tel-color-duration:.45s; }
/* Token interpolation already animates the page surfaces and icon fills. */
body[data-theme] .page-wrap { transition-property:none; }
body[data-theme] .tel-poscore { display:block; width:100%; height:auto; overflow:hidden; }
picture:has(> .tel-poscore) { display:flex; align-items:center; justify-content:center; background:var(--c-bg-primary); }
.tel-product-hero:has(> .tel-poscore) { background:transparent; min-height:0; }
.page-details__picker { position:relative; pointer-events:auto; }
.tel-palette-toggle { display:grid; place-items:center; width:44px; height:44px; padding:3px; border:1px solid var(--c-font-primary); border-radius:50%; background:var(--c-bg-primary); cursor:pointer; }
.tel-palette-toggle span { display:block; width:100%; height:100%; border-radius:50%; background:conic-gradient(#08090A 0 25%, #006837 25% 50%, #E4E4E4 50% 75%, #FF6108 75%); }
.page-details__picker .tel-palette-panel { position:absolute; left:0; bottom:56px; width:min(290px, calc(100vw - 32px)); box-sizing:border-box; padding:18px; border:1px solid var(--c-font-primary); border-radius:8px; background:var(--c-bg-primary); color:var(--c-font-primary); font-size:14px; line-height:1.4; text-align:left; }
.tel-palette-panel[hidden] { display:none; }
.tel-swatches { display:flex; gap:12px; margin:14px 0; }
.tel-swatch { display:block; width:44px; height:44px; flex-shrink:0; border:2px solid var(--c-font-primary); border-radius:50%; background:var(--swatch); cursor:pointer; }
.tel-swatch[aria-pressed=true] { outline:2px solid var(--c-font-primary); outline-offset:3px; }
.tel-theme-resume { margin-top:12px; padding:9px 0; border:0; color:inherit; background:transparent; font:inherit; text-align:left; text-decoration:underline; cursor:pointer; }
.tel-palette-toggle:focus-visible, .tel-swatch:focus-visible, .tel-theme-resume:focus-visible { outline:3px solid var(--c-font-primary); outline-offset:4px; }
body[data-theme=light-gray] :is(.banner-hero__icon,.block-sun__bg-icon,.block-sun__item-icon,.block-team__description-icon,.footer__copyright-img,.single-text-icon__icon),
body[data-theme=orange] :is(.banner-hero__icon,.block-sun__bg-icon,.block-sun__item-icon,.block-team__description-icon,.footer__copyright-img,.single-text-icon__icon) { filter:brightness(0); }
@media (prefers-reduced-motion:reduce) { body[data-theme], body[data-theme].tel-theme-manual { --tel-color-duration:0s; } }

body[data-theme].tel-theme-initial { transition:none; }

.tel-palette-panel * { line-height:1.4; }
/* Keep the palette usable on mobile, where the historical wheel was menu-only. */
body[data-theme] .page-details .page-details__picker { opacity:1; }
body[data-theme] .page-details .page-details__picker * { pointer-events:auto; }
/* These existing controls retain their neutral surfaces across all palettes. */
body[data-theme] .grid-works__filter-btn-title,
body[data-theme] .grid-works__filter-content :is(.grid-works__filter-col-title,.grid-works__filter-label-title,.grid-works__filter-label-counter) { color:#FFF8F1; }
body[data-theme] .grid-works__filter-btn-trigger-title { color:#171A20; }
body[data-theme] ::selection { color:var(--c-bg-primary); background:var(--c-font-primary); }
body[data-theme] .work-tag { opacity:.85; }
