/* Isolated open-layout pilot: home, practice and services. */
html:root[data-appearance^="open-"] body {
  --pilot-ink: #173650;
  --pilot-muted: #526477;
  --pilot-rule: rgba(40,63,78,.22);
  --pilot-surface: rgba(255,252,246,.92);
}
html:root[data-appearance^="open-"][data-theme="dark"] body {
  --pilot-ink: #fffaf0;
  --pilot-muted: #e0e9ee;
  --pilot-rule: rgba(235,242,246,.3);
  --pilot-surface: rgba(34,70,96,.92);
}
/* Preserve the established responsive and anchor geometry. Only surfaces change. */
html:root[data-appearance^="open-"] body main > .section-shell {
 border:0 !important; border-radius:0 !important; box-shadow:none !important;
 background:transparent !important;
}
html:root[data-appearance^="open-"] body #home > .hero-card,
html:root[data-appearance^="open-"] body #about :is(.about-card,.about-process-panel,.credential-item,.step-card),
html:root[data-appearance^="open-"] body #services .service-card,
html:root[data-appearance^="open-"] body #home :is(.hero-approved-feature,.hero-trust-badge) {
 background:transparent !important; background-image:none !important;
 box-shadow:none !important; border-color:transparent !important; border-radius:0 !important;
}
html:root[data-appearance^="open-"] body #home > .hero-card::before,
html:root[data-appearance^="open-"] body #home > .hero-card::after {content:none !important;}
/* All four appearances render the same original photograph in the same box.
   The open pair uses a transparent matte only for the room background. */
html:root[data-appearance^="open-"] body :is(.header-ai-avatar,.ai-toggle-avatar,.ai-avatar) picture img {
 filter:grayscale(1)!important;
}
/* The transparent photo lets the actual themed canvas show around both
   subjects, without a rectangular patch of the original white room. */
html:root[data-appearance^="open-"] body #home :is(.portrait-frame-approved,.mobile-portrait-frame-approved) {
 background:transparent!important;
 border-color:transparent!important;
 box-shadow:none!important;
}
/* Both overlays use the source image's coordinates and cover/top placement.
   Filters alter cloth tone while retaining the source folds and seam shading. */
.hero-open-art {display:none;}
html:root[data-appearance^="open-"] body #home :is(.portrait-frame-approved,.mobile-portrait-frame-approved)::before,
html:root[data-appearance^="open-"] body #home :is(.portrait-frame-approved,.mobile-portrait-frame-approved)::after {content:none!important;}
html:root[data-appearance^="open-"] body #home .hero-open-art {
 display:block!important;
 position:absolute!important;
 inset:0!important;
 width:100%!important;
 height:100%!important;
 z-index:1!important;
 pointer-events:none!important;
 overflow:hidden!important;
}
html:root[data-appearance^="open-"] body #home .hero-open-seal {
 color:var(--pilot-ink);
}
html:root[data-appearance^="open-"] body #home .hero-jacket-layer-dark,
html:root[data-appearance^="open-"][data-theme="dark"] body #home .hero-jacket-layer-light {display:none;}
html:root[data-appearance^="open-"][data-theme="dark"] body #home .hero-jacket-layer-dark {display:block;}
html:root[data-appearance^="open-"] body #home :is(.portrait-frame-approved,.mobile-portrait-frame-approved) > img {
 filter:grayscale(1) brightness(1.09) contrast(.94)!important;
 -webkit-mask-image:url("../images/hero-source-matte.svg?v=1156")!important;
 mask-image:url("../images/hero-source-matte.svg?v=1156")!important;
 -webkit-mask-size:cover!important;
 mask-size:cover!important;
 -webkit-mask-position:center top!important;
 mask-position:center top!important;
 -webkit-mask-repeat:no-repeat!important;
 mask-repeat:no-repeat!important;
}
html:root[data-appearance^="open-"] body #home :is(h1,.hero-approved-slogan,.hero-approved-feature b,.hero-trust-badge),
html:root[data-appearance^="open-"] body :is(#about,#services) :is(h2,h3,b,.service-title-link) {color:var(--pilot-ink) !important;}
html:root[data-appearance^="open-"] body #home :is(.hero-subtitle-main,.hero-subtitle-sub,.hero-approved-feature small),
html:root[data-appearance^="open-"] body :is(#about,#services) :is(p,.credential-item span) {color:var(--pilot-muted) !important;}
html:root[data-appearance^="open-"] body #home .hero-approved-feature {border-bottom-color:var(--pilot-rule) !important;}
html:root[data-appearance^="open-"] body #services .service-card {border-top-color:var(--pilot-rule) !important;}

/* A single document-texture canvas extends through every section. */
html:root[data-appearance^="open-"] body main > .section-shell::before,
html:root[data-appearance^="open-"] body main > .section-shell::after {content:none !important;}

/* Extend the same open composition to the remaining home sections. */
html:root[data-appearance^="open-"] body #pricing :is(.price-card,.pricing-estimator-launch),
html:root[data-appearance^="open-"] body #faq :is(.faq-columns,details),
html:root[data-appearance^="open-"] body #resources .resource-card,
html:root[data-appearance^="open-"] body #contact .contact-card {
 background:transparent !important; background-image:none !important;
 border-color:transparent !important; border-radius:0 !important; box-shadow:none !important;
}
html:root[data-appearance^="open-"] body #pricing .price-card::before,
html:root[data-appearance^="open-"] body #pricing .price-card::after,
html:root[data-appearance^="open-"] body #resources .resource-card::before,
html:root[data-appearance^="open-"] body #resources .resource-card::after,
html:root[data-appearance^="open-"] body #contact .contact-card::before,
html:root[data-appearance^="open-"] body #contact .contact-card::after {content:none !important;}
html:root[data-appearance^="open-"] body #pricing .price-card,
html:root[data-appearance^="open-"] body #resources .resource-card {border-top-color:var(--pilot-rule) !important;}
html:root[data-appearance^="open-"] body #faq details {border-bottom-color:var(--pilot-rule) !important;}
html:root[data-appearance^="open-"] body :is(#pricing,#faq,#resources,#contact) .section-heading :is(h2,p),
html:root[data-appearance^="open-"] body #pricing :is(.price-card h3,.price-card .price,.pricing-estimator-launch h3),
html:root[data-appearance^="open-"] body #faq :is(.faq-group-title,summary),
html:root[data-appearance^="open-"] body #resources .resource-card h3,
html:root[data-appearance^="open-"] body #contact .contact-copy > h3 {color:var(--pilot-ink) !important;}
html:root[data-appearance^="open-"] body #pricing :is(.price-card p:not(.price),.pricing-estimator-launch p),
html:root[data-appearance^="open-"] body #faq details :is(p,li),
html:root[data-appearance^="open-"] body #resources .resource-card p,
html:root[data-appearance^="open-"] body #contact .contact-copy > p:not(.contact-security-note) {color:var(--pilot-muted) !important;}
html:root[data-appearance^="open-"] body #contact .contact-form label > span,
html:root[data-appearance^="open-"] body #contact .contact-form .contact-message-toolbar > label {color:var(--pilot-ink) !important;}
html:root[data-appearance^="open-"] body #faq details a {color:var(--pilot-ink) !important; text-decoration:underline;}
html:root[data-appearance^="open-"] body #contact .contact-form :is(.form-note,.form-context-note) {color:var(--pilot-muted) !important;}
/* Four process steps stay on one desktop row in the narrow desktop lane. */
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #about .about-process-steps {grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
}
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #about .step-card p {font-size:13px !important; line-height:1.35 !important;}
 html:root[data-appearance^="open-"] body #about .step-card h3 {font-size:14px !important; line-height:1.2 !important;}
}
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #about .about-process-heading p {font-size:13px !important; line-height:1.35 !important;}
 html:root[data-appearance^="open-"] body #about .about-process-panel {padding-block:10px !important;}
}
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #about .about-practice-stack {gap:8px !important;}
}
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #about .about-text p {font-size:13px !important; line-height:1.4 !important;}
}
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #services .services-grid {grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
 html:root[data-appearance^="open-"] body #services .service-card {padding-inline:12px !important;}
 html:root[data-appearance^="open-"] body #services .service-icon {width:24px !important; height:24px !important; top:12px !important; right:12px !important;}
 html:root[data-appearance^="open-"] body #services .service-card h3 {padding-right:28px !important;}
}
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #resources .resources-grid {grid-template-columns:repeat(5,minmax(0,1fr)) !important;}
 html:root[data-appearance^="open-"] body #resources .resource-card {min-height:0 !important; padding:12px !important;}
 html:root[data-appearance^="open-"] body #resources .resource-card h3 {font-size:15px !important; line-height:1.2 !important;}
 html:root[data-appearance^="open-"] body #resources .resource-card p {font-size:13px !important; line-height:1.35 !important;}
}
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #resources .resources-grid {gap:8px !important;}
 html:root[data-appearance^="open-"] body #resources .resource-card h3 {margin-bottom:8px !important;}
 html:root[data-appearance^="open-"] body #resources .resource-card p {margin-top:0 !important; margin-bottom:0 !important;}
}
@media (min-width:821px) and (max-width:1100px) {
 html:root[data-appearance^="open-"] body #resources .resource-card {height:auto !important;}
 html:root[data-appearance^="open-"] body #resources .resources-grid {grid-auto-rows:auto !important;}
}
html:root[data-appearance^="open-"] body #pricing .pricing-estimator-launch .pricing-estimator-launch-copy :is(strong,b,h2,h3) {color:var(--pilot-ink) !important;}
html:root[data-appearance^="open-"] body #pricing .pricing-estimator-launch .pricing-estimator-launch-copy p {color:var(--pilot-muted) !important;}
html:root[data-appearance^="open-"] body #contact .contact-card .contact-copy > :is(h2,h3) {color:var(--pilot-ink) !important;}
html:root[data-appearance^="open-"] body #contact .contact-form label.human-check > span {color:#173650 !important;}
html:root[data-appearance^="open-"] body #pricing .pricing-estimator-launch .pricing-estimator-launch-copy > span {color:var(--pilot-muted) !important;}

/* Theme surfaces for all inline dialogs; retain established scrolling geometry. */
html:root[data-appearance^="open-"] body { --pilot-dialog:#f3ede2; --pilot-frame:rgba(72,65,53,.32); }
html:root[data-appearance^="open-"][data-theme="dark"] body { --pilot-dialog:#2d536e; --pilot-frame:rgba(216,231,240,.42); }
html:root[data-appearance^="open-"] body :is(.details-modal-card,.legal-inline-modal-card,.resource-inline-modal-card) {
 background:var(--pilot-dialog)!important; background-image:none!important;
 border-color:var(--pilot-frame)!important; box-shadow:0 18px 50px rgba(0,0,0,.16)!important;
 color:var(--pilot-ink)!important; --ink:var(--pilot-ink); --muted:var(--pilot-muted);
}
html:root[data-appearance^="open-"] body :is(.legal-inline-modal-content,.resource-inline-modal-content) :is(article,.legal-card,.resource-card) {background:transparent!important;box-shadow:none!important;}
html:root[data-appearance^="open-"] body :is(.details-modal-card,.legal-inline-modal-card,.resource-inline-modal-card) :is(h1,h2,h3,h4,legend) {color:var(--pilot-ink)!important;}
html:root[data-appearance^="open-"] body :is(.details-modal-body,.legal-inline-modal-content,.resource-inline-modal-content) :is(p,li) {color:var(--pilot-muted);}
html:root[data-appearance^="open-"] body :is(.details-modal-close,.legal-inline-modal-close,.resource-inline-modal-close) {background:#e8edf0!important;color:#173650!important;}
html:root[data-appearance^="open-"] body .details-modal-card :is(.estimator-option,.estimator-extra) {color:#173650!important;}
html:root[data-appearance^="open-"] body .details-modal-card :is(.estimator-option,.estimator-extra).is-selected {background:#dce8ee!important;}

/* Border study: ITEMS; no layout dimensions changed. */
html:root[data-appearance^="open-"] body .hero-approved-feature,
html:root[data-appearance^="open-"] body .hero-trust-badge,
html:root[data-appearance^="open-"] body .credential-item,
html:root[data-appearance^="open-"] body .step-card,
html:root[data-appearance^="open-"] body .service-card,
html:root[data-appearance^="open-"] body .price-card,
html:root[data-appearance^="open-"] body #faq details,
html:root[data-appearance^="open-"] body .resource-card,
html:root[data-appearance^="open-"] body .contact-link {outline:1px solid var(--pilot-frame)!important;outline-offset:-1px;border-radius:7px!important;}

/* Content panels retain a visible boundary around their complete work area.
   The FAQ frame follows content; its section owns any viewport reserve. */
html:root[data-appearance^="open-"] body :is(#faq .faq-columns,#contact .contact-card) {
 outline:1px solid var(--pilot-frame)!important;
 outline-offset:-1px;
 border-radius:10px!important;
}

/* Equal mobile work area and uniform one-pixel frames. */
@media(max-width:820px) {
 html:root[data-appearance^="open-"] body main > .section-shell {
  box-sizing:border-box!important;width:calc(100% - 28px)!important;max-width:none!important;
  margin-inline:14px!important;padding-inline:0!important;
 }
 html:root[data-appearance^="open-"] body :is(#home > .hero-card,#about > .about-card,#contact > .contact-card) {
  box-sizing:border-box!important;width:100%!important;max-width:none!important;margin-inline:0!important;padding-inline:16px!important;
 }
 html:root[data-appearance^="open-"] body #faq .faq-columns {padding-inline:0!important;}
 html:root[data-appearance^="open-"] body :is(.hero-approved-feature,.hero-trust-badge,.credential-item,.step-card,.service-card,.price-card,#faq details,.resource-card,.contact-link,.contact-card) {
  outline-width:1px!important;border-width:1px!important;
 }
}
@media(max-width:820px) {
 html:root[data-appearance^="open-"] body #home.hero.section-shell {
  width:calc(100% - 28px)!important;max-width:none!important;margin-inline:14px!important;padding-inline:0!important;
 }
}

/* v1105: align the visible mobile frames, including the upper sections.
   Keep portrait sizing and the mobile intro rules inherited from v1103. */
@media (max-width:820px) {
 html:root[data-appearance^="open-"] body #home.hero.section-shell > .hero-card,
 html:root[data-appearance^="open-"] body #about :is(.about-card,.about-process-panel) {
  padding-inline:0!important;
 }
 html:root[data-appearance^="open-"] body #home .hero-copy {
  grid-template-columns:minmax(0,1fr)!important;
 }
 html:root[data-appearance^="open-"] body #home .hero-approved-features,
 html:root[data-appearance^="open-"] body #about :is(.credentials-strip,.about-process-steps) {
  grid-template-columns:minmax(0,1fr)!important;
  width:100%!important;max-width:none!important;box-sizing:border-box!important;
 }
}

/* Light inset surfaces own their text palette instead of inheriting the
   dark dialog palette. Keep this contract shared by all planner controls. */
html:root[data-appearance^="open-"] body .details-modal-card :is(.intake-answer,.estimator-option,.estimator-extra,.estimator-income-row,.estimator-income-other,.estimator-quantity-row input,.estimator-income-row input) {
 --ink:#173650; --muted:#526477;
 color:#173650!important;
}
html:root[data-appearance^="open-"] body .details-modal-card :is(.intake-answer,.estimator-option,.estimator-extra,.estimator-income-other).is-selected {
 background:#dce8ee!important;
 border-color:#285f83;
}
html:root[data-appearance^="open-"] body .details-modal-card :is(.details-pricing-note,.intake-conflict,.estimator-conflict) {
 --ink:#173650; --muted:#526477;
 color:#173650!important;
}
html:root[data-appearance^="open-"] body .details-modal-card :is(.details-pricing-note,.intake-conflict,.estimator-conflict) :is(h1,h2,h3,h4,strong,b,legend) {
 color:#173650!important;
}
html:root[data-appearance^="open-"] body .details-modal-card :is(.details-pricing-note,.intake-conflict,.estimator-conflict) :is(p,li,span) {
 color:#526477!important;
}
html:root[data-appearance^="open-"] body .details-modal-card :is(.intake-conflict,.estimator-conflict) {
 background:#fff3d6!important;
}

/* Open appearance: legible step markers and quiet pricing explanation. */
html:root[data-appearance^="open-"] body #about .step-number {
 background:#e7dcc5!important;
 color:#173650!important;
 border-color:rgba(23,54,80,.3)!important;
}
html:root[data-appearance="open-dark"] body #about .step-number {
 background:#dce8ee!important;
 color:#173650!important;
 border-color:rgba(220,232,238,.65)!important;
}
html:root[data-appearance^="open-"] body #pricing .pricing-disclaimer-card {
 background:#ddd6c8!important;
 background-image:none!important;
 border-color:rgba(72,65,53,.28)!important;
 box-shadow:none!important;
 color:#173650!important;
}
html:root[data-appearance^="open-"] body #pricing .pricing-disclaimer-card :is(p,strong) {
 color:#173650!important;
}
html:root[data-appearance="open-dark"] body #pricing .pricing-disclaimer-card {
 background:#335a73!important;
 border-color:rgba(216,231,240,.35)!important;
 color:#e0e9ee!important;
}
html:root[data-appearance="open-dark"] body #pricing .pricing-disclaimer-card :is(p,strong) {
 color:#e0e9ee!important;
}

/* Quiet interactive surfaces shared by pricing and contact in open layouts. */
html:root[data-appearance^="open-"] body {
 --open-control:#e2dbcf; --open-control-ink:#173650;
 --open-notice:#ddd6c8; --open-notice-ink:#173650;
}
html:root[data-appearance="open-dark"] body {
 --open-control:#466b85; --open-control-ink:#fffaf0;
 --open-notice:#335a73; --open-notice-ink:#e0e9ee;
}
html:root[data-appearance^="open-"] body :is(#pricing .price-factor-chip,#pricing .pricing-estimator-launch .btn,#contact .contact-link,#contact .contact-prepared-materials,#contact .contact-form input:not([type="checkbox"]),#contact .contact-form select,#contact .contact-form textarea,#contact .human-check) {
 background:var(--open-control)!important; background-image:none!important;
 color:var(--open-control-ink)!important; box-shadow:none!important;
 border-color:var(--pilot-frame)!important;
}
html:root[data-appearance^="open-"] body #contact :is(.contact-link,.contact-prepared-materials,.human-check) :is(b,strong,small,p,span:not(.contact-icon)) {
 color:var(--open-control-ink)!important;
}
html:root[data-appearance^="open-"] body #contact .contact-form :is(input,textarea)::placeholder {
 color:var(--open-control-ink)!important; opacity:.8;
}
html:root[data-appearance^="open-"] body :is(#contact .contact-security-note,.ai-disclaimer) {
 background:var(--open-notice)!important; background-image:none!important;
 color:var(--open-notice-ink)!important; box-shadow:none!important;
 border-color:var(--pilot-frame)!important;
}
html:root[data-appearance^="open-"] body #contact .contact-form label.human-check > span {
 color:var(--open-control-ink)!important;
}
html:root[data-appearance^="open-"] body #contact .contact-form select option {
 background:var(--open-control); color:var(--open-control-ink);
}
html:root[data-appearance^="open-"] body :is(#pricing .price-factor-chip,#contact .contact-link,#contact .contact-form input,#contact .contact-form select,#contact .contact-form textarea):focus-visible {
 outline:2px solid var(--pilot-ink)!important; outline-offset:2px;
}

/* Icon surfaces follow the open palette; strong glyph contrast stays explicit. */
html:root[data-appearance^="open-"] body {
 --open-icon-surface:#d6cec0; --open-icon-ink:#173650;
}
html:root[data-appearance="open-dark"] body {
 --open-icon-surface:#52768e; --open-icon-ink:#fffaf0;
}
html:root[data-appearance^="open-"] body :is(#home,#about,#services,#pricing,#contact) :is(.hero-approved-feature-icon,.step-icon,.service-icon,.pricing-icon,.contact-icon) {
 background:var(--open-icon-surface)!important; background-image:none!important;
 color:var(--open-icon-ink)!important; box-shadow:none!important;
 border-color:var(--pilot-frame)!important;
}
html:root[data-appearance^="open-"] body #contact .facebook .contact-icon {color:#1459b4!important;}
html:root[data-appearance^="open-"] body #contact .whatsapp .contact-icon {color:#08703e!important;}
html:root[data-appearance^="open-"] body #contact .telegram .contact-icon {color:#086294!important;}
html:root[data-appearance="open-dark"] body #contact .facebook .contact-icon {color:#b5d9ff!important;}
html:root[data-appearance="open-dark"] body #contact .whatsapp .contact-icon {color:#91e0b4!important;}
html:root[data-appearance="open-dark"] body #contact .telegram .contact-icon {color:#a4d8f8!important;}
/* Whole-site readability revision: secondary text stays legible over texture. */
html:root[data-appearance^="open-"] body { --pilot-muted:#435467; }
html:root[data-appearance="open-dark"][data-theme="dark"] body { --pilot-muted:#fffaf0; }
html:root[data-appearance^="open-"] body .details-modal-card :is(.intake-progress,.estimator-progress) {
 opacity:1!important; color:var(--pilot-muted)!important;
}
html:root[data-appearance="open-dark"] body #details-modal #state-map-picker-label {
 color:#eaf1f5!important;
}
html:root:not([data-appearance^="open-"]) body #home .hero-subtitle-sub,
html:root:not([data-appearance^="open-"]) body #home .hero-approved-feature small {
 color:#435467!important;
}
html:root:not([data-appearance^="open-"]) body #resources .resource-card p {
 color:#435467!important;
}
html:root:not([data-appearance^="open-"]) body #pricing .pricing-estimator-launch .btn {
 color:#173650!important;
}
/* Quantity controls own a pale surface, independent of the modal palette. */
html:root[data-appearance^="open-"] body .details-modal-card .estimator-quantity-row {
 --ink:#173650; --muted:#435467;
 color:#173650!important;
}
html:root[data-appearance^="open-"] body .details-modal-card .estimator-quantity-row > span {
 color:#173650!important;
}
html:root[data-appearance^="open-"] body #faq .faq-accordion summary::after {
 color:var(--pilot-ink)!important; background:transparent!important;
}

/* Dark open surfaces: soften navy panels while retaining readable light text. */
html:root[data-appearance="open-dark"] body {
 --open-control:#50738a; --open-notice:#52768e; --open-notice-ink:#fffaf0;
}
html:root[data-appearance="open-dark"] body #pricing .pricing-disclaimer-card {
 background:#52768e!important; color:#fffaf0!important;
}
html:root[data-appearance="open-dark"] body #pricing .pricing-disclaimer-card :is(p,strong) {
 color:#fffaf0!important;
}

/* Glass-like pricing and contact controls, matched to both open layouts. */
html:root[data-appearance="open-light"] body {
 --open-control:rgba(255,252,246,.34);
 --open-notice:rgba(255,252,246,.28);
}
html:root[data-appearance="open-dark"] body {
 --open-control:rgba(255,250,240,.06);
 --open-notice:rgba(255,250,240,.04);
 --open-notice-ink:#fffaf0;
 --open-icon-surface:rgba(255,250,240,.08);
}
html:root[data-appearance^="open-"] body :is(#pricing .price-factor-chip,#pricing .pricing-estimator-launch .btn,#contact .contact-link,#contact .contact-prepared-materials,#contact .contact-form input:not([type="checkbox"]),#contact .contact-form select,#contact .contact-form textarea,#contact .human-check) {
 border-color:var(--pilot-frame)!important;
}
html:root[data-appearance^="open-"] body :is(#contact .contact-security-note,.ai-disclaimer) {
 border:1px solid var(--pilot-frame)!important;
}
html:root[data-appearance="open-dark"] body #contact .contact-form :is(input,textarea)::placeholder {
 opacity:1;
}
/* Native option popups remain opaque so their text stays readable. */
html:root[data-appearance="open-light"] body #contact .contact-form select option {
 background:#fffaf0; color:#173650;
}
html:root[data-appearance="open-dark"] body #contact .contact-form select option {
 background:#2d536e; color:#fffaf0;
}
html:root[data-appearance="open-dark"] body #pricing .pricing-disclaimer-card {
 background:rgba(255,250,240,.04)!important;
}

/* Blend step markers and primary actions into the transparent compositions. */
html:root[data-appearance="open-light"] body #about .step-number {
 background:rgba(255,252,246,.30)!important;
 color:#173650!important;
 border-color:rgba(23,54,80,.35)!important;
}
html:root[data-appearance="open-dark"] body #about .step-number {
 background:rgba(255,250,240,.06)!important;
 color:#fffaf0!important;
 border-color:rgba(255,250,240,.48)!important;
}
html:root[data-appearance="open-light"] body #home .hero-actions .btn-primary,
html:root[data-appearance="open-light"] body #contact .contact-form .contact-submit {
 background:rgba(52,92,122,.14)!important;
 background-image:none!important;
 color:#172033!important;
 border:1px solid rgba(52,92,122,.42)!important;
 box-shadow:none!important;
}
html:root[data-appearance="open-dark"] body #home .hero-actions .btn-primary,
html:root[data-appearance="open-dark"] body #contact .contact-form .contact-submit {
 background:rgba(255,250,240,.35)!important;
 background-image:none!important;
 color:#172033!important;
 border:1px solid rgba(255,250,240,.54)!important;
 box-shadow:none!important;
}
html:root[data-appearance^="open-"] body :is(#home .hero-actions .btn-primary,#contact .contact-form .contact-submit):hover {
 filter:brightness(1.04);
 box-shadow:none!important;
}

/* Transparent primary actions use a gold outline as their visual cue. */
html:root[data-appearance^="open-"] body #home .hero-actions .btn-primary,
html:root[data-appearance^="open-"] body #contact .contact-form .contact-submit {
 background:transparent!important;
 background-image:none!important;
 color:var(--pilot-ink)!important;
 border:2px solid #8e6317!important;
 box-shadow:none!important;
}
html:root[data-appearance="open-dark"] body #home .hero-actions .btn-primary,
html:root[data-appearance="open-dark"] body #contact .contact-form .contact-submit {
 border-color:#efc454!important;
}
html:root[data-appearance="open-light"] body :is(#home .hero-actions .btn-primary,#contact .contact-form .contact-submit):hover {
 background:rgba(142,99,23,.08)!important;
 filter:none;
}
html:root[data-appearance="open-dark"] body :is(#home .hero-actions .btn-primary,#contact .contact-form .contact-submit):hover {
 background:rgba(239,196,84,.10)!important;
 filter:none;
}

/* Extend the established button light-sweep to textual actions. Icon controls,
   close buttons, and modal-trigger cards keep their existing affordances. */
html:root body :is(
  #pricing .price-factor-chip,
  #contact .contact-prepared-share,
  #contact .contact-voice-button,
  #contact [data-contact-voice-append],
  #contact [data-contact-voice-new],
  .ai-quick-actions button,
  .ai-translate-run,
  .ai-translate-dismiss,
  .ai-translation-toggle,
  .ai-speech-toggle,
  .ai-context-palette button
) {
  position:relative;
  overflow:hidden;
}
html:root body :is(
  #pricing .price-factor-chip,
  #contact .contact-prepared-share,
  #contact .contact-voice-button,
  #contact [data-contact-voice-append],
  #contact [data-contact-voice-new],
  .ai-quick-actions button,
  .ai-translate-run,
  .ai-translate-dismiss,
  .ai-translation-toggle,
  .ai-speech-toggle,
  .ai-context-palette button
)::after {
  content:""!important;
  position:absolute;
  inset:0;
  display:block!important;
  background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.30) 48%,transparent 72%);
  transform:translateX(-120%);
  transition:transform .48s ease;
  pointer-events:none;
}
@media (hover:hover) {
  html:root body :is(
    #pricing .price-factor-chip,
    #contact .contact-prepared-share,
    #contact .contact-voice-button,
    #contact [data-contact-voice-append],
    #contact [data-contact-voice-new],
    .ai-quick-actions button,
    .ai-translate-run,
    .ai-translate-dismiss,
    .ai-translation-toggle,
    .ai-speech-toggle,
    .ai-context-palette button
  ):hover::after {
    transform:translateX(120%);
  }
}
html:root body :is(
  #pricing .price-factor-chip,
  #contact .contact-prepared-share,
  #contact .contact-voice-button,
  #contact [data-contact-voice-append],
  #contact [data-contact-voice-new],
  .ai-quick-actions button,
  .ai-translate-run,
  .ai-translate-dismiss,
  .ai-translation-toggle,
  .ai-speech-toggle,
  .ai-context-palette button
):focus-visible::after {
  transform:translateX(120%);
}
html:root body :is(
  .btn,
  #pricing .price-factor-chip,
  #contact .contact-prepared-share,
  #contact .contact-voice-button,
  #contact [data-contact-voice-append],
  #contact [data-contact-voice-new],
  .ai-quick-actions button,
  .ai-translate-run,
  .ai-translate-dismiss,
  .ai-translation-toggle,
  .ai-speech-toggle,
  .ai-context-palette button
):active::after {
  transform:translateX(120%);
}
@media (prefers-reduced-motion:reduce) {
  html:root body :is(
    #pricing .price-factor-chip,
    #contact .contact-prepared-share,
    #contact .contact-voice-button,
    #contact [data-contact-voice-append],
    #contact [data-contact-voice-new],
    .ai-quick-actions button,
    .ai-translate-run,
    .ai-translate-dismiss,
    .ai-translation-toggle,
    .ai-speech-toggle,
    .ai-context-palette button
  )::after { transition:none; }
}

/* Modal explanations and notices use the same quiet surfaces as the main page. */
html:root[data-appearance^="open-"] body :is(
  .details-modal-card,
  .legal-inline-modal-card,
  .resource-inline-modal-card
) :is(
  .details-pricing-note,
  .intake-conflict,
  .estimator-conflict,
  .estimator-note,
  .estimator-deposit,
  .estimator-review,
  .intake-prefilled,
  .resource-inline-note
) {
  background:var(--open-notice)!important;
  background-image:none!important;
  border:1px solid var(--pilot-frame)!important;
  box-shadow:none!important;
  color:var(--open-notice-ink)!important;
}
html:root[data-appearance^="open-"] body :is(
  .details-modal-card,
  .legal-inline-modal-card,
  .resource-inline-modal-card
) :is(
  .details-pricing-note,
  .intake-conflict,
  .estimator-conflict,
  .estimator-note,
  .estimator-deposit,
  .estimator-review,
  .intake-prefilled,
  .resource-inline-note
) :is(h1,h2,h3,h4,strong,b,p,li,span) {
  color:var(--open-notice-ink)!important;
}

/* Every enabled button gets a visible hover response, even when it has no
   component-specific hover treatment. Preserve existing transitions. */
html:root body button:not(:disabled) {
  transition-duration:.18s;
  transition-timing-function:ease;
}
@media (hover:hover) {
  html:root body button:not(:disabled):hover { filter:brightness(1.055); }
}

/* The three Hero feature buttons are intentionally transparent in the open
   design, so give them the same moving light sweep without using ::after,
   which belongs to the modal-trigger label system. */
html:root[data-appearance^="open-"] body #home button.hero-approved-feature {
  background-image:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.30) 50%,transparent 58%)!important;
  background-size:230% 100%!important;
  background-position:100% 0!important;
  transition-property:background-position,background-color,outline-color,transform,filter!important;
  transition-duration:.5s,.18s,.18s,.18s,.18s!important;
  transition-timing-function:ease!important;
}
@media (hover:hover) {
  html:root[data-appearance="open-light"] body #home button.hero-approved-feature:hover,
  html:root[data-appearance="open-light"] body #home button.hero-approved-feature:focus-visible {
    background-position:0 0!important;
    background-color:rgba(23,54,80,.055)!important;
    outline-color:rgba(23,54,80,.48)!important;
    transform:translateY(-1px)!important;
  }
  html:root[data-appearance="open-dark"] body #home button.hero-approved-feature:hover,
  html:root[data-appearance="open-dark"] body #home button.hero-approved-feature:focus-visible {
    background-position:0 0!important;
    background-color:rgba(255,250,240,.075)!important;
    outline-color:rgba(235,242,246,.58)!important;
    transform:translateY(-1px)!important;
  }
}
@media (prefers-reduced-motion:reduce) {
  html:root[data-appearance^="open-"] body #home button.hero-approved-feature {
    transition:none!important;
  }
}

/* Keep the mobile portrait and its IRS mark at the same viewport geometry in
   all four appearances. The open appearance removes the Hero card's side
   padding, so restore that inset on the intro row only. */
@media (max-width:820px) {
  html:root[data-appearance^="open-"] body #home .mobile-hero-intro {
    box-sizing:border-box!important;
    padding-inline:clamp(11px,3.5vw,17px)!important;
  }
  html:root body #home .mobile-portrait-frame-approved {
    height:clamp(104px,min(34vw,22cqh),168px)!important;
  }
  @container dst-mobile-hero (min-width:600px) {
    html:root body #home .mobile-hero-intro {
      grid-template-columns:minmax(0,1fr) clamp(170px,25.96vw,220px)!important;
    }
    html:root body #home .mobile-portrait-frame-approved {
      height:clamp(190px,min(28.9vw,25cqh),250px)!important;
    }
  }
}
