/* Readability and interaction refinement — shared by preview and WordPress. */
:root {
  --muted: #b5b6c7;
  --reading-ink: #505365;
  --reading-body: 17px;
}
body { font-size: var(--reading-body); line-height: 1.65; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.v3-container, .container { width: min(1360px, calc(100% - 80px)); }
section[id] { scroll-margin-top: 120px; }
.v3-eyebrow { font-size: 12px; letter-spacing: 1.6px; line-height: 1.5; }
.brand-v3 small { font-size: 8px; letter-spacing: 1.5px; }
.v3-navigation { gap: 22px; padding: 5px 20px; }
.v3-navigation a { display: flex; align-items: center; min-height: 44px; font-size: 14px; color: #d0d0dd; }
.header-plan { font-size: 15px; min-height: 48px; gap: 12px; }
.mobile-toggle { width: 44px; height: 44px; flex-shrink: 0; }
.mobile-navigation a { font-size: 18px; min-height: 56px; }
.v3-button, .button { font-size: 15px; min-height: 54px; padding: 16px 22px; gap: 20px; }
.v3-text-link, .inline-link { font-size: 15px; min-height: 46px; gap: 15px; }
.future-hero-actions .v3-text-link { font-size: 15px; }
.future-hero h1 { font-size: clamp(60px, 6.2vw, 92px); line-height: 1.05; }
.future-hero-copy > p { font-size: 18px; line-height: 1.75; color: #c4c4d2; max-width: 43ch; }
.future-hero-actions { flex-wrap: wrap; gap: 18px 24px; }
.hero-footline > span { font-size: 13px; color: #aaaabd; gap: 7px; }
.hero-footline { gap: 12px 18px; margin-top: 28px; }
.stage-label { font-size: 11px; letter-spacing: 1.1px; }
.scene-detail { width: 295px; padding: 20px; background: #1b1d29ed; }
.scene-detail > span { font-size: 11px; letter-spacing: 1px; }
.scene-detail strong { font-size: 20px; line-height: 1.35; }
.scene-detail p { font-size: 14px; line-height: 1.6; color: #bcbccd; max-width: none; }
.scene-detail a { min-width: 44px; min-height: 44px; display: grid; place-items: center; }
.scene-options button { font-size: 13px; min-height: 44px; color: #b6b7ca; gap: 6px; }
.scene-options button > span { font-size: 11px; }
.stage-caption { font-size: 10px; letter-spacing: .7px; color: #a0a1b6; }
.room-hotspot { min-width: 44px; min-height: 44px; }
.expertise-ticker span { font-size: 15px; }
.v3-section-heading { gap: 40px; align-items: flex-end; }
.v3-section-heading h2 { font-size: clamp(40px, 4.1vw, 60px); line-height: 1.12; letter-spacing: -2px; }
.v3-section-heading > p { font-size: 17px; line-height: 1.7; max-width: 43ch; }
.light-surface .v3-section-heading > p, .light-surface .v3-eyebrow { color: #5c5f70; }
.needs-grid { grid-template-rows: minmax(285px, auto) minmax(285px, auto); gap: 20px; }
.need-caption { bottom: 28px; left: 28px; right: 28px; padding-right: 44px; }
.need-caption h3 { font-size: 28px; line-height: 1.2; max-width: 25ch; }
.need-home h3 { font-size: 38px; max-width: 12ch; }
.need-kitchen h3 { font-size: 34px; max-width: 24ch; }
.need-caption p { font-size: 16px; line-height: 1.55; color: #f0f0f6; max-width: 38ch; }
.need-scrim { background: linear-gradient(0deg, #10111bf5 0%, #10111b9c 42%, transparent 83%); }
.need-tag { font-size: 11px; letter-spacing: 1px; padding: 8px 12px; }
.need-number { font-size: 12px; }
.need-go { width: 44px; height: 44px; }
.needs-bottom { font-size: 15px; gap: 24px; line-height: 1.6; }
.needs-bottom > a { min-height: 44px; }
.mood-workspace { gap: 48px; }
.mood-tabs strong { font-size: 23px; }
.mood-tabs button { min-height: 64px; }
.mood-tabs button > span { font-size: 13px; }
.mood-story h3 { font-size: 30px; line-height: 1.3; }
.mood-story p { font-size: 17px; line-height: 1.75; color: #c1c0d0; max-width: 48ch; }
.mood-tags span { font-size: 13px; }
.mood-story .v3-text-link { font-size: 15px; }
.mood-image-label { font-size: 11px; }
.mood-visual-note { font-size: 10px; }
.directory-toolbar { align-items: flex-start; gap: 24px; }
.category-tabs { gap: 8px; }
.category-tabs button { font-size: 14px; min-height: 46px; padding: 10px 16px; color: #505365; }
.category-tabs button > span { font-size: 12px; opacity: .85; }
.directory-search { width: 235px; flex-shrink: 0; min-height: 46px; padding: 10px 4px; }
.directory-search input { font-size: 16px; }
.directory-search:focus-within { border-color: #6461d2; box-shadow: 0 2px #6461d2; }
.directory-search button { min-width: 36px; min-height: 36px; display: grid; place-items: center; }
.directory-list { gap: 16px; }
.directory-item { padding: 25px 22px; gap: 14px; min-height: 180px; }
.directory-item > div { min-width: 0; }
.directory-item h3 { font-size: 21px; line-height: 1.35; letter-spacing: -.5px; }
.directory-item p { font-size: 16px; line-height: 1.65; color: var(--reading-ink); max-width: none; }
.service-index { font-size: 12px; margin-top: 6px; color: #73768a; }
.directory-item > svg { width: 20px; height: 20px; flex-shrink: 0; }
.directory-footer { font-size: 15px; color: #5c5e71; flex-wrap: wrap; }
.directory-footer button { font-size: 15px; min-height: 46px; margin-left: auto; }
.directory-results, [data-service-count] { font-size: 14px; color: #595c70; margin: 0 0 18px; }
.empty-state { font-size: 17px; line-height: 1.65; }
.empty-state button { font-size: 15px; min-height: 44px; }
.product-introduction > p, .product-detail p { font-size: 17px; line-height: 1.75; color: #bcbdd0; }
.product-introduction > p { max-width: 42ch; }
.product-top { font-size: 12px; letter-spacing: 1px; }
.product-tabs { gap: 8px; }
.product-tabs button { font-size: 14px; min-height: 46px; padding: 10px 14px; line-height: 1.4; }
.product-detail h3 { font-size: 30px; line-height: 1.25; }
.product-tags span { font-size: 13px; line-height: 1.5; }
.product-detail .inline-link { font-size: 15px; }
.product-note { font-size: 14px; line-height: 1.65; color: #b2b3c5; }
.product-photo > span { font-size: 10px; }
.material-caption, .material-chip span { font-size: 10px; }
.customer-steps h3 { font-size: 27px; line-height: 1.3; }
.customer-steps p, .price-panel p { font-size: 17px; line-height: 1.75; color: var(--reading-ink); }
.customer-steps small { font-size: 12px; letter-spacing: 1px; }
.price-panel h3 { font-size: 28px; line-height: 1.3; }
.price-link { font-size: 15px; min-height: 46px; }
.regions-layout > div > p { font-size: 17px; line-height: 1.75; max-width: 43ch; color: #bdbed0; }
.region-note { font-size: 14px; color: #b2b3c5; line-height: 1.6; }
.city-explorer-top, .city-search > span, .city-selected > div > span { font-size: 11px; color: #b3b4c8; letter-spacing: .8px; }
.city-search input { font-size: 17px; min-height: 44px; }
.city-tags { max-height: 230px; gap: 9px; }
.city-tags button { font-size: 14px; min-height: 46px; padding: 9px 14px; color: #c2c3d3; }
.all-cities { font-size: 14px; color: #b9bacd; }
.all-cities select { font-size: 16px; min-height: 48px; max-width: 190px; padding: 8px; }
.city-selected strong { font-size: 28px; }
.city-selected strong > span { font-size: 15px; line-height: 1.55; color: #b4b5c8; }
.city-selected button { width: 48px; height: 48px; flex-shrink: 0; }
.journal-meta, .journal-image > span { font-size: 11px; }
.journal-card h3 { font-size: 26px; line-height: 1.35; }
.faq-list summary { font-size: 19px; line-height: 1.5; min-height: 64px; gap: 24px; }
.faq-list details > p { font-size: 17px; line-height: 1.75; color: #b9bacd; max-width: 68ch; }
.v3-brief-copy > p { font-size: 18px; line-height: 1.75; max-width: 40ch; color: #c1bacf; }
.brief-grid { grid-template-columns: .85fr 1.15fr; gap: 60px; align-items: start; }
.brief-checks { flex-wrap: wrap; gap: 10px 18px; }
.brief-checks span { font-size: 14px; color: #c0b5cc; }
.brief-builder { padding: 36px; min-width: 0; }
.brief-progress { font-size: 12px; letter-spacing: 1px; color: #62596e; gap: 18px; }
.brief-progress > div > span { width: 32px; height: 32px; font-size: 12px; }
.brief-progress > div > span.active { background: #6956a0; border-color: #6956a0; }
.step-caption { font-size: 12px; color: #686074; }
.brief-step h3 { font-size: 30px; line-height: 1.3; max-width: none; margin-bottom: 24px; scroll-margin-top: 140px; }
.brief-step h3:focus { outline: none; }
.brief-step label { font-size: 13px; line-height: 1.5; color: #514b60; letter-spacing: .3px; margin-top: 22px; }
.brief-step input, .brief-step select, .brief-step textarea { font-size: 16px; line-height: 1.5; min-height: 54px; padding: 14px; color: #302b40; border-color: #bbb5cc; transition: border-color .16s, box-shadow .16s; }
.brief-step input:focus, .brief-step select:focus, .brief-step textarea:focus { outline: none; border-color: #7060ad; box-shadow: 0 0 0 3px #7060ad24; }
.brief-step textarea { min-height: 150px; }
.brief-step input[type="checkbox"] { accent-color: #6956a0; }
.field-helper { font-size: 14px; line-height: 1.65; color: #5e586d; margin-top: 14px; }
.brief-navigation { gap: 20px; flex-wrap: wrap; }
.brief-navigation > span { font-size: 14px; color: #655c73; }
.brief-navigation .button, .brief-result-actions .button { font-size: 15px; min-height: 52px; padding: 14px 20px; }
.brief-navigation .button, .brief-result-actions .button.dark { background: #6956a0; }
.brief-back { font-size: 15px; min-height: 44px; color: #5c4b77; }
.brief-local-note { font-size: 13px; line-height: 1.7; max-width: none; color: #655c73; }
.brief-success, [data-lead-feedback] { font-size: 15px; line-height: 1.65; color: #51445e; padding: 16px; }
.brief-result { font-size: 15px !important; line-height: 1.7 !important; color: #51445e !important; }
#dv-collection-notice { font-size: 14px; line-height: 1.65; color: #5e586d; }
.brief-step label:has(input[name="consent"]) { font-size: 14px; letter-spacing: 0; }
.brief-result-actions { gap: 12px; }
.brief-result-actions .inline-link { color: #5e4b82; }
.v3-partner { font-size: 15px; line-height: 1.6; color: #b1a8bd; }
.v3-partner a { min-height: 44px; }
.footer-top > div > p { font-size: 16px; line-height: 1.75; color: #b4afc2; max-width: 38ch; }
.footer-top { display: grid; grid-template-columns: .8fr 1.6fr; gap: 60px; }
.footer-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.footer-links > div { font-size: 15px; line-height: 1.55; }
.footer-links > div > a { padding-block: 6px; min-height: 36px; overflow-wrap: anywhere; }
.footer-links > div > span { font-size: 12px; letter-spacing: 1px; color: #aaa2b7; }
.footer-links .footer-cta { font-size: 24px; line-height: 1.35; }
.footer-bottom { font-size: 13px; line-height: 1.6; gap: 24px; }
.detail-intro { font-size: 19px; line-height: 1.75; max-width: 64ch; }
.detail-hero .eyebrow, .breadcrumbs { font-size: 13px; line-height: 1.6; }
.detail-content > div > p, .article-sections p { font-size: 18px; line-height: 1.8; color: #b9afc6; max-width: 68ch; }
.detail-content h2, .article-sections h2 { font-size: 36px; line-height: 1.25; }
.scope-list > div, .product-items-grid > div { font-size: 16px; line-height: 1.7; }
.related-services a { font-size: 17px; min-height: 60px; line-height: 1.5; }
.editorial-aside, .detail-photo > span { font-size: 12px; line-height: 1.65; }
.detail-cta p, .detail-cta .button { font-size: 16px; }
@media (max-width: 1100px) {
  .v3-navigation { display: none; }
  .mobile-toggle { display: grid; place-items: center; }
  .v3-header-inner { height: 84px; gap: 18px; }
  .header-plan { display: flex; margin-left: auto; }
  .directory-toolbar { flex-direction: column; }
  .directory-search { width: 100%; }
  .directory-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .needs-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; grid-auto-rows: minmax(340px, auto); }
  .need-home, .need-kitchen, .need-business, .need-building { grid-column: auto; grid-row: auto; height: auto; }
  .need-caption h3, .need-home h3, .need-kitchen h3 { font-size: 31px; }
  .mood-workspace { gap: 30px; }
  .brief-grid { gap: 36px; grid-template-columns: .8fr 1.2fr; }
  .product-detail { grid-template-columns: 1fr; }
  .product-photo { height: 240px; }
  .footer-top { grid-template-columns: 1fr; gap: 40px; }
}
@media (min-width: 1101px) { .mobile-navigation { display: none; } }
@media (max-width: 800px) {
  .v3-container, .container { width: calc(100% - 48px); }
  .future-hero, .future-hero-grid { min-height: 0; }
  .future-hero-grid { grid-template-columns: 1fr; gap: 20px; }
  .future-hero-copy { width: 100%; padding-top: 44px; }
  .future-hero h1 { white-space: normal; font-size: clamp(60px, 10.5vw, 80px); max-width: 100%; }
  .future-hero-copy > p { max-width: 52ch; }
  .architecture-stage { height: 600px; width: 100%; max-width: 680px; margin-inline: auto; }
  .v3-section-heading { display: block; }
  .v3-section-heading > p { margin-top: 24px; max-width: 52ch; }
  .mood-workspace, .regions-layout, .brief-grid, .products-layout { grid-template-columns: 1fr; gap: 36px; }
  .mood-image { min-height: 420px; }
  .v3-brief-copy h2 { max-width: 13ch; font-size: 50px; }
  .v3-brief-copy > p { max-width: 52ch; }
  .journal-grid { gap: 18px; }
  .journal-card h3 { font-size: 22px; }
  .footer-links { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 640px) {
  :root { --reading-body: 16px; }
  .v3-container, .container { width: calc(100% - 36px); }
  .v3-header-inner { height: 76px; gap: 10px; }
  .brand-v3 { font-size: 20px; gap: 9px; }
  .brand-v3-mark { width: 23px; height: 27px; }
  .brand-v3 small { font-size: 7px; letter-spacing: 1px; }
  .header-plan { display: flex; font-size: 14px; gap: 8px; }
  .header-plan svg { width: 16px; }
  .v3-eyebrow { font-size: 11px; letter-spacing: 1.2px; }
  .future-hero-grid { gap: 8px; }
  .future-hero-copy { padding-top: 38px; padding-bottom: 10px; }
  .future-hero h1 { font-size: clamp(49px, 14vw, 60px); letter-spacing: -2.8px; }
  .future-hero h1 > span:first-of-type { font-size: 1.12em; letter-spacing: -2px; }
  .future-hero-copy > p { font-size: 17px; line-height: 1.7; margin-top: 24px; }
  .future-hero-copy > p br { display: none; }
  .future-hero-actions { flex-wrap: wrap; gap: 12px 20px; margin-top: 26px; }
  .future-hero-actions .v3-button, .future-hero-actions .v3-text-link { font-size: 15px; }
  .hero-footline { gap: 10px 15px; margin-top: 24px; }
  .hero-footline > span { font-size: 12px; }
  .architecture-stage { height: 470px; margin-top: 10px; }
  .room-model { height: 345px; top: 0; }
  .stage-label { font-size: 9px; }
  .scene-detail { width: min(280px, 92%); bottom: 82px; left: 0; padding: 17px; }
  .scene-detail > span { font-size: 10px; }
  .scene-detail strong { font-size: 18px; }
  .scene-detail p { font-size: 13px; max-width: none; line-height: 1.55; }
  .scene-detail a { min-width: 40px; min-height: 40px; }
  .scene-options { bottom: 26px; max-width: 100%; padding: 4px; }
  .scene-options button { font-size: 12px; padding: 7px 10px; min-height: 44px; gap: 4px; }
  .scene-options button > span { display: none; }
  .stage-caption { font-size: 9px; bottom: 4px; max-width: 100%; letter-spacing: .3px; }
  .expertise-ticker span { font-size: 13px; }
  .v3-section-heading h2 { font-size: 39px; line-height: 1.13; letter-spacing: -1.6px; }
  .v3-section-heading > p { font-size: 16px; line-height: 1.7; max-width: none; }
  .needs-grid { grid-template-columns: 1fr; grid-auto-rows: minmax(320px, auto); gap: 16px; }
  .need-home, .need-kitchen, .need-business, .need-building { grid-column: auto; grid-row: auto; height: auto; min-height: 320px; }
  .need-caption, .need-kitchen .need-caption, .need-business .need-caption { left: 22px; right: 22px; bottom: 24px; padding: 0 42px 0 0; }
  .need-caption h3, .need-home h3, .need-kitchen h3, .need-building h3 { font-size: 30px; max-width: 18ch; line-height: 1.2; }
  .need-caption p, .need-kitchen .need-caption p, .need-business .need-caption p { font-size: 15px; line-height: 1.6; }
  .need-tag { font-size: 11px; }
  .need-number { font-size: 12px; }
  .need-go, .need-kitchen .need-go, .need-business .need-go { width: 40px; height: 40px; bottom: 0; }
  .needs-bottom { display: block; font-size: 14px; }
  .needs-bottom > span, .needs-bottom > a { max-width: none; margin-top: 12px; }
  .mood-image { min-height: 0; height: 340px; }
  .mood-tabs { flex-wrap: wrap; gap: 8px; }
  .mood-tabs button { flex: 1 1 30%; min-height: 54px; padding: 10px 8px; justify-content: center; }
  .mood-tabs strong { font-size: 14px; line-height: 1.4; letter-spacing: -.2px; white-space: normal; text-align: center; }
  .mood-story h3 { font-size: 29px; }
  .mood-story p { font-size: 16px; line-height: 1.75; }
  .mood-story .v3-text-link { font-size: 15px; }
  .mood-tags span { font-size: 12px; }
  .mood-visual-note { font-size: 9px; }
  .category-tabs { flex-wrap: wrap; width: 100%; gap: 8px; overflow: visible; }
  .category-tabs button { font-size: 13px; padding: 10px 13px; min-height: 44px; }
  .directory-list { grid-template-columns: 1fr; gap: 12px; }
  .directory-item { min-height: 0; padding: 24px 20px; gap: 12px; }
  .directory-item h3 { font-size: 22px; line-height: 1.35; }
  .directory-item p { display: block; font-size: 16px; line-height: 1.65; }
  .directory-footer { font-size: 15px; }
  .directory-footer > span { max-width: none; }
  .directory-footer button { font-size: 15px; margin-left: 0; }
  .product-introduction > p, .product-detail p { font-size: 16px; line-height: 1.75; }
  .product-tabs { gap: 8px; }
  .product-tabs button { font-size: 13px; min-height: 46px; padding: 10px 12px; }
  .product-detail h3 { font-size: 29px; }
  .product-detail .inline-link { font-size: 15px; }
  .product-top { font-size: 11px; }
  .product-tags span { font-size: 12px; }
  .product-note { font-size: 13px; }
  .customer-steps article { padding-block: 26px; }
  .customer-steps small { font-size: 11px; }
  .customer-steps h3 { font-size: 27px; }
  .customer-steps p, .price-panel p { font-size: 16px; line-height: 1.75; }
  .price-panel h3 { font-size: 27px; }
  .price-link { font-size: 15px; }
  .regions-layout > div > p { font-size: 16px; }
  .region-note { font-size: 14px; }
  .city-explorer { padding: 22px; }
  .city-tags button { font-size: 14px; min-height: 44px; }
  .all-cities { font-size: 13px; gap: 8px; }
  .all-cities select { max-width: 165px; font-size: 16px; }
  .city-selected strong { font-size: 26px; }
  .city-selected strong > span { font-size: 14px; }
  .journal-grid { grid-template-columns: 1fr; gap: 32px; }
  .journal-card h3 { font-size: 26px; }
  .journal-meta, .journal-image > span { font-size: 11px; }
  .faq-list summary { font-size: 18px; padding-block: 20px; }
  .faq-list details > p { font-size: 16px; line-height: 1.75; padding-right: 0; }
  .v3-brief-copy h2 { font-size: 48px; line-height: 1.1; }
  .v3-brief-copy > p { font-size: 17px; max-width: none; }
  .brief-checks span { font-size: 13px; }
  .brief-builder { padding: 26px 20px; border-radius: 20px; }
  .brief-progress { font-size: 11px; letter-spacing: .6px; gap: 10px; }
  .brief-progress > div { gap: 5px; }
  .brief-progress > div > span { width: 28px; height: 28px; font-size: 11px; }
  .brief-step h3 { font-size: 28px; }
  .brief-step label { font-size: 13px; }
  .brief-step input, .brief-step select, .brief-step textarea { font-size: 16px; padding: 13px; }
  .form-pair { grid-template-columns: 1fr; gap: 0; }
  .field-helper, #dv-collection-notice { font-size: 14px; }
  .brief-navigation > span { display: block; font-size: 13px; flex-basis: 100%; }
  .brief-navigation .button { margin-left: auto; font-size: 15px; }
  .brief-back { font-size: 15px; }
  .brief-local-note { font-size: 13px; }
  .brief-result { font-size: 15px !important; }
  .brief-result-actions .button { font-size: 14px; min-height: 48px; padding: 12px 14px; }
  .v3-partner { font-size: 14px; flex-wrap: wrap; gap: 4px 18px; }
  .footer-top > div > p { font-size: 16px; }
  .footer-links { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
  .footer-links > div { font-size: 15px; }
  .footer-links > div:last-child { grid-column: 1 / -1; }
  .footer-links > div > span { font-size: 11px; }
  .footer-links .footer-cta { font-size: 26px; }
  .footer-bottom { font-size: 13px; flex-wrap: wrap; gap: 12px 22px; }
  .detail-intro { font-size: 17px; line-height: 1.75; }
  .detail-hero .eyebrow, .breadcrumbs { font-size: 12px; }
  .detail-content > div > p, .article-sections p { font-size: 17px; line-height: 1.8; }
  .detail-content h2, .article-sections h2 { font-size: 31px; }
  .scope-list > div, .product-items-grid > div { font-size: 16px; }
  .related-services a { font-size: 16px; }
  .editorial-aside, .detail-photo > span { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

