:root {
  --background: #f6f1e9;
  --surface: #fffdfa;
  --green: #123f29;
  --green-deep: #0c3320;
  --gold: #b58b36;
  --gold-soft: #c4a257;
  --text: #102d21;
  --muted: #526159;
  --line: #e5dfd4;
  --shadow: 0 18px 50px rgba(31, 49, 39, .08);
  --content: 1390px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--text);
  background: var(--background);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; }
a { color: inherit; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: -80px;
  left: 24px;
  z-index: 100;
  padding: 12px 18px;
  background: #fff;
  border-radius: 8px;
}

.skip-link:focus { top: 16px; }

.site-header {
  position: relative;
  z-index: 20;
  background: #f6f1e9;
  border-bottom: 1px solid rgba(17, 63, 41, .05);
}

.header-inner {
  width: min(calc(100% - 64px), 1480px);
  min-height: 113px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 34px;
}

.logo-link {
  width: 262px;
  height: 82px;
  margin-right: auto;
  overflow: visible;
  display: flex;
  align-items: center;
}

.logo-link img {
  width: 246px;
  height: 142px;
  max-width: none;
  object-fit: cover;
  object-position: 50% 48%;
  transform: scale(.96);
  transform-origin: left center;
}

.desktop-nav {
  display: flex;
  align-items: stretch;
  gap: clamp(22px, 2.6vw, 48px);
  align-self: stretch;
}

.desktop-nav a {
  display: flex;
  align-items: center;
  position: relative;
  white-space: nowrap;
  color: #171d19;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
}

.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 31px;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
}

.desktop-nav a:hover::after,
.desktop-nav a.active::after { transform: scaleX(1); }

.button {
  min-height: 55px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 17px;
  padding: 0 30px;
  border: 1px solid var(--green);
  border-radius: 10px;
  background: var(--green);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  transition: transform .18s ease, background-color .18s ease;
}

.button:hover { transform: translateY(-2px); background: var(--green-deep); }

.button:focus-visible,
.desktop-nav a:focus-visible,
.menu-button:focus-visible,
.mobile-menu a:focus-visible {
  outline: 3px solid var(--gold-soft);
  outline-offset: 4px;
}

.header-cta {
  min-width: 182px;
  margin-left: auto;
}

.menu-button,
.mobile-menu { display: none; }

.hero {
  position: relative;
  overflow: hidden;
  min-height: 600px;
  background: var(--background);
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("Bilder/Hintergrund.png") calc(100% - clamp(260px, 23vw, 470px)) center / auto 135% no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 30%, rgba(0,0,0,.2) 42%, #000 61%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, transparent 30%, rgba(0,0,0,.2) 42%, #000 61%, #000 100%);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(246,241,233,.98) 0%, rgba(246,241,233,.82) 31%, rgba(246,241,233,.26) 49%, transparent 66%);
}

.hero-inner {
  width: min(calc(100% - 64px), var(--content));
  min-height: 600px;
  margin: 0 auto;
  position: relative;
  display: flex;
  align-items: flex-start;
  z-index: 1;
}

.hero-copy {
  width: 700px;
  padding-top: 57px;
}

.eyebrow {
  margin: 0 0 20px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

h1, h2, h3 {
  margin-top: 0;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--green);
}

h1 {
  margin-bottom: 25px;
  font-size: clamp(64px, 5.6vw, 87px);
  line-height: .92;
  letter-spacing: -.045em;
}

h1 span { color: var(--gold); }

.lead {
  max-width: 495px;
  margin: 0;
  font-size: 18px;
  line-height: 1.75;
}

.hero-actions {
  display: flex;
  gap: 14px;
  margin-top: 31px;
  flex-wrap: nowrap;
}

.hero-actions .button {
  flex: 0 0 auto;
  white-space: nowrap;
}

.primary-button { min-width: 210px; }

.secondary-button {
  min-width: 174px;
  min-height: 55px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 26px;
  border: 1px solid var(--gold);
  border-radius: 10px;
  color: var(--text);
  background: rgba(255, 253, 249, .72);
  font: inherit;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  cursor: pointer;
  transition: color .18s ease, background-color .18s ease, transform .18s ease;
}

.secondary-button:hover { color: #fff; background: var(--green); transform: translateY(-2px); }

.painter-button {
  min-width: 170px;
  padding-inline: 24px;
  color: var(--green);
  background: rgba(255, 253, 249, .72);
  border-color: rgba(18, 63, 41, .45);
}

.painter-button:hover { color: #fff; }

.benefits {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 31px;
  width: 650px;
  margin: 42px 0 0;
  padding: 0;
  list-style: none;
  overflow: visible;
}

.benefits li {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 14px;
  font-weight: 700;
  overflow: visible;
}

.benefit-icon {
  position: relative;
  flex: 0 0 34px;
  width: 34px;
  height: 38px;
  color: var(--gold);
  overflow: visible;
}

.benefit-icon i {
  position: absolute;
  display: block;
  font-style: normal;
}

.icon-tag {
  width: 28px;
  height: 28px;
  margin-left: 2px;
  border: 2px solid var(--gold);
  border-radius: 3px;
  transform: rotate(-45deg);
}

.icon-tag::before {
  content: "";
  position: absolute;
  width: 7px;
  height: 7px;
  top: 4px;
  right: 4px;
  border: 2px solid var(--gold);
  border-radius: 50%;
}

.icon-tag::after {
  display: none;
}

.icon-shield {
  width: 31px;
  height: 36px;
  border: 2px solid var(--gold);
  border-radius: 8px 8px 14px 14px;
}

.icon-shield i {
  inset: 4px 0 0;
  text-align: center;
  font-size: 15px;
  font-weight: 800;
}

.icon-pin {
  width: 28px;
  height: 34px;
  margin-left: 2px;
  border: 2px solid var(--gold);
  border-radius: 50% 50% 50% 4px;
  transform: rotate(-45deg);
}

.icon-pin::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  top: 8px;
  left: 8px;
  border: 2px solid var(--gold);
  border-radius: 50%;
}

.icon-headset {
  width: 31px;
  height: 28px;
  margin-top: 3px;
  border: 2px solid var(--gold);
  border-bottom-color: transparent;
  border-radius: 18px 18px 7px 7px;
}

.icon-headset::before,
.icon-headset::after {
  content: "";
  position: absolute;
  width: 6px;
  height: 13px;
  top: 12px;
  border: 2px solid var(--gold);
  border-radius: 4px;
  background: var(--background);
}

.icon-headset::before { left: -3px; }
.icon-headset::after { right: -3px; }

.icon-headset i {
  width: 11px;
  height: 2px;
  right: 0;
  bottom: -2px;
  background: var(--gold);
}

.fixprice-card {
  position: absolute;
  right: 0;
  bottom: 52px;
  width: 260px;
  min-height: 145px;
  display: flex;
  gap: 17px;
  padding: 27px 25px;
  background: rgba(255, 253, 249, .96);
  border-radius: 15px;
  box-shadow: var(--shadow);
}

.checkmark {
  flex: 0 0 39px;
  height: 39px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--gold-soft);
  color: #fff;
  font-size: 23px;
}

.fixprice-card strong {
  display: block;
  font-size: 17px;
  line-height: 1.35;
}

.fixprice-card p {
  margin: 13px 0 0;
  font-size: 14px;
}

.calculator-section {
  padding: 31px 0 85px;
  background: #f6f1e9;
  text-align: center;
}

.section-inner {
  width: min(calc(100% - 40px), 970px);
  margin: 0 auto;
}

.eyebrow.centered { margin-bottom: 6px; }

h2 {
  margin-bottom: 10px;
  font-size: clamp(32px, 3vw, 42px);
  line-height: 1.15;
}

.section-intro {
  margin: 0 auto;
  font-size: 16px;
}

.calculator-placeholder {
  margin-top: 28px;
  overflow: hidden;
  text-align: left;
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(27, 61, 43, .04);
  border-radius: 20px;
  box-shadow: var(--shadow);
}

.calculator-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  padding: 24px 28px;
  list-style: none;
}

.calculator-steps li {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 0 28px;
  border-right: 1px solid var(--line);
}

.calculator-steps li:first-child { padding-left: 0; }
.calculator-steps li:last-child { padding-right: 0; border-right: 0; }

.calculator-steps li > span {
  flex: 0 0 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f2eee7;
  font-weight: 700;
}

.calculator-steps li.current > span {
  color: #fff;
  background: var(--green);
}

.calculator-steps strong,
.calculator-steps small { display: block; }

.calculator-steps strong { font-size: 14px; }
.calculator-steps small { font-size: 12px; }

.placeholder-content {
  min-height: 185px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 34px 40px;
  border-top: 1px solid var(--line);
  background: rgba(248, 245, 238, .55);
}

.placeholder-content h3 {
  margin: 7px 0;
  font-size: 25px;
}

.placeholder-content p {
  max-width: 620px;
  margin: 0;
  color: var(--muted);
}

.placeholder-label {
  color: var(--gold);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.placeholder-content button {
  flex: 0 0 auto;
  padding: 13px 22px;
  border: 0;
  border-radius: 9px;
  color: #7b817d;
  background: #e7e5df;
  font: inherit;
  font-weight: 700;
}

.future-anchor { height: 1px; }

.legal-bar {
  min-height: 48px;
  display: flex;
  align-items: center;
  background: #eeeae1;
  border-top: 1px solid #ded8cc;
  color: #657069;
  font-size: 12px;
}

.legal-bar > div {
  width: min(calc(100% - 40px), var(--content));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 17px;
}

.legal-bar a {
  color: inherit;
  text-decoration: none;
}

.legal-bar a:hover { text-decoration: underline; }

.subpage-main {
  min-height: calc(100vh - 161px);
  padding: 74px 0 92px;
}

.subpage-inner {
  width: min(calc(100% - 40px), 960px);
  margin: 0 auto;
}

.page-intro {
  max-width: 760px;
  margin-bottom: 38px;
}

.page-intro h1 {
  margin-bottom: 18px;
  font-size: clamp(50px, 6vw, 78px);
  line-height: .98;
}

.page-intro .lead {
  max-width: 720px;
}

.legal-content,
.document-card {
  padding: clamp(28px, 5vw, 58px);
  background: rgba(255, 253, 250, .82);
  border: 1px solid rgba(18, 63, 41, .07);
  border-radius: 20px;
  box-shadow: var(--shadow);
}

.legal-content h2 {
  margin: 40px 0 12px;
  font-size: clamp(25px, 3vw, 34px);
}

.legal-content h2:first-child { margin-top: 0; }

.legal-content p {
  margin: 0 0 18px;
  color: var(--muted);
}

.legal-content a { color: var(--green); }

.legal-note {
  margin: 26px 0;
  padding: 20px 22px;
  background: rgba(181, 139, 54, .09);
  border-left: 3px solid var(--gold);
  border-radius: 0 12px 12px 0;
}

.legal-note p { margin: 0; }

.document-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.document-card h2 {
  margin-bottom: 9px;
  font-size: clamp(27px, 3vw, 36px);
}

.document-card p {
  max-width: 610px;
  margin: 0;
  color: var(--muted);
}

.download-button { flex: 0 0 auto; }

.status-line {
  margin-top: 24px;
  color: var(--muted);
  font-size: 13px;
}

.services-hero {
  position: relative;
  min-height: 610px;
  overflow: hidden;
  background: var(--background);
}

.services-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("Bilder/maler1.png") calc(100% - clamp(220px, 18vw, 360px)) center / auto 100% no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 26%, rgba(0,0,0,.2) 40%, #000 59%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, transparent 26%, rgba(0,0,0,.2) 40%, #000 59%, #000 100%);
}

.services-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(246,241,233,1) 0%, rgba(246,241,233,.94) 33%, rgba(246,241,233,.3) 55%, transparent 70%);
}

.services-hero-inner {
  width: min(calc(100% - 64px), var(--content));
  min-height: 610px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
}

.services-hero-copy {
  width: 670px;
}

.services-hero h1 {
  margin-bottom: 25px;
  font-size: clamp(58px, 5.4vw, 84px);
}

.services-hero .lead {
  max-width: 590px;
}

.services-section {
  padding: 92px 0;
}

.services-section.alt {
  background: rgba(255, 253, 250, .48);
}

.services-inner {
  width: min(calc(100% - 40px), 1120px);
  margin: 0 auto;
}

.services-heading {
  max-width: 760px;
  margin-bottom: 42px;
}

.services-heading h2 {
  font-size: clamp(38px, 4vw, 56px);
}

.services-heading p {
  color: var(--muted);
  font-size: 18px;
}

.standard-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.standard-card {
  min-height: 230px;
  padding: 31px;
  background: rgba(255, 253, 250, .82);
  border: 1px solid rgba(18, 63, 41, .07);
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(31,49,39,.05);
}

.standard-card .number {
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .13em;
}

.standard-card h3 {
  margin: 28px 0 10px;
  font-size: 29px;
}

.standard-card p {
  margin: 0;
  color: var(--muted);
}

.scope-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: start;
}

.scope-copy h2 {
  font-size: clamp(38px, 4vw, 55px);
}

.scope-copy p { color: var(--muted); }

.scope-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.scope-list li {
  padding: 16px 0 16px 30px;
  position: relative;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
}

.scope-list li::before {
  content: "-";
  position: absolute;
  left: 4px;
  color: var(--gold);
  font-weight: 800;
}

.simple-statement {
  padding: 80px 0;
  text-align: center;
  background: var(--green);
  color: #fff;
}

.simple-statement .eyebrow { color: #d5b86e; }

.simple-statement h2 {
  max-width: 900px;
  margin: 0 auto 26px;
  color: #fff;
  font-size: clamp(43px, 5vw, 67px);
}

.simple-statement p {
  max-width: 720px;
  margin: 0 auto 30px;
  color: rgba(255,255,255,.8);
  font-size: 18px;
}

.simple-statement .button {
  color: var(--green);
  background: #fff;
  border-color: #fff;
}

.homepage-statement {
  min-height: 490px;
  display: grid;
  place-items: center;
}

.price-calculator-page {
  min-height: calc(100vh - 177px);
  background: var(--background);
}

.painter-main {
  background: var(--background);
}

.painter-inner {
  width: min(calc(100% - 40px), 1060px);
  margin: 0 auto;
}

.painter-hero {
  padding: 88px 0 96px;
}

.painter-hero-grid {
  width: min(calc(100% - 64px), var(--content));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.06fr .94fr;
  gap: 80px;
  align-items: center;
}

.painter-hero h1 {
  max-width: 720px;
  margin-bottom: 25px;
  font-size: clamp(56px, 5.8vw, 86px);
}

.painter-hero .lead {
  max-width: 620px;
}

.painter-match-card {
  padding: 38px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255, 255, 255, .72);
  box-shadow: var(--shadow);
}

.painter-match-card .match-label {
  margin: 0 0 18px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.painter-match-card > div {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.painter-match-card > div span {
  flex: 0 0 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--green);
  font-size: 13px;
  font-weight: 800;
}

.painter-match-card .match-result {
  margin: 24px 0 0;
  padding: 17px 20px;
  border-radius: 13px;
  color: var(--green);
  background: rgba(190, 145, 48, .13);
  font-weight: 800;
}

.painter-benefits,
.painter-process,
.painter-settlement {
  padding: 92px 0;
}

.painter-benefits {
  background: rgba(255, 253, 250, .55);
}

.painter-benefits h2,
.painter-process h2,
.painter-settlement h2 {
  font-size: clamp(42px, 4.5vw, 60px);
}

.painter-benefit-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 38px;
}

.painter-benefit-grid article {
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, .68);
}

.painter-benefit-grid article > span {
  color: var(--gold);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .12em;
}

.painter-benefit-grid h3 {
  margin: 16px 0 9px;
  font-size: 25px;
}

.painter-benefit-grid p {
  margin: 0;
  color: var(--muted);
}

.painter-section-heading {
  max-width: 760px;
  margin-bottom: 42px;
}

.painter-section-heading > p:last-child {
  color: var(--muted);
  font-size: 18px;
}

.painter-steps {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.painter-steps li {
  display: flex;
  gap: 20px;
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255, 255, 255, .64);
}

.painter-steps li > span {
  flex: 0 0 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--green);
  font-weight: 800;
}

.painter-steps h3 {
  margin: 1px 0 6px;
  font-size: 21px;
}

.painter-steps p {
  margin: 0;
  color: var(--muted);
}

.painter-settlement {
  color: #fff;
  background: var(--green);
}

.painter-settlement-grid {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 75px;
  align-items: start;
}

.painter-settlement h2 {
  color: #fff;
}

.painter-settlement .eyebrow {
  color: #d5b86e;
}

.settlement-copy p {
  color: rgba(255, 255, 255, .82);
  font-size: 18px;
}

.settlement-copy strong {
  display: block;
  margin-top: 25px;
  color: #fff;
  font-size: 21px;
  line-height: 1.5;
}

.painter-registration {
  min-height: 450px;
  display: grid;
  place-items: center;
  background: #173f2d;
}

.registration-main,
.login-main {
  background: var(--background);
}

.registration-intro {
  padding: 72px 0 42px;
}

.registration-heading {
  width: min(calc(100% - 40px), 980px);
  margin: 0 auto;
}

.registration-heading h1 {
  max-width: 900px;
  margin-bottom: 22px;
  font-size: clamp(52px, 6vw, 82px);
}

.registration-heading .lead {
  max-width: 750px;
}

.registration-section {
  padding: 20px 0 95px;
}

.registration-form {
  width: min(calc(100% - 40px), 980px);
  margin: 0 auto;
}

.form-section {
  margin-bottom: 20px;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 16px 40px rgba(22, 58, 41, .05);
}

.form-section-title {
  display: flex;
  align-items: center;
  gap: 17px;
  margin-bottom: 28px;
}

.form-section-title > span {
  flex: 0 0 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--green);
  font-weight: 800;
}

.form-section-title h2 {
  margin: 0;
  font-size: 30px;
}

.form-section-title p {
  margin: 2px 0 0;
  color: var(--muted);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.form-grid label,
.login-card label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--green);
  font-weight: 750;
}

.form-grid input,
.form-grid select,
.login-card input {
  width: 100%;
  min-height: 50px;
  padding: 11px 14px;
  border: 1px solid rgba(23,63,45,.19);
  border-radius: 10px;
  color: var(--green);
  background: #fff;
  font: inherit;
}

.form-grid input:focus,
.form-grid select:focus,
.login-card input:focus {
  outline: 3px solid rgba(181,139,54,.18);
  border-color: var(--gold);
}

.form-grid small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}

.file-field {
  padding: 18px;
  border: 1px dashed rgba(23,63,45,.25);
  border-radius: 12px;
  background: rgba(246,241,233,.55);
}

.file-field input {
  min-height: auto;
  padding: 8px;
}

.form-consent {
  margin: 26px 0;
  padding: 22px;
  border-radius: 14px;
  background: rgba(181,139,54,.08);
}

.form-consent label {
  display: flex;
  align-items: flex-start;
  gap: 11px;
}

.form-consent input {
  margin-top: 5px;
}

.form-consent .terms-consent-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 14px;
  padding: 6px 4px;
  line-height: 1.55;
}

.form-consent .terms-consent-row input {
  width: 22px;
  height: 22px;
  margin: 2px 0 0;
}

.form-consent .terms-consent-row span {
  display: block;
  min-width: 0;
}

.form-consent .terms-consent-row a {
  font-weight: 700;
}

.terms-download-gate {
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(181,139,54,.28);
}

.terms-download-gate p {
  margin: 7px 0 14px;
  max-width: 780px;
}

.terms-download-button {
  display: inline-flex;
  margin-right: 12px;
}

.terms-download-status {
  display: inline-block;
  margin-top: 10px;
  color: #8b5d0b;
  font-size: .92rem;
  font-weight: 700;
}

.terms-download-status.is-complete {
  color: var(--green);
}

.form-consent input:disabled + * {
  opacity: .65;
}

.website-field {
  position: absolute;
  left: -10000px;
}

.registration-submit {
  min-width: 280px;
  color: #fff;
  background: var(--green);
}

.registration-submit:disabled,
.login-card button:disabled {
  opacity: .6;
  cursor: wait;
}

.form-status {
  margin-top: 18px;
  padding: 0;
  font-weight: 700;
}

.form-status.success,
.form-status.error {
  padding: 16px 18px;
  border-radius: 10px;
}

.form-status.success {
  color: var(--green);
  background: rgba(45,130,80,.12);
}

.form-status.error {
  color: #842828;
  background: rgba(180,50,50,.11);
}

.login-main {
  min-height: calc(100vh - 177px);
  display: grid;
  place-items: center;
  padding: 70px 20px;
}

.login-card {
  width: min(100%, 520px);
  padding: 42px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.78);
  box-shadow: var(--shadow);
}

.login-card h1 {
  margin-bottom: 12px;
  font-size: clamp(45px, 6vw, 62px);
}

.login-card form {
  display: grid;
  gap: 19px;
  margin-top: 28px;
}
.login-role-step { margin-top:28px; }
.login-role-step[hidden],.login-card form[hidden] { display:none; }
.login-role-step > p { margin-bottom:14px; color:var(--muted); }
.login-role-options { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.login-role-card { min-height:190px; display:flex; flex-direction:column; justify-content:center; gap:13px; padding:30px; border:2px solid transparent; border-radius:20px; background:var(--green); color:#fff; text-align:left; cursor:pointer; box-shadow:0 14px 30px rgba(14,74,50,.14); transition:.2s ease; }
.login-role-card:nth-child(2) { background:var(--gold); color:#123f2c; }
.login-role-card span { font:700 36px/1.05 var(--serif); }
.login-role-card small { color:inherit; opacity:.92; font:600 15px/1.5 Arial,sans-serif; }
.login-role-card:hover,.login-role-card:focus-visible { outline:0; border-color:#fff; box-shadow:0 16px 34px rgba(14,74,50,.2); transform:translateY(-3px); }
.login-back { justify-self:start; padding:0; border:0; background:transparent; color:var(--green); font-weight:700; cursor:pointer; }
.selected-account-type { color:var(--gold); font-size:14px; letter-spacing:.08em; text-transform:uppercase; }
@media(max-width:520px){.login-card{padding:30px 22px}.login-role-options{grid-template-columns:1fr}.login-role-card{min-height:145px}.login-role-card span{font-size:32px}}

.forgot-link {
  color: var(--green);
  font-weight: 750;
  text-align: center;
}
.chat-panel{max-width:900px}.chat-notice{padding:18px 20px;border-radius:14px;background:#f6f1e9;border-left:4px solid var(--gold);margin-bottom:25px}.chat-notice p{margin:6px 0 0}.chat-live-indicator{justify-self:start;margin:-8px 0 8px;padding:5px 10px;border-radius:99px;background:#e4f5e9;color:var(--green);font-size:12px;font-weight:800}.chat-live-indicator.offline{background:#fff1d6;color:#875b08}.chat-messages{display:flex;flex-direction:column;gap:12px;max-height:520px;overflow:auto;padding:12px 2px 22px}.chat-message{align-self:flex-start;max-width:min(78%,620px);padding:14px 17px;border-radius:16px 16px 16px 4px;background:#f6f1e9}.chat-message.own{align-self:flex-end;border-radius:16px 16px 4px 16px;background:var(--green);color:#fff}.chat-message p{margin:5px 0;white-space:pre-wrap}.chat-message small{display:block;margin-top:8px;opacity:.7}.chat-panel form{display:grid;gap:12px}.chat-panel textarea{min-height:110px}.chat-photo-picker{display:grid;gap:5px;padding:16px 18px;border:1px dashed var(--gold);border-radius:12px;background:#fff;cursor:pointer}.chat-photo-picker span{color:var(--muted);font-size:14px}.chat-photo-picker input{margin-top:8px;font:inherit}.chat-photo-previews,.chat-message-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.chat-photo-previews figure{position:relative;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.chat-photo-previews img,.chat-message-photos img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.chat-photo-file{display:grid;place-items:center;min-height:100px;padding:10px;overflow-wrap:anywhere}.chat-photo-previews .photo-remove{width:100%;border-radius:0}.chat-photo-link{display:block;overflow:hidden;border-radius:9px;background:#fff}.chat-message.own .chat-photo-link{border:1px solid rgba(255,255,255,.35)}.chat-browser-notice{position:fixed;z-index:5000;right:20px;bottom:24px;width:min(360px,calc(100% - 32px));display:grid;gap:4px;padding:16px 18px;border:1px solid var(--gold);border-radius:14px;background:#fff;color:var(--green);box-shadow:0 18px 55px rgba(8,42,29,.24);text-align:left;cursor:pointer}.chat-browser-notice strong{font-size:17px}.chat-browser-notice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-live-notice{position:fixed;z-index:5000;right:20px;top:96px;width:min(380px,calc(100% - 32px));display:grid;gap:5px;padding:18px 20px;border:1px solid var(--gold);border-radius:14px;background:#fff;color:var(--green);box-shadow:0 18px 55px rgba(8,42,29,.25);text-decoration:none}.dashboard-live-notice strong{font-size:18px}.dashboard-live-notice span{line-height:1.45}.dashboard-live-notice small{color:var(--gold);font-weight:800}

.admin-shell {
  min-height: 100vh;
  padding: 28px;
  background: var(--background);
}

.admin-header {
  width: min(100%, 1320px);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.admin-header img {
  width: 220px;
  height: 92px;
  object-fit: cover;
}

.admin-empty {
  width: min(calc(100% - 40px), 980px);
  min-height: 620px;
  margin: 40px auto 0;
  display: grid;
  place-content: center;
  text-align: center;
}

.admin-empty h1 {
  font-size: clamp(55px, 7vw, 86px);
}

.dashboard-body { background: var(--background); }
.dashboard-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); background: rgba(246,241,233,.96); backdrop-filter: blur(12px); }
.dashboard-header-inner { width: min(calc(100% - 40px), 1380px); min-height: 92px; margin: auto; display: flex; align-items: center; gap: 36px; }
.dashboard-logo { width: 220px; height: 86px; overflow: hidden; }
.dashboard-logo img { width: 220px; height: 132px; object-fit: cover; transform: translateY(-22px); }
.dashboard-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.dashboard-nav a { padding: 33px 0 29px; border-bottom: 2px solid transparent; text-decoration: none; font-weight: 750; }
.dashboard-nav a.active { border-color: var(--gold); }
.dashboard-tools { display: flex; align-items: center; gap: 16px; margin-left: auto; }
.notification-bell { width: 46px; height: 46px; position: relative; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; text-decoration: none; font-size: 20px; }
.notification-bell b { min-width: 22px; height: 22px; position: absolute; top: -6px; right: -6px; display: grid; place-items: center; padding: 0 5px; border-radius: 20px; color: #fff; background: #b33b32; font: 800 12px Arial,sans-serif; }
.dashboard-logout { padding: 10px 15px; border: 1px solid var(--line); border-radius: 8px; background: transparent; color: var(--green); font-weight: 750; cursor: pointer; }
.header-logout { align-self: stretch; display: flex; flex: 0 0 auto; margin: 0; }
.header-logout .header-cta {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: #171d19;
  cursor: pointer;
  display: flex;
  font-size: 14px;
  margin-left: 0;
  min-height: 0;
  min-width: 0;
  padding: 0;
  white-space: nowrap;
}
.header-logout .header-cta:hover { background: transparent; color: var(--green); transform: none; }
.desktop-nav a.active { border-color: var(--gold); }
.mobile-menu form { padding: 8px 24px 18px; }
.mobile-menu form .dashboard-logout { width: 100%; min-height: 46px; }
.desktop-nav .session-logout-form { align-items: center; align-self: stretch; display: flex; margin: 0; }
.session-logout-link {
  padding: 0;
  border: 0;
  color: var(--green);
  background: transparent;
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}
.desktop-nav .session-logout-link { font-size: 14px; white-space: nowrap; }
.mobile-menu .session-logout-form { padding: 0; }
.mobile-menu .session-logout-link {
  width: 100%;
  padding: 14px 24px;
  text-align: left;
}

.contact-main { padding: 72px 0 100px; }
.contact-intro { width: min(calc(100% - 40px), 980px); margin: 0 auto 48px; text-align: center; }
.contact-intro h1 { font-size: clamp(52px,7vw,82px); }
.contact-intro h1 span { color: var(--gold); }
.contact-intro > p:last-child { max-width: 720px; margin: auto; color: var(--muted); font-size: 18px; }
.contact-grid { width: min(calc(100% - 40px), 1120px); margin: auto; display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px; align-items: start; }
.contact-details,.ticket-form { padding: 36px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,253,250,.82); box-shadow: var(--shadow); }
.contact-details h2,.ticket-form h2 { font-size: clamp(34px,4vw,48px); }
.contact-method { display: grid; gap: 4px; margin-top: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; background: #fff; }
.contact-method span { color: var(--muted); font-size: 13px; }
.contact-method strong { font-size: 20px; }
.contact-note { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line); }
.contact-note p { color: var(--muted); }
.ticket-form { display: grid; gap: 20px; }
.ticket-form > label,.ticket-reply label { display: grid; gap: 8px; font-weight: 750; }
.ticket-form input,.ticket-form select,.ticket-form textarea,.ticket-reply textarea,.ticket-search input { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #d7d1c5; border-radius: 9px; color: var(--green); background: #fff; font: inherit; }
.ticket-form textarea,.ticket-reply textarea { resize: vertical; }
.ticket-honeypot { position: absolute!important; left: -10000px!important; }
.ticket-page { min-height: calc(100vh - 110px); }
.ticket-head { display: flex; justify-content: space-between; gap: 30px; align-items: flex-end; margin: 20px 0 30px; }
.ticket-head h1 { font-size: clamp(42px,5vw,64px); }
.ticket-thread { display: grid; gap: 16px; margin-bottom: 24px; }
.ticket-message { max-width: 78%; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.ticket-message.from-admin { margin-left: auto; background: #edf3ee; }
.ticket-message > div { display: flex; justify-content: space-between; gap: 20px; }
.ticket-message time { color: var(--muted); font-size: 12px; }
.ticket-message p { margin: 12px 0 0; white-space: normal; }
.ticket-reply { display: grid; gap: 16px; padding: 26px; border-radius: 16px; background: rgba(255,253,250,.85); }
.ticket-resolve,.ticket-search { display: flex; gap: 12px; margin: 0 0 22px; }
.ticket-search input { max-width: 480px; }
.ticket-archive-note { margin: 0 0 22px; color: var(--muted); }
.status-new,.status-open { color: #8a5500; background: #fff0c9; }
.status-waiting_customer { color: #315d80; background: #e5f1f8; }
.status-resolved,.status-closed { color: #2f6a44; background: #e2f1e6; }

@media (max-width: 780px) {
  .contact-main { padding: 48px 0 76px; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-details,.ticket-form { padding: 24px; }
  .ticket-head { display: grid; align-items: start; }
  .ticket-message { max-width: 94%; }
  .ticket-search { display: grid; }
}

.faq-main { background: var(--background); }
.faq-hero { padding: 76px 20px 66px; text-align: center; }
.faq-hero h1 { margin-bottom: 18px; font-size: clamp(58px,8vw,92px); }
.faq-hero h1 span { color: var(--gold); }
.faq-hero > p:not(.eyebrow) { max-width: 720px; margin: 0 auto; color: var(--muted); font-size: 18px; }
.faq-search { width: min(100%,680px); display: block; margin: 34px auto 0; }
.faq-search input { width: 100%; min-height: 58px; padding: 14px 20px; border: 1px solid var(--line); border-radius: 12px; color: var(--green); background: #fff; box-shadow: var(--shadow); font: inherit; }
.faq-content { width: min(calc(100% - 40px),980px); margin: 0 auto; padding-bottom: 90px; }
.faq-group { margin-bottom: 66px; }
.faq-group h2 { margin-bottom: 24px; font-size: clamp(40px,5vw,58px); }
.faq-item { margin-bottom: 12px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,253,250,.84); }
.faq-item summary { position: relative; padding: 21px 58px 21px 22px; cursor: pointer; list-style: none; color: var(--green); font-weight: 800; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); color: var(--gold); font-size: 27px; font-weight: 500; }
.faq-item[open] summary::after { content: "−"; }
.faq-item p { margin: 0; padding: 0 22px 22px; color: var(--muted); }
.faq-item a { color: var(--green); font-weight: 750; }
.faq-empty { padding: 30px; border-radius: 14px; text-align: center; background: #fff; }
.faq-cta { padding: 78px 20px; text-align: center; color: #fff; background: var(--green); }
.faq-cta h2 { color: #fff; font-size: clamp(42px,6vw,66px); }
.faq-cta > div { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }
.faq-cta .secondary-button { color: #fff; border-color: rgba(255,255,255,.7); }

@media (max-width: 780px) {
  .faq-hero { padding: 52px 16px 48px; }
  .faq-content { width: min(calc(100% - 28px),980px); padding-bottom: 68px; }
  .faq-group { margin-bottom: 50px; }
  .faq-item summary { padding: 19px 50px 19px 18px; }
  .faq-item p { padding: 0 18px 20px; }
}
.dashboard-main { width: min(calc(100% - 40px), 1220px); margin: 0 auto; padding: 58px 0 90px; }
.dashboard-welcome { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.dashboard-welcome h1,.business-detail-head h1 { margin-bottom: 12px; font-size: clamp(50px,6vw,76px); }
.dashboard-welcome p:last-child,.business-detail-head p { color: var(--muted); }
.dashboard-tabs { display: flex; gap: 10px; margin: 30px 0 34px; padding: 4px 0 12px; overflow-x: auto; scrollbar-width: thin; }
.dashboard-tab { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; gap: 9px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; color: var(--green); background: rgba(255,255,255,.65); font: 750 14px Arial,sans-serif; cursor: default; }
.dashboard-tab.active { color: #fff; border-color: var(--green); background: var(--green); }
.dashboard-tab b { min-width: 23px; height: 23px; display: grid; place-items: center; padding: 0 6px; border-radius: 99px; color: var(--green); background: rgba(181,139,54,.18); font-size: 12px; }
.dashboard-tab.active b { color: var(--green); background: #fff; }
.dashboard-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 15px; margin: 38px 0 28px; }
.dashboard-stats article { padding: 25px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.72); }
.dashboard-stats span,.dashboard-stats small { display: block; color: var(--muted); }
.dashboard-stats strong { display: block; margin: 8px 0 3px; color: var(--green); font: 700 43px Georgia,serif; }
.dashboard-stats .online-stat { border-color: rgba(39,143,78,.24); background: rgba(228,245,233,.7); }
.dashboard-panel { margin-top: 25px; padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.72); box-shadow: 0 14px 45px rgba(18,63,41,.05); }
.panel-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 24px; }
.panel-heading h2 { margin: 0; font-size: 38px; }
.panel-count { color: var(--muted); }
.business-table-wrap { overflow-x: auto; }
.business-table { width: 100%; border-collapse: collapse; }
.business-table th { padding: 13px 12px; color: var(--muted); text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.business-table td { padding: 17px 12px; border-top: 1px solid var(--line); vertical-align: middle; }
.business-table td strong,.business-table td small { display: block; }
.business-table td small { margin-top: 3px; color: var(--muted); }
.status-pill { display: inline-flex; padding: 7px 10px; border-radius: 999px; color: #755b20; background: rgba(181,139,54,.14); font-size: 12px; font-weight: 800; }
.status-approved { color: #1d6338; background: rgba(53,151,91,.14); }
.status-suspended,.status-rejected { color: #8d2b25; background: rgba(184,57,47,.13); }
.status-offered,.status-open,.status-pending,.status-created,.status-unassigned,.status-submitted,.status-in_review,.status-information_required{color:#755b20;background:rgba(181,139,54,.16)}.status-assigned,.status-accepted,.status-scheduled,.status-in_progress,.status-active{color:#155b75;background:rgba(45,139,181,.14)}.status-completed{color:#1d6338;background:rgba(53,151,91,.14)}.status-cancelled,.status-declined,.status-blocked{color:#8d2b25;background:rgba(184,57,47,.13)}
.online-indicator { width: 9px; height: 9px; display: inline-block; margin-right: 7px; border-radius: 50%; background: #a6aaa7; }
.online-indicator.is-online { background: #2a9a50; box-shadow: 0 0 0 4px rgba(42,154,80,.12); }
.table-action { display: inline-flex; padding: 9px 13px; border: 1px solid var(--gold); border-radius: 8px; color: var(--green); text-decoration: none; font-weight: 800; white-space: nowrap; }
.empty-row { padding: 40px!important; text-align: center; color: var(--muted); }
.dashboard-back { display: inline-block; margin-bottom: 28px; color: var(--green); font-weight: 800; text-decoration: none; }
.business-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.detail-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.detail-card { padding: 30px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.72); }
.detail-card h2 { font-size: 30px; }
.detail-card dl { display: grid; grid-template-columns: 150px 1fr; gap: 13px 20px; margin: 25px 0 0; }
.detail-card dt { color: var(--muted); }
.detail-card dd { margin: 0; font-weight: 750; }
.document-review-grid { display: grid; gap: 12px; }
.document-review { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.document-review strong,.document-review small { display: block; }
.document-review small { margin-top: 4px; color: var(--muted); }
.admin-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; padding-top: 25px; border-top: 1px solid var(--line); }
.dashboard-placeholder { min-height: 270px; display: grid; align-content: center; text-align: center; }
.dashboard-placeholder h2 { font-size: clamp(36px,4vw,50px); }
.dashboard-placeholder p:last-child { color: var(--muted); }
.dashboard-stats .status-word { font-size: 30px; }

@media (max-width: 900px) {
  .dashboard-nav { display: none; }
  .dashboard-stats { grid-template-columns: repeat(2,1fr); }
  .detail-grid { grid-template-columns: 1fr; }
}
.data-action-panel { margin-top: 24px; }
.data-action-panel > h2,.request-history h3 { color: var(--green); font-family: var(--serif); font-size: 32px; margin-top: 0; }
.data-action-panel form > .button { border: 0; cursor: pointer; margin-top: 18px; }
.textarea-label { color: var(--green); display: grid; font-weight: 700; gap: 8px; }
.textarea-label textarea,.manual-suspension-form textarea { border: 1px solid #d6d1c8; border-radius: 10px; font: inherit; padding: 13px; width: 100%; }
.request-history { border-top: 1px solid #e0d9cf; margin-top: 30px; padding-top: 25px; }
.request-history article { background: #fbfaf7; border-radius: 10px; margin-top: 10px; padding: 16px; }
.request-history span { color: var(--gold); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.verification-checklist { align-items: center; background: #f6f1e9; border-radius: 12px; display: flex; flex-wrap: wrap; gap: 16px; padding: 18px; width: 100%; }
.verification-checklist label { align-items: center; color: var(--green); display: flex; font-weight: 700; gap: 8px; }
.verification-checklist input { height: 20px; width: 20px; }
.manual-suspension-form { background: #f8dfdf; border-radius: 12px; display: grid; gap: 12px; padding: 18px; width: 100%; }
.manual-suspension-form label { color: #781919; display: grid; font-weight: 700; gap: 7px; }
.danger-button { background: #9e2424 !important; border: 0; color: #fff !important; cursor: pointer; justify-self: start; }
.directory-controls{display:grid;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr)) auto;gap:14px;align-items:end;margin-bottom:28px}.directory-controls label{display:grid;gap:7px;font-weight:700}.directory-controls input,.directory-controls select{min-height:48px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:#fff}.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:24px}.review-card{padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff}.review-score{font:700 38px/1 var(--serif);color:var(--green);margin-bottom:17px}.review-card dl{display:grid;grid-template-columns:1fr auto;gap:8px}.review-card dt,.review-card dd{margin:0}.review-card p{font-style:italic}@media(max-width:800px){.directory-controls{grid-template-columns:1fr}}
.dashboard-mobile-navigation{display:none}.dashboard-alert-center{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;margin:0 0 28px;padding:24px 28px;border-radius:18px;border:1px solid rgba(185,140,49,.35);background:linear-gradient(135deg,#fff9eb,#f6f1e9);box-shadow:0 12px 30px rgba(14,74,50,.07)}.dashboard-alert-center.has-news{border-color:var(--gold);background:linear-gradient(135deg,#fff4cf,#f6f1e9)}.dashboard-alert-center.is-clear{border-color:rgba(39,143,78,.24);background:rgba(228,245,233,.72)}.dashboard-alert-center h2{margin:3px 0 6px;font-size:clamp(28px,3vw,40px)}.dashboard-alert-center p{margin:0}.dashboard-alert-actions{display:flex;gap:12px}.dashboard-alert-actions a{display:grid;min-width:145px;padding:16px;border-radius:14px;background:var(--green);color:#fff;text-decoration:none}.dashboard-alert-actions strong{font:700 30px/1 var(--serif)}.dashboard-alert-actions span{margin-top:7px;font-size:13px;font-weight:700}
.password-setup-main{min-height:calc(100vh - 112px);display:grid;place-items:center;padding:60px 20px}.password-setup-card{display:grid;gap:19px;width:min(100%,680px);padding:clamp(28px,5vw,52px);border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.82);box-shadow:var(--shadow)}.password-setup-card h1{max-width:600px;margin:0;font-size:clamp(42px,7vw,72px);line-height:.95}.password-setup-card>p{margin:0}.password-setup-card label{display:grid;gap:8px;color:var(--green);font-weight:800}.password-setup-card input{width:100%;min-height:54px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}.password-setup-card input:focus{outline:2px solid rgba(185,140,49,.3);border-color:var(--gold)}.password-requirements{display:grid;gap:5px;padding:15px 17px;border-left:4px solid var(--gold);border-radius:9px;background:#f6f1e9}.password-requirements span{color:var(--muted);font-size:14px;line-height:1.5}.password-setup-card .button{justify-self:start;min-width:220px}
@media(max-width:760px){.dashboard-tabs{display:none}.dashboard-mobile-navigation{display:grid;gap:7px;margin:22px 0 26px;color:var(--green);font-weight:800}.dashboard-mobile-navigation select{width:100%;min-height:54px;padding:11px 42px 11px 15px;border:1px solid var(--gold);border-radius:12px;background:#fff;color:var(--green);font-size:16px;font-weight:800}.dashboard-alert-center{grid-template-columns:1fr;padding:20px}.dashboard-alert-actions{display:grid;grid-template-columns:1fr 1fr}.dashboard-alert-actions a{min-width:0}.dashboard-main{padding-top:24px}.dashboard-welcome h1{font-size:clamp(42px,13vw,62px)}}
@media(max-width:430px){.dashboard-alert-actions{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:1fr}}
.admin-edit-panel { margin-bottom: 24px; }
.admin-business-edit-form { display: grid; gap: 24px; }
.admin-business-edit-form fieldset { border: 1px solid #dfd8cc; border-radius: 14px; padding: 22px; }
.admin-business-edit-form legend { color: var(--green); font-family: var(--serif); font-size: 25px; font-weight: 700; padding: 0 8px; }
.admin-business-edit-form .primary-button { border: 0; cursor: pointer; justify-self: start; }

.process-main {
  background: var(--background);
}

.process-intro {
  padding: 70px 0 34px;
  text-align: center;
}

.process-intro-inner {
  width: min(calc(100% - 40px), 920px);
  margin: 0 auto;
}

.process-intro h1 {
  margin-bottom: 20px;
  font-size: clamp(55px, 6vw, 84px);
}

.process-intro .lead {
  max-width: 760px;
  margin: 0 auto;
}

.tutorial-wrap {
  width: min(calc(100% - 40px), 900px);
  margin: 28px auto 0;
}

.tutorial-frame {
  margin: 0;
  padding: 10px;
  background: rgba(255,253,250,.85);
  border: 1px solid rgba(18,63,41,.07);
  border-radius: 22px;
  box-shadow: var(--shadow);
}

.tutorial-frame img {
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 14px;
}

.tutorial-frame figcaption {
  padding: 11px 6px 1px;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
}

.tutorial-zoom-image {
  cursor: zoom-in;
}

.tutorial-zoom-image:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 5px;
}

body.tutorial-lightbox-open {
  overflow: hidden;
}

.tutorial-lightbox[hidden] {
  display: none;
}

.tutorial-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 54px 24px 24px;
  background: rgba(4, 20, 13, .94);
  backdrop-filter: blur(5px);
}

.tutorial-lightbox img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(96vw, 1800px);
  max-height: calc(100vh - 78px);
  object-fit: contain;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .4);
}

.tutorial-lightbox-close {
  position: fixed;
  top: 14px;
  right: 18px;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 50%;
  color: #fff;
  background: var(--green);
  font: 400 34px/1 sans-serif;
  cursor: pointer;
}

.tutorial-lightbox-close:hover,
.tutorial-lightbox-close:focus-visible {
  color: var(--green);
  background: #fff;
  outline: none;
}

.process-content {
  padding: 92px 0;
}

.process-content-inner {
  width: min(calc(100% - 40px), 1060px);
  margin: 0 auto;
}

.process-heading {
  max-width: 760px;
  margin-bottom: 50px;
}

.process-heading h2 {
  font-size: clamp(40px, 4.5vw, 60px);
}

.process-heading p {
  color: var(--muted);
  font-size: 18px;
}

.process-steps {
  display: grid;
  gap: 16px;
}

.process-step {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 24px;
  padding: 28px 32px;
  background: rgba(255,253,250,.78);
  border: 1px solid rgba(18,63,41,.07);
  border-radius: 17px;
}

.process-step-number {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  font-weight: 800;
}

.process-step h3 {
  margin: 2px 0 9px;
  font-size: 27px;
}

.process-step p {
  margin: 0;
  color: var(--muted);
}

.photo-check {
  padding: 88px 0;
  background: rgba(255,253,250,.5);
}

.photo-check-grid {
  width: min(calc(100% - 40px), 1060px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 70px;
}

.photo-check h2 {
  font-size: clamp(40px, 4.5vw, 58px);
}

.photo-check p {
  color: var(--muted);
}

.photo-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.photo-list li {
  padding: 16px 0 16px 34px;
  position: relative;
  border-bottom: 1px solid var(--line);
}

.photo-list li::before {
  content: "✓";
  position: absolute;
  left: 3px;
  color: var(--gold);
  font-weight: 900;
}

.deviation-box {
  width: min(calc(100% - 40px), 1060px);
  margin: 0 auto;
  padding: clamp(30px, 5vw, 60px);
  background: var(--green);
  color: #fff;
  border-radius: 22px;
}

.deviation-box h2 {
  color: #fff;
  font-size: clamp(38px, 4vw, 54px);
}

.deviation-box p {
  color: rgba(255,255,255,.82);
}

.deviation-box strong {
  color: #fff;
}

.about-hero {
  padding: 78px 0 84px;
}

.about-hero-grid {
  width: min(calc(100% - 64px), var(--content));
  margin: 0 auto;
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 70px;
  align-items: center;
}

.about-hero-copy h1 {
  margin-bottom: 25px;
  font-size: clamp(58px, 5.5vw, 84px);
}

.about-hero-copy .lead {
  max-width: 590px;
}

.about-image {
  min-height: 500px;
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  background-color: var(--green);
  background-image: url("Bilder/maler2.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  box-shadow: var(--shadow);
}

.about-image::after {
  display: none;
}

.story-section {
  padding: 92px 0;
  background: rgba(255,253,250,.5);
}

.story-inner {
  width: min(calc(100% - 40px), 980px);
  margin: 0 auto;
}

.story-inner h2 {
  margin-bottom: 30px;
  font-size: clamp(43px, 5vw, 64px);
}

.story-inner p {
  color: var(--muted);
  font-size: 18px;
}

.story-question {
  margin: 42px 0;
  padding: 32px;
  border-left: 4px solid var(--gold);
  background: rgba(181,139,54,.08);
  border-radius: 0 16px 16px 0;
}

.story-question p {
  margin: 0;
  color: var(--green);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
}

.fair-prices {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin-top: 40px;
}

.fair-card {
  padding: 30px;
  border-radius: 17px;
  background: rgba(255,253,250,.86);
  border: 1px solid rgba(18,63,41,.07);
}

.fair-card h3 {
  margin-bottom: 12px;
  font-size: 28px;
}

.fair-card p {
  margin: 0;
  font-size: 16px;
}

.algorithm-section {
  padding: 95px 0;
}

.algorithm-grid {
  width: min(calc(100% - 40px), 980px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: start;
}

.algorithm-grid h2 {
  font-size: clamp(42px, 4.8vw, 62px);
  max-width: 900px;
  margin-bottom: 0;
}

.algorithm-copy {
  max-width: 820px;
}

.algorithm-copy p {
  color: var(--muted);
  font-size: 17px;
}

.algorithm-factors {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 28px;
}

.algorithm-factors span {
  padding: 15px 17px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(255,253,250,.65);
  font-weight: 700;
}

.founder-band {
  padding: 88px 0;
  color: #fff;
  background: var(--green);
}

.founder-inner {
  width: min(calc(100% - 40px), 980px);
  margin: 0 auto;
  text-align: center;
}

.founder-inner h2 {
  color: #fff;
  font-size: clamp(42px, 5vw, 62px);
}

.founder-inner p {
  max-width: 790px;
  margin: 0 auto 18px;
  color: rgba(255,255,255,.8);
  font-size: 18px;
}

.founder-inner strong { color: #fff; }

@media (max-width: 1280px) {
  .desktop-nav { gap: 20px; }
  .desktop-nav a { font-size: 13px; }
  .header-inner { width: min(calc(100% - 40px), 1480px); gap: 22px; }
  .logo-link { width: 222px; }
  .header-cta { min-width: 165px; }
}

@media (max-width: 1280px) {
  .desktop-nav, .header-cta { display: none; }
  .menu-button {
    width: 48px;
    height: 44px;
    display: grid;
    align-content: center;
    gap: 5px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
  }
  .menu-button span:not(.sr-only) {
    display: block;
    height: 2px;
    background: var(--green);
  }
  .mobile-menu {
    padding: 8px 24px 22px;
    background: var(--surface);
  }
  .mobile-menu:not([hidden]) { display: block; }
  .mobile-menu a {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    text-decoration: none;
    font-weight: 700;
  }
  .benefits { width: 590px; gap: 20px; }
  .fixprice-card { right: 20px; }
  .calculator-steps li { padding: 0 15px; }
  .painter-hero-grid { gap: 45px; }
}

@media (max-width: 780px) {
  .header-inner { min-height: 82px; }
  .logo-link { width: 238px; height: 72px; }
  .logo-link img { width: 224px; height: 134px; transform: scale(.96); }
  .hero {
    min-height: auto;
    background: var(--background);
  }
  .hero::before {
    background-position: 67% center;
    background-size: auto 105%;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 36%, #000 61%, #000 100%);
    mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 36%, #000 61%, #000 100%);
  }
  .hero::after {
    background: linear-gradient(180deg, rgba(246,241,233,.98) 0%, rgba(246,241,233,.90) 43%, rgba(246,241,233,.18) 72%, transparent 100%);
  }
  .hero-inner { min-height: 760px; width: min(calc(100% - 32px), var(--content)); }
  .hero-copy { width: 100%; padding-top: 42px; }
  h1 { font-size: clamp(56px, 16vw, 76px); }
  .lead { max-width: 560px; font-size: 17px; line-height: 1.65; }
  .benefits {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 28px;
    width: auto;
    grid-template-columns: repeat(2, 1fr);
    padding: 18px;
    border-radius: 14px;
    background: rgba(255, 253, 249, .92);
    box-shadow: var(--shadow);
  }
  .fixprice-card { display: none; }
  .calculator-steps { grid-template-columns: repeat(2, 1fr); gap: 20px 0; }
  .calculator-steps li:nth-child(2) { border-right: 0; }
  .calculator-steps li:nth-child(3) { padding-left: 0; }
  .placeholder-content { align-items: flex-start; flex-direction: column; }
  .subpage-main { padding: 48px 0 70px; }
  .document-card { align-items: flex-start; flex-direction: column; }
  .services-hero { min-height: 760px; }
  .services-hero::before {
    background-position: 58% bottom;
    background-size: auto 72%;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 33%, #000 60%, #000 100%);
    mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 33%, #000 60%, #000 100%);
  }
  .services-hero::after {
    background: linear-gradient(180deg, rgba(246,241,233,1) 0%, rgba(246,241,233,.92) 42%, rgba(246,241,233,.12) 72%, transparent 100%);
  }
  .services-hero-inner {
    min-height: 760px;
    width: min(calc(100% - 32px), var(--content));
    align-items: flex-start;
    padding-top: 45px;
  }
  .services-hero-copy { width: 100%; }
  .services-hero h1 { font-size: clamp(50px, 14vw, 70px); }
  .services-section { padding: 68px 0; }
  .standard-grid, .scope-layout { grid-template-columns: 1fr; }
  .scope-layout { gap: 42px; }
  .process-intro { padding-top: 48px; }
  .process-content, .photo-check { padding: 68px 0; }
  .process-step { grid-template-columns: 52px 1fr; gap: 16px; padding: 23px 20px; }
  .process-step-number { width: 44px; height: 44px; }
  .photo-check-grid { grid-template-columns: 1fr; gap: 35px; }
  .about-hero { padding: 48px 0 65px; }
  .about-hero-grid, .algorithm-grid { grid-template-columns: 1fr; gap: 40px; }
  .about-hero-grid { width: min(calc(100% - 32px), var(--content)); }
  .about-image { min-height: 390px; order: 2; }
  .story-section, .algorithm-section, .founder-band { padding: 68px 0; }
  .fair-prices, .algorithm-factors { grid-template-columns: 1fr; }
  .simple-statement { padding: 68px 0 96px; }
  .simple-statement .services-inner { padding-bottom: env(safe-area-inset-bottom, 0); }
  .painter-hero { padding: 52px 0 68px; }
  .painter-hero-grid,
  .painter-settlement-grid {
    width: min(calc(100% - 32px), var(--content));
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .painter-hero h1 { font-size: clamp(50px, 14vw, 70px); }
  .painter-benefits,
  .painter-process,
  .painter-settlement { padding: 68px 0; }
  .painter-benefit-grid,
  .painter-steps { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .header-inner { width: calc(100% - 28px); }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 13px; }
  .primary-button, .secondary-button, .painter-button { min-width: 0; width: 100%; }
  .benefits { gap: 15px 9px; }
  .benefits li { gap: 7px; font-size: 12px; }
  .benefit-icon { flex-basis: 26px; font-size: 32px; }
  .calculator-section { padding-top: 37px; }
  .calculator-steps { padding: 20px 16px; grid-template-columns: 1fr; gap: 0; }
  .calculator-steps li,
  .calculator-steps li:nth-child(3) {
    padding: 12px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .calculator-steps li:last-child { border-bottom: 0; }
  .placeholder-content { padding: 28px 22px; }
  .painter-match-card { padding: 25px 22px; }
  .painter-benefit-grid article { padding: 26px 23px; }
  .painter-steps li { padding: 22px 19px; gap: 15px; }
  .form-section { padding: 26px 20px; }
  .registration-heading h1 { font-size: clamp(48px, 14vw, 67px); }
  .registration-submit { width: 100%; min-width: 0; }
  .login-card { padding: 32px 23px; }
  .dashboard-header-inner { width: calc(100% - 24px); gap: 10px; }
  .dashboard-logo { width: 170px; }
  .dashboard-logo img { width: 180px; }
  .dashboard-logout { padding: 8px 9px; font-size: 12px; }
  .dashboard-main { width: calc(100% - 24px); padding-top: 38px; }
  .dashboard-welcome,.business-detail-head { align-items: flex-start; flex-direction: column; }
  .dashboard-stats { grid-template-columns: 1fr; }
  .dashboard-panel { padding: 22px 16px; }
  .detail-card { padding: 24px 19px; }
  .detail-card dl { grid-template-columns: 1fr; gap: 4px; }
  .detail-card dd { margin-bottom: 12px; }
  .document-review { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* Preisrechner und Kalkulationsverwaltung */
[hidden] { display: none !important; }
.price-calculator-page { background: #f6f1e9; min-height: 80vh; padding: 70px 0 100px; }
.calculator-intro { width: min(calc(100% - 40px), 920px); margin: 0 auto 42px; text-align: center; }
.calculator-intro h1 { color: var(--green); font-family: var(--serif); font-size: clamp(43px, 5vw, 68px); line-height: .98; margin: 10px 0 20px; }
.calculator-intro > p:last-child { font-size: 18px; }
.live-calculator { width: min(calc(100% - 40px), 1040px); margin: auto; }
.calculator-progress { list-style: none; display: grid; grid-template-columns: repeat(3,1fr); margin: 0 0 18px; padding: 0; gap: 2px; }
.calculator-progress li { align-items: center; background: rgba(255,255,255,.48); color: #6a6f6b; display: flex; font-weight: 700; gap: 10px; justify-content: center; padding: 16px; }
.calculator-progress li:first-child { border-radius: 15px 0 0 15px; }
.calculator-progress li:last-child { border-radius: 0 15px 15px 0; }
.calculator-progress span { align-items: center; background: #e8e4dd; border-radius: 50%; display: inline-flex; height: 32px; justify-content: center; width: 32px; }
.calculator-progress li.active { background: var(--green); color: #fff; }
.calculator-progress li.active span { background: var(--gold); color: #fff; }
.calculator-panel { background: rgba(255,255,255,.82); border: 1px solid rgba(185,148,61,.18); border-radius: 24px; box-shadow: 0 20px 55px rgba(27,54,43,.08); padding: clamp(26px,5vw,58px); }
.calculator-heading { margin-bottom: 30px; }
.calculator-heading h2 { color: var(--green); font-family: var(--serif); font-size: clamp(34px,4vw,51px); line-height: 1; margin: 8px 0 14px; }
.calculator-heading p:last-child { color: #53605a; max-width: 720px; }
.calculator-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.calculator-form-grid label { color: var(--green); display: grid; font-weight: 700; gap: 8px; }
.field-label-title {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 10px;
}
.field-help-button {
  width: 17px;
  height: 17px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--gold);
  border-radius: 50%;
  background: #fff;
  color: var(--green);
  font: 800 10px/1 Arial, sans-serif;
  cursor: pointer;
}
.field-help-button:hover,
.field-help-button:focus-visible,
.field-help-button[aria-expanded="true"] {
  outline: none;
  background: var(--gold);
  color: #fff !important;
}
.field-help-popup {
  width: min(310px, calc(100vw - 42px));
  position: absolute;
  z-index: 80;
  top: calc(100% + 10px);
  left: 0;
  padding: 13px 15px;
  border: 1px solid rgba(185, 140, 49, .34);
  border-radius: 10px;
  background: var(--green);
  box-shadow: 0 14px 32px rgba(8, 42, 29, .2);
  color: #fff;
  font: 500 14px/1.5 Arial, sans-serif;
  text-align: left;
}
.field-help-popup::before {
  width: 10px;
  height: 10px;
  position: absolute;
  top: -6px;
  left: 18px;
  content: "";
  background: var(--green);
  transform: rotate(45deg);
}
.dashboard-stats .field-help-popup {
  color: #fff;
}
.field-help-popup[hidden] { display: none; }
.calculator-form-grid input,.calculator-form-grid select { background: #fff; border: 1px solid #d7d4cd; border-radius: 10px; color: var(--green); font: inherit; min-height: 52px; padding: 11px 13px; width: 100%; }
.calculator-form-grid input:focus,.calculator-form-grid select:focus { border-color: var(--gold); outline: 3px solid rgba(185,148,61,.15); }
.address-autocomplete-field { position: relative; }
.address-suggestions {
  width: 100%;
  position: absolute;
  z-index: 90;
  top: calc(100% + 4px);
  left: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(8,42,29,.16);
}
.address-suggestions[hidden] { display: none; }
.address-suggestion {
  width: 100%;
  display: block;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
  color: var(--green);
  font: 600 14px/1.35 Arial,sans-serif;
  text-align: left;
  cursor: pointer;
}
.address-suggestion:last-child { border-bottom: 0; }
.address-suggestion:hover,.address-suggestion:focus-visible { outline: 0; background: var(--cream); }
.customer-booking-form { margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--line); }
.customer-booking-form h3 { margin: 0 0 8px; color: var(--green); font: 700 30px/1.1 var(--serif); }
.customer-booking-form p { margin: 0; color: var(--muted); }
.booking-confirmation { grid-template-columns: auto 1fr; align-items: start; font-weight: 500 !important; line-height: 1.55; }
.booking-confirmation input { width: 20px !important; min-height: 20px !important; margin-top: 2px; }
.booking-confirmation > span { min-width: 0; }
.booking-confirmation a { display: inline; color: var(--green); font-weight: 700; text-underline-offset: 3px; }
.booking-success { margin-top: 28px; padding: 30px; border: 1px solid rgba(39,143,78,.24); border-radius: 18px; background: rgba(228,245,233,.72); text-align: center; }
.booking-success h2 { margin: 8px 0 14px; color: var(--green); font-size: clamp(34px,5vw,52px); }
.order-list { display:grid; gap:14px; margin-top:24px; }
.order-card { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:center; padding:18px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--green); text-decoration:none; }
.order-card:hover { border-color:var(--gold); }
.order-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:25px; }
.order-actions textarea { flex:1 1 100%; min-height:100px; padding:12px; border:1px solid var(--line); border-radius:10px; }
.contact-blurred p { filter:blur(7px); user-select:none; }
.contact-blurred small { color:var(--muted); }
.order-status { justify-self:end; padding:6px 10px; border-radius:99px; font-weight:800; letter-spacing:.06em; }
.order-status.open { color:#0e4a32; background:#e4f5e9; }
.order-status.accepted { color:#fff; background:#0e4a32; }
.order-status.declined,.order-status.closed { color:#6b6258; background:#eee9e1; }
.room-detail-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:18px 0 28px; }
.room-detail-list article { padding:20px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.room-detail-list h4 { margin:5px 0 14px; color:var(--green); font:700 25px/1.1 var(--serif); }
.room-detail-list dl { display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; margin:0; }
.room-detail-list dt { color:var(--muted); }.room-detail-list dd { margin:0; font-weight:700; }
#decline-box { width:100%; padding:18px; border:1px solid var(--line); border-radius:12px; background:var(--cream); }
#decline-box textarea { width:100%; min-height:110px; margin:8px 0 12px; }
.order-photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; margin:15px 0 28px; }
.order-photo-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:10px; border:1px solid var(--line); }
.temporary-access { margin:20px auto; padding:20px; border:1px dashed var(--gold); border-radius:12px; background:#fff; }
@media(max-width:700px){.order-card{grid-template-columns:1fr 1fr}.customer-booking-form{grid-template-columns:1fr}}
@media(max-width:700px){.room-detail-list{grid-template-columns:1fr}.room-detail-list dl{grid-template-columns:1fr}.order-status{justify-self:start}}
.wide-field { grid-column: 1/-1; }
.calculator-next { border: 0; cursor: pointer; justify-self: start; margin-top: 8px; }
.calculator-next:disabled { cursor: not-allowed; opacity: .45; }
.availability-message { border-radius: 12px; font-weight: 700; margin-top: 22px; padding: 0; }
.availability-message:not(:empty) { padding: 16px 18px; }
.availability-message.loading { background: #f2eee6; }
.availability-message.success { background: #e1efe6; color: #174c32; }
.availability-message.notice { background: #fff1d2; color: #6c5013; }
.room-card { background: #fbfaf7; border: 1px solid #e3ded5; border-radius: 18px; margin-bottom: 22px; padding: 26px; }
.room-card-head { align-items: flex-start; display: flex; justify-content: space-between; margin-bottom: 24px; }
.room-number { color: var(--gold); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.room-card h3 { color: var(--green); font-family: var(--serif); font-size: 30px; margin: 3px 0 0; }
.target-color-field {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(246, 241, 233, .48);
}
.target-color-options {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 14px;
  align-items: end;
  margin-top: 14px;
}
.target-color-options[hidden] { display: none; }
.target-color-help-dialog {
  width: min(560px,calc(100% - 32px));
  padding: 0;
  border: 1px solid var(--gold);
  border-radius: 22px;
  color: var(--green);
  background: #fff !important;
  background-color: #fff !important;
  opacity: 1 !important;
  filter: none;
  backdrop-filter: none;
  mix-blend-mode: normal;
  box-shadow: 0 24px 80px rgba(14,74,50,.28);
}
.target-color-help-dialog::backdrop { background: rgba(14,34,25,.55); backdrop-filter: blur(4px); }
.target-color-help-dialog form {
  position: relative;
  padding: clamp(28px,6vw,52px);
  border-radius: inherit;
  background: #fff;
  opacity: 1;
}
.target-color-help-dialog h2 { margin: 8px 0 16px; font-family: var(--serif); font-size: clamp(30px,5vw,46px); line-height: 1.05; }
.target-color-help-dialog p { font-size: 18px; line-height: 1.6; }
.target-color-help-dialog .dialog-note { color: var(--muted); font-size: 15px; }
.target-color-help-dialog .dialog-close { position: absolute; top: 14px; right: 16px; border: 0; background: transparent; color: var(--green); font-size: 32px; cursor: pointer; }
.ticket-delete { margin: 12px 0 24px; }
.target-color-preview-wrap {
  display: grid;
  gap: 7px;
  color: var(--green);
  font-size: 14px;
  font-weight: 750;
}
.target-color-preview {
  width: 58px;
  height: 48px;
  display: block;
  border: 1px solid rgba(13, 70, 46, .2);
  border-radius: 9px;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.65);
}
.target-color-preview.unknown {
  background-image: linear-gradient(135deg, #f3f0e9 25%, #fff 25%, #fff 50%, #f3f0e9 50%, #f3f0e9 75%, #fff 75%, #fff);
  background-size: 12px 12px;
}
.target-color-palette {
  grid-column: 1 / -1;
  max-height: 184px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
  padding: 8px;
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.target-color-option {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 7px 9px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--green);
  cursor: pointer;
  text-align: left;
}
.target-color-option:hover,
.target-color-option:focus-visible { border-color: var(--gold); background: var(--cream); }
.target-color-option span {
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 7px;
}
.target-color-option b { font-size: 12px; }
.target-color-options small { grid-column: 1 / -1; color: var(--muted); }
.target-color-screen input[type="color"] {
  width: 58px;
  height: 48px;
  padding: 3px;
  cursor: pointer;
}
.color-code-status { min-height: 20px; color: var(--muted); font-size: 12px; font-weight: 500; }
.color-code-status.valid { color: #2f734c; }
.color-code-status.invalid { color: #a2322b; }

/* Shared appointment calendars */
.business-calendar-panel,
.customer-calendar-panel { max-width: 1120px; margin-inline: auto; }
.calendar-toolbar {
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  align-items: center;
  gap: 18px;
  margin-bottom: 22px;
  text-align: center;
}
.calendar-toolbar h2 { margin: 2px 0 0; color: var(--green); font-family: var(--serif); font-size: clamp(30px,4vw,46px); text-transform: capitalize; }
.calendar-toolbar .eyebrow { margin: 0; }
.calendar-arrow {
  width: 48px;
  height: 48px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  background: #fff;
  color: var(--green);
  cursor: pointer;
  font-size: 22px;
}
.calendar-arrow:hover { background: var(--green); color: #fff; }
.calendar-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; margin: 0 0 20px; color: var(--muted); font-size: 13px; }
.calendar-legend span { display: inline-flex; align-items: center; gap: 7px; }
.calendar-legend i { width: 13px; height: 13px; display: inline-block; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.calendar-legend i.free { background: #e6f2e9; border-color: #b9d7c0; }
.calendar-legend i.blocked { background: #f1dedb; border-color: #d5a7a0; }
.calendar-legend i.selected { background: var(--gold); border-color: var(--gold); }
.calendar-legend i.locked { background: #dce6ef; border-color: #aac0d4; }
.calendar-legend i.today { background: #fff; border: 2px solid var(--green); }
.calendar-legend i.sunday,
.calendar-legend i.unavailable { background: #ece9e2; border-color: #dedad1; }
.calendar-saturday-toggle {
  max-width: 440px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 auto 22px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--cream);
  color: var(--green);
  font-weight: 750;
}
.calendar-saturday-toggle input { width: 20px; height: 20px; accent-color: var(--green); }
.calendar-weekdays,
.month-calendar { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; }
.calendar-weekdays { margin-bottom: 8px; color: var(--muted); font-size: 13px; font-weight: 800; text-align: center; }
.calendar-day {
  min-height: 94px;
  display: grid;
  align-content: space-between;
  gap: 8px;
  padding: 12px;
  border: 1px solid #dcd8cf;
  border-radius: 12px;
  background: #e6f2e9;
  color: var(--green);
  cursor: pointer;
  text-align: left;
}
.calendar-day > span { font: 800 22px/1 Arial,sans-serif; }
.calendar-day small { color: inherit; font-size: 11px; font-weight: 750; }
.calendar-day:hover:not(:disabled) { border-color: var(--gold); transform: translateY(-1px); }
.calendar-day.blocked { background: #f1dedb; border-color: #d5a7a0; color: #7c302a; }
.calendar-day.order-blocked { background: #ded7cf; color: #5f554c; }
.calendar-day.selected { background: var(--gold); border-color: var(--gold); color: #fff; box-shadow: 0 6px 16px rgba(185,140,49,.22); }
.calendar-day.locked:not(.blocked):not(.sunday) { background: #dce6ef; border-color: #aac0d4; color: #31536b; }
.calendar-day.today { outline: 3px solid var(--green); outline-offset: 2px; }
.calendar-day.past { opacity: .58; }
.calendar-day.sunday,
.calendar-day.unavailable,
.calendar-day:disabled:not(.blocked) { background: #ece9e2; border-color: #dedad1; color: #98938a; cursor: not-allowed; }
.calendar-spacer { min-height: 1px; }
.calendar-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; }
.calendar-actions button:disabled { opacity: .45; cursor: not-allowed; }
.booking-calendar-main { min-height: calc(100vh - 150px); padding: 64px 24px 90px; }
.customer-calendar-panel { max-width: 1040px; margin-top: 32px; }
.customer-calendar-day.available { background: #e6f2e9; border-color: #b9d7c0; }
.customer-date-selection {
  max-width: 560px;
  display: grid;
  justify-items: center;
  gap: 10px;
  margin: 28px auto 0;
  padding: 22px;
  border: 1px solid rgba(185,140,49,.4);
  border-radius: 15px;
  background: var(--cream);
  text-align: center;
}
.customer-date-selection p { margin: 0; color: var(--muted); }
.customer-date-selection strong { color: var(--green); font-family: var(--serif); font-size: 26px; text-transform: capitalize; }
.calendar-no-draft { padding: 28px; border-radius: 14px; background: var(--cream); text-align: center; }
.calendar-no-draft strong { color: var(--green); font-family: var(--serif); font-size: 28px; }

/* Project photo upload */
.photo-upload-main { padding: 64px 24px 90px; }
.photo-upload-intro { max-width: 900px; }
.photo-guide {
  max-width: 1180px;
  display: grid;
  grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr);
  gap: 48px;
  align-items: center;
  margin: 42px auto;
}
.photo-guide-image { overflow: hidden; border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.photo-guide-image img { width: 100%; max-height: 620px; display: block; object-fit: contain; }
.photo-guide-copy h2 { color: var(--green); font-family: var(--serif); font-size: clamp(34px,4vw,54px); line-height: 1.05; }
.photo-guide-list { display: grid; gap: 12px; margin: 26px 0 0; padding: 0; list-style: none; }
.photo-guide-list li { display: grid; grid-template-columns: 38px 1fr; gap: 13px; align-items: start; }
.photo-guide-list li > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-weight: 800; }
.photo-guide-list strong { color: var(--green); }
.photo-guide-list p { margin: 3px 0 0; color: var(--muted); }
.photo-upload-card { max-width: 900px; margin: 0 auto; padding: clamp(24px,5vw,52px); border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.photo-retention-note { margin: 22px 0; padding: 16px 18px; border-left: 4px solid var(--gold); background: var(--cream); color: var(--muted); }
.photo-retention-note strong { color: var(--green); }
.photo-retention-note p { margin: 5px 0 0; }
.photo-dropzone { display: grid; justify-items: center; gap: 9px; padding: 34px 20px; border: 2px dashed rgba(185,140,49,.55); border-radius: 18px; background: #fbfaf7; color: var(--green); cursor: pointer; text-align: center; }
.photo-dropzone:hover { border-color: var(--gold); background: var(--cream); }
.photo-dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.photo-dropzone-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: 30px; }
.photo-dropzone small { color: var(--muted); }
.photo-preview-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 18px; }
.photo-preview-grid:empty { display: none; }
.photo-preview-grid figure { min-width: 0; margin: 0; overflow: hidden; position: relative; border: 1px solid var(--line); border-radius: 11px; background: var(--cream); }
.photo-preview-grid img,.photo-file-icon { width: 100%; aspect-ratio: 1; display: grid; place-items: center; object-fit: cover; color: var(--green); font-weight: 800; }
.photo-preview-grid figcaption { overflow: hidden; padding: 7px; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.photo-remove { width: calc(100% - 14px); min-height: 36px; margin: 0 7px 7px; border: 1px solid #b94a48; border-radius: 8px; background: #fff; color: #8e2422; cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; }
.photo-remove:hover,.photo-remove:focus-visible { background: #8e2422; color: #fff; }
.photo-upload-summary { margin: 16px 0; color: var(--muted); text-align: center; }
.photo-upload-consent { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0; color: var(--green); font-size: 14px; line-height: 1.5; }
.photo-upload-consent input { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 1px; accent-color: var(--green); }

.work-file-picker {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 104px;
  margin: 14px 0;
  padding: 18px;
  border: 2px dashed rgba(181,139,54,.55);
  border-radius: 14px;
  background: #fbf8f3;
  color: var(--green);
  cursor: pointer;
  text-align: center;
}

.work-file-picker input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.work-file-picker span {
  font-size: 1rem;
  font-weight: 800;
}

.work-file-picker small {
  margin-top: 5px;
  color: #617066;
}

@media (max-width: 700px) {
  .work-file-picker {
    min-height: 128px;
    padding: 24px 16px;
  }

  .work-file-picker span {
    font-size: 1.08rem;
  }

  .work-photo-form > .button {
    width: 100%;
    min-height: 58px;
  }
}
.photo-upload-submit,.photo-calendar-next { width: 100%; justify-content: center; }
.photo-upload-submit:disabled { opacity: .45; cursor: not-allowed; }
.upload-progress { height: 9px; margin: 15px 0; overflow: hidden; border-radius: 20px; background: #e8e4dc; }
.upload-progress span { width: 0; height: 100%; display: block; border-radius: inherit; background: var(--green); transition: width .2s ease; }
.photo-calendar-next { margin-top: 14px; }
.remove-room {
  min-height: 46px;
  padding: 11px 18px;
  border: 1px solid #b84a4a;
  border-radius: 10px;
  color: #922c2c;
  background: #fffafa;
  font: inherit;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
}
.remove-room:hover { color: #fff; background: #922c2c; }
.checkbox-field { align-items: center; display: flex !important; flex-direction: row; padding-top: 31px; }
.checkbox-field input { min-height: 20px; width: 20px; }
.add-room-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 58px;
  margin: 0 0 30px;
  padding: 16px 24px;
  border-width: 2px;
  border-radius: 12px;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.25;
  appearance: none;
  cursor: pointer;
}
.calculator-panel .button,
.calculator-panel .secondary-button {
  min-height: 56px;
  padding: 15px 22px;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  appearance: none;
}
.decision-actions .text-link {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: 13px 18px;
  border-radius: 10px;
  font-weight: 800;
}
.exclusion-check { border: 1px solid #e0d7c8; border-radius: 18px; margin: 10px 0 28px; padding: 25px; }
.exclusion-check legend { color: var(--green); font-family: var(--serif); font-size: 28px; font-weight: 700; padding: 0 8px; }
.check-grid { display: grid; gap: 13px; grid-template-columns: repeat(2,1fr); margin-top: 18px; }
.check-grid label { align-items: center; display: flex; gap: 9px; }
.standard-stop { background: #f7e1e1; border-left: 4px solid #a92727; border-radius: 9px; color: #7b1e1e; display: grid; gap: 4px; margin-top: 20px; padding: 16px 18px; }
.standard-stop a { color: inherit; font-weight: 800; }
.result-panel { text-align: center; }
.result-panel .calculator-heading { margin-inline: auto; }
.result-panel .calculator-heading h2 { font-size: clamp(55px,8vw,90px); }
.price-breakdown { border-bottom: 1px solid #ddd7ce; border-top: 1px solid #ddd7ce; margin: 30px auto; max-width: 720px; padding: 14px 0; text-align: left; }
.price-breakdown div { display: flex; gap: 20px; justify-content: space-between; padding: 12px 4px; }
.price-breakdown .all-inclusive-note { margin: 0; padding: 12px 4px; color: var(--muted); line-height: 1.6; }
.result-note { background: #f6f1e9; border-radius: 15px; margin: 25px auto; max-width: 720px; padding: 22px; text-align: left; }
.booking-next-box { border: 1px solid var(--gold); border-radius: 18px; margin: 28px auto; max-width: 720px; padding: 28px; }
.booking-next-box h3 { color: var(--green); font-family: var(--serif); font-size: 36px; margin: 0 0 5px; }
.booking-next-box .button { margin-top: 18px; }
.result-actions { display: flex; gap: 12px; justify-content: center; }
.calculator-step-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
}
.calculator-step-heading-row .calculator-heading { flex: 1 1 auto; }
.calculator-help-button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 13px 24px;
  border: 2px solid #d9873f;
  border-radius: 12px;
  color: #603714;
  background: #f8c995;
  box-shadow: 0 10px 25px rgba(186, 105, 39, .16);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}
.calculator-help-button:hover { color: #fff; border-color: #bd6928; background: #c97432; }
.help-main { padding: 70px 20px 90px; }
.help-inner { width: min(1180px, 100%); margin: 0 auto; }
.help-intro { max-width: 920px; margin: 0 auto 38px; text-align: center; }
.help-intro h1 { margin: 12px 0 20px; color: var(--green); font-family: var(--serif); font-size: clamp(48px, 7vw, 82px); line-height: .98; }
.help-intro .lead { max-width: 760px; margin-inline: auto; }
.help-image {
  margin: 0 auto 48px;
  padding: 12px;
  overflow: hidden;
  border: 1px solid #e4dccf;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(27, 49, 38, .09);
}
.help-image img { display: block; width: 100%; height: auto; border-radius: 14px; }
.help-step-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 35px 0; }
.help-step {
  padding: 25px;
  border: 1px solid #e4dccf;
  border-radius: 18px;
  background: rgba(255,255,255,.78);
}
.help-step span { color: var(--gold); font-weight: 900; letter-spacing: .08em; }
.help-step h2 { margin: 9px 0; color: var(--green); font-family: var(--serif); font-size: 30px; }
.help-step p { margin: 0; color: var(--muted); line-height: 1.65; }
.help-guide-list { display: grid; gap: 28px; }
.help-guide-row {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
  align-items: center;
  gap: 34px;
  padding: 18px;
  border: 1px solid #e4dccf;
  border-radius: 22px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 18px 45px rgba(27,49,38,.07);
}
.help-guide-row:nth-child(even) .help-guide-media { order: 2; }
.help-guide-row:nth-child(even) .help-guide-copy { order: 1; padding-left: 16px; }
.help-guide-media { margin: 0; overflow: hidden; border-radius: 15px; background: #fff; }
.help-guide-media img { display: block; width: 100%; height: auto; }
.help-guide-copy { padding: 18px 18px 18px 0; }
.help-guide-copy > span { color: var(--gold); font-size: 14px; font-weight: 900; letter-spacing: .12em; }
.help-guide-copy h2 { margin: 8px 0 16px; color: var(--green); font-family: var(--serif); font-size: clamp(31px, 3.2vw, 45px); line-height: 1; }
.help-guide-copy p { margin: 0 0 14px; color: var(--muted); line-height: 1.65; }
.help-guide-copy ol { display: grid; gap: 9px; margin: 0 0 16px; padding-left: 23px; color: var(--green); font-weight: 700; line-height: 1.45; }
.help-tip {
  margin-top: 26px;
  padding: 28px;
  border-radius: 18px;
  color: #fff;
  background: var(--green);
  text-align: center;
}
.help-tip h2 { margin: 0 0 10px; color: #fff; font-family: var(--serif); font-size: 34px; }
.help-tip p { max-width: 760px; margin: 0 auto 20px; line-height: 1.65; }
.help-tip .button { color: var(--green); background: #fff; }

.painter-help-shortcut{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:8px 18px;border:1px solid #d88a43;border-radius:10px;background:#f3c997;color:var(--green);font-weight:800;text-decoration:none;white-space:nowrap}.painter-help-shortcut span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff}
.painter-help-main{width:min(calc(100% - 40px),1180px);margin:0 auto;padding:58px 0 90px}.painter-help-registration{margin:0 0 28px;padding:20px 24px;border:1px solid #b9dac4;border-radius:16px;background:#e7f3e9}.painter-help-registration strong{font-size:21px}.painter-help-registration p{margin:5px 0 0}.painter-help-hero{max-width:960px;margin:0 auto 36px;text-align:center}.painter-help-hero h1{font-size:clamp(48px,7vw,78px)}.painter-help-hero>p:last-of-type{max-width:700px;margin:0 auto;font-size:19px;color:var(--muted)}.painter-help-hero nav{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:28px}.painter-help-hero nav a{padding:10px 15px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;font-weight:700}
.painter-help-warning{margin:0 0 25px;padding:25px 30px;border:2px solid #d88a43;border-radius:18px;background:#fff2df}.painter-help-warning strong{font-family:Georgia,"Times New Roman",serif;color:var(--green);font-size:29px}.painter-help-warning ol{display:grid;gap:7px;margin:14px 0 0;padding-left:24px;font-weight:700}.painter-help-guide{display:grid;gap:25px}.painter-help-row{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);gap:44px;align-items:center;padding:38px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow)}.painter-help-row:nth-child(even) .painter-help-visual{order:2}.painter-help-row:nth-child(even) .painter-help-copy{order:1}.painter-help-copy>span{color:var(--gold);font-size:13px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.painter-help-copy h2{margin:8px 0 17px;font-size:clamp(31px,4vw,47px);line-height:1}.painter-help-copy p{color:var(--muted)}.painter-help-copy ul{padding-left:22px;color:var(--green);font-weight:700}.painter-help-rule{padding:13px 16px;border-left:4px solid var(--gold);background:#f8f2e8;color:var(--green)!important;font-weight:700}.painter-help-rule-critical{border-color:#a8302a;background:#f9e9e6;color:#7d211d!important}
.painter-help-visual{min-height:320px;display:grid;place-items:center;padding:26px;border-radius:18px;background:linear-gradient(145deg,#f8f3eb,#eee4d5);overflow:hidden}.visual-phone,.visual-action-stack,.visual-chat,.visual-upload,.visual-finish{width:min(100%,330px);padding:22px;border:1px solid #ddd3c2;border-radius:18px;background:#fff;box-shadow:0 15px 35px rgba(23,50,36,.12)}.visual-phone{display:grid;gap:10px}.visual-kicker,.visual-upload>span{color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.12em}.visual-phone strong{font-size:19px}.visual-phone small{color:var(--green);font-size:24px;font-weight:900}.visual-photo-row,.upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.visual-photo-row i{height:66px;border-radius:8px;background:linear-gradient(145deg,#d7ddd6,#9fb19f)}.painter-help-visual button{min-height:48px;padding:9px 15px;border:1px solid var(--gold);border-radius:9px;background:#fff;color:var(--green);font:inherit;font-weight:800}.painter-help-visual .visual-primary,.visual-phone button,.visual-upload button,.visual-finish button{background:var(--green);border-color:var(--green);color:#fff}.visual-action-stack,.visual-chat,.visual-upload,.visual-finish{display:grid;gap:12px}.visual-chat>div{max-width:85%;padding:12px 14px;border-radius:14px}.chat-business{justify-self:end;background:var(--green);color:#fff}.chat-customer{background:#efe9de}.chat-image{width:120px;height:90px;background:linear-gradient(145deg,#c8d2c7,#91a58e);color:#fff;font-weight:800}.upload-grid i{display:grid;place-items:center;height:90px;border-radius:10px;background:#d9e7db;color:var(--green);font-size:25px;font-weight:900;font-style:normal}.visual-upload.done .upload-grid i{background:#d8eedc}.visual-finish{text-align:center}.finish-check{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 6px;border-radius:50%;background:#d8eedc;color:var(--green);font-size:38px;font-weight:900}.visual-finish button{margin-top:8px}.painter-help-summary{margin-top:30px;padding:44px;border-radius:22px;background:var(--green);color:#fff;text-align:center}.painter-help-summary h2{color:#fff;font-size:clamp(34px,5vw,55px)}.painter-help-summary .button{background:#fff;color:var(--green)}
@media(max-width:760px){.painter-help-main{width:calc(100% - 24px);padding-top:30px}.painter-help-row{grid-template-columns:1fr;gap:22px;padding:18px}.painter-help-row:nth-child(even) .painter-help-visual,.painter-help-row:nth-child(even) .painter-help-copy{order:initial}.painter-help-visual{min-height:270px;padding:14px}.painter-help-summary{padding:30px 18px}.painter-help-summary .button,.painter-help-shortcut{width:100%;justify-content:center}.painter-help-hero nav{display:grid}.painter-help-hero nav a{min-height:48px;display:grid;place-items:center}.painter-help-warning{padding:21px 20px}}
.local-main { background: var(--cream); }
.local-inner { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.local-hero { padding: 90px 0 76px; background: radial-gradient(circle at 82% 20%, rgba(192,145,51,.13), transparent 33%), var(--cream); }
.local-hero .local-inner { max-width: 980px; text-align: center; }
.local-hero h1 { margin: 14px 0 24px; color: var(--green); font-family: var(--serif); font-size: clamp(56px, 8vw, 98px); line-height: .9; }
.local-hero h1 span { color: var(--gold); }
.local-hero .lead { max-width: 820px; margin-inline: auto; line-height: 1.65; }
.local-actions { display: flex; justify-content: center; gap: 14px; margin-top: 30px; }
.local-section { padding: 78px 0; }
.local-section h2, .local-links h2 { max-width: 850px; margin: 10px 0 30px; color: var(--green); font-family: var(--serif); font-size: clamp(40px, 5vw, 62px); line-height: 1; }
.local-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.local-feature-grid article { padding: 28px; border: 1px solid #e4dccf; border-radius: 18px; background: #fff; }
.local-feature-grid span { color: var(--gold); font-weight: 900; letter-spacing: .08em; }
.local-feature-grid h3 { margin: 12px 0 10px; color: var(--green); font-family: var(--serif); font-size: 29px; }
.local-feature-grid p, .local-copy-grid p { color: var(--muted); line-height: 1.65; }
.local-soft { background: #f0ebe2; }
.local-copy-grid { display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 55px; }
.local-check-card { padding: 30px; border-radius: 20px; color: #fff; background: var(--green); box-shadow: 0 20px 50px rgba(18,63,41,.14); }
.local-check-card h3 { margin: 0 0 18px; color: #fff; font-family: var(--serif); font-size: 31px; }
.local-check-card ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.local-check-card li::before { content: "✓"; margin-right: 10px; color: var(--gold); font-weight: 900; }
.local-faq { display: grid; gap: 12px; }
.local-faq details { padding: 0 22px; border: 1px solid #e1d9cd; border-radius: 13px; background: #fff; }
.local-faq summary { padding: 19px 0; color: var(--green); font-weight: 800; cursor: pointer; }
.local-faq p { margin: 0 0 20px; color: var(--muted); line-height: 1.65; }
.local-links { padding: 70px 0; background: #fff; }
.local-link-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.local-link-grid a { display: flex; justify-content: space-between; gap: 12px; padding: 17px 18px; border: 1px solid #e0d7c8; border-radius: 12px; color: var(--green); background: #fbfaf7; font-weight: 800; text-decoration: none; }
.local-link-grid a:hover { color: #fff; background: var(--green); }
.local-property-note { padding: 17px 0; border-top: 1px solid #e2dbd0; background: #f3eee6; }
.local-property-note p { margin: 0; color: #667068; font-size: 14px; line-height: 1.55; text-align: center; }
.local-property-note strong { color: var(--green); }
.local-property-note a { color: var(--green); font-weight: 800; text-underline-offset: 3px; }
.local-final-cta small { display: block; margin-top: 16px; color: rgba(255,255,255,.72); }
.empty-stage { align-items: center; background: #f6f1e9; display: flex; justify-content: center; min-height: 65vh; padding: 80px 20px; text-align: center; }
.empty-stage h1 { color: var(--green); font-family: var(--serif); font-size: clamp(48px,7vw,80px); margin: 10px 0 25px; }
.pricing-settings-form { padding-bottom: 90px; }
.pricing-group { margin-bottom: 24px; }
.pricing-field-grid { display: grid; gap: 16px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.pricing-field-grid label { background: #fbfaf7; border: 1px solid #e6e0d7; border-radius: 12px; display: grid; gap: 10px; padding: 16px; }
.pricing-field-grid label > span { color: var(--green); font-weight: 700; }
.pricing-field-grid label div { align-items: center; display: flex; gap: 10px; }
.pricing-field-grid input { border: 1px solid #d6d1c8; border-radius: 8px; font: inherit; min-width: 0; padding: 11px; width: 100%; }
.pricing-field-grid small { color: #657069; min-width: 100px; }
.pricing-save { border: 0; cursor: pointer; }
.pricing-default-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 24px;
  padding: 20px 22px;
  border: 1px solid #dfd3c1;
  border-radius: 16px;
  background: #fff8ec;
}
.pricing-default-toolbar div { display: grid; gap: 5px; }
.pricing-default-toolbar strong { color: var(--green); font-size: 18px; }
.pricing-default-toolbar span { color: var(--muted); line-height: 1.5; }
.pricing-default-toolbar .secondary-button { flex: 0 0 auto; }
.admin-message { border-radius: 10px; margin-bottom: 22px; padding: 15px 18px; }
.admin-message.success { background: #e1efe6; color: #174c32; }
.admin-message.error { background: #f7e1e1; color: #8b2222; }
@media (max-width: 720px) {
  .price-calculator-page { padding-top: 45px; }
  .calculator-progress li { font-size: 12px; padding: 11px 5px; }
  .calculator-progress span { height: 27px; width: 27px; }
  .calculator-panel { padding: 27px 19px; }
  .calculator-form-grid,.check-grid,.pricing-field-grid { grid-template-columns: 1fr; }
  .target-color-options { grid-template-columns: 1fr auto; }
  .target-color-palette { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .photo-guide { grid-template-columns: 1fr; gap: 28px; }
  .photo-guide-image { max-width: 680px; margin-inline: auto; }
  .photo-preview-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .wide-field { grid-column: auto; }
  .room-card { padding: 22px 16px; }
  .add-room-button { min-height: 62px; padding: 17px 20px; font-size: 18px; }
  .calculator-panel .button,
  .calculator-panel .secondary-button,
  .calculator-panel .text-link,
  .calculator-panel .remove-room {
    width: 100%;
    min-height: 58px;
    padding: 16px 18px;
    font-size: 17px;
  }
  .room-card-head { align-items: stretch; gap: 14px; flex-direction: column; }
  .calculator-step-heading-row { align-items: stretch; flex-direction: column; gap: 16px; }
  .calculator-help-button { width: 100%; min-height: 58px; font-size: 17px; }
  .help-main { padding: 45px 16px 70px; }
  .help-step-grid { grid-template-columns: 1fr; }
  .help-image { padding: 6px; border-radius: 16px; }
  .help-guide-row { grid-template-columns: 1fr; gap: 10px; padding: 8px; }
  .help-guide-row:nth-child(even) .help-guide-media,
  .help-guide-row:nth-child(even) .help-guide-copy { order: initial; }
  .help-guide-copy,
  .help-guide-row:nth-child(even) .help-guide-copy { padding: 18px 14px 20px; }
  .pricing-default-toolbar { align-items: stretch; flex-direction: column; }
  .pricing-default-toolbar .secondary-button { width: 100%; }
  .local-inner { width: min(100% - 30px, 1180px); }
  .local-hero { padding: 58px 0; }
  .local-actions { align-items: stretch; flex-direction: column; }
  .local-actions > * { width: 100%; min-height: 58px; }
  .local-section { padding: 55px 0; }
  .local-feature-grid, .local-copy-grid, .local-link-grid { grid-template-columns: 1fr; }
  .local-copy-grid { gap: 28px; }
  .result-actions { align-items: stretch; flex-direction: column; }
  .result-actions > * { width: 100%; }
  .dashboard-main .button,
  .dashboard-main .secondary-button,
  .dashboard-main .danger-button {
    width: 100%;
    min-height: 58px;
    padding: 15px 18px;
    border-radius: 12px;
    font-size: 17px;
    line-height: 1.3;
    text-align: center;
  }
  .order-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .order-actions > button,
  .order-actions > div {
    width: 100%;
  }
  .chat-message {
    max-width: 90%;
  }
  .chat-message-photos,
  .chat-photo-previews {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .chat-photo-picker {
    min-height: 92px;
    justify-content: center;
    padding: 18px;
  }
  .chat-photo-picker input {
    width: 100%;
    min-height: 44px;
    font-size: 16px;
  }
}

@media (max-width: 640px) {
  .booking-calendar-main,.photo-upload-main { padding: 38px 14px 70px; }
  .business-calendar-panel,.customer-calendar-panel { padding: 20px 12px; }
  .calendar-weekdays,.month-calendar { gap: 4px; }
  .calendar-day { min-height: 64px; padding: 7px 5px; border-radius: 8px; }
  .calendar-day > span { font-size: 17px; }
  .calendar-day small { font-size: 9px; }
  .calendar-toolbar { grid-template-columns: 42px 1fr 42px; gap: 7px; }
  .calendar-arrow { width: 42px; height: 42px; }
  .calendar-legend { gap: 8px 13px; }
  .calendar-actions { display: grid; }
  .calendar-actions button { width: 100%; }
  .photo-upload-card { padding: 22px 14px; }
  .photo-preview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .photo-guide-copy h2 { font-size: 36px; }
  .photo-dropzone { padding: 28px 12px; }
  .photo-remove { min-height: 44px; font-size: 14px; }
}

/* Einzugsgebiet, Entscheidungen und Betriebsstatus */
.coverage-layout { align-items: start; display: grid; gap: 25px; grid-template-columns: minmax(0,1.1fr) minmax(360px,.9fr); }
.country-coverage { margin-bottom: 24px; padding: 24px 28px; }
.country-coverage label { align-items: flex-start; color: var(--green); cursor: pointer; display: flex; gap: 14px; }
.country-coverage input { height: 22px; margin-top: 3px; width: 22px; }
.country-coverage span { display: grid; gap: 4px; }
.country-coverage strong { font-size: 19px; }
.country-coverage small { color: #68716c; font-weight: 400; }
.location-card { background: #fbfaf7; border: 1px solid #e4ddd2; border-radius: 16px; margin-bottom: 18px; padding: 23px; }
.location-card h3 { color: var(--green); font-family: var(--serif); font-size: 28px; margin: 4px 0 0; }
.location-kind { color: var(--gold); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.remove-location { background: transparent; border: 0; color: #a32626; cursor: pointer; font-weight: 700; }
.coverage-save { border: 0; cursor: pointer; margin-top: 10px; }
.coverage-map-wrap { position: sticky; top: 105px; }
#coverage-map { background: #e9e7df; border: 1px solid #ddd5c8; border-radius: 20px; box-shadow: 0 15px 40px rgba(21,59,43,.08); height: 600px; overflow: hidden; }
.coverage-map-wrap > p { color: #6d756f; font-size: 13px; margin: 10px 8px; }
.suspension-banner { background: #f8dfdf; border: 1px solid #d69595; border-left: 5px solid #a51f1f; border-radius: 14px; color: #781919; margin-bottom: 25px; padding: 20px 24px; }
.suspension-banner strong { font-size: 20px; }
.suspension-banner p { margin: 7px 0; }
.suspension-banner span { font-size: 13px; }
.suspended-stat strong { color: #a51f1f !important; }
.no-painter-decision { border: 2px solid #d09b33; padding: 23px !important; }
.no-painter-decision > strong { display: block; font-size: 20px; }
.no-painter-decision p { font-weight: 400; line-height: 1.6; margin: 9px 0 18px; }
.decision-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; }
.decision-actions .button { border: 0; cursor: pointer; margin: 0; }
.decision-actions .text-link { color: var(--green); font-weight: 700; padding: 10px; }
@media (max-width: 900px) {
  .coverage-layout { grid-template-columns: 1fr; }
  .coverage-map-wrap { position: static; }
  #coverage-map { height: 440px; }
}
.project-filter-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:-18px 0 28px}.project-filter-tabs a{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--green);font-weight:800;text-decoration:none}.project-filter-tabs a.active{background:var(--green);color:#fff;border-color:var(--green)}
.invoice-status-open,.invoice-status-reminder{color:#9a6500}.invoice-status-final_reminder{color:#9b2525}.invoice-status-paid{color:#0e6a3c}
.payout-qr{display:block;width:190px;height:190px;object-fit:contain;margin:14px 0;border:1px solid #e1d7c6;border-radius:12px;background:#fff}
@media(max-width:700px){.payout-qr{width:160px;height:160px}.form-card .registration-form select,.form-card .registration-form textarea{width:100%;font-size:16px}}

/* Öffentliche Bewertungsseiten */
.form-page{min-height:calc(100vh - 110px);display:grid;place-items:center;padding:70px 24px;background:var(--cream)}
.form-card{width:min(820px,100%);padding:clamp(28px,5vw,58px);border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(17,52,38,.10)}
.form-card .review-logo{display:block;width:min(230px,70%);margin-bottom:34px}
.form-card .review-logo img{display:block;width:100%;height:auto}
.form-card h1{max-width:720px;margin:8px 0 18px;font-size:clamp(42px,7vw,72px);line-height:.96}
.review-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:34px}
.review-form label{display:grid;gap:8px;color:var(--green);font-weight:800}
.review-form select,.review-form textarea{width:100%;min-height:56px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--green);font:inherit}
.review-form .review-comment,.review-form .review-submit{grid-column:1/-1}
.review-form textarea{min-height:140px;resize:vertical}
.review-form .review-submit{min-height:58px}
.review-scale-note{padding:14px 17px;border-left:4px solid var(--gold);background:var(--cream);border-radius:0 10px 10px 0;color:var(--muted)}
@media(max-width:650px){.form-page{padding:32px 14px}.form-card{padding:28px 20px;border-radius:18px}.review-form{grid-template-columns:1fr}.review-form .review-comment,.review-form .review-submit{grid-column:auto}.review-form .button{width:100%}}

/* Geschützte Fotodokumentation in der Auftragsverwaltung */
.admin-photo-section{margin-top:24px}
.admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:15px;margin-top:14px}
.admin-photo-grid figure{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}
.admin-photo-grid a{display:block;background:var(--cream)}
.admin-photo-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.admin-photo-grid figcaption{padding:10px 12px;color:var(--muted);font-size:13px}
