/* Shared components and viewport chrome; skin-specific composition is separate. */
html {
  scroll-padding-top: calc(var(--chrome-header-h) + 1rem);
  scroll-padding-bottom: calc(
    var(--chrome-footer-h) + var(--keyboard-inset) + 1rem
  );
}
body.site-body {
  display: block;
  min-height: 100dvh;
  padding-top: var(--chrome-header-h);
  padding-bottom: calc(var(--chrome-footer-h) + var(--keyboard-inset) + var(--consent-banner-h, 0px));
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--c-font);
  font-size: 1rem;
  line-height: 1.65;
}
.site-body::before,
.site-body::after {
  display: none;
}
.site-body .container {
  max-width: var(--c-container);
}
.site-body main {
  padding-top: 1.5rem !important;
  padding-bottom: 2.5rem !important;
  scroll-margin-top: 1rem;
  min-height: calc(100dvh - var(--chrome-header-h) - var(--chrome-footer-h));
}
:target {
  scroll-margin-top: 1rem;
}
a {
  color: var(--c-blue);
  text-underline-offset: 0.2em;
}
a:hover {
  color: var(--c-blue-hover);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--c-text);
  line-height: 1.2;
  letter-spacing: -0.035em;
}
h1 {
  font-size: clamp(2.1rem, 3.5vw, 3.6rem) !important;
  font-weight: 760 !important;
}
h2.section-title {
  font-weight: 760;
  letter-spacing: -0.025em;
}
.text-body-secondary {
  color: var(--c-muted) !important;
}
.kicker {
  color: var(--c-blue) !important;
  font-size: 0.82rem;
  font-weight: 750;
  letter-spacing: 0.06em;
}
.site-header {
  position: fixed;
  top: var(--chrome-focus-top, 0px);
  inset-inline: 0;
  z-index: 1040;
  background: var(--c-header);
  border-bottom: 1px solid var(--c-line);
  padding-top: env(safe-area-inset-top, 0px);
  box-shadow: 0 3px 18px rgb(12 30 52 / 0.04);
}
.site-header .navbar {
  position: static;
  padding: 0.4rem 0;
  background: transparent;
  border: 0;
  backdrop-filter: none;
}
.site-header .nav-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: nowrap;
}
.navbar-brand {
  padding-block: 0;
  margin: 0;
  flex-shrink: 0;
}
.brand-image {
  display: block;
  width: 154px;
  max-width: 100%;
  height: auto;
  max-height: 44px;
  object-fit: contain;
}
.brand-image-dark {
  display: none;
}
[data-bs-theme="dark"] .brand-image-light {
  display: none;
}
[data-bs-theme="dark"] .brand-image-dark {
  display: block;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  order: 3;
  flex-shrink: 0;
}
.theme-toggle,
.header-contact,
.navbar-toggler {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--c-line);
  border-radius: var(--c-radius-sm);
  background: var(--c-surface);
  color: var(--c-text);
  padding: 0.5rem 0.75rem;
  text-decoration: none;
}
.theme-toggle {
  background: var(--c-surface-soft);
}
.theme-toggle i {
  pointer-events: none;
}
.header-contact {
  gap: 0.5rem;
  background: #2466a8;
  border-color: #2466a8;
  color: #fff;
  font-weight: 650;
}
.header-contact:hover {
  background: #1b518b;
  color: #fff;
}
.site-header .navbar-toggler {
  border-color: var(--c-line);
}
.site-header .navbar-nav {
  align-items: center;
  gap: 0.15rem;
  margin-inline: auto;
  flex-wrap: nowrap;
}
.site-header .nav-link {
  font-size: 0.88rem;
  font-weight: 620;
  white-space: nowrap;
  padding: 0.65rem 0.65rem !important;
  color: var(--c-muted);
  border: 0;
  border-radius: 6px;
  background: transparent;
}
.site-header .nav-link:hover,
.site-header .nav-link.active {
  color: var(--c-text);
}
.site-header .nav-link.active {
  box-shadow: inset 0 -2px var(--ans-green);
}
.site-header .dropdown-menu {
  background: var(--c-surface);
  color: var(--c-text);
  border-color: var(--c-line);
  box-shadow: var(--c-shadow);
  padding: 0.5rem;
}
.site-header .dropdown-item {
  padding: 0.6rem 0.8rem;
  border-radius: 5px;
  color: var(--c-text);
}
.site-header .dropdown-item.active,
.site-header .dropdown-item:hover {
  background: var(--c-surface-soft);
  color: var(--c-blue);
}
.nav-keyboard-hint {
  display: none;
}
.no-js-menu {
  display: none;
}
.site-body .site-footer {
  position: fixed;
  top: auto;
  bottom: var(--keyboard-inset, 0px);
  inset-inline: 0;
  z-index: 1040;
  height: auto;
  min-height: 0;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  background: var(--c-footer);
  color: var(--c-footer-text);
  border-top: 1px solid #294259;
  backdrop-filter: none;
}
.site-footer .footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 0.3rem !important;
  min-height: 3.35rem;
}
.footer-brand {
  display: flex;
  align-items: center;
  min-height: 44px;
  flex-shrink: 0;
}
.footer-brand img {
  width: 88px;
  height: auto;
  max-height: 28px;
  object-fit: contain;
}
.footer-brand .brand-image-light {
  display: none;
}
.footer-brand .brand-image-dark {
  display: block;
}
.site-footer .footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  justify-content: center;
  font-size: 0.78rem;
}
.site-footer .footer-links a {
  min-width: 44px;
  justify-content: center;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--c-footer-text);
  opacity: 1;
}
.footer-copyright {
  font-size: 0.7rem;
  white-space: nowrap;
  color: var(--c-footer-muted);
}
.footer-consent {
  display: inline-flex;
  gap: 0.4rem;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  background: transparent;
  color: var(--c-footer-text);
  border: 0;
  border-radius: 4px;
  padding: 0.4rem 0.35rem;
  font-size: 0.78rem;
  white-space: nowrap;
}
.footer-consent:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.footer-social {
  display: flex;
  gap: 0.25rem;
}
.footer-social .instagram-fab,
.footer-social .whatsapp-fab {
  position: static;
  display: inline-flex;
  min-width: 44px;
  width: 44px;
  height: 44px;
  margin: 0;
  border-radius: 6px;
  background: transparent;
  color: #dce9f6;
  box-shadow: none;
}
.footer-social i {
  font-size: 1.05rem;
}
.footer-mobile-links {
  display: none;
  position: relative;
}
.footer-mobile-links summary {
  cursor: pointer;
  min-height: 44px;
  padding: 0.55rem 0.7rem;
  border: 1px solid #456078;
  border-radius: 7px;
  list-style: none;
}
.footer-mobile-links summary::marker {
  content: "";
}
.footer-mobile-links nav {
  position: absolute;
  bottom: calc(100% + 1rem);
  right: 0;
  min-width: 13rem;
  max-width: calc(100vw - 2rem);
  max-height: calc(
    var(--visual-height) - var(--chrome-header-h) - var(--chrome-footer-h) -
      2rem
  );
  overflow: auto;
  padding: 0.75rem;
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: 10px;
  box-shadow: var(--c-shadow-hover);
  color: var(--c-text);
}
.footer-mobile-links a {
  display: block;
  min-height: 44px;
  padding: 0.65rem 0.75rem;
  color: var(--c-text);
  text-decoration: none;
}
.footer-mobile-links a:hover {
  background: var(--c-surface-soft);
}
.site-body .scroll-top {
  position: fixed;
  right: 1rem;
  bottom: calc(var(--chrome-footer-h) + var(--keyboard-inset) + 1rem);
  width: 44px;
  height: 44px;
  background: var(--c-footer);
  color: #fff;
  box-shadow: var(--c-shadow);
  z-index: 1020;
  margin: 0;
}
.no-js-note:empty {
  display: none;
}
.feature-card {
  border: 1px solid var(--c-line);
  border-radius: var(--c-radius);
  background: var(--c-surface);
  box-shadow: var(--c-shadow);
  backdrop-filter: none;
  transition:
    box-shadow 0.2s,
    border-color 0.2s;
}
.feature-card:hover {
  transform: none;
  box-shadow: var(--c-shadow-hover);
}
[data-bs-theme="dark"] .feature-card {
  background: var(--c-surface);
  border-color: var(--c-line);
}
.icon-badge {
  background: var(--c-surface-soft);
  color: var(--c-blue);
  border-radius: 10px;
}
.btn {
  border-radius: var(--c-radius-sm);
  font-weight: 650;
  line-height: 1.4;
  padding: 0.7rem 1.1rem;
  min-height: 44px;
  white-space: normal;
}
.btn-primary {
  --bs-btn-bg: #2466a8;
  --bs-btn-border-color: #2466a8;
  --bs-btn-color: #fff;
  --bs-btn-hover-bg: #1b518b;
  --bs-btn-hover-border-color: #1b518b;
}
.btn-outline-primary {
  --bs-btn-color: var(--c-blue);
  --bs-btn-border-color: var(--c-blue);
  --bs-btn-hover-bg: #2466a8;
  --bs-btn-hover-border-color: #2466a8;
  --bs-btn-hover-color: #fff;
}
.btn-outline-secondary {
  --bs-btn-color: var(--c-muted);
  --bs-btn-border-color: var(--c-line);
  --bs-btn-hover-bg: var(--c-surface-soft);
  --bs-btn-hover-color: var(--c-text);
}
[data-bs-theme="dark"] .btn-outline-primary {
  --bs-btn-color: #97caff;
  --bs-btn-border-color: #78b7f4;
  --bs-btn-hover-color: #0f172a;
  --bs-btn-hover-bg: #97caff;
}
[data-bs-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: var(--c-muted);
  --bs-btn-border-color: var(--c-line);
  --bs-btn-hover-color: var(--c-text);
  --bs-btn-hover-bg: var(--c-surface-soft);
}
.form-control,
.form-select {
  min-height: 48px;
  padding: 0.75rem;
  border-color: var(--c-line);
  background: var(--c-bg);
  color: var(--c-text);
  border-radius: 8px;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--c-blue);
  background: var(--c-surface);
  color: var(--c-text);
  box-shadow: 0 0 0 3px rgb(43 120 197 / 0.14);
}
.form-label {
  font-weight: 650;
  font-size: 0.9rem;
}
.form-check-input {
  border-color: var(--c-muted);
}
.form-check-input:checked {
  background-color: #2466a8;
  border-color: #2466a8;
}
.accordion {
  --bs-accordion-bg: var(--c-surface);
  --bs-accordion-color: var(--c-text);
  --bs-accordion-border-color: var(--c-line);
  --bs-accordion-active-bg: var(--c-surface-soft);
  --bs-accordion-active-color: var(--c-text);
}
.accordion-button {
  font-weight: 650;
  line-height: 1.5;
}
.table {
  --bs-table-bg: var(--c-surface);
  --bs-table-color: var(--c-text);
  --bs-table-border-color: var(--c-line);
}
dialog {
  border-color: var(--c-line);
  border-radius: var(--c-radius);
  background: var(--c-surface);
  color: var(--c-text);
  box-shadow: var(--c-shadow-hover);
  max-height: calc(var(--visual-height) - 2rem);
  max-width: min(42rem, calc(100vw - 1.5rem));
  padding: 1.5rem;
}
dialog::backdrop {
  background: rgb(5 16 30 / 0.72);
}
.consent-option {
  font-weight: 600;
}
.skip-link {
  background: var(--c-surface);
  color: var(--c-text);
  border: 2px solid var(--c-focus);
}
:focus-visible {
  outline: 3px solid var(--c-focus) !important;
  outline-offset: 3px !important;
}
@media (min-width: 992px) {
  .site-header .offcanvas {
    flex: 1;
    min-width: 0;
    order: 2;
  }
  .site-header .offcanvas-body {
    padding: 0;
    justify-content: center;
  }
}
@media (max-width: 991.98px) {
  .site-header .offcanvas {
    top: calc(var(--chrome-focus-top, 0px) + var(--chrome-header-h));
    bottom: calc(
      var(--keyboard-inset, 0px) + var(--chrome-footer-h)
    );
    height: auto;
    max-width: min(25rem, 100vw);
    background: var(--c-surface) !important;
    color: var(--c-text) !important;
  }
  .site-header .navbar-nav {
    align-items: stretch;
    gap: 0;
  }
  .site-header .nav-link {
    font-size: 1rem;
    padding: 0.8rem !important;
    text-align: left;
  }
  .site-header .dropdown-menu {
    display: block;
    position: static;
    border: 0;
    box-shadow: none;
    padding: 0 0.6rem;
  }
  .site-header .dropdown-toggle {
    display: none;
  }
  .nav-keyboard-hint {
    display: block;
    margin: 1rem 0.8rem;
    color: var(--c-muted);
    font-size: 0.8rem;
  }
  .site-header .header-actions {
    margin-left: auto;
  }
}
.compact-navigation .site-header .navbar-toggler {
  display: inline-flex !important;
}
.compact-navigation .site-header .offcanvas {
  position: fixed !important;
  top: calc(var(--chrome-focus-top, 0px) + var(--chrome-header-h)) !important;
  bottom: calc(
    var(--keyboard-inset, 0px) + var(--chrome-footer-h)
  ) !important;
  height: auto !important;
  width: 25rem !important;
  max-width: 100vw;
  visibility: hidden !important;
  transform: translateX(100%) !important;
  background: var(--c-surface) !important;
  flex: initial !important;
}
.compact-navigation .site-header .offcanvas.show,
.compact-navigation .site-header .offcanvas.showing {
  visibility: visible !important;
  transform: none !important;
}
.compact-navigation .site-header .offcanvas-header {
  display: flex !important;
}
.compact-navigation .site-header .offcanvas-body {
  display: block !important;
  overflow-y: auto !important;
  padding: 1rem !important;
}
.compact-navigation .site-header .navbar-nav {
  flex-direction: column;
  align-items: stretch;
}
.compact-navigation .site-header .nav-link {
  font-size: 1rem;
  text-align: left;
}
.compact-navigation .site-header .dropdown-menu {
  display: block;
  position: static;
  border: 0;
  box-shadow: none;
}
.compact-navigation .site-header .dropdown-toggle {
  display: none;
}
.compact-navigation .nav-keyboard-hint {
  display: block;
}
.offcanvas-backdrop {
  top: calc(var(--chrome-focus-top, 0px) + var(--chrome-header-h));
  bottom: calc(
    var(--keyboard-inset, 0px) + var(--chrome-footer-h)
  );
  height: auto;
  z-index: 1035;
}
@media (max-width: 1199px) {
  .site-footer .footer-links {
    display: none;
  }
  .footer-mobile-links {
    display: block;
  }
  .footer-copyright span {
    display: none;
  }
  .footer-social {
    display: none;
  }
  .site-footer .footer-inner {
    justify-content: space-between;
  }
}
@media (max-width: 575px) {
  .site-header .navbar {
    padding: 0.35rem 0;
  }
  .site-header .nav-inner {
    gap: 0.5rem;
  }
  .brand-image {
    width: 118px;
    max-height: 36px;
  }
  .header-actions {
    gap: 0.35rem;
  }
  .header-contact {
    padding: 0.5rem;
    min-width: 44px;
  }
  .header-contact span {
    display: none;
  }
  .theme-toggle,
  .navbar-toggler {
    padding: 0.4rem;
    min-width: 44px;
    min-height: 44px;
  }
  .site-footer .footer-inner {
    gap: 0.5rem;
    min-height: 3.35rem;
  }
  .footer-brand img {
    width: 80px;
  }
  .footer-consent span {
    display: none;
  }
  .footer-copyright {
    display: none;
  }
  .site-body .scroll-top {
    right: 0.6rem;
    bottom: calc(var(--chrome-footer-h) + var(--keyboard-inset) + 0.6rem);
  }
  .site-body main {
    padding-top: 1.2rem !important;
  }
  .site-body .container {
    padding-inline: 1rem;
  }
}
.compact-chrome .site-header .navbar {
  padding-block: 0.3rem;
}
.compact-chrome .brand-image {
  max-height: 30px;
  width: 105px;
}
.compact-chrome .site-footer .footer-inner {
  min-height: 3.25rem;
  padding-block: 0.3rem !important;
}
.compact-chrome .footer-copyright,
.compact-chrome .footer-social {
  display: none;
}
.compact-chrome .footer-links {
  display: none;
}
.compact-chrome .footer-mobile-links {
  display: block;
}
.compact-chrome .footer-consent span {
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: anywhere;
}

/* Landscape cutouts: preserve ordinary gutters and reserve real device insets. */
.site-header .nav-inner,
.site-footer .footer-inner,
.site-body main.container {
  padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
  padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
}

/* Floating convenience controls must never cover a focused form field. */
.compact-chrome #scrollTopBtn {
  display: none !important;
}
.site-body:has(#contactForm :focus) #scrollTopBtn {
  visibility: hidden;
}

/* Price CTAs align within their own Bootstrap row; single-column cards stay natural. */
.site-body .price-card { display: flex; flex-direction: column; border-width: 2px; }
.price-card > .btn { margin-top: auto; align-self: flex-start; }
.price-card > ul { margin-bottom: 1.5rem !important; }
.price-card-heading { flex-wrap: wrap; }
.price-card-heading > .d-flex { min-width: 0; }
.price-card-heading h3 { overflow-wrap: anywhere; }
.site-body .price-card.is-recommended { border: 2px solid #3a9b59 !important; }
[data-bs-theme="dark"] .site-body .price-card.is-recommended { border-color: #66bd82 !important; }

/* Branded PHP error code; static fallbacks carry their own independent skin. */
.error-number { color: var(--c-blue); }

/* New draft menu label must reflow under text enlargement. */
.site-header .dropdown-item[href="/app-entwicklung.php"]{white-space:normal;overflow-wrap:anywhere}

/* Software draft navigation reflows at enlarged text sizes. */
.site-header .dropdown-item[href="/software-entwicklung.php"]{white-space:normal;overflow-wrap:anywhere}

/* Issue 28: direct business entry points; existing chrome measurements retained. */
.site-header .nav-draft{font-size:.58rem;color:var(--c-muted);margin-left:.2rem;font-weight:500}
.site-header .nav-secondary{display:none}
@media(max-width:991.98px){.site-header .nav-secondary{display:block}}
.compact-navigation .site-header .nav-secondary{display:block}
.portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.portfolio-card{display:flex;flex-direction:column;padding:1.5rem;min-width:0}.portfolio-card>i{font-size:1.8rem;color:var(--c-blue);margin-bottom:1rem}.portfolio-card .btn{white-space:normal}.portfolio-draft{color:var(--c-muted);margin-bottom:.7rem}.portfolio-it-details{margin:1.5rem 0 3rem}.portfolio-it-details>summary{cursor:pointer;padding:1rem;border:1px solid var(--c-line);border-radius:.5rem;min-height:44px;color:var(--c-text);font-weight:650}.portfolio-it-details[open]>section{margin-top:2rem}
@media(max-width:991px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575px){.portfolio-grid{grid-template-columns:1fr}.portfolio-card{padding:1.25rem}}
@media(min-width:1200px){.site-footer .footer-links{gap:.5rem;flex-wrap:nowrap}.site-footer .footer-links a{font-size:.69rem}}


.home-hero-copy,.portfolio-card{overflow-wrap:anywhere}.portfolio-card .btn{overflow-wrap:anywhere}

/* Text zoom: wrap long benefit labels and keep compact chrome controls operable. */
.benefit,.benefit>div{min-width:0}.benefit>div{overflow-wrap:anywhere}
.text-zoom-chrome .header-actions{gap:6px}.text-zoom-chrome .header-actions>.theme-toggle,.text-zoom-chrome .header-actions>.header-contact,.text-zoom-chrome .header-actions>.navbar-toggler{width:44px;min-width:44px;height:44px;padding:6px;font-size:18px}.text-zoom-chrome .navbar-toggler-icon{width:24px;height:24px}.text-zoom-chrome .header-contact span{display:none}
.text-zoom-chrome .footer-links{display:none}.text-zoom-chrome .footer-mobile-links{display:block}.text-zoom-chrome .footer-social,.text-zoom-chrome .footer-copyright{display:none}.text-zoom-chrome .footer-mobile-links summary{font-size:14px;padding:8px;min-height:44px}.text-zoom-chrome .footer-consent{min-width:44px;padding:6px}

.text-zoom-chrome .site-header .nav-link{white-space:normal;overflow-wrap:anywhere}.text-zoom-chrome .offcanvas-header{gap:8px;min-width:0}.text-zoom-chrome .offcanvas-title{min-width:0;overflow-wrap:anywhere}

.home-trust{overflow-wrap:anywhere}.home-trust .row>*{min-width:0}

/* RC35 visual review: grouped disclosure, same framework and chrome measurements. */
.site-header .nav-group-title{display:none}
.site-header .dropdown-menu{min-width:15rem;max-height:calc(var(--visual-height) - var(--chrome-header-h) - var(--chrome-footer-h) - 2rem);overflow:auto;animation:none;transition:none}
.site-header .dropdown-item{min-height:44px;display:flex;align-items:center;white-space:normal}
.site-header .dropdown-menu a:focus-visible{outline-offset:-3px!important}
@media(max-width:991.98px){.site-header .nav-group-title{display:block;padding:.8rem .8rem .25rem;font-weight:650;color:var(--c-text)}}
.compact-navigation .site-header .nav-group-title{display:block;padding:.8rem .8rem .25rem;font-weight:650;color:var(--c-text)}
@media(min-width:992px){html:not(.compact-navigation) .site-header .nav-keyboard-hint{display:none}}

@media(max-width:991.98px){.site-header .dropdown-menu{min-width:0;max-height:none;overflow:visible}}
.compact-navigation .site-header .dropdown-menu{min-width:0;max-height:none;overflow:visible}

/* One central first-visit prompt; existing fixed footer remains available. */
.consent-banner[hidden]{display:none}
.consent-banner{position:fixed;z-index:1044;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(var(--chrome-footer-h) + var(--keyboard-inset) + 8px);max-width:1120px;margin-inline:auto;max-height:calc(var(--visual-height,100dvh) - var(--chrome-header-h) - var(--chrome-footer-h) - 32px);overflow:auto;overscroll-behavior:contain;display:flex;align-items:center;gap:20px;padding:18px 22px;background:var(--bs-body-bg);color:var(--bs-body-color);border:1px solid var(--bs-border-color);border-left:4px solid #3a9b59;border-radius:14px;box-shadow:0 10px 40px #0f172a26}
.consent-banner p{margin:0;font-size:.875rem}.consent-banner h2{margin:0 0 6px}.consent-banner-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0;max-width:420px}.consent-banner-actions .btn{min-height:44px;flex:1 1 auto;white-space:nowrap}.consent-text-link{border:0;background:none;padding:0;color:var(--bs-link-color);text-decoration:underline;font:inherit}.consent-text-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}
@media(max-width:767.98px){.consent-banner{display:block;padding:14px}.consent-banner-actions{margin-top:12px;max-width:none}.consent-banner-actions .btn{flex:1 1 40%}.consent-banner-actions .btn:last-child{flex-basis:100%}}


/* v7.2.2: native dialog, unchanged original screenshots and atomic price expressions. */
.app-lightbox{width:min(58rem,calc(100vw - 1.5rem));max-width:calc(100vw - 1.5rem);max-height:calc(100dvh - 1.5rem);padding:1rem;border:1px solid var(--c-line);border-radius:1rem;background:var(--c-surface);color:var(--c-text);overflow:auto}
.app-lightbox::backdrop{background:rgb(7 17 30 / .82)}
.app-lightbox-shell{display:grid;gap:.8rem;min-width:0}
.app-lightbox-toolbar,.app-lightbox-navigation{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}
.app-lightbox-toolbar h2{overflow-wrap:anywhere}
.app-lightbox button{min-width:44px;min-height:44px;flex-shrink:0}
.app-lightbox figure{text-align:center;min-width:0}
.app-lightbox img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100dvh - 14rem);object-fit:contain;margin-inline:auto;touch-action:pan-y pinch-zoom}
.app-lightbox figcaption{font-size:.9rem;margin-top:.6rem;overflow-wrap:anywhere}
.price-part{display:inline-block;white-space:nowrap;max-width:100%;font-variant-numeric:tabular-nums}
.price-details{line-height:1.6;overflow-wrap:normal}
.price-duration{display:block;font-size:1rem;font-weight:400;color:var(--c-muted)}
.faq-reading{max-width:70rem;margin-inline:auto}

/* v7.3 Phase A: one shared price and contact presentation. */
.price-summary{display:grid;gap:.55rem;font-size:1rem;font-weight:400;line-height:1.5;min-width:0;margin-bottom:1.25rem}
.price-main{font-size:clamp(1.8rem,2.8vw,2.2rem);font-weight:750;line-height:1.15;color:var(--c-text)}
.price-summary .price-details{display:block;font-size:.875rem;font-weight:400;color:var(--bs-secondary-color)}
.price-business{min-height:4.5em}

.price-unit{font-size:.875rem;font-weight:600;border-top:1px solid var(--c-line);padding-top:.65rem;color:var(--c-text)}
.contact-form-card{padding:clamp(1rem,2.5vw,2rem)}
.contact-layout>*{min-width:0}
#contactForm input.form-control,#contactForm select.form-select{height:3rem;min-height:3rem;min-width:0;font-size:1rem}
.form-select{padding-inline-end:2.5rem}
#contactForm textarea.form-control{min-height:10rem;height:auto;resize:vertical;font-size:1rem}
#contactForm .form-check{padding-left:1.75rem}
#contactForm .form-check-label{line-height:1.6}
#contactForm [type=submit]{min-height:48px;white-space:normal}
.contact-sidebar{align-self:start}
