/*
REVELMONT public subpages
Shared responsive presentation for services, realizations, about, contact,
legal pages, search and submission confirmation.
*/

/* Shared page canvas and hero */
.services-index-page,
.service-detail-page,
.realizations-index-page,
.realization-detail-page,
.about-page,
.contact-page,
.legal-page,
.inquiry-thanks-page,
.search-page {
  background: var(--rv-bg);
}

.services-index-page main,
.service-detail-page main,
.realizations-index-page main,
.realization-detail-page main,
.about-page main,
.contact-page main,
.legal-page main,
.inquiry-thanks-page main,
.search-page main {
  overflow: hidden;
}

.page-hero,
.about-hero,
.service-detail-hero,
.realization-detail-hero {
  position: relative;
  overflow: hidden;
  padding: 68px 0 64px;
  color: #fff;
  background:
    radial-gradient(circle at 84% 10%, rgba(15, 129, 153, .34), transparent 35%),
    linear-gradient(125deg, var(--rv-navy) 0%, var(--rv-navy-2) 68%, #123f50 100%);
}

.page-hero::after,
.about-hero::after,
.service-detail-hero::after,
.realization-detail-hero::after {
  content: "";
  position: absolute;
  right: -92px;
  bottom: -190px;
  width: 450px;
  height: 450px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 50%;
  box-shadow:
    0 0 0 46px rgba(255, 255, 255, .026),
    0 0 0 92px rgba(255, 255, 255, .018);
  pointer-events: none;
}

.page-hero .container,
.about-hero .container,
.service-detail-hero .container,
.realization-detail-hero .container {
  position: relative;
  z-index: 1;
}

.page-hero--compact {
  padding-top: 58px;
  padding-bottom: 56px;
}

.page-hero h1,
.about-hero h1,
.service-detail-hero h1,
.realization-detail-hero h1 {
  max-width: 780px;
  margin: 0 0 18px;
  color: #fff;
  font-size: clamp(2.55rem, 4.5vw, 4.1rem);
}

.page-hero__lead {
  max-width: 720px;
  margin: 0;
  color: rgba(255, 255, 255, .78);
  font-size: clamp(1rem, 1.45vw, 1.14rem);
  line-height: 1.7;
}

.page-hero + .section,
.about-hero + .section,
.service-detail-hero + .section,
.realization-detail-hero + .section {
  background: var(--rv-card);
}

.inquiry-page .page-hero + .section {
  background: var(--rv-bg);
}

.form-card--wide {
  width: 100%;
}

/* Services index */
.public-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.public-service-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--rv-line);
  border-radius: var(--rv-radius-lg);
  background: var(--rv-card);
  box-shadow: 0 8px 25px rgba(16, 26, 47, .06);
  transition: transform .18s ease, box-shadow .18s ease;
}

.public-service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(16, 26, 47, .1);
}

.public-service-card__visual {
  height: 220px;
  overflow: hidden;
  background: #eaf1f5;
}

.public-service-card__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.public-service-card:hover .public-service-card__visual img {
  transform: scale(1.025);
}

.service-placeholder {
  height: 100%;
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, rgba(15, 129, 153, .08), rgba(16, 26, 47, .14)),
    #eef4f7;
}

.service-placeholder span {
  color: rgba(15, 129, 153, .62);
  font-size: 3.8rem;
  font-weight: 900;
  letter-spacing: -.06em;
}

.public-service-card__body {
  padding: 27px 27px 29px;
}

.public-service-card__body .eyebrow {
  margin-bottom: 9px;
}

.public-service-card__body h2 {
  margin-bottom: 12px;
  font-size: 1.48rem;
}

.public-service-card__body h2 a:hover {
  color: var(--rv-teal-dark);
}

.public-service-card__body > p:not(.eyebrow) {
  min-height: 76px;
  margin-bottom: 18px;
  color: var(--rv-muted);
  font-size: .88rem;
}

.public-service-grid > p:only-child,
.realization-grid > p:only-child {
  grid-column: 1 / -1;
  margin: 0;
  padding: 34px;
  border: 1px dashed #cbd5e1;
  border-radius: var(--rv-radius);
  color: var(--rv-muted);
  background: var(--rv-surface-soft);
  text-align: center;
}

.audience-section {
  display: grid;
  grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr);
  align-items: start;
  gap: 58px;
}

.audience-section h2 {
  max-width: 420px;
  margin-bottom: 0;
}

.audience-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.audience-grid article {
  min-height: 132px;
  padding: 22px;
  border: 1px solid var(--rv-line);
  border-radius: 11px;
  background: var(--rv-card);
}

.audience-grid strong,
.audience-grid span {
  display: block;
}

.audience-grid strong {
  margin-bottom: 7px;
  color: var(--rv-navy);
  font-size: .95rem;
}

.audience-grid span {
  color: var(--rv-muted);
  font-size: .82rem;
}

/* Service detail */
.service-detail-hero,
.realization-detail-hero,
.about-hero {
  padding-top: 64px;
  padding-bottom: 72px;
}

.service-detail-hero__grid,
.realization-detail-hero__grid,
.about-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, .88fr);
  align-items: center;
  gap: 62px;
}

.service-detail-hero .hero__actions,
.about-hero .hero__actions {
  margin-top: 30px;
}

.service-detail-hero .button--secondary,
.about-hero .button--secondary {
  color: #fff;
  border-color: rgba(255, 255, 255, .48);
  background: rgba(255, 255, 255, .06);
}

.service-detail-hero .button--secondary:hover,
.about-hero .button--secondary:hover {
  background: rgba(255, 255, 255, .13);
}

.service-detail-hero__visual,
.realization-detail-hero__visual,
.about-hero__visual {
  min-height: 390px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 17px;
  background: rgba(255, 255, 255, .06);
  box-shadow: 0 22px 50px rgba(5, 12, 27, .28);
}

.service-detail-hero__visual img,
.realization-detail-hero__visual img,
.about-hero__visual img {
  width: 100%;
  height: 100%;
  min-height: 390px;
  object-fit: cover;
}

.service-detail-placeholder,
.realization-detail-placeholder,
.about-placeholder {
  min-height: 390px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 34px;
  color: #fff;
  background:
    linear-gradient(145deg, rgba(15, 129, 153, .34), rgba(16, 26, 47, .18)),
    rgba(255, 255, 255, .035);
  text-align: center;
}

.service-detail-placeholder span,
.realization-detail-placeholder span,
.about-placeholder > span {
  color: #72d0e1;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .12em;
}

.service-detail-placeholder strong,
.realization-detail-placeholder strong,
.about-placeholder strong {
  font-size: 1.4rem;
}

.service-detail-placeholder small,
.realization-detail-placeholder small,
.about-placeholder small {
  color: rgba(255, 255, 255, .64);
}

.service-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.service-feature-card {
  min-height: 210px;
  padding: 27px;
  border: 1px solid var(--rv-line);
  border-radius: 12px;
  background: var(--rv-card);
  box-shadow: 0 6px 20px rgba(16, 26, 47, .045);
}

.service-feature-card > span,
.about-values article > span {
  display: inline-grid;
  min-width: 36px;
  height: 30px;
  place-items: center;
  margin-bottom: 28px;
  border-radius: 7px;
  color: var(--rv-teal-dark);
  background: var(--rv-teal-soft);
  font-size: .7rem;
  font-weight: 850;
}

.service-feature-card h3 {
  font-size: 1.08rem;
}

.service-feature-card p {
  margin: 0;
  color: var(--rv-muted);
  font-size: .82rem;
}

.service-process-list {
  max-width: 920px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  counter-reset: none;
}

.service-process-list li {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 22px;
  padding: 26px 0;
  border-bottom: 1px solid var(--rv-line);
}

.service-process-list li:first-child {
  border-top: 1px solid var(--rv-line);
}

.service-process-list li > span {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--rv-teal);
  font-size: .75rem;
  font-weight: 850;
}

.service-process-list h3 {
  margin: 2px 0 7px;
}

.service-process-list p {
  margin: 0;
  color: var(--rv-muted);
  font-size: .86rem;
}

.faq-layout {
  display: grid;
  grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr);
  align-items: start;
  gap: 62px;
}

.faq-list {
  display: grid;
  gap: 10px;
}

.faq-item {
  overflow: hidden;
  border: 1px solid var(--rv-line);
  border-radius: 10px;
  background: var(--rv-card);
}

.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 19px 20px;
  color: var(--rv-navy);
  cursor: pointer;
  font-size: .9rem;
  font-weight: 760;
  list-style: none;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary span {
  flex: none;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--rv-teal-dark);
  background: var(--rv-teal-soft);
  font-size: 1rem;
  transition: transform .18s ease;
}

.faq-item[open] summary span {
  transform: rotate(45deg);
}

.faq-item__answer {
  padding: 0 20px 20px;
  color: var(--rv-muted);
  font-size: .84rem;
}

.faq-item__answer p:last-child {
  margin-bottom: 0;
}

/* Realizations index */
.realization-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.realization-card {
  overflow: hidden;
  border: 1px solid var(--rv-line);
  border-radius: var(--rv-radius-lg);
  background: var(--rv-card);
  box-shadow: 0 8px 25px rgba(16, 26, 47, .06);
  transition: transform .18s ease, box-shadow .18s ease;
}

.realization-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(16, 26, 47, .1);
}

.realization-card__image {
  height: 230px;
  display: block;
  overflow: hidden;
  background: #eaf1f5;
}

.realization-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.realization-card:hover .realization-card__image img {
  transform: scale(1.025);
}

.realization-placeholder {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: var(--rv-navy);
  background: linear-gradient(145deg, #eaf7fa, #e8edf4);
}

.realization-placeholder span {
  color: var(--rv-teal);
  font-size: 2.7rem;
  font-weight: 900;
}

.realization-placeholder strong {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.realization-card__body {
  padding: 26px 27px 29px;
}

.realization-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 14px;
}

.realization-card__meta span {
  padding: 4px 8px;
  border-radius: 5px;
  color: #526075;
  background: var(--rv-surface-muted);
  font-size: .68rem;
  font-weight: 700;
}

.realization-card__body h2 {
  margin-bottom: 11px;
  font-size: 1.35rem;
}

.realization-card__body > p {
  min-height: 72px;
  margin-bottom: 18px;
  color: var(--rv-muted);
  font-size: .84rem;
}

.realization-safety {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  align-items: center;
  gap: 58px;
}

.realization-safety h2 {
  margin: 0;
  font-size: clamp(1.85rem, 3vw, 2.55rem);
}

.realization-safety__points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.realization-safety__points span {
  position: relative;
  min-height: 58px;
  display: flex;
  align-items: center;
  padding: 13px 15px 13px 43px;
  border: 1px solid var(--rv-line);
  border-radius: 9px;
  color: #526075;
  background: var(--rv-card);
  font-size: .78rem;
  font-weight: 680;
}

.realization-safety__points span::before {
  content: "✓";
  position: absolute;
  left: 15px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--rv-green);
  font-size: .66rem;
  font-weight: 900;
}

/* Realization detail */
.realization-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 28px;
}

.realization-meta-grid > div {
  padding: 13px 14px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 8px;
  background: rgba(255, 255, 255, .055);
}

.realization-meta-grid span,
.realization-meta-grid strong {
  display: block;
}

.realization-meta-grid span {
  margin-bottom: 3px;
  color: rgba(255, 255, 255, .56);
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.realization-meta-grid strong {
  color: #fff;
  font-size: .82rem;
}

.realization-content {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  align-items: start;
  gap: 52px;
}

.realization-content__nav {
  position: sticky;
  top: 104px;
  display: grid;
  overflow: hidden;
  border: 1px solid var(--rv-line);
  border-radius: 11px;
  background: var(--rv-card);
}

.realization-content__nav strong {
  padding: 17px 18px;
  border-bottom: 1px solid var(--rv-line);
  color: var(--rv-navy);
  font-size: .86rem;
}

.realization-content__nav a {
  padding: 9px 18px;
  color: #637086;
  font-size: .76rem;
  font-weight: 650;
}

.realization-content__nav a:last-child {
  padding-bottom: 17px;
}

.realization-content__nav a:hover {
  color: var(--rv-teal-dark);
  background: var(--rv-surface-accent);
}

.realization-content__main {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--rv-line);
  border-radius: 14px;
  background: var(--rv-card);
  box-shadow: 0 8px 28px rgba(16, 26, 47, .055);
}

.realization-content__main > section {
  padding: 36px 40px;
  scroll-margin-top: 100px;
}

.realization-content__main > section + section {
  border-top: 1px solid var(--rv-line);
}

.realization-content__main h2 {
  margin-bottom: 14px;
  font-size: clamp(1.55rem, 2.5vw, 2rem);
}

.realization-content__main section > p:last-child {
  margin-bottom: 0;
  color: var(--rv-muted);
}

.before-after-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.before-after-grid figure,
.realization-gallery figure {
  margin: 0;
  overflow: hidden;
  border-radius: 12px;
  background: var(--rv-card);
  box-shadow: 0 6px 22px rgba(16, 26, 47, .07);
}

.before-after-grid img,
.realization-gallery img {
  width: 100%;
  height: 310px;
  object-fit: cover;
}

.before-after-grid figcaption {
  padding: 13px 17px;
  color: #526075;
  font-size: .78rem;
  font-weight: 750;
}

.realization-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.realization-gallery img {
  height: 240px;
}

/* About */
.about-story {
  display: grid;
  grid-template-columns: minmax(250px, .75fr) minmax(0, 1.25fr);
  gap: 68px;
}

.about-story > div:nth-child(2) > p {
  margin-bottom: 28px;
  color: var(--rv-muted);
  font-size: 1rem;
}

.about-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.about-facts article {
  padding: 18px;
  border: 1px solid var(--rv-line);
  border-radius: 9px;
  background: var(--rv-surface-soft);
}

.about-facts strong,
.about-facts span {
  display: block;
}

.about-facts strong {
  margin-bottom: 6px;
  color: var(--rv-navy);
  font-size: .82rem;
}

.about-facts span {
  color: var(--rv-muted);
  font-size: .72rem;
}

.about-qualification {
  display: grid;
  grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: 62px;
}

.about-qualification__visual {
  min-height: 380px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background:
    radial-gradient(circle at 30% 20%, rgba(114, 208, 225, .27), transparent 32%),
    linear-gradient(145deg, var(--rv-navy), #17485a);
  box-shadow: var(--rv-shadow);
}

.qualification-symbol {
  display: flex;
  align-items: center;
  gap: 17px;
  color: #fff;
}

.qualification-symbol > span {
  width: 68px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: var(--rv-teal);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .18);
  font-size: 1.75rem;
  font-weight: 900;
}

.qualification-symbol strong,
.qualification-symbol small {
  display: block;
}

.qualification-symbol strong {
  letter-spacing: .05em;
}

.qualification-symbol small {
  margin-top: 3px;
  color: rgba(255, 255, 255, .6);
  font-size: .65rem;
}

.about-qualification .feature-list {
  grid-template-columns: 1fr;
  margin-top: 27px;
}

.about-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.about-values article {
  min-height: 205px;
  padding: 27px;
  border: 1px solid var(--rv-line);
  border-radius: 12px;
  background: var(--rv-card);
  box-shadow: 0 6px 20px rgba(16, 26, 47, .045);
}

.about-values article > span {
  margin-bottom: 24px;
}

.about-values p {
  margin: 0;
  color: var(--rv-muted);
  font-size: .82rem;
}

/* Contact */
.contact-layout {
  display: grid;
  grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
  align-items: start;
  gap: 48px;
}

.contact-information h2 {
  margin-bottom: 26px;
}

.contact-information__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.contact-information__cards > a,
.contact-information__cards > div {
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--rv-line);
  border-radius: 9px;
  background: var(--rv-card);
  transition: border-color .17s ease, transform .17s ease;
}

.contact-information__cards > a:hover {
  transform: translateY(-2px);
  border-color: #9bcbd6;
}

.contact-information__cards span,
.contact-information__cards strong {
  display: block;
}

.contact-information__cards span {
  margin-bottom: 5px;
  color: var(--rv-muted);
  font-size: .66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.contact-information__cards strong {
  overflow-wrap: anywhere;
  color: var(--rv-navy);
  font-size: .8rem;
}

.contact-note {
  margin-top: 20px;
  padding: 18px 19px;
  border-left: 4px solid var(--rv-yellow);
  border-radius: 8px;
  background: #fffaf0;
}

.contact-note strong {
  color: #694f0c;
  font-size: .82rem;
}

.contact-note p {
  margin: 5px 0 0;
  color: #7d6a38;
  font-size: .75rem;
}

.contact-page .form-card {
  padding: 34px 36px 38px;
}

.contact-page .form-card > h2 {
  margin-bottom: 26px;
  font-size: 1.8rem;
}

.contact-page .public-form {
  display: block;
}

.contact-page .public-form .form-field {
  margin-bottom: 19px;
}

.contact-page .public-form .form-grid {
  margin-bottom: 19px;
}

.contact-page .public-form textarea {
  min-height: 145px;
}

.contact-page .form-error-summary {
  margin: 0 0 22px;
}

.form-success {
  margin-bottom: 22px;
  padding: 15px 17px;
  border: 1px solid #a9dec9;
  border-left: 4px solid var(--rv-green);
  border-radius: 8px;
  color: #176947;
  background: #f1fbf7;
}

.form-success p {
  margin: 3px 0 0;
  font-size: .78rem;
}

/* Legal pages */
.legal-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  align-items: start;
  gap: 42px;
}

.legal-sidebar {
  position: sticky;
  top: 104px;
  display: grid;
  overflow: hidden;
  border: 1px solid var(--rv-line);
  border-radius: 11px;
  background: var(--rv-card);
}

.legal-sidebar strong {
  padding: 17px 18px;
  border-bottom: 1px solid var(--rv-line);
  color: var(--rv-navy);
  font-size: .84rem;
}

.legal-sidebar a {
  padding: 11px 18px;
  color: #637086;
  font-size: .76rem;
  font-weight: 650;
}

.legal-sidebar a:hover {
  color: var(--rv-teal-dark);
  background: var(--rv-surface-accent);
}

.legal-content {
  min-width: 0;
  padding: 38px 42px;
  border: 1px solid var(--rv-line);
  border-radius: 14px;
  background: var(--rv-card);
  box-shadow: 0 8px 28px rgba(16, 26, 47, .055);
}

.company-identification,
.retention-panel,
.cookie-status-panel {
  margin-bottom: 34px;
  padding: 25px;
  border-radius: 11px;
  background: #f7f9fc;
}

.company-identification h2,
.retention-panel h2 {
  margin-bottom: 20px;
  font-size: 1.35rem;
}

.company-identification dl {
  margin: 0;
}

.company-identification dl > div,
.retention-panel > div {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 16px;
  padding: 10px 0;
  border-top: 1px solid var(--rv-line);
}

.company-identification dt,
.retention-panel span {
  color: var(--rv-muted);
  font-size: .75rem;
}

.company-identification dd,
.retention-panel strong {
  margin: 0;
  color: var(--rv-navy);
  font-size: .79rem;
  font-weight: 700;
}

.cookie-status-panel {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 16px;
  color: #176947;
  background: #f1fbf7;
}

.cookie-status-panel__icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--rv-green);
  font-weight: 900;
}

.cookie-status-panel p {
  margin: 5px 0 0;
  color: #4c7565;
  font-size: .77rem;
}

.rich-text-content {
  color: #465267;
  font-size: .9rem;
}

.rich-text-content h2 {
  margin: 38px 0 14px;
  font-size: 1.55rem;
}

.rich-text-content h3 {
  margin: 27px 0 10px;
  font-size: 1.08rem;
}

.rich-text-content a {
  color: var(--rv-teal-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.rich-text-content ul,
.rich-text-content ol {
  padding-left: 22px;
}

.rich-text-content li {
  margin: 6px 0;
}

.rich-text-content table {
  width: 100%;
  margin: 22px 0;
  border-collapse: collapse;
}

.rich-text-content th,
.rich-text-content td {
  padding: 10px 12px;
  border: 1px solid var(--rv-line);
  text-align: left;
}

.legal-review-date {
  margin: 34px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--rv-line);
  color: var(--rv-muted);
  font-size: .73rem;
}

/* Inquiry confirmation */
.thank-you-section {
  min-height: 70vh;
  display: grid;
  place-items: center;
  padding: 76px 0;
  background:
    radial-gradient(circle at 80% 20%, rgba(15, 129, 153, .11), transparent 30%),
    var(--rv-bg);
}

.thank-you-card {
  max-width: 720px;
  margin: 0 auto;
  padding: 48px;
  border: 1px solid var(--rv-line);
  border-radius: var(--rv-radius-lg);
  background: var(--rv-card);
  box-shadow: var(--rv-shadow);
  text-align: center;
}

.thank-you-card__icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  margin: 0 auto 22px;
  border-radius: 50%;
  color: #fff;
  background: var(--rv-green);
  box-shadow: 0 10px 24px rgba(26, 165, 111, .22);
  font-size: 1.45rem;
  font-weight: 900;
}

.thank-you-card h1 {
  margin-bottom: 15px;
  font-size: clamp(2.15rem, 4vw, 3.2rem);
}

.thank-you-card__lead {
  max-width: 560px;
  margin: 0 auto 27px;
  color: var(--rv-muted);
}

.submission-reference {
  max-width: 420px;
  margin: 0 auto 18px;
  padding: 16px;
  border-radius: 9px;
  background: var(--rv-teal-soft);
}

.submission-reference span,
.submission-reference strong {
  display: block;
}

.submission-reference span {
  color: var(--rv-teal-dark);
  font-size: .7rem;
}

.submission-reference strong {
  margin-top: 3px;
  color: var(--rv-navy);
  font-size: 1.08rem;
}

.submission-summary {
  max-width: 420px;
  margin: 0 auto 26px;
  border: 1px solid var(--rv-line);
  border-radius: 9px;
}

.submission-summary > div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 12px;
  padding: 10px 14px;
  text-align: left;
}

.submission-summary > div + div {
  border-top: 1px solid var(--rv-line);
}

.submission-summary dt {
  color: var(--rv-muted);
  font-size: .72rem;
}

.submission-summary dd {
  margin: 0;
  color: var(--rv-navy);
  font-size: .76rem;
  font-weight: 700;
}

.thank-you-card__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

/* Search */
.search-layout {
  max-width: 920px;
}

.search-form {
  padding: 28px;
  border: 1px solid var(--rv-line);
  border-radius: 13px;
  background: var(--rv-card);
  box-shadow: 0 7px 24px rgba(16, 26, 47, .055);
}

.search-form label {
  display: block;
  margin-bottom: 9px;
  color: var(--rv-navy);
  font-size: .84rem;
  font-weight: 750;
}

.search-form > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.search-form input {
  width: 100%;
  min-height: 48px;
  padding: 11px 14px;
  border: 1px solid #cfd7e2;
  border-radius: 8px;
  outline: none;
}

.search-form input:focus {
  border-color: var(--rv-teal);
  box-shadow: 0 0 0 4px rgba(15, 129, 153, .12);
}

.search-results {
  margin-top: 42px;
}

.search-results__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

.search-results__heading h2,
.search-results__heading p {
  margin: 0;
}

.search-results__heading h2 {
  font-size: 1.7rem;
}

.search-results__heading p {
  color: var(--rv-muted);
  font-size: .78rem;
}

.search-results ul {
  display: grid;
  gap: 11px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.search-results li,
.search-empty {
  padding: 24px 26px;
  border: 1px solid var(--rv-line);
  border-radius: 11px;
  background: var(--rv-card);
}

.search-results h3 {
  margin-bottom: 8px;
}

.search-results h3 a:hover {
  color: var(--rv-teal-dark);
}

.search-results li > p {
  margin-bottom: 13px;
  color: var(--rv-muted);
  font-size: .84rem;
}

.search-pagination {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 20px;
}

.search-empty {
  margin-top: 28px;
  text-align: center;
}

.search-empty h2 {
  font-size: 1.6rem;
}

.search-empty p {
  color: var(--rv-muted);
}

/* Keyboard focus for new components */
.public-service-card a:focus-visible,
.realization-card a:focus-visible,
.faq-item summary:focus-visible,
.legal-sidebar a:focus-visible,
.realization-content__nav a:focus-visible,
.search-form input:focus-visible {
  outline: 3px solid rgba(15, 129, 153, .35);
  outline-offset: 3px;
}

@media (max-width: 1050px) {
  .public-service-grid,
  .realization-grid,
  .service-feature-grid,
  .about-values {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-detail-hero__grid,
  .realization-detail-hero__grid,
  .about-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(330px, .75fr);
    gap: 40px;
  }

  .contact-layout {
    gap: 34px;
  }
}

@media (max-width: 860px) {
  .page-hero,
  .about-hero,
  .service-detail-hero,
  .realization-detail-hero {
    padding: 54px 0 58px;
  }

  .service-detail-hero__grid,
  .realization-detail-hero__grid,
  .about-hero__grid,
  .audience-section,
  .faq-layout,
  .realization-safety,
  .about-story,
  .about-qualification,
  .contact-layout {
    grid-template-columns: 1fr;
  }

  .service-detail-hero__visual,
  .realization-detail-hero__visual,
  .about-hero__visual,
  .service-detail-placeholder,
  .realization-detail-placeholder,
  .about-placeholder,
  .service-detail-hero__visual img,
  .realization-detail-hero__visual img,
  .about-hero__visual img {
    min-height: 330px;
  }

  .audience-section,
  .faq-layout,
  .realization-safety,
  .about-story,
  .about-qualification,
  .contact-layout {
    gap: 34px;
  }

  .realization-content,
  .legal-layout {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .realization-content__nav,
  .legal-sidebar {
    position: static;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 9px;
    gap: 3px;
  }

  .realization-content__nav strong,
  .legal-sidebar strong {
    width: 100%;
    padding: 9px;
    border: 0;
  }

  .realization-content__nav a,
  .legal-sidebar a,
  .realization-content__nav a:last-child {
    padding: 7px 9px;
    border-radius: 5px;
    background: #f7f9fc;
  }

  .realization-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .page-hero,
  .page-hero--compact,
  .about-hero,
  .service-detail-hero,
  .realization-detail-hero {
    padding: 42px 0 45px;
  }

  .page-hero h1,
  .about-hero h1,
  .service-detail-hero h1,
  .realization-detail-hero h1 {
    font-size: clamp(2.15rem, 11vw, 3rem);
  }

  .public-service-grid,
  .realization-grid,
  .service-feature-grid,
  .about-values,
  .audience-grid,
  .realization-safety__points,
  .about-facts,
  .contact-information__cards,
  .before-after-grid,
  .realization-gallery {
    grid-template-columns: 1fr;
  }

  .public-service-card__visual,
  .realization-card__image {
    height: 205px;
  }

  .public-service-card__body > p:not(.eyebrow),
  .realization-card__body > p {
    min-height: 0;
  }

  .service-detail-hero__visual,
  .realization-detail-hero__visual,
  .about-hero__visual,
  .service-detail-placeholder,
  .realization-detail-placeholder,
  .about-placeholder,
  .service-detail-hero__visual img,
  .realization-detail-hero__visual img,
  .about-hero__visual img {
    min-height: 250px;
  }

  .service-detail-hero .hero__actions,
  .about-hero .hero__actions {
    display: grid;
  }

  .service-detail-hero .hero__actions .button,
  .about-hero .hero__actions .button {
    width: 100%;
  }

  .service-feature-card,
  .about-values article {
    min-height: 0;
  }

  .service-process-list li {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
  }

  .service-process-list li > span {
    width: 40px;
    height: 40px;
  }

  .realization-meta-grid {
    grid-template-columns: 1fr;
  }

  .realization-content__main > section {
    padding: 29px 22px;
  }

  .before-after-grid img,
  .realization-gallery img {
    height: 230px;
  }

  .contact-page .form-card,
  .legal-content,
  .thank-you-card {
    padding: 27px 21px;
  }

  .company-identification,
  .retention-panel,
  .cookie-status-panel {
    padding: 20px;
  }

  .company-identification dl > div,
  .retention-panel > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .thank-you-section {
    padding: 48px 0;
  }

  .thank-you-card__actions {
    display: grid;
  }

  .thank-you-card__actions .button {
    width: 100%;
  }

  .search-form {
    padding: 21px;
  }

  .search-form > div {
    grid-template-columns: 1fr;
  }

  .search-results__heading {
    display: block;
  }

  .search-results__heading p {
    margin-top: 6px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-service-card,
  .realization-card,
  .public-service-card__visual img,
  .realization-card__image img,
  .faq-item summary span {
    transition: none;
  }
}

/* ==========================================================
   CONTACT SOCIAL LINKS
   ========================================================== */

.contact-socials {
  margin-top: 24px;
  padding: 22px;
  border: 1px solid var(--rv-line);
  border-radius: 11px;
  background: var(--rv-card);
}

.contact-socials h3 {
  margin: 3px 0 15px;
  color: var(--rv-text);
  font-size: 1.05rem;
}

.contact-socials__links {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.contact-socials__links a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  border: 1px solid var(--rv-line);
  border-radius: 8px;
  background: var(--rv-surface-soft);
  color: var(--rv-text);
  font-size: .8rem;
  font-weight: 750;
  transition:
    transform .17s ease,
    border-color .17s ease;
}

.contact-socials__links a:hover {
  transform: translateY(-2px);
  border-color: var(--rv-teal);
}

.contact-socials__icon {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  color: #fff;
  background: var(--rv-teal);
  font-size: .82rem;
  font-weight: 850;
}

@media (max-width: 620px) {
  .contact-socials__links {
    display: grid;
  }

  .contact-socials__links a {
    width: 100%;
  }
}


/* ==========================================================
   CONTACT SOCIAL BRAND COLORS
   ========================================================== */

.contact-socials__link {
  text-decoration: none;
}

.contact-socials__icon svg {
  width: 15px;
  height: 15px;
  display: block;
  color: currentColor;
}

.contact-socials__link--facebook .contact-socials__icon {
  background: #1877f2;
  color: #fff;
}

.contact-socials__link--instagram .contact-socials__icon {
  background: linear-gradient(135deg, #f58529 0%, #dd2a7b 45%, #8134af 72%, #515bd4 100%);
  color: #fff;
}

.contact-socials__link--whatsapp .contact-socials__icon {
  background: #25d366;
  color: #fff;
}

/* ==========================================================
   GLOBAL PUBLIC PAGES DARK MODE CONTRAST
   ========================================================== */

/*
 * Public subpages use --rv-bg and --rv-card in dark mode.
 * Their original typography was designed for the light theme,
 * therefore headings must follow the active theme text colour.
 */
html[data-theme="dark"] .services-index-page main h1,
html[data-theme="dark"] .services-index-page main h2,
html[data-theme="dark"] .services-index-page main h3,
html[data-theme="dark"] .service-detail-page main h1,
html[data-theme="dark"] .service-detail-page main h2,
html[data-theme="dark"] .service-detail-page main h3,
html[data-theme="dark"] .realizations-index-page main h1,
html[data-theme="dark"] .realizations-index-page main h2,
html[data-theme="dark"] .realizations-index-page main h3,
html[data-theme="dark"] .realization-detail-page main h1,
html[data-theme="dark"] .realization-detail-page main h2,
html[data-theme="dark"] .realization-detail-page main h3,
html[data-theme="dark"] .about-page main h1,
html[data-theme="dark"] .about-page main h2,
html[data-theme="dark"] .about-page main h3,
html[data-theme="dark"] .contact-page main h1,
html[data-theme="dark"] .contact-page main h2,
html[data-theme="dark"] .contact-page main h3,
html[data-theme="dark"] .legal-page main h1,
html[data-theme="dark"] .legal-page main h2,
html[data-theme="dark"] .legal-page main h3,
html[data-theme="dark"] .inquiry-thanks-page main h1,
html[data-theme="dark"] .inquiry-thanks-page main h2,
html[data-theme="dark"] .inquiry-thanks-page main h3,
html[data-theme="dark"] .search-page main h1,
html[data-theme="dark"] .search-page main h2,
html[data-theme="dark"] .search-page main h3,
html[data-theme="dark"] .inquiry-page main h1,
html[data-theme="dark"] .inquiry-page main h2,
html[data-theme="dark"] .inquiry-page main h3,
html[data-theme="dark"] .section--muted h1,
html[data-theme="dark"] .section--muted h2,
html[data-theme="dark"] .section--muted h3 {
  color: var(--rv-text);
}

/* Strong / primary text inside dark cards and panels. */
html[data-theme="dark"] .audience-grid strong,
html[data-theme="dark"] .faq-item summary,
html[data-theme="dark"] .realization-safety__points span,
html[data-theme="dark"] .realization-content__nav strong,
html[data-theme="dark"] .about-facts strong,
html[data-theme="dark"] .contact-information__cards strong,
html[data-theme="dark"] .legal-sidebar strong,
html[data-theme="dark"] .company-identification dd,
html[data-theme="dark"] .retention-panel strong,
html[data-theme="dark"] .submission-reference strong,
html[data-theme="dark"] .submission-summary dd,
html[data-theme="dark"] .search-form label,
html[data-theme="dark"] .inquiry-sidebar > strong,
html[data-theme="dark"] .contact-page .form-field > label {
  color: var(--rv-text);
}

/* Secondary/supporting typography. */
html[data-theme="dark"] .realization-card__meta span,
html[data-theme="dark"] .realization-content__nav a,
html[data-theme="dark"] .before-after-grid figcaption,
html[data-theme="dark"] .legal-sidebar a,
html[data-theme="dark"] .inquiry-sidebar li,
html[data-theme="dark"] .file-upload-field input[type="file"],
html[data-theme="dark"] .selected-files:not(:empty),
html[data-theme="dark"] .form-checkbox label {
  color: var(--rv-muted);
}

/* Realization placeholder must become a real dark surface too. */
html[data-theme="dark"] .realization-placeholder {
  border-color: var(--rv-line);
  background: var(--rv-card);
  color: var(--rv-text);
}

/* Navigation / information cards on public pages. */
html[data-theme="dark"] .realization-content__nav,
html[data-theme="dark"] .contact-information__cards > a,
html[data-theme="dark"] .contact-information__cards > div,
html[data-theme="dark"] .legal-sidebar,
html[data-theme="dark"] .legal-content,
html[data-theme="dark"] .submission-reference,
html[data-theme="dark"] .submission-summary {
  border-color: var(--rv-line);
  background-color: var(--rv-card);
}

/* Contact form uses the same dark surface treatment as inquiry. */
html[data-theme="dark"] .contact-page .form-card {
  border-color: var(--rv-line);
  background: var(--rv-card);
  color: var(--rv-text);
}

html[data-theme="dark"] .contact-page .public-form input:not([type="checkbox"]):not([type="file"]),
html[data-theme="dark"] .contact-page .public-form select,
html[data-theme="dark"] .contact-page .public-form textarea,
html[data-theme="dark"] .search-form input {
  border-color: var(--rv-line);
  background: var(--rv-surface-muted);
  color: var(--rv-text);
}

html[data-theme="dark"] .contact-page .public-form input::placeholder,
html[data-theme="dark"] .contact-page .public-form textarea::placeholder,
html[data-theme="dark"] .search-form input::placeholder {
  color: var(--rv-muted);
}

/* FAQ cards. */
html[data-theme="dark"] .faq-item {
  border-color: var(--rv-line);
  background: var(--rv-card);
}

/* ==========================================================
   MOBILE PUBLIC PAGES POLISH V1
   ========================================================== */

@media (max-width: 768px) {

  /* -------------------------------------------------------
     PAGE HERO
     ------------------------------------------------------- */

  .page-hero .container,
  .about-hero .container,
  .service-detail-hero .container,
  .realization-detail-hero .container {
    text-align: center;
  }

  .page-hero__lead {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.65;
  }

  .service-detail-hero__grid > div:first-child,
  .realization-detail-hero__grid > div:first-child,
  .about-hero__grid > div:first-child {
    text-align: center;
  }

  .service-detail-hero .hero__actions,
  .about-hero .hero__actions {
    justify-content: center;
  }

  .service-detail-hero__visual,
  .realization-detail-hero__visual,
  .about-hero__visual {
    width: 100%;
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
  }


  /* -------------------------------------------------------
     SERVICE + REALIZATION CARDS
     ------------------------------------------------------- */

  .public-service-grid,
  .realization-grid,
  .service-feature-grid,
  .audience-grid,
  .contact-information__cards {
    grid-template-columns: 1fr;
  }

  .public-service-card__body,
  .realization-card__body,
  .service-feature-card {
    text-align: center;
  }

  .public-service-card__body .eyebrow {
    text-align: center;
  }

  .public-service-card__body h2,
  .realization-card__body h2,
  .service-feature-card h3 {
    text-align: center;
  }

  .public-service-card__body > p:not(.eyebrow),
  .realization-card__body > p,
  .service-feature-card p {
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
  }

  .realization-card__meta {
    justify-content: center;
  }

  .public-service-card__body .text-link,
  .realization-card__body .text-link {
    min-height: 44px;
    align-self: center;
  }


  /* -------------------------------------------------------
     SECTION HEADINGS
     ------------------------------------------------------- */

  .audience-section h2,
  .realization-safety h2,
  .contact-information h2,
  .contact-socials h3,
  .contact-page .form-card > h2,
  .form-step__heading h2,
  .thank-you-card h1,
  .search-results__heading h2 {
    text-align: center;
  }

  .audience-section .eyebrow,
  .realization-safety .eyebrow,
  .contact-information .eyebrow,
  .contact-socials .eyebrow,
  .form-step__heading .eyebrow {
    text-align: center;
  }


  /* -------------------------------------------------------
     REALIZATIONS
     ------------------------------------------------------- */

  .realization-safety {
    text-align: center;
  }

  .realization-safety__points span {
    text-align: center;
  }


  /* -------------------------------------------------------
     FAQ
     ------------------------------------------------------- */

  .faq-item summary {
    min-height: 52px;
    line-height: 1.4;
    font-size: 1rem;
  }


  /* -------------------------------------------------------
     CONTACT
     ------------------------------------------------------- */

  .contact-information__cards > a,
  .contact-information__cards > div {
    min-height: 72px;
    text-align: center;
  }

  .contact-socials {
    text-align: center;
  }

  .contact-socials__links {
    justify-content: center;
  }

  .contact-socials__links a {
    min-height: 48px;
    font-size: .9rem;
  }


  /* -------------------------------------------------------
     FORMS
     Keep labels/content left aligned for usability.
     ------------------------------------------------------- */

  .form-card {
    width: 100%;
  }

  .form-grid,
  .form-grid--two {
    grid-template-columns: 1fr;
  }

  .public-form .form-field,
  .public-form .form-checkbox {
    text-align: left;
  }

  .public-form input:not([type="checkbox"]):not([type="radio"]),
  .public-form select,
  .public-form textarea {
    width: 100%;
    max-width: 100%;
    font-size: 16px;
  }

  .public-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  .public-form select {
    min-height: 48px;
  }

  .search-form input {
    min-height: 48px;
    font-size: 16px;
  }

  .form-step__heading {
    text-align: center;
  }


  /* -------------------------------------------------------
     THANK YOU + SEARCH
     ------------------------------------------------------- */

  .thank-you-card {
    text-align: center;
  }

  .search-results__heading {
    text-align: center;
  }
}


@media (max-width: 620px) {

  .contact-socials__links a {
    width: 100%;
    justify-content: center;
  }

  .realization-card__meta {
    text-align: center;
  }
}


@media (max-width: 420px) {

  .public-service-card__body,
  .realization-card__body,
  .service-feature-card,
  .contact-socials,
  .contact-page .form-card,
  .thank-you-card {
    padding-left: 18px;
    padding-right: 18px;
  }

  .page-hero__lead {
    font-size: 1rem;
  }
}


/* ==========================================================
   CONTACT MOBILE SOCIAL ICONS TUNE
   ========================================================== */
@media (max-width: 620px) {
  .contact-socials__links {
    display: grid;
    gap: 14px;
  }

  .contact-socials__link {
    width: 100%;
    min-height: 64px;
    padding: 14px 18px;
    border-radius: 14px;
    gap: 14px;
    justify-content: flex-start;
    font-size: 1.02rem;
    font-weight: 700;
  }

  .contact-socials__icon {
    width: 42px;
    height: 42px;
    min-width: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .contact-socials__icon svg {
    width: 22px;
    height: 22px;
  }

  .contact-socials h3,
  .contact-socials .eyebrow {
    text-align: center;
  }
}


/* ==========================================================
   CONTACT SOCIAL MOBILE CENTER FIX V2
   ========================================================== */

@media (max-width: 768px) {

  .contact-socials {
    text-align: center;
  }

  .contact-socials__links {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 14px;
  }

  .contact-socials__link,
  .contact-socials__links a {
    width: min(100%, 310px);
    min-height: 68px;
    margin-left: auto;
    margin-right: auto;

    display: flex;
    align-items: center;
    justify-content: center !important;

    gap: 15px;
    padding: 13px 20px;

    text-align: center;
    font-size: 1.05rem;
  }

  .contact-socials__icon {
    width: 46px;
    height: 46px;
    min-width: 46px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 13px;
  }

  .contact-socials__icon svg {
    width: 25px;
    height: 25px;
  }

  .contact-socials h3,
  .contact-socials .eyebrow {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 420px) {

  .contact-socials__link,
  .contact-socials__links a {
    width: 100%;
  }
}


/* ==========================================================
   CONTACT PAGE SOCIAL DEDUP
   Contact page already has its own large social buttons.
   ========================================================== */

.contact-page .site-footer .footer-socials {
  display: none;
}

/* FINAL CONTACT BUTTON + GDPR MOBILE TUNE START */

@keyframes rv-contact-submit-pulse {
  0%,
  100% {
    color: #63e891;
    text-shadow: 0 0 0 rgba(99, 232, 145, 0);
  }

  50% {
    color: #caffdc;
    text-shadow:
      0 0 6px rgba(99, 232, 145, .55),
      0 0 14px rgba(99, 232, 145, .28);
  }
}


@media (max-width: 768px) {

  /* -------------------------------------------------------
     CONTACT SUBMIT BUTTON
     ------------------------------------------------------- */

  .contact-page .public-form button[type="submit"],
  .contact-page .public-form input[type="submit"],
  .contact-page .public-form .button[type="submit"] {
    display: flex;
    align-items: center;
    justify-content: center;

    width: min(100%, 260px);
    min-height: 52px;

    margin: 20px auto 0;
    padding: 13px 24px;

    border: 1px solid #35c96d;
    border-radius: 12px;

    background: #0c1420;
    color: #63e891;

    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;

    box-shadow:
      0 8px 24px rgba(0, 0, 0, .22),
      inset 0 0 0 1px rgba(255, 255, 255, .025);

    animation:
      rv-contact-submit-pulse
      1.8s
      ease-in-out
      infinite;
  }

  .contact-page .public-form button[type="submit"]:hover,
  .contact-page .public-form input[type="submit"]:hover,
  .contact-page .public-form .button[type="submit"]:hover {
    border-color: #65e492;
    background: #111d2c;
    color: #d9ffe6;
  }

  .contact-page .public-form button[type="submit"]:focus-visible,
  .contact-page .public-form input[type="submit"]:focus-visible,
  .contact-page .public-form .button[type="submit"]:focus-visible {
    outline: 3px solid rgba(53, 201, 109, .32);
    outline-offset: 3px;
  }


  /* -------------------------------------------------------
     GDPR / "BERU NA VEDOMI"
     ------------------------------------------------------- */

  .contact-page .public-form .form-checkbox {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: start;
    column-gap: 12px;

    width: 100%;
    margin-top: 10px;
    padding: 14px 15px;

    border: 1px solid var(--rv-line);
    border-radius: 12px;

    background: var(--rv-card);
  }

  .contact-page .public-form
  .form-checkbox input[type="checkbox"] {
    width: 22px;
    height: 22px;
    min-width: 22px;

    margin: 1px 0 0;

    accent-color: #35c96d;
    cursor: pointer;
  }

  .contact-page .public-form .form-checkbox label {
    margin: 0;

    color: var(--rv-text);

    font-size: .98rem;
    font-weight: 600;
    line-height: 1.55;

    text-align: left;
  }

  .contact-page .public-form .form-checkbox a {
    color: #36c872;
    font-weight: 800;

    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  html[data-theme="dark"]
  .contact-page .public-form .form-checkbox {
    border-color: #33435a;
    background: #151f30;
  }

  html[data-theme="dark"]
  .contact-page .public-form .form-checkbox label {
    color: #eef3f8;
  }

  html[data-theme="dark"]
  .contact-page .public-form .form-checkbox a {
    color: #68e598;
  }
}


@media (prefers-reduced-motion: reduce) {

  .contact-page .public-form button[type="submit"],
  .contact-page .public-form input[type="submit"],
  .contact-page .public-form .button[type="submit"] {
    animation: none;
    color: #7eeaa3;
  }
}

/* FINAL CONTACT BUTTON + GDPR MOBILE TUNE END */


/* ==========================================================
   CONTACT SUCCESS MODAL V1
   ========================================================== */

html.contact-success-modal-open,
html.contact-success-modal-open body {
  overflow: hidden;
}

.contact-success-modal {
  position: fixed;
  z-index: 5000;
  inset: 0;

  display: grid;
  place-items: center;

  padding: 24px;
}

.contact-success-modal__backdrop {
  position: absolute;
  inset: 0;

  background:
    rgba(5, 10, 18, .82);

  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.contact-success-modal__dialog {
  position: relative;
  z-index: 1;

  width: min(100%, 520px);

  padding: 38px 34px 32px;

  border:
    1px solid
    rgba(78, 224, 132, .38);

  border-radius: 22px;

  background:
    linear-gradient(
      145deg,
      #172337 0%,
      #0e1726 100%
    );

  color: #eef3f8;

  text-align: center;

  box-shadow:
    0 28px 90px rgba(0, 0, 0, .55),
    0 0 42px rgba(53, 201, 109, .10);

  animation:
    rv-success-modal-enter
    .28s
    ease-out
    both;
}

.contact-success-modal__icon {
  display: grid;
  place-items: center;

  width: 70px;
  height: 70px;

  margin:
    0 auto
    20px;

  border:
    1px solid
    rgba(82, 230, 139, .55);

  border-radius: 50%;

  background:
    rgba(53, 201, 109, .12);

  color: #65e597;

  box-shadow:
    0 0 0 8px
    rgba(53, 201, 109, .045),
    0 0 32px
    rgba(53, 201, 109, .14);
}

.contact-success-modal__eyebrow {
  margin:
    0 0
    7px;

  color: #65e597;

  font-size: .75rem;
  font-weight: 800;

  letter-spacing: .14em;
  text-transform: uppercase;
}

.contact-success-modal__dialog h2 {
  margin:
    0 auto
    14px;

  max-width: 430px;

  color: #f4f7fb;

  font-size:
    clamp(
      1.55rem,
      5vw,
      2.05rem
    );

  line-height: 1.15;
}

.contact-success-modal__message {
  max-width: 430px;

  margin:
    0 auto
    18px;

  color: #bcc7d6;

  font-size: 1rem;
  line-height: 1.65;
}

.contact-success-modal__reference {
  display: inline-flex;
  flex-wrap: wrap;

  justify-content: center;

  gap: 5px;

  margin:
    0 0
    18px;

  padding:
    8px 13px;

  border-radius: 999px;

  background:
    rgba(255, 255, 255, .055);

  color: #cbd4df;

  font-size: .88rem;
}

.contact-success-modal__reference strong {
  color: #ffffff;
}

.contact-success-modal__redirect {
  margin:
    0 0
    20px;

  color: #98a7ba;

  font-size: .88rem;
  line-height: 1.5;
}

.contact-success-modal__redirect strong {
  color: #65e597;
}

.contact-success-modal__button {
  display: inline-flex;

  align-items: center;
  justify-content: center;

  min-width: 220px;
  min-height: 48px;

  margin: 0 auto;

  border-color: #35c96d;

  background: #101a29;

  color: #70e99e;
}

.contact-success-modal__button:hover {
  border-color: #66e694;

  background: #17253a;

  color: #e5ffef;
}


@keyframes rv-success-modal-enter {

  from {
    opacity: 0;
    transform:
      translateY(14px)
      scale(.975);
  }

  to {
    opacity: 1;
    transform:
      translateY(0)
      scale(1);
  }
}


@media (max-width: 620px) {

  .contact-success-modal {
    padding: 18px;
  }

  .contact-success-modal__dialog {
    width: 100%;

    padding:
      30px 20px
      24px;

    border-radius: 18px;
  }

  .contact-success-modal__icon {
    width: 62px;
    height: 62px;

    margin-bottom: 17px;
  }

  .contact-success-modal__message {
    font-size: .96rem;
  }

  .contact-success-modal__button {
    width: 100%;
  }
}


@media (prefers-reduced-motion: reduce) {

  .contact-success-modal__dialog {
    animation: none;
  }
}


/* ==================================================
   REVELMONT IMAGE DISPLAY CONTROLS V2
   Nedestruktivni Wagtail hero image display controls.
   ================================================== */

.rv-image-adjustable {
  object-position:
    var(--rv-image-x, 50%)
    var(--rv-image-y, 50%);

  transform:
    scale(var(--rv-image-zoom, 1));

  transform-origin:
    var(--rv-image-x, 50%)
    var(--rv-image-y, 50%);

  filter:
    brightness(var(--rv-image-brightness, 100%))
    contrast(var(--rv-image-contrast, 100%))
    saturate(var(--rv-image-saturation, 100%));

  transition:
    transform .22s ease,
    filter .22s ease,
    object-position .22s ease;
}

@media (max-width: 760px) {
  .rv-image-adjustable {
    object-position:
      var(--rv-image-mobile-x, var(--rv-image-x, 50%))
      var(--rv-image-mobile-y, var(--rv-image-y, 50%));

    transform:
      scale(
        var(
          --rv-image-mobile-zoom,
          var(--rv-image-zoom, 1)
        )
      );

    transform-origin:
      var(--rv-image-mobile-x, var(--rv-image-x, 50%))
      var(--rv-image-mobile-y, var(--rv-image-y, 50%));
  }
}


/* ==================================================
   REVELMONT IMAGE DISPLAY CONTROLS V2.1
   Cards inherit hero image presentation settings.
   ================================================== */

.public-service-card:hover
.public-service-card__visual
img.rv-image-adjustable--card,
.realization-card:hover
.realization-card__image
img.rv-image-adjustable--card {
  transform:
    scale(
      calc(
        var(--rv-image-zoom, 1) + .025
      )
    );
}

@media (max-width: 760px) {
  .public-service-card:hover
  .public-service-card__visual
  img.rv-image-adjustable--card,
  .realization-card:hover
  .realization-card__image
  img.rv-image-adjustable--card {
    transform:
      scale(
        calc(
          var(
            --rv-image-mobile-zoom,
            var(--rv-image-zoom, 1)
          ) + .025
        )
      );
  }
}

/* ==========================================================
   MOBILE READABILITY V1 2026-09-08
   Public homepage only
   ========================================================== */

@media (max-width: 620px) {

    /* Main alignment */
    .public-home .hero__content,
    .public-home .section-heading,
    .public-home .split-section__content,
    .public-home .service-card,
    .public-home .process-grid li,
    .public-home .project-card__body,
    .public-home .final-cta {
        text-align: center;
    }

    /* Headings */
    .public-home h1 {
        font-size: clamp(2.4rem, 10.5vw, 2.75rem);
        line-height: 1.06;
        text-align: center;
    }

    .public-home h2,
    .public-home .section-heading h2,
    .public-home .split-section__content h2,
    .public-home .final-cta h2 {
        font-size: clamp(1.9rem, 8vw, 2.2rem);
        line-height: 1.12;
        text-align: center;
    }

    .public-home h3 {
        font-size: 1.25rem;
        line-height: 1.28;
        text-align: center;
    }

    /* Intro and supporting copy */
    .public-home .hero__lead,
    .public-home .section-lead,
    .public-home .section-heading > p,
    .public-home .section-heading div + p,
    .public-home .split-section__content > p,
    .public-home .service-card p,
    .public-home .process-grid p,
    .public-home .project-card__body p,
    .public-home .feature-list span,
    .public-home .final-cta p {
        font-size: 1.08rem;
        line-height: 1.58;
        text-align: center;
    }

    .public-home .eyebrow {
        font-size: .92rem;
        line-height: 1.4;
        text-align: center;
    }

    /* Keep centered text blocks readable */
    .public-home .hero__lead,
    .public-home .section-heading > p,
    .public-home .section-heading div + p,
    .public-home .section-lead,
    .public-home .split-section__content > p {
        max-width: 34rem;
        margin-left: auto;
        margin-right: auto;
    }

    /* Hero CTA */
    .public-home .hero__actions {
        width: 100%;
        justify-items: center;
        justify-content: center;
    }

    .public-home .hero__actions .button {
        width: min(100%, 340px);
        min-height: 56px;
        padding: 14px 22px;
        font-size: 1.08rem;
        line-height: 1.25;
        text-align: center;
        justify-content: center;
    }

    /* Other public buttons */
    .public-home .button {
        min-height: 54px;
        padding-top: 13px;
        padding-bottom: 13px;
        font-size: 1.05rem;
        text-align: center;
    }

    /* Card links */
    .public-home .service-card a,
    .public-home .project-card__body a,
    .public-home .text-link {
        font-size: 1.04rem;
        line-height: 1.4;
    }

    /* Trust strip */
    .public-home .trust-strip__grid > div {
        text-align: center;
    }

    .public-home .trust-strip__grid strong {
        font-size: 1.08rem;
    }

    .public-home .trust-strip__grid span {
        font-size: 1rem;
        line-height: 1.45;
    }

    /* Hero trust labels */
    .public-home .hero__trust {
        text-align: center;
        justify-items: center;
    }

    .public-home .hero__trust span {
        justify-content: center;
        font-size: 1rem;
        line-height: 1.4;
    }
}
/* ==========================================================
   SERVICE CARD COLORS V1 2026-09-08
   Homepage services - distinct responsive cards
   ========================================================== */

.public-home .service-grid .service-card {
    --service-accent: #0f8199;
    --service-bg-start: #dff5f8;
    --service-bg-end: #c8ebf0;

    position: relative;
    overflow: hidden;

    border: 1px solid var(--service-accent);
    border-radius: 16px;

    background:
        linear-gradient(
            145deg,
            var(--service-bg-start) 0%,
            var(--service-bg-end) 100%
        );

    box-shadow:
        0 12px 30px rgba(15, 35, 55, .12);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.public-home .service-grid .service-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 6px;
    background: var(--service-accent);
}

/* 01 - Revize */
.public-home .service-grid .service-card:nth-child(1) {
    --service-accent: #087f97;
    --service-bg-start: #d8f4f7;
    --service-bg-end: #bfe9ef;
}

/* 02 - Elektroinstalace */
.public-home .service-grid .service-card:nth-child(2) {
    --service-accent: #426fae;
    --service-bg-start: #e2edff;
    --service-bg-end: #cbdcff;
}

/* 03 - Rekonstrukce */
.public-home .service-grid .service-card:nth-child(3) {
    --service-accent: #b66b18;
    --service-bg-start: #fff0d5;
    --service-bg-end: #f5d9ab;
}

/* 04 - Servis */
.public-home .service-grid .service-card:nth-child(4) {
    --service-accent: #347a54;
    --service-bg-start: #e1f3e7;
    --service-bg-end: #c8e7d2;
}

/* 05 - Montáže */
.public-home .service-grid .service-card:nth-child(5) {
    --service-accent: #7156a5;
    --service-bg-start: #eee7fa;
    --service-bg-end: #dcd0f1;
}

/* 06 - Údržba */
.public-home .service-grid .service-card:nth-child(6) {
    --service-accent: #a85070;
    --service-bg-start: #f8e3eb;
    --service-bg-end: #efcad8;
}

.public-home .service-grid .service-card__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 42px;
    min-height: 36px;

    padding: 7px 10px;

    border: 0;
    border-radius: 9px;

    background: var(--service-accent);
    color: #ffffff;

    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .03em;

    box-shadow:
        0 6px 14px rgba(15, 35, 55, .16);
}

.public-home .service-grid .service-card h3 {
    color: #0c2135;
    font-weight: 850;
    letter-spacing: -.02em;
}

.public-home .service-grid .service-card p {
    color: #314457;
    font-weight: 550;
}

.public-home .service-grid .service-card a {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 44px;

    padding: 9px 14px;

    border: 1px solid var(--service-accent);
    border-radius: 10px;

    background: rgba(255, 255, 255, .58);
    color: #102b3e;

    font-weight: 850;
    text-decoration: none;

    box-shadow:
        0 4px 12px rgba(15, 35, 55, .07);
}

.public-home .service-grid .service-card a:hover {
    background: rgba(255, 255, 255, .86);
    color: #071927;
}

@media (hover: hover) and (pointer: fine) {
    .public-home .service-grid .service-card:hover {
        transform: translateY(-5px);

        box-shadow:
            0 18px 38px rgba(15, 35, 55, .17);
    }
}

@media (max-width: 620px) {

    .public-home .service-grid {
        gap: 18px;
    }

    .public-home .service-grid .service-card {
        padding: 28px 22px 30px;
        border-width: 1px;
        border-radius: 15px;
    }

    .public-home .service-grid .service-card__number {
        min-width: 44px;
        min-height: 38px;
        margin-bottom: 20px;
        font-size: .88rem;
    }

    .public-home .service-grid .service-card h3 {
        margin-bottom: 12px;
        font-size: 1.32rem;
        line-height: 1.25;
    }

    .public-home .service-grid .service-card p {
        margin-bottom: 18px;
        font-size: 1.08rem;
        line-height: 1.58;
    }

    .public-home .service-grid .service-card a {
        min-height: 50px;
        padding: 11px 17px;
        font-size: 1.07rem;
        line-height: 1.3;
    }
}
/* ==========================================================
   HOMEPAGE DIAGRAM COLORS V1 2026-09-08
   Colored process diagram / Why REVELMONT
   ========================================================== */

.public-home .diagram__node {
    --diagram-accent: #0f8199;
    --diagram-bg-start: #d9f3f6;
    --diagram-bg-end: #bde6eb;

    border: 1px solid var(--diagram-accent);
    border-radius: 12px;

    background:
        linear-gradient(
            145deg,
            var(--diagram-bg-start) 0%,
            var(--diagram-bg-end) 100%
        );

    color: #10263a;

    font-weight: 850;

    box-shadow:
        0 10px 24px rgba(4, 18, 33, .17),
        inset 0 1px 0 rgba(255, 255, 255, .55);
}

/* Návrh */
.public-home .diagram__node:nth-child(2) {
    --diagram-accent: #09889d;
    --diagram-bg-start: #d9f5f7;
    --diagram-bg-end: #bce8ed;
}

/* Realizace */
.public-home .diagram__node:nth-child(3) {
    --diagram-accent: #416fae;
    --diagram-bg-start: #e1ecff;
    --diagram-bg-end: #c7d9fa;
}

/* Měření */
.public-home .diagram__node:nth-child(4) {
    --diagram-accent: #ba711b;
    --diagram-bg-start: #fff0d4;
    --diagram-bg-end: #f4d7a4;
}

/* Dokumentace */
.public-home .diagram__node:nth-child(5) {
    --diagram-accent: #347b55;
    --diagram-bg-start: #e0f2e6;
    --diagram-bg-end: #c4e4ce;
}

/* Střed REVELMONT */
.public-home .diagram__node.diagram__node--main {
    border-color: #31b7ce;

    background:
        linear-gradient(
            135deg,
            #087d94 0%,
            #0c526d 55%,
            #10263f 100%
        );

    color: #ffffff;

    font-weight: 900;
    letter-spacing: .035em;

    box-shadow:
        0 0 0 4px rgba(41, 181, 205, .10),
        0 12px 30px rgba(0, 0, 0, .28);
}

/* If the existing diagram uses pseudo-elements for the cross lines */
.public-home .diagram::before,
.public-home .diagram::after {
    border-color: rgba(49, 183, 206, .42);
}

/* Dark mode keeps colored cards rather than white blocks */
html[data-theme="dark"] .public-home .diagram__node {
    color: #10263a;
}

html[data-theme="dark"]
.public-home
.diagram__node.diagram__node--main {
    color: #ffffff;
}

@media (max-width: 620px) {

    .public-home .diagram__node {
        border-width: 1px;
        border-radius: 12px;

        font-size: .88rem;
        line-height: 1.25;

        box-shadow:
            0 9px 22px rgba(0, 0, 0, .20),
            inset 0 1px 0 rgba(255, 255, 255, .55);
    }

    .public-home .diagram__node.diagram__node--main {
        font-size: .82rem;

        box-shadow:
            0 0 0 4px rgba(41, 181, 205, .10),
            0 10px 26px rgba(0, 0, 0, .30);
    }
}
/* ==========================================================
   AREA MAP HIGHLIGHT V1 2026-09-08
   Global public coverage map + colored area tags
   ========================================================== */

.area-panel::before {
    background:
        linear-gradient(rgba(255, 255, 255, .04), rgba(255, 255, 255, .04)),
        #eef3f7 url("/static/images/revelmont/area-map-coverage-v2.webp") center center / cover no-repeat;
}

.area-tags span:nth-child(1) {
    border-color: #0d8ea2;
    background: #dff6f9;
    color: #0b5563;
}

.area-tags span:nth-child(2) {
    border-color: #4d77ba;
    background: #e6efff;
    color: #284e8b;
}

.area-tags span:nth-child(3) {
    border-color: #c07a1a;
    background: #fff1db;
    color: #8c5610;
}

.area-tags span:nth-child(4) {
    border-color: #2f8b66;
    background: #e4f5ec;
    color: #216449;
}

@media (max-width: 620px) {
    .area-panel::before {
        min-height: 205px;
        border-radius: 12px;
    }

    .area-tags {
        gap: 10px;
        justify-content: center;
    }

    .area-tags span {
        font-size: .86rem;
        font-weight: 800;
    }
}
/* ==========================================================
   AREA PANEL CONTRAST V1 2026-09-08
   Readable coverage section on dark theme / mobile
   ========================================================== */

html[data-theme="dark"] .area-panel h2 {
    color: #ffffff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .24);
}

html[data-theme="dark"] .area-panel > div:first-child > p:not(.eyebrow) {
    color: #d8e4ef;
}

html[data-theme="dark"] .area-panel .eyebrow {
    color: #72d8e8;
}

html[data-theme="dark"] .area-panel {
    border-color: rgba(118, 169, 194, .22);
}

@media (max-width: 620px) {

    .area-panel > div:first-child {
        text-align: center;
    }

    .area-panel h2,
    .area-panel > div:first-child > p,
    .area-panel .eyebrow {
        text-align: center;
    }

    .area-panel h2 {
        line-height: 1.15;
    }

    .area-panel > div:first-child > p:not(.eyebrow) {
        font-size: 1.05rem;
        line-height: 1.58;
    }
}
/* ==========================================================
   CONTACT INSTAGRAM ACTIVE V1 2026-09-08
   ========================================================== */

.contact-page .contact-information__instagram {
    border-color: #c35aa7;
}

.contact-page .contact-information__instagram-label {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.contact-page .contact-information__instagram-icon {
    width: 31px;
    height: 31px;
    flex: 0 0 31px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 9px;

    background:
        linear-gradient(
            135deg,
            #f58529 0%,
            #dd2a7b 45%,
            #8134af 72%,
            #515bd4 100%
        );

    color: #ffffff;

    box-shadow:
        0 5px 13px rgba(129, 52, 175, .20);
}

.contact-page .contact-information__instagram-icon svg {
    width: 19px;
    height: 19px;
    display: block;
}

.contact-page .contact-information__instagram:hover {
    border-color: #dd2a7b;
}

@media (max-width: 620px) {

    .contact-page .contact-information__instagram-icon {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
        border-radius: 11px;
    }

    .contact-page .contact-information__instagram-icon svg {
        width: 23px;
        height: 23px;
    }
}
/* ==========================================================
   TECHNICAL HERO V1 2026-09-08
   Modern navy / teal technical presentation
   ========================================================== */

.public-home .hero {
    background:
        linear-gradient(
            rgba(63, 196, 218, .055) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(63, 196, 218, .055) 1px,
            transparent 1px
        ),
        radial-gradient(
            circle at 12% 16%,
            rgba(16, 153, 181, .20),
            transparent 31%
        ),
        radial-gradient(
            circle at 88% 24%,
            rgba(67, 107, 175, .17),
            transparent 35%
        ),
        linear-gradient(
            135deg,
            #07131f 0%,
            #091c2b 42%,
            #0b2634 72%,
            #0b303c 100%
        );

    background-size:
        30px 30px,
        30px 30px,
        auto,
        auto,
        auto;

    border-bottom:
        1px solid rgba(74, 194, 215, .22);
}

.public-home .hero h1 {
    color: #ffffff;

    text-shadow:
        0 3px 24px rgba(0, 0, 0, .26);
}

.public-home .hero .eyebrow {
    color: #51d1e4;
}

.public-home .hero__lead {
    color: #d6e2ea;
}

.public-home .hero__trust span {
    color: #e6edf3;
}

.public-home .hero__trust span::before {
    background: #26bad2;
    box-shadow:
        0 0 10px rgba(38, 186, 210, .55);
}

.public-home .hero__actions .button--secondary {
    border-color: rgba(102, 208, 224, .58);
    background: rgba(10, 39, 53, .52);
    color: #ffffff;

    backdrop-filter: blur(4px);
}

.public-home .hero__actions .button--secondary:hover {
    border-color: #62d4e5;
    background: rgba(18, 72, 87, .72);
}

@media (max-width: 620px) {

    .public-home .hero {
        background-size:
            24px 24px,
            24px 24px,
            auto,
            auto,
            auto;
    }
}


/* ==========================================================
   SITE UPDATE MODAL V1 2026-09-08
   ========================================================== */

.site-update-modal[hidden] {
    display: none !important;
}

.site-update-modal {
    position: fixed;
    inset: 0;
    z-index: 10020;

    display: grid;
    place-items: center;

    padding: 22px;

    background:
        rgba(2, 10, 17, .78);

    backdrop-filter: blur(8px);
}

.site-update-modal__panel {
    position: relative;

    width: min(100%, 540px);

    overflow: hidden;

    padding: 34px 34px 30px;

    border:
        1px solid rgba(75, 199, 220, .42);

    border-radius: 18px;

    background:
        linear-gradient(
            rgba(67, 191, 212, .045) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(67, 191, 212, .045) 1px,
            transparent 1px
        ),
        radial-gradient(
            circle at 92% 8%,
            rgba(20, 169, 194, .22),
            transparent 34%
        ),
        linear-gradient(
            145deg,
            #091724 0%,
            #0c2130 60%,
            #0d2c38 100%
        );

    background-size:
        25px 25px,
        25px 25px,
        auto,
        auto;

    color: #eaf2f7;

    box-shadow:
        0 26px 70px rgba(0, 0, 0, .46),
        0 0 0 1px rgba(80, 201, 222, .06);
}

.site-update-modal__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 17px;
    padding: 7px 11px;

    border:
        1px solid rgba(79, 210, 229, .36);

    border-radius: 999px;

    background:
        rgba(24, 153, 177, .12);

    color: #62d8e9;

    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.site-update-modal__badge::before {
    content: "";

    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: #39c6dd;

    box-shadow:
        0 0 12px rgba(57, 198, 221, .74);
}

.site-update-modal h2 {
    margin: 0 46px 14px 0;

    color: #ffffff;

    font-size:
        clamp(1.75rem, 5vw, 2.25rem);

    line-height: 1.1;
}

.site-update-modal__text {
    margin: 0;

    color: #cfdee8;

    font-size: 1.03rem;
    line-height: 1.62;
}

.site-update-modal__note {
    margin: 16px 0 0;

    color: #8ed8e4;

    font-size: .9rem;
    line-height: 1.5;
}

.site-update-modal__actions {
    display: flex;
    justify-content: flex-end;

    margin-top: 26px;
}

.site-update-modal__button {
    min-width: 145px;
    min-height: 50px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 12px 22px;

    border: 1px solid #1ca7bf;
    border-radius: 11px;

    background:
        linear-gradient(
            135deg,
            #1592ab,
            #08758d
        );

    color: #ffffff;

    font: inherit;
    font-weight: 850;

    cursor: pointer;

    box-shadow:
        0 8px 22px rgba(5, 105, 128, .26);
}

.site-update-modal__button:hover {
    background:
        linear-gradient(
            135deg,
            #1aa8c3,
            #087d96
        );
}

.site-update-modal__close {
    position: absolute;
    top: 17px;
    right: 17px;

    width: 40px;
    height: 40px;

    display: inline-grid;
    place-items: center;

    border:
        1px solid rgba(146, 195, 208, .26);

    border-radius: 10px;

    background:
        rgba(255, 255, 255, .045);

    color: #e7f2f6;

    font-size: 1.35rem;
    line-height: 1;

    cursor: pointer;
}

.site-update-modal__close:hover {
    border-color:
        rgba(96, 210, 229, .65);

    background:
        rgba(43, 174, 197, .12);
}

.site-update-modal__button:focus-visible,
.site-update-modal__close:focus-visible {
    outline:
        3px solid rgba(94, 216, 235, .52);

    outline-offset: 3px;
}

body.site-update-modal-open {
    overflow: hidden;
}

@media (max-width: 620px) {

    .site-update-modal {
        padding: 16px;
    }

    .site-update-modal__panel {
        padding:
            30px 23px 24px;

        border-radius: 16px;
    }

    .site-update-modal h2 {
        margin-right: 38px;

        font-size: 1.75rem;
    }

    .site-update-modal__text {
        font-size: 1rem;
    }

    .site-update-modal__actions {
        display: grid;
    }

    .site-update-modal__button {
        width: 100%;
        min-height: 54px;
    }
}
/* ==========================================================
   REVELMONT MENU LOGO + HERO V2 2026-09-08
   ========================================================== */

.revelmont-menu-logo {
    width: var(--rv-logo-size-desktop, 40px);
    height: var(--rv-logo-size-desktop, 40px);
    flex: 0 0 var(--rv-logo-size-desktop, 40px);

    display: inline-flex;
    align-items: center;
    justify-content: var(--rv-logo-alignment, center);

    overflow: hidden;

    border: 1px solid rgba(60, 203, 226, .52);
    border-radius: 11px;

    background: #071a29;

    box-shadow:
        0 0 0 1px rgba(27, 185, 211, .08),
        0 5px 16px rgba(0, 0, 0, .25),
        0 0 16px rgba(28, 180, 207, .13);
}

.revelmont-menu-logo img {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: contain;
    object-position: center;
    box-sizing: border-box;
    padding: var(--rv-logo-padding, 0);
}

.revelmont-menu-logo .rv-logo-asset {
    display: none;
}

.revelmont-menu-logo .rv-logo-asset--main {
    display: block;
}

html[data-theme="light"]
.revelmont-menu-logo.has-logo-light
.rv-logo-asset--main {
    display: none;
}

html[data-theme="light"]
.revelmont-menu-logo.has-logo-light
.rv-logo-asset--light {
    display: block;
}

html[data-theme="dark"]
.revelmont-menu-logo.has-logo-dark
.rv-logo-asset--main {
    display: none;
}

html[data-theme="dark"]
.revelmont-menu-logo.has-logo-dark
.rv-logo-asset--dark {
    display: block;
}

/* Final technical hero palette matching the new emblem. */
.public-home .hero {
    background:
        radial-gradient(
            circle at 15% 20%,
            rgba(11, 198, 226, .22),
            transparent 28%
        ),
        radial-gradient(
            circle at 88% 17%,
            rgba(41, 112, 181, .20),
            transparent 32%
        ),
        linear-gradient(
            rgba(49, 196, 220, .055) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(49, 196, 220, .055) 1px,
            transparent 1px
        ),
        linear-gradient(
            145deg,
            #050e17 0%,
            #071824 34%,
            #092330 67%,
            #08313d 100%
        ) !important;

    background-size:
        auto,
        auto,
        32px 32px,
        32px 32px,
        auto !important;

    border-bottom:
        1px solid rgba(47, 194, 218, .25);
}

.public-home .hero h1 {
    color: #ffffff;
}

.public-home .hero .eyebrow {
    color: #57d8ea;
}

.public-home .hero__lead {
    color: #dae7ed;
}

.public-home .hero__trust span {
    color: #eef6f8;
}

.public-home .hero__actions .button--secondary {
    border-color: rgba(84, 208, 227, .62);
    background: rgba(4, 26, 37, .48);
    color: #ffffff;
}

@media (max-width: 900px) and (min-width: 621px) {

    .revelmont-menu-logo {
        width: var(--rv-logo-size-tablet, 40px);
        height: var(--rv-logo-size-tablet, 40px);
        flex-basis: var(--rv-logo-size-tablet, 40px);
    }
}

@media (max-width: 620px) {

    .revelmont-menu-logo {
        width: var(--rv-logo-size-mobile, 36px);
        height: var(--rv-logo-size-mobile, 36px);
        flex-basis: var(--rv-logo-size-mobile, 36px);
        border-radius: 10px;
    }

    .revelmont-menu-logo.has-logo-mobile .rv-logo-asset {
        display: none;
    }

    .revelmont-menu-logo.has-logo-mobile .rv-logo-asset--mobile {
        display: block;
    }

    .public-home .hero {
        background-size:
            auto,
            auto,
            25px 25px,
            25px 25px,
            auto !important;
    }
}
/* ==========================================================
   GLOBAL GRID UNIFY V1 2026-09-08
   Whole public website uses one technical background system.
   Brown trust cards are removed and unified into one panel.
   ========================================================== */

html {
    background: #07131d;
}

body {
    background:
        radial-gradient(
            circle at 15% 12%,
            rgba(16, 175, 201, .12),
            transparent 24%
        ),
        radial-gradient(
            circle at 84% 18%,
            rgba(49, 108, 191, .11),
            transparent 27%
        ),
        linear-gradient(
            rgba(44, 192, 218, .05) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(44, 192, 218, .05) 1px,
            transparent 1px
        ),
        linear-gradient(
            145deg,
            #06111a 0%,
            #081724 34%,
            #0a2230 68%,
            #0a2f3b 100%
        );

    background-size:
        auto,
        auto,
        32px 32px,
        32px 32px,
        auto;

    background-attachment:
        scroll,
        scroll,
        fixed,
        fixed,
        fixed;

    color: #eef5f8;
}

/* Keep sections visually unified with the same global background. */
.hero,
.trust-strip,
.section,
.section--area,
.section--final-cta,
.site-footer,
.inquiry-page,
.inquiry-page .page-hero,
.contact-page,
.contact-page .page-hero {
    background: transparent !important;
}

/* Remove brown strip feeling and make it one technical panel. */
.trust-strip {
    padding-top: 0;
}

.trust-strip__grid {
    overflow: hidden;

    border: 1px solid rgba(66, 197, 220, .18);
    border-radius: 0 0 18px 18px;

    background:
        linear-gradient(
            rgba(52, 196, 220, .035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(52, 196, 220, .035) 1px,
            transparent 1px
        ),
        linear-gradient(
            145deg,
            rgba(5, 18, 27, .58),
            rgba(8, 29, 40, .74)
        );

    background-size:
        26px 26px,
        26px 26px,
        auto;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .03),
        0 10px 28px rgba(0, 0, 0, .16);
}

.trust-strip__grid > div {
    padding: 28px 22px;

    background: transparent !important;
    border: 0 !important;

    text-align: center;
}

.trust-strip__grid > div strong {
    display: block;
    margin-bottom: 8px;

    color: #ffffff;
    font-size: 1.12rem;
    font-weight: 850;
}

.trust-strip__grid > div span {
    display: block;

    color: #d6e3ea;
    font-size: .98rem;
    line-height: 1.55;
}

.trust-strip__grid > div:not(:last-child) {
    border-bottom: 1px solid rgba(74, 194, 216, .14) !important;
}

@media (min-width: 761px) {

    .trust-strip__grid > div:not(:last-child) {
        border-bottom: 0 !important;
        border-right: 1px solid rgba(74, 194, 216, .14) !important;
    }
}

/* Small visual cleanup so white cards and sections still fit the new system. */
.section-heading p,
.area-panel p,
.final-cta p,
.site-footer,
.site-footer p,
.site-footer li,
.site-footer a {
    color: #d9e5eb;
}

.section-heading h2,
.area-panel h2,
.final-cta h2,
.site-footer h2,
.site-footer h3,
.site-footer strong {
    color: #ffffff;
}

.section--final-cta .final-cta {
    border: 1px solid rgba(74, 194, 216, .22);
    border-radius: 18px;

    padding: 32px;

    background:
        linear-gradient(
            rgba(52, 196, 220, .04) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(52, 196, 220, .04) 1px,
            transparent 1px
        ),
        linear-gradient(
            145deg,
            rgba(10, 110, 133, .78),
            rgba(10, 134, 154, .82)
        );

    background-size:
        26px 26px,
        26px 26px,
        auto;

    box-shadow:
        0 14px 30px rgba(0, 0, 0, .18);
}

@media (max-width: 760px) {

    .trust-strip__grid {
        border-radius: 0 0 16px 16px;
    }

    .trust-strip__grid > div {
        padding: 24px 18px;
    }
}

@media (max-width: 620px) {

    body {
        background-size:
            auto,
            auto,
            24px 24px,
            24px 24px,
            auto;
    }

    .section--final-cta .final-cta {
        padding: 24px 20px;
        border-radius: 16px;
    }
}
/* ==========================================================
   FINAL PUBLIC LAUNCH THEME V1 2026-09-08
   Global technical grid + unified trust panel + new imagery
   ========================================================== */

html {
    background: #06111a;
}

body {
    background:
        radial-gradient(circle at 15% 12%, rgba(16, 175, 201, .12), transparent 24%),
        radial-gradient(circle at 84% 18%, rgba(49, 108, 191, .11), transparent 27%),
        linear-gradient(rgba(44, 192, 218, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(44, 192, 218, .05) 1px, transparent 1px),
        linear-gradient(145deg, #06111a 0%, #081724 34%, #0a2230 68%, #0a2f3b 100%);
    background-size: auto, auto, 32px 32px, 32px 32px, auto;
    background-attachment: scroll, scroll, fixed, fixed, fixed;
    color: #eef5f8;
}

main,
.public-home,
.public-home .hero,
.trust-strip,
.section,
.section--muted,
.section--area,
.section--final-cta,
.site-footer,
.contact-page,
.inquiry-page {
    background: transparent !important;
}

.trust-strip {
    background: transparent !important;
    padding-top: 0;
}

.trust-strip__grid {
    overflow: hidden;
    border: 1px solid rgba(66, 197, 220, .20);
    border-radius: 0 0 18px 18px;
    background:
        linear-gradient(rgba(52, 196, 220, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(52, 196, 220, .035) 1px, transparent 1px),
        linear-gradient(145deg, rgba(5, 18, 27, .68), rgba(8, 29, 40, .82)) !important;
    background-size: 26px 26px, 26px 26px, auto !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 10px 28px rgba(0,0,0,.16);
}

.trust-strip__grid > div {
    background: transparent !important;
    border: 0 !important;
    padding: 28px 22px;
    text-align: center;
}

.trust-strip__grid > div strong {
    display: block;
    margin-bottom: 8px;
    color: #fff;
    font-size: 1.12rem;
    font-weight: 850;
}

.trust-strip__grid > div span {
    display: block;
    color: #d6e3ea;
    font-size: .98rem;
    line-height: 1.55;
}

.trust-strip__grid > div:not(:last-child) {
    border-bottom: 1px solid rgba(74, 194, 216, .14) !important;
}

@media (min-width: 761px) {
    .trust-strip__grid > div:not(:last-child) {
        border-bottom: 0 !important;
        border-right: 1px solid rgba(74, 194, 216, .14) !important;
    }
}

.public-home .project-card__image--one {
    background:
        linear-gradient(rgba(4, 19, 29, .08), rgba(4, 19, 29, .08)),
        url("/static/images/revelmont/realization-apartment-renovation-v1.webp") center center / cover no-repeat !important;
}

.public-home .project-card__image--two {
    background:
        linear-gradient(rgba(4, 19, 29, .07), rgba(4, 19, 29, .07)),
        url("/static/images/revelmont/realization-initial-inspection-v1.webp") center center / cover no-repeat !important;
}

.public-home .project-card__image--three {
    background:
        linear-gradient(rgba(4, 19, 29, .07), rgba(4, 19, 29, .07)),
        url("/static/images/revelmont/realization-industrial-switchboard-v1.webp") center center / cover no-repeat !important;
}

.contact-information__instagram {
    display: none !important;
}

@media (max-width: 620px) {
    body {
        background-size: auto, auto, 24px 24px, 24px 24px, auto;
    }
    .trust-strip__grid {
        border-radius: 0 0 16px 16px;
    }
    .trust-strip__grid > div {
        padding: 24px 18px;
    }
}
/* ==========================================================
   GLOBAL TECH GRID FINAL V2 2026-09-08
   One technical background across the complete public site.
   ========================================================== */

html {
    background: #06121c !important;
}

body {
    background-color: #06121c !important;

    background-image:
        linear-gradient(
            rgba(42, 193, 216, .055) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(42, 193, 216, .055) 1px,
            transparent 1px
        ),
        radial-gradient(
            circle at 14% 12%,
            rgba(17, 158, 184, .13),
            transparent 28%
        ),
        radial-gradient(
            circle at 88% 25%,
            rgba(37, 99, 170, .10),
            transparent 32%
        ),
        linear-gradient(
            145deg,
            #06121c 0%,
            #071a26 43%,
            #08232f 72%,
            #082a35 100%
        ) !important;

    background-size:
        30px 30px,
        30px 30px,
        auto,
        auto,
        auto !important;

    background-position:
        0 0,
        0 0,
        center top,
        center top,
        center top !important;

    background-attachment:
        fixed,
        fixed,
        fixed,
        fixed,
        fixed !important;
}

/*
 * Structural public surfaces must not paint their own page
 * background over the global technical grid.
 */

main,
.site-main,
.public-main,
.site-content,
.page-wrapper,

.hero,
.trust-strip,

.section,
.section--muted,
.section--area,
.section--final-cta,

.page-hero,

.public-home,
.about-page,
.services-page,
.service-page,
.realizations-page,
.realization-page,
.contact-page,
.inquiry-page,
.legal-page {
    background-color: transparent !important;
    background-image: none !important;
}

/*
 * The old home hero used its own technical grid.
 * It now inherits the same global grid as every other section.
 */

.public-home .hero {
    background: transparent !important;
}

/*
 * Preserve the useful framing of the advantages section,
 * but let the same global grid show through it.
 */

.trust-strip__grid {
    background:
        rgba(4, 18, 28, .22) !important;

    backdrop-filter:
        blur(1.5px);
}

/*
 * Muted sections previously created visible horizontal blocks.
 */

.section--muted {
    border-top:
        1px solid rgba(54, 181, 204, .08);

    border-bottom:
        1px solid rgba(54, 181, 204, .08);
}

/*
 * Footer belongs to the same visual system.
 * Header intentionally remains solid for sticky readability.
 */

.site-footer {
    background:
        rgba(5, 17, 28, .70) !important;

    backdrop-filter:
        blur(8px);
}

/*
 * Keep cards/panels as content surfaces. Their background is
 * intentionally NOT removed here.
 */

@media (max-width: 760px) {

    body {
        background-size:
            25px 25px,
            25px 25px,
            auto,
            auto,
            auto !important;
    }
}

@media (max-width: 620px) {

    body {
        background-size:
            23px 23px,
            23px 23px,
            auto,
            auto,
            auto !important;
    }
}
/* ==========================================================
   FRAMELESS BENEFITS V1 2026-09-08
   Clean technical highlights without cards or separators
   ========================================================== */

.trust-strip {
    padding:
        26px 0 34px !important;

    background:
        transparent !important;
}

.trust-strip__grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 34px;

    overflow: visible !important;

    padding:
        20px 8px 28px;

    border:
        0 !important;

    border-radius:
        0 !important;

    background:
        transparent !important;

    box-shadow:
        none !important;
}


/* individual benefit */

.trust-strip__grid > div {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;

    min-width: 0;

    padding:
        24px 12px 18px !important;

    border:
        0 !important;

    background:
        transparent !important;

    text-align: center;

    transition:
        transform .18s ease;
}


/* technical indicator */

.trust-strip__grid > div::before {
    content: "";

    width: 14px;
    height: 14px;

    margin-bottom: 18px;

    border:
        2px solid #48d2e7;

    border-radius:
        50%;

    background:
        #092633;

    box-shadow:
        0 0 0 5px rgba(45, 193, 215, .08),
        0 0 17px rgba(45, 193, 215, .46);
}


/* headings */

.trust-strip__grid > div strong {
    display: block;

    margin: 0 0 10px;

    color:
        #ffffff !important;

    font-size:
        1.13rem;

    font-weight:
        850;

    line-height:
        1.25;

    letter-spacing:
        -.01em;
}


/* descriptions */

.trust-strip__grid > div span {
    display: block;

    max-width: 240px;

    color:
        #c8d7df !important;

    font-size:
        .96rem;

    font-weight:
        500;

    line-height:
        1.55;
}


/* slight technical variation */

.trust-strip__grid > div:nth-child(2)::before {
    border-color:
        #5aa8ef;

    box-shadow:
        0 0 0 5px rgba(71, 133, 211, .08),
        0 0 17px rgba(71, 133, 211, .36);
}

.trust-strip__grid > div:nth-child(3)::before {
    border-color:
        #39c6d8;
}

.trust-strip__grid > div:nth-child(4)::before {
    border-color:
        #55d4bc;

    box-shadow:
        0 0 0 5px rgba(56, 190, 156, .08),
        0 0 17px rgba(56, 190, 156, .32);
}


/* desktop interaction */

@media (hover: hover) and (pointer: fine) {

    .trust-strip__grid > div:hover {
        transform:
            translateY(-4px);
    }
}


/* tablet */

@media (max-width: 900px) {

    .trust-strip__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            26px 30px;

        max-width:
            720px;

        margin:
            0 auto;
    }
}


/* mobile */

@media (max-width: 620px) {

    .trust-strip {
        padding:
            16px 0 28px !important;
    }

    .trust-strip__grid {
        grid-template-columns:
            1fr;

        gap:
            8px;

        padding:
            8px 18px 22px;
    }

    .trust-strip__grid > div {
        padding:
            22px 8px 25px !important;
    }

    .trust-strip__grid > div::before {
        width:
            13px;

        height:
            13px;

        margin-bottom:
            15px;
    }

    .trust-strip__grid > div strong {
        font-size:
            1.16rem;
    }

    .trust-strip__grid > div span {
        max-width:
            310px;

        font-size:
            1rem;

        line-height:
            1.55;
    }
}

/* ==========================================================
   SEO REALIZATION IMAGES V1 2026-09-09
   Semantic IMG elements instead of CSS-only imagery
   ========================================================== */

.public-home .project-card__image--one,
.public-home .project-card__image--two,
.public-home .project-card__image--three {
    background: none !important;
}

.public-home .project-card__image {
    overflow: hidden;
}

.public-home .project-card__image > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* ==========================================================
   CMS PUBLIC CONTENT V1B 2026-09-11
   Revize / Clanky / Navody
   ========================================================== */

.cms-breadcrumbs {
    border-bottom: 1px solid var(--rv-line, #dbe2ea);
    background: var(--rv-card, #fff);
}

.cms-breadcrumbs .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding-top: 10px;
    padding-bottom: 10px;
    color: var(--rv-muted, #64748b);
    font-size: .88rem;
}

.cms-breadcrumbs a {
    color: var(--rv-text, #172033);
    text-decoration: none;
}

.cms-breadcrumbs a:hover {
    color: var(--rv-teal, #0f8199);
}

.cms-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 32px;
}

.cms-filter a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid var(--rv-line, #dbe2ea);
    border-radius: 999px;
    background: var(--rv-card, #fff);
    color: var(--rv-text, #172033);
    text-decoration: none;
    font-size: .9rem;
    font-weight: 750;
}

.cms-filter a:hover {
    border-color: var(--rv-teal, #0f8199);
}

.cms-filter a.is-active {
    border-color: var(--rv-teal, #0f8199);
    background: var(--rv-teal, #0f8199);
    color: #fff;
}

.cms-content-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.cms-card {
    overflow: hidden;
    min-width: 0;
    border: 1px solid var(--rv-line, #dbe2ea);
    border-radius: var(--rv-radius-lg, 18px);
    background: var(--rv-card, #fff);
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

.cms-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .1);
}

.cms-card__visual {
    display: block;
    aspect-ratio: 19 / 12;
    overflow: hidden;
    background: var(--rv-teal-soft, #e9f7f9);
}

.cms-card__visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cms-card__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background:
        radial-gradient(
            circle at 20% 20%,
            rgba(72, 210, 231, .2),
            transparent 34%
        ),
        linear-gradient(
            145deg,
            #092633,
            #103b4a
        );
}

.cms-card__placeholder span {
    color: #fff;
    font-size: .84rem;
    font-weight: 850;
    letter-spacing: .18em;
}

.cms-card__body {
    display: flex;
    flex-direction: column;
    min-height: 260px;
    padding: 23px;
}

.cms-card__body h2 {
    margin: 12px 0 10px;
    font-size: clamp(1.22rem, 2vw, 1.48rem);
    line-height: 1.22;
}

.cms-card__body h2 a {
    color: var(--rv-text, #172033);
    text-decoration: none;
}

.cms-card__body > p {
    margin: 0 0 20px;
    color: var(--rv-muted, #64748b);
    line-height: 1.65;
}

.cms-card__body .text-link {
    margin-top: auto;
}

.cms-meta,
.cms-badges,
.cms-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
}

.cms-meta {
    color: var(--rv-muted, #64748b);
    font-size: .84rem;
    font-weight: 650;
}

.cms-meta > span + span::before {
    content: "•";
    margin-right: 7px;
    color: var(--rv-teal, #0f8199);
}

.cms-badges span,
.cms-tags span,
.cms-professional-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid rgba(15, 129, 153, .22);
    border-radius: 999px;
    background: var(--rv-teal-soft, #e9f7f9);
    color: var(--rv-teal-dark, #096477);
    font-size: .76rem;
    font-weight: 800;
}

.cms-professional-badge {
    border-color: rgba(180, 83, 9, .25);
    background: rgba(245, 158, 11, .12);
    color: #92400e;
}

.cms-empty {
    grid-column: 1 / -1;
    padding: 34px;
    border: 1px dashed var(--rv-line, #dbe2ea);
    border-radius: var(--rv-radius-lg, 18px);
    background: var(--rv-card, #fff);
}

.cms-empty h2 {
    margin-top: 0;
}

.cms-detail-hero {
    overflow: hidden;
    padding: clamp(58px, 7vw, 96px) 0;
    background:
        radial-gradient(
            circle at 85% 15%,
            rgba(72, 210, 231, .13),
            transparent 34%
        ),
        var(--rv-card, #fff);
}

.cms-detail-hero__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(360px, .82fr);
    align-items: center;
    gap: clamp(34px, 6vw, 72px);
}

.cms-detail-hero h1 {
    max-width: 880px;
    margin: 15px 0 18px;
}

.cms-detail-hero__visual {
    overflow: hidden;
    min-height: 340px;
    border-radius: var(--rv-radius-lg, 18px);
    background: var(--rv-teal-soft, #e9f7f9);
}

.cms-detail-hero__visual img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 340px;
    max-height: 520px;
    object-fit: cover;
}

.cms-detail-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    padding: 30px;
    background:
        radial-gradient(
            circle at 30% 20%,
            rgba(72, 210, 231, .2),
            transparent 34%
        ),
        linear-gradient(
            145deg,
            #092633,
            #103b4a
        );
    color: #fff;
    text-align: center;
}

.cms-detail-placeholder span {
    margin-bottom: 12px;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .18em;
}

.cms-detail-placeholder strong {
    font-size: clamp(1.8rem, 4vw, 3rem);
}

.cms-body-layout {
    display: grid;
    grid-template-columns: minmax(0, 820px);
    justify-content: center;
}

.cms-stream {
    min-width: 0;
    padding: clamp(26px, 4vw, 48px);
    border: 1px solid var(--rv-line, #dbe2ea);
    border-radius: var(--rv-radius-lg, 18px);
    background: var(--rv-card, #fff);
}

.cms-stream > h2:first-child {
    margin-top: 0;
}

.cms-stream > h2:not(:first-child) {
    margin-top: 1.8em;
}

.cms-stream__image {
    margin: 32px 0;
}

.cms-stream__image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--rv-radius, 12px);
}

.cms-notice {
    margin: 30px 0;
    padding: 20px 22px;
    border-left: 4px solid var(--rv-teal, #0f8199);
    border-radius:
        0
        var(--rv-radius, 12px)
        var(--rv-radius, 12px)
        0;
    background: var(--rv-teal-soft, #e9f7f9);
}

.cms-notice > strong {
    display: block;
    margin-bottom: 8px;
}

.cms-notice p:last-child {
    margin-bottom: 0;
}

.cms-safety-section {
    padding-bottom: 0;
}

.cms-safety-warning {
    padding: 24px 26px;
    border: 1px solid rgba(180, 83, 9, .28);
    border-left: 5px solid #d97706;
    border-radius: var(--rv-radius, 12px);
    background: rgba(245, 158, 11, .1);
}

.cms-safety-warning > strong {
    display: block;
    margin-bottom: 8px;
    font-size: 1.08rem;
}

.cms-safety-warning p:last-child {
    margin-bottom: 0;
}

.cms-guide-steps {
    display: grid;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cms-guide-step {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 20px;
    padding: 24px;
    border: 1px solid var(--rv-line, #dbe2ea);
    border-radius: var(--rv-radius-lg, 18px);
    background: var(--rv-card, #fff);
}

.cms-guide-step__number {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 50%;
    background: var(--rv-teal, #0f8199);
    color: #fff;
    font-weight: 850;
}

.cms-guide-step__content h3 {
    margin-top: 5px;
}

.cms-guide-step__image {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 22px;
    border-radius: var(--rv-radius, 12px);
}

.cms-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.cms-related-card {
    padding: 22px;
    border: 1px solid var(--rv-line, #dbe2ea);
    border-radius: var(--rv-radius, 12px);
    background: var(--rv-card, #fff);
}

.cms-related-card h3 {
    margin-top: 0;
}

.cms-related-card h3 a {
    color: var(--rv-text, #172033);
    text-decoration: none;
}

.cms-related-card p {
    color: var(--rv-muted, #64748b);
}

.cms-tags-section .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

.cms-card a:focus-visible,
.cms-filter a:focus-visible,
.cms-breadcrumbs a:focus-visible,
.cms-related-card a:focus-visible {
    outline: 3px solid rgba(72, 210, 231, .42);
    outline-offset: 3px;
}

@media (max-width: 1050px) {
    .cms-content-grid,
    .cms-related-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .cms-detail-hero__grid {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(310px, .72fr);
    }

    .desktop-nav {
        gap: 12px;
    }

    .desktop-nav a {
        white-space: nowrap;
    }
}

@media (max-width: 860px) {
    .cms-detail-hero__grid {
        grid-template-columns: 1fr;
    }

    .cms-detail-hero__visual {
        min-height: 280px;
    }

    .cms-detail-hero__visual img,
    .cms-detail-placeholder {
        min-height: 280px;
        max-height: 440px;
    }
}

@media (max-width: 620px) {
    .cms-filter {
        gap: 7px;
        margin-bottom: 24px;
    }

    .cms-filter a {
        min-height: 38px;
        padding: 7px 11px;
        font-size: .84rem;
    }

    .cms-content-grid,
    .cms-related-grid {
        grid-template-columns: 1fr;
    }

    .cms-card__body {
        min-height: 0;
        padding: 20px;
    }

    .cms-detail-hero {
        padding: 44px 0;
    }

    .cms-stream {
        padding: 22px 18px;
    }

    .cms-guide-step {
        grid-template-columns: 1fr;
        padding: 20px;
    }

    .cms-guide-step__number {
        width: 44px;
        height: 44px;
    }

    .cms-empty {
        padding: 24px 20px;
    }
}

/* ==========================================================
   CMS V1C RELATIONS + DOWNLOADS 2026-09-12
   ========================================================== */

.cms-related-card__type {
    margin: 0 0 8px;
    color: var(--rv-teal, #0f8199);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cms-download-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.cms-download-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 18px 20px;
    border: 1px solid var(--rv-line, #dbe2ea);
    border-radius: var(--rv-radius, 12px);
    background: var(--rv-card, #fff);
    color: var(--rv-text, #172033);
    text-decoration: none;
    transition:
        border-color .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}

.cms-download-card:hover {
    border-color: rgba(15, 129, 153, .45);
    transform: translateY(-2px);
    box-shadow:
        0 12px 28px rgba(15, 23, 42, .08);
}

.cms-download-card__icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 50%;
    background: var(--rv-teal-soft, #e9f7f9);
    color: var(--rv-teal-dark, #096477);
    font-size: 1.25rem;
    font-weight: 900;
}

.cms-download-card__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 4px;
}

.cms-download-card__body strong {
    overflow-wrap: anywhere;
}

.cms-download-card__body small {
    color: var(--rv-muted, #64748b);
    font-size: .78rem;
    font-weight: 750;
}

.cms-download-card:focus-visible {
    outline:
        3px solid rgba(72, 210, 231, .42);
    outline-offset: 3px;
}

@media (max-width: 700px) {
    .cms-download-list {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   CMS V1D TAG FILTERS 2026-09-12
   ========================================================== */

.cms-filter-stack {
    display: grid;
    gap: 10px;
    margin-bottom: 28px;
}

.cms-filter-stack .cms-filter {
    margin-bottom: 0;
}

.cms-filter__label {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    margin-right: 4px;
    color: var(--rv-muted, #64748b);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

@media (max-width: 700px) {
    .cms-filter-stack {
        gap: 12px;
    }

    .cms-filter__label {
        flex-basis: 100%;
        min-height: auto;
        margin-bottom: 2px;
    }
}

/* =========================================================
   CMS V1E PAGE BUILDER
   WordPress-style controlled content components
   ========================================================= */

.cms-stream {
    width: 100%;
}

.cms-builder-block {
    margin-block: 1.75rem;
}

.cms-builder-block:first-child {
    margin-top: 0;
}

.cms-builder-block:last-child {
    margin-bottom: 0;
}

.cms-width-narrow {
    width: min(100%, 720px);
}

.cms-width-normal {
    width: min(100%, 900px);
}

.cms-width-wide {
    width: min(100%, 1120px);
}

.cms-width-full,
.cms-width-100 {
    width: 100%;
}

.cms-width-25 {
    width: min(25%, 420px);
}

.cms-width-50 {
    width: min(50%, 720px);
}

.cms-width-75 {
    width: min(75%, 980px);
}

.cms-align-left {
    margin-right: auto;
    text-align: left;
}

.cms-align-center {
    margin-inline: auto;
    text-align: center;
}

.cms-align-right {
    margin-left: auto;
    text-align: right;
}

.cms-color-default {
    color: inherit;
}

.cms-color-brand {
    color: #007f86;
}

.cms-color-muted {
    color: #667085;
}

.cms-color-dark {
    color: #111827;
}

.cms-color-light {
    color: #ffffff;
}

.cms-color-warning {
    color: #b54708;
}

.cms-font-default {
    font-family: inherit;
}

.cms-font-serif {
    font-family: Georgia, "Times New Roman", serif;
}

.cms-font-mono {
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Monaco,
        Consolas,
        "Liberation Mono",
        monospace;
}

.cms-text-small {
    font-size: .9rem;
}

.cms-text-normal {
    font-size: 1rem;
}

.cms-text-large {
    font-size: clamp(1.05rem, 1vw + .8rem, 1.3rem);
}

.cms-text-lead {
    font-size: clamp(1.15rem, 1.3vw + .8rem, 1.5rem);
    line-height: 1.65;
}

.cms-bg-none {
    background: transparent;
}

.cms-bg-soft {
    background: #f4f7f8;
}

.cms-bg-brand {
    background: #007f86;
    color: #ffffff;
}

.cms-bg-dark {
    background: #161b22;
    color: #ffffff;
}

.cms-padding-none {
    padding: 0;
}

.cms-padding-small {
    padding: 1rem;
    border-radius: 12px;
}

.cms-padding-medium {
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: 16px;
}

.cms-padding-large {
    padding: clamp(1.75rem, 4vw, 3rem);
    border-radius: 20px;
}

.cms-builder-heading h2,
.cms-builder-heading h3,
.cms-builder-heading h4 {
    color: inherit;
    margin: 0;
}

.cms-builder-text > :first-child,
.cms-builder-callout__content > :first-child,
.cms-builder-column__text > :first-child,
.cms-builder-image-text__content > :first-child {
    margin-top: 0;
}

.cms-builder-text > :last-child,
.cms-builder-callout__content > :last-child,
.cms-builder-column__text > :last-child,
.cms-builder-image-text__content > :last-child {
    margin-bottom: 0;
}

.cms-builder-quote {
    width: min(100%, 900px);
    padding: clamp(1.4rem, 3vw, 2.25rem);
    border-left: 5px solid #007f86;
    border-radius: 0 16px 16px 0;
    background: #f4f7f8;
}

.cms-builder-quote--accent {
    border-left-color: #00a3ad;
    background: #eefafa;
}

.cms-builder-quote--dark {
    color: #ffffff;
    border-left-color: #35c3cb;
    background: #161b22;
}

.cms-builder-quote > p {
    margin: 0;
    font-size: clamp(1.15rem, 1.2vw + .85rem, 1.55rem);
    line-height: 1.65;
    font-style: italic;
}

.cms-builder-quote footer {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem .75rem;
    margin-top: 1rem;
    font-size: .92rem;
}

.cms-builder-quote footer span::before {
    content: "— ";
}

.cms-builder-image img,
.cms-builder-image-text img,
.cms-builder-gallery img,
.cms-builder-column__image {
    display: block;
    width: 100%;
    height: auto;
}

.cms-builder-image--rounded img,
.cms-builder-image--rounded-shadow img {
    border-radius: 18px;
}

.cms-builder-image--shadow img,
.cms-builder-image--rounded-shadow img {
    box-shadow: 0 18px 44px rgba(15, 23, 42, .14);
}

.cms-builder-image figcaption,
.cms-builder-gallery figcaption {
    margin-top: .65rem;
    color: #667085;
    font-size: .9rem;
    text-align: center;
}

.cms-builder-image-text {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 3.5rem);
    padding: clamp(1rem, 3vw, 2rem);
    border-radius: 20px;
}

.cms-builder-image-text--image-wide {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
}

.cms-builder-image-text--text-wide {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
}

.cms-builder-image-text--right .cms-builder-image-text__image {
    order: 2;
}

.cms-builder-image-text--right .cms-builder-image-text__content {
    order: 1;
}

.cms-builder-image-text--v-start {
    align-items: start;
}

.cms-builder-image-text--v-center {
    align-items: center;
}

.cms-builder-image-text__image img {
    border-radius: 16px;
}

.cms-builder-gallery__grid {
    display: grid;
    gap: 1rem;
}

.cms-builder-gallery__grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cms-builder-gallery__grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cms-builder-gallery__grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cms-builder-gallery figure {
    margin: 0;
}

.cms-builder-gallery img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 14px;
}

.cms-builder-columns {
    display: grid;
    gap: 1.25rem;
}

.cms-builder-columns--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cms-builder-columns--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cms-builder-column {
    min-width: 0;
}

.cms-builder-columns--cards .cms-builder-column,
.cms-builder-columns--soft .cms-builder-column {
    padding: clamp(1.2rem, 2.5vw, 1.75rem);
    border-radius: 16px;
}

.cms-builder-columns--cards .cms-builder-column {
    border: 1px solid rgba(15, 23, 42, .12);
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.cms-builder-columns--soft .cms-builder-column {
    background: #f4f7f8;
}

.cms-builder-column__image {
    margin-bottom: 1rem;
    border-radius: 12px;
}

.cms-builder-callout {
    padding: clamp(1.25rem, 2.5vw, 1.75rem);
    border: 1px solid rgba(15, 23, 42, .12);
    border-left-width: 5px;
    border-radius: 14px;
    background: #f8fafc;
}

.cms-builder-callout--info {
    border-left-color: #1687a7;
}

.cms-builder-callout--tip {
    border-left-color: #007f86;
    background: #effafa;
}

.cms-builder-callout--note {
    border-left-color: #667085;
}

.cms-builder-callout--success {
    border-left-color: #138a52;
    background: #f0faf5;
}

.cms-builder-callout--warning {
    border-left-color: #d97706;
    background: #fff8e7;
}

.cms-builder-callout--danger {
    border-left-color: #c9362b;
    background: #fff2f0;
}

.cms-builder-callout__title {
    display: block;
    margin-bottom: .6rem;
    font-size: 1.05rem;
}

.cms-builder-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cms-builder-buttons.cms-align-center {
    justify-content: center;
}

.cms-builder-buttons.cms-align-right {
    justify-content: flex-end;
}

.cms-builder-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .72rem 1.15rem;
    border: 1px solid transparent;
    border-radius: 9px;
    font-weight: 700;
    text-decoration: none;
    transition:
        transform .15s ease,
        box-shadow .15s ease,
        background-color .15s ease;
}

.cms-builder-button:hover {
    transform: translateY(-1px);
}

.cms-builder-button--primary {
    color: #ffffff;
    background: #007f86;
}

.cms-builder-button--secondary {
    color: #ffffff;
    background: #27303d;
}

.cms-builder-button--outline {
    color: #007f86;
    border-color: currentColor;
    background: transparent;
}

.cms-builder-button--link {
    color: #007f86;
    padding-inline: .15rem;
}

.cms-builder-table-wrap {
    margin-inline: 0;
}

.cms-builder-table-wrap > figcaption {
    margin-bottom: .75rem;
    font-weight: 700;
}

.cms-builder-table-scroll {
    overflow-x: auto;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 14px;
}

.cms-builder-table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
}

.cms-builder-table th,
.cms-builder-table td {
    padding: .85rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, .1);
    text-align: left;
    vertical-align: top;
}

.cms-builder-table th {
    font-weight: 700;
    background: #eef3f5;
}

.cms-builder-table--striped tbody tr:nth-child(even) {
    background: #f8fafc;
}

.cms-builder-video {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 16px;
}

.cms-builder-video iframe,
.cms-builder-video video {
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 0;
}

.cms-builder-document > a {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    width: min(100%, 760px);
    padding: 1rem 1.15rem;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 14px;
    color: inherit;
    text-decoration: none;
    background: #ffffff;
}

.cms-builder-document__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    color: #ffffff;
    background: #007f86;
    font-size: 1.25rem;
}

.cms-builder-document small {
    display: block;
    margin-top: .25rem;
    color: #667085;
}

.cms-builder-checklist ul,
.cms-builder-checklist ol {
    display: grid;
    gap: .65rem;
    padding-left: 1.5rem;
}

.cms-builder-checklist--check ul {
    padding-left: 0;
    list-style: none;
}

.cms-builder-checklist--check li {
    position: relative;
    padding-left: 1.8rem;
}

.cms-builder-checklist--check li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #007f86;
    font-weight: 800;
}

.cms-builder-accordion__items {
    display: grid;
    gap: .75rem;
}

.cms-builder-accordion details {
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 12px;
    background: #ffffff;
}

.cms-builder-accordion summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    cursor: pointer;
    font-weight: 700;
    list-style: none;
}

.cms-builder-accordion summary::-webkit-details-marker {
    display: none;
}

.cms-builder-accordion summary span {
    transition: transform .2s ease;
}

.cms-builder-accordion details[open] summary span {
    transform: rotate(45deg);
}

.cms-builder-accordion__content {
    padding: 0 1.15rem 1rem;
}

.cms-builder-code {
    overflow: hidden;
    border-radius: 14px;
    background: #111827;
    color: #f8fafc;
}

.cms-builder-code figcaption {
    padding: .7rem 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, .13);
    font-size: .88rem;
    font-weight: 700;
}

.cms-builder-code pre {
    margin: 0;
    padding: 1.15rem;
    overflow-x: auto;
}

.cms-builder-code code {
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Monaco,
        Consolas,
        "Liberation Mono",
        monospace;
    font-size: .9rem;
    white-space: pre;
}

.cms-builder-anchor {
    position: relative;
    top: -90px;
}

.cms-builder-divider {
    height: 0;
    border: 0;
    border-top: 1px solid rgba(15, 23, 42, .18);
}

.cms-builder-divider--dashed {
    border-top-style: dashed;
}

.cms-builder-divider--dotted {
    border-top-style: dotted;
}

.cms-builder-divider--small {
    margin-block: 1.5rem;
}

.cms-builder-divider--medium {
    margin-block: 2.5rem;
}

.cms-builder-divider--large {
    margin-block: 4rem;
}

.cms-builder-spacer--small {
    height: 1rem;
}

.cms-builder-spacer--medium {
    height: 2rem;
}

.cms-builder-spacer--large {
    height: 3.5rem;
}

.cms-builder-spacer--xlarge {
    height: 5rem;
}

html[data-theme="dark"] .cms-bg-soft,
html[data-theme="dark"] .cms-builder-quote,
html[data-theme="dark"] .cms-builder-columns--soft .cms-builder-column,
html[data-theme="dark"] .cms-builder-callout,
html[data-theme="dark"] .cms-builder-table--striped tbody tr:nth-child(even),
html[data-theme="dark"] .cms-builder-accordion details,
html[data-theme="dark"] .cms-builder-document > a {
    background: #1d232b;
}

html[data-theme="dark"] .cms-builder-columns--cards .cms-builder-column,
html[data-theme="dark"] .cms-builder-table-scroll,
html[data-theme="dark"] .cms-builder-callout,
html[data-theme="dark"] .cms-builder-accordion details,
html[data-theme="dark"] .cms-builder-document > a {
    border-color: rgba(255, 255, 255, .14);
}

html[data-theme="dark"] .cms-builder-table th {
    background: #252d37;
}

html[data-theme="dark"] .cms-builder-image figcaption,
html[data-theme="dark"] .cms-builder-gallery figcaption,
html[data-theme="dark"] .cms-builder-document small,
html[data-theme="dark"] .cms-color-muted {
    color: #aab4c2;
}

@media (max-width: 900px) {
    .cms-builder-gallery__grid--4,
    .cms-builder-gallery__grid--3,
    .cms-builder-columns--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cms-width-25,
    .cms-width-50,
    .cms-width-75 {
        width: min(100%, 760px);
    }
}

@media (max-width: 680px) {
    .cms-builder-image-text,
    .cms-builder-image-text--image-wide,
    .cms-builder-image-text--text-wide,
    .cms-builder-columns--2,
    .cms-builder-columns--3,
    .cms-builder-gallery__grid--2,
    .cms-builder-gallery__grid--3,
    .cms-builder-gallery__grid--4 {
        grid-template-columns: 1fr;
    }

    .cms-builder-image-text--right .cms-builder-image-text__image,
    .cms-builder-image-text--right .cms-builder-image-text__content {
        order: initial;
    }

    .cms-builder-buttons,
    .cms-builder-buttons.cms-align-center,
    .cms-builder-buttons.cms-align-right {
        justify-content: stretch;
    }

    .cms-builder-button {
        width: 100%;
    }

    .cms-builder-block {
        margin-block: 1.35rem;
    }

    .cms-builder-spacer--xlarge {
        height: 3rem;
    }
}


/* CMS V1E empty-state contrast hotfix */
.cms-empty {
    background:
        linear-gradient(
            180deg,
            rgba(10, 21, 41, 0.92) 0%,
            rgba(15, 27, 51, 0.96) 100%
        );
    border: 1px solid rgba(61, 198, 255, 0.16);
    box-shadow:
        0 18px 44px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: #f5f8fc;
}

.cms-empty h2 {
    color: #f8fbff !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

.cms-empty p,
.cms-empty li,
.cms-empty a {
    color: rgba(245, 248, 252, 0.92) !important;
    opacity: 1 !important;
}

.cms-empty a:hover {
    color: #ffffff !important;
}
/* CMS V1E detail-page contrast fix */

/* ---------------------------------------------------------
   Hero: article / guide / inspection
   --------------------------------------------------------- */

.cms-detail-page .cms-detail-hero {
    color: #f8fbff;
}

.cms-detail-page .cms-detail-hero h1 {
    color: #ffffff !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

.cms-detail-page .cms-detail-hero .page-hero__lead {
    color: rgba(245, 248, 252, 0.92) !important;
    opacity: 1 !important;
}

.cms-detail-page .cms-detail-hero .cms-meta {
    color: rgba(225, 235, 244, 0.86);
}

/* ---------------------------------------------------------
   Default body text
   --------------------------------------------------------- */

.cms-detail-page .cms-stream {
    color: #eef4f8;
}

.cms-detail-page .cms-stream h2,
.cms-detail-page .cms-stream h3,
.cms-detail-page .cms-stream h4 {
    color: #ffffff;
}

.cms-detail-page .cms-stream p,
.cms-detail-page .cms-stream li {
    color: rgba(238, 244, 248, 0.94);
}

.cms-detail-page .cms-stream a:not(.cms-builder-button) {
    color: #53d4dc;
}

.cms-detail-page .cms-stream a:not(.cms-builder-button):hover {
    color: #8cebf0;
}

/* Builder blocks using the default / inherited colour */

.cms-detail-page .cms-builder-text.cms-color-default,
.cms-detail-page .cms-builder-heading.cms-color-default {
    color: #eef4f8;
}

.cms-detail-page .cms-builder-text.cms-color-default h2,
.cms-detail-page .cms-builder-text.cms-color-default h3,
.cms-detail-page .cms-builder-text.cms-color-default h4,
.cms-detail-page .cms-builder-heading.cms-color-default h2,
.cms-detail-page .cms-builder-heading.cms-color-default h3,
.cms-detail-page .cms-builder-heading.cms-color-default h4 {
    color: #ffffff;
}

/* Image captions */

.cms-detail-page .cms-builder-image figcaption,
.cms-detail-page .cms-builder-gallery figcaption,
.cms-detail-page .cms-stream__image figcaption {
    color: rgba(218, 229, 238, 0.82);
}

/* ---------------------------------------------------------
   Blocks with intentionally light backgrounds need dark text
   --------------------------------------------------------- */

.cms-detail-page .cms-bg-soft {
    color: #172033;
}

.cms-detail-page .cms-bg-soft h2,
.cms-detail-page .cms-bg-soft h3,
.cms-detail-page .cms-bg-soft h4,
.cms-detail-page .cms-bg-soft p,
.cms-detail-page .cms-bg-soft li {
    color: inherit;
}

.cms-detail-page .cms-builder-columns--cards .cms-builder-column,
.cms-detail-page .cms-builder-callout,
.cms-detail-page .cms-builder-document > a,
.cms-detail-page .cms-builder-accordion details {
    color: #172033;
}

.cms-detail-page .cms-builder-columns--cards .cms-builder-column h2,
.cms-detail-page .cms-builder-columns--cards .cms-builder-column h3,
.cms-detail-page .cms-builder-callout h2,
.cms-detail-page .cms-builder-callout h3,
.cms-detail-page .cms-builder-document strong,
.cms-detail-page .cms-builder-accordion summary {
    color: #111827;
}

/* Dark variants remain explicitly light */

.cms-detail-page .cms-bg-dark,
.cms-detail-page .cms-bg-brand,
.cms-detail-page .cms-builder-quote--dark {
    color: #ffffff;
}

.cms-detail-page .cms-bg-dark h2,
.cms-detail-page .cms-bg-dark h3,
.cms-detail-page .cms-bg-dark h4,
.cms-detail-page .cms-bg-brand h2,
.cms-detail-page .cms-bg-brand h3,
.cms-detail-page .cms-bg-brand h4 {
    color: #ffffff;
}
/* CMS V1E article hero without image */
.article-detail-page .cms-detail-hero__grid--text-only {
    grid-template-columns: minmax(0, 900px);
}

.article-detail-page .cms-detail-hero__grid--text-only > div:first-child {
    max-width: 900px;
}

@media (max-width: 900px) {
    .article-detail-page .cms-detail-hero__grid--text-only {
        grid-template-columns: 1fr;
    }
}
/* CMS V1E continuous article flow */

/*
 * Article header and article body form one continuous document.
 * Component spacing inside the article remains untouched.
 */

.article-detail-page .cms-detail-hero {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.article-detail-page .cms-detail-body-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.article-detail-page .cms-detail-body-section .cms-body-layout {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.article-detail-page .cms-detail-body-section .cms-stream {
    margin-top: 0 !important;
}

.article-detail-page
.cms-detail-body-section
.cms-stream
> .cms-builder-block:first-child {
    margin-top: 0 !important;
}

/* Keep a small natural content rhythm, not a separate page section. */
.article-detail-page
.cms-detail-hero
+ .cms-detail-body-section
.cms-stream {
    position: relative;
}

/* Mobile must use the same continuous flow. */
@media (max-width: 680px) {
    .article-detail-page .cms-detail-hero {
        padding-bottom: 0 !important;
    }

    .article-detail-page .cms-detail-body-section {
        padding-top: 0 !important;
    }
}
/* CMS V1E article surface refinement */

/*
 * Article detail should feel like one continuous page,
 * not a boxed card with a separate framed image.
 */

.article-detail-page .cms-detail-body-section {
    background: #0f1b30;
    margin-top: 0 !important;
    padding-top: 24px !important;
    padding-bottom: 56px !important;
}

.article-detail-page .cms-body-layout {
    grid-template-columns: minmax(0, 980px);
}

.article-detail-page .cms-stream {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin-top: 0 !important;
    max-width: none !important;
}

.article-detail-page .cms-stream > *:first-child,
.article-detail-page .cms-stream > .cms-builder-block:first-child {
    margin-top: 0 !important;
}

.article-detail-page .cms-stream__image,
.article-detail-page .cms-builder-image,
.article-detail-page .cms-builder-gallery,
.article-detail-page .cms-builder-image figure,
.article-detail-page .cms-builder-gallery figure {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

.article-detail-page .cms-stream__image img,
.article-detail-page .cms-builder-image img,
.article-detail-page .cms-builder-gallery img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 18px;
    box-shadow: none !important;
}

.article-detail-page .cms-stream__image figcaption,
.article-detail-page .cms-builder-image figcaption,
.article-detail-page .cms-builder-gallery figcaption {
    margin-top: 12px;
    text-align: center;
    color: rgba(226, 235, 243, 0.78) !important;
}

@media (max-width: 900px) {
    .article-detail-page .cms-detail-body-section {
        padding-top: 18px !important;
        padding-bottom: 40px !important;
    }
}

/* ==========================================================
   HOMEPAGE EDITOR V1 2026-09-12
   CMS-controlled typography, alignment and back-to-top
   ========================================================== */

.public-home .home-page-content .home-hero-title {
    margin-bottom: 22px;

    color: var(--home-hero-title-light) !important;

    font-family: var(--home-hero-title-font);
    font-size:
        clamp(
            2rem,
            7vw,
            var(--home-hero-title-size)
        );
    font-style: var(--home-hero-title-style);
    font-weight: var(--home-hero-title-weight);
    line-height: 1.04;
    text-transform: var(--home-hero-title-transform);

    opacity: 1 !important;
    -webkit-text-fill-color: currentColor !important;
}

html[data-theme="dark"]
.public-home
.home-page-content
.home-hero-title {
    color: var(--home-hero-title-dark) !important;
}

.public-home .home-page-content .home-hero-lead {
    color: var(--home-hero-text-light) !important;

    font-size:
        clamp(
            1rem,
            2.2vw,
            var(--home-hero-text-size)
        );

    line-height: 1.6;

    opacity: 1 !important;
}

html[data-theme="dark"]
.public-home
.home-page-content
.home-hero-lead {
    color: var(--home-hero-text-dark) !important;
}

.public-home .home-page-content .home-align-left {
    text-align: left !important;
}

.public-home .home-page-content .home-align-center {
    text-align: center !important;
}

.public-home .home-page-content .home-align-right {
    text-align: right !important;
}

.public-home .home-page-content .home-actions--left {
    justify-content: flex-start !important;
}

.public-home .home-page-content .home-actions--center {
    justify-content: center !important;
}

.public-home .home-page-content .home-actions--right {
    justify-content: flex-end !important;
}

.public-home .home-page-content .home-heading-icon {
    display: inline-block;

    margin-right: .28em;

    color: var(--rv-teal);

    font-style: normal;
    font-weight: inherit;
    line-height: 1;

    vertical-align: .03em;
}

/* Section heading sizing and admin-selected alignment. */
.public-home
.home-page-content
.section-heading h2,
.public-home
.home-page-content
.split-section__content h2,
.public-home
.home-page-content
.revision-panel h2,
.public-home
.home-page-content
.area-panel h2,
.public-home
.home-page-content
.final-cta h2 {
    font-size:
        clamp(
            1.85rem,
            5vw,
            var(--home-section-title-size)
        );

    line-height: 1.1;

    text-align:
        var(--home-section-align) !important;
}

.public-home
.home-page-content
.section-heading,
.public-home
.home-page-content
.split-section__content,
.public-home
.home-page-content
.area-panel,
.public-home
.home-page-content
.final-cta {
    text-align:
        var(--home-section-align) !important;
}

.public-home
.home-page-content
.home-section-copy,
.public-home
.home-page-content
.section-lead,
.public-home
.home-page-content
.feature-list span,
.public-home
.home-page-content
.revision-panel p,
.public-home
.home-page-content
.area-panel p {
    font-size:
        clamp(
            1rem,
            2.4vw,
            var(--home-section-text-size)
        );

    line-height: 1.62;
}

.public-home
.home-page-content
.service-card h3,
.public-home
.home-page-content
.project-card h3,
.public-home
.home-page-content
.process-grid h3 {
    font-size:
        clamp(
            1.05rem,
            2.8vw,
            var(--home-card-title-size)
        );
}

.public-home
.home-page-content
.service-card p,
.public-home
.home-page-content
.project-card p,
.public-home
.home-page-content
.process-grid p {
    font-size:
        clamp(
            .95rem,
            2.3vw,
            var(--home-card-text-size)
        );

    line-height: 1.58;
}

/* Prevent the old mobile centering rules from overriding CMS choice. */
@media (max-width: 620px) {
    .public-home
    .home-page-content
    .home-hero-title.home-align-left {
        text-align: left !important;
    }

    .public-home
    .home-page-content
    .home-hero-title.home-align-center {
        text-align: center !important;
    }

    .public-home
    .home-page-content
    .home-hero-title.home-align-right {
        text-align: right !important;
    }

    .public-home
    .home-page-content
    .home-hero-lead.home-align-left {
        text-align: left !important;
        margin-left: 0;
        margin-right: auto;
    }

    .public-home
    .home-page-content
    .home-hero-lead.home-align-center {
        text-align: center !important;
        margin-left: auto;
        margin-right: auto;
    }

    .public-home
    .home-page-content
    .home-hero-lead.home-align-right {
        text-align: right !important;
        margin-left: auto;
        margin-right: 0;
    }

    .public-home
    .home-page-content
    .section-heading h2,
    .public-home
    .home-page-content
    .split-section__content h2,
    .public-home
    .home-page-content
    .final-cta h2 {
        text-align:
            var(--home-section-align) !important;
    }

    .public-home
    .home-page-content
    .section-heading,
    .public-home
    .home-page-content
    .split-section__content,
    .public-home
    .home-page-content
    .final-cta {
        text-align:
            var(--home-section-align) !important;
    }

    .public-home
    .home-page-content
    .hero__actions {
        justify-items: stretch;
    }

    .public-home
    .home-page-content
    .home-actions--left,
    .public-home
    .home-page-content
    .home-actions--center,
    .public-home
    .home-page-content
    .home-actions--right {
        justify-content: center !important;
    }

    .public-home
    .home-page-content
    .hero__actions .button {
        width: min(100%, 340px);
    }
}

/* ==========================================================
   BACK TO TOP V1 2026-09-13
   Floating global control
   ========================================================== */

html {
    scroll-behavior: smooth;
}

.back-to-top {
    position: fixed;
    right: 20px;
    bottom: 92px;
    z-index: 10010;

    min-width: 46px;
    min-height: 46px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    padding: 9px 14px;

    border:
        1px solid
        color-mix(
            in srgb,
            white 22%,
            var(--rv-teal) 78%
        );

    border-radius: 999px;

    color: #ffffff !important;

    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                white 18%,
                var(--rv-teal) 82%
            ),
            color-mix(
                in srgb,
                #0f2b3e 14%,
                var(--rv-teal) 86%
            )
        );

    box-shadow:
        0 12px 30px rgba(15, 23, 42, .26),
        0 0 0 1px rgba(255, 255, 255, .08),
        0 0 18px color-mix(
            in srgb,
            var(--rv-teal) 38%,
            transparent
        );

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    font-size: .84rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform: translateY(12px);

    transition:
        opacity .18s ease,
        visibility .18s ease,
        transform .18s ease,
        border-color .18s ease,
        background-color .18s ease,
        box-shadow .18s ease;
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;

    transform: translateY(0);
}

.back-to-top:hover {
    transform: translateY(-3px);

    border-color:
        color-mix(
            in srgb,
            white 34%,
            var(--rv-teal) 66%
        );

    background:
        linear-gradient(
            135deg,
            color-mix(
                in srgb,
                white 28%,
                var(--rv-teal) 72%
            ),
            color-mix(
                in srgb,
                #0f2b3e 10%,
                var(--rv-teal) 90%
            )
        );

    box-shadow:
        0 16px 36px rgba(15, 23, 42, .3),
        0 0 22px color-mix(
            in srgb,
            var(--rv-teal) 46%,
            transparent
        );
}

.back-to-top:focus-visible {
    outline:
        3px solid
        color-mix(
            in srgb,
            var(--rv-teal) 70%,
            white
        );

    outline-offset: 3px;
}

.back-to-top__icon {
    display: block;

    font-size: 1.18rem;
    line-height: 1;
}

.back-to-top__label {
    line-height: 1;
}

@media (max-width: 620px) {
    .back-to-top {
        right: 14px;
        bottom: 82px;

        min-width: 44px;
        min-height: 44px;

        padding: 8px 11px;
    }

    .back-to-top__label {
        position: absolute;

        width: 1px;
        height: 1px;

        padding: 0;
        margin: -1px;

        overflow: hidden;

        clip: rect(0, 0, 0, 0);
        white-space: nowrap;

        border: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .back-to-top {
        transition: none;
    }

    .back-to-top:hover {
        transform: none;
    }
}

/* ==========================================================
   CARD CONTRAST RESET V1 2026-09-12
   Pastel cards always use dark readable text
   ========================================================== */

/*
 * These cards use light pastel backgrounds in both website
 * themes. Their text therefore intentionally does NOT inherit
 * the global light/dark text palette.
 */

body.public-home
#main-content
.home-page-content
.service-grid
.service-card h3 {
    color: var(--home-card-title-color) !important;
    -webkit-text-fill-color: currentColor !important;
    opacity: 1 !important;
}

body.public-home
#main-content
.home-page-content
.service-grid
.service-card p {
    color: var(--home-card-text-color) !important;
    opacity: 1 !important;
}

body.public-home
#main-content
.home-page-content
.service-grid
.service-card a {
    color: var(--home-card-button-text-color) !important;
    opacity: 1 !important;
}

body.public-home
#main-content
.home-page-content
.service-grid
.service-card a:hover {
    color: var(--home-card-button-text-color) !important;
}

body.public-home
#main-content
.home-page-content
.service-grid
.service-card__number {
    color: var(--home-card-badge-text-color) !important;
    -webkit-text-fill-color: currentColor !important;
    opacity: 1 !important;
}

/* Other pastel/project card metadata can use the muted tone. */
body.public-home
#main-content
.home-page-content
.project-card__body > span,
body.public-home
#main-content
.home-page-content
.project-card__body > p {
    color: var(--home-card-muted-color) !important;
    opacity: 1 !important;
}

body.public-home
#main-content
.home-page-content
.project-card__body h3 {
    color: var(--home-card-title-color) !important;
    opacity: 1 !important;
}

/* ==================================================
   REVELMONT REVISION PANEL CONTRAST V1
   The revision feature panel has a permanently dark
   surface, so its text must stay light in both themes.
================================================== */

body.public-home
#main-content
.home-page-content
.revision-panel {
    color: var(--rv-text-on-dark, #f8fbff) !important;
}

body.public-home
#main-content
.home-page-content
.revision-panel h1,
body.public-home
#main-content
.home-page-content
.revision-panel h2,
body.public-home
#main-content
.home-page-content
.revision-panel h3,
body.public-home
#main-content
.home-page-content
.revision-panel strong {
    color: var(--rv-heading-on-dark, #ffffff) !important;
    -webkit-text-fill-color: currentColor !important;
    opacity: 1 !important;
}

body.public-home
#main-content
.home-page-content
.revision-panel p,
body.public-home
#main-content
.home-page-content
.revision-panel li,
body.public-home
#main-content
.home-page-content
.revision-panel .home-section-copy,
body.public-home
#main-content
.home-page-content
.revision-panel .feature-list span {
    color: var(--rv-text-muted-on-dark, rgba(245, 248, 252, 0.90)) !important;
    opacity: 1 !important;
}

body.public-home
#main-content
.home-page-content
.revision-panel .eyebrow,
body.public-home
#main-content
.home-page-content
.revision-panel .eyebrow--light {
    color: var(--rv-accent-on-dark, #7dd3fc) !important;
    -webkit-text-fill-color: currentColor !important;
    opacity: 1 !important;
}

body.public-home
#main-content
.home-page-content
.revision-panel li::marker {
    color: var(--rv-accent-on-dark, #7dd3fc);
}

/* =========================================================
   REVELMONT 3D SERVICE - MODERN TECH DESIGN
   ========================================================= */

.service-detail-page--3d {
  --rv-3d-cyan: #49d8f0;
  --rv-3d-cyan-soft: rgba(73, 216, 240, .12);
  --rv-3d-red: #e54343;
  --rv-3d-dark: #09111f;
  --rv-3d-panel: rgba(17, 28, 47, .74);
}

.service-detail-page--3d .service-detail-hero {
  position: relative;
  overflow: hidden;
  padding-top: 82px;
  padding-bottom: 86px;
  background:
    linear-gradient(rgba(8, 17, 31, .94), rgba(8, 17, 31, .94)),
    linear-gradient(90deg, rgba(73, 216, 240, .06) 1px, transparent 1px),
    linear-gradient(rgba(73, 216, 240, .05) 1px, transparent 1px);
  background-size:
    auto,
    34px 34px,
    34px 34px;
}

.service-detail-page--3d .service-detail-hero::before {
  content: "";
  position: absolute;
  inset: auto auto -180px -180px;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(73, 216, 240, .17),
    transparent 68%
  );
  pointer-events: none;
}

.service-detail-page--3d .service-detail-hero::after {
  content: "";
  position: absolute;
  top: -140px;
  right: -120px;
  width: 430px;
  height: 430px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(229, 67, 67, .14),
    transparent 70%
  );
  pointer-events: none;
}

.service-detail-page--3d .service-detail-hero__grid {
  position: relative;
  z-index: 1;
  gap: 74px;
}

.service-detail-page--3d .service-3d-kicker {
  margin: 0 0 18px;
  color: var(--rv-3d-cyan);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .18em;
}

.service-detail-page--3d .service-detail-hero h1 {
  max-width: 780px;
  font-size: clamp(3rem, 5.7vw, 5.7rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.service-detail-page--3d .page-hero__lead {
  max-width: 760px;
  margin-top: 26px;
  color: rgba(255, 255, 255, .75);
  font-size: 1.02rem;
  line-height: 1.72;
}

.service-detail-page--3d .service-detail-hero__visual {
  min-height: 500px;
  border-radius: 24px;
  border: 1px solid rgba(73, 216, 240, .22);
  background: rgba(255, 255, 255, .03);
  box-shadow:
    0 30px 80px rgba(0, 0, 0, .36),
    0 0 0 1px rgba(255, 255, 255, .025) inset;
}

.service-detail-page--3d .service-detail-hero__visual img {
  min-height: 500px;
}

.service-detail-page--3d .service-detail-hero .button--primary {
  box-shadow: 0 10px 30px rgba(73, 216, 240, .17);
}

.service-detail-page--3d .section-heading {
  align-items: end;
}

.service-detail-page--3d .section-heading h2 {
  max-width: 760px;
  font-size: clamp(2rem, 4vw, 3.45rem);
  letter-spacing: -.035em;
}

.service-detail-page--3d .service-feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.service-detail-page--3d .service-feature-card {
  position: relative;
  min-height: 250px;
  padding: 32px;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(15, 129, 153, .14);
  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, .98),
      rgba(245, 250, 252, .96)
    );
  box-shadow:
    0 14px 34px rgba(16, 26, 47, .07);
  transition:
    transform .24s ease,
    border-color .24s ease,
    box-shadow .24s ease;
}

.service-detail-page--3d .service-feature-card::after {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -80px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(73, 216, 240, .11),
    transparent 68%
  );
  pointer-events: none;
}

.service-detail-page--3d .service-feature-card:hover {
  transform: translateY(-5px);
  border-color: rgba(73, 216, 240, .42);
  box-shadow:
    0 22px 48px rgba(16, 26, 47, .11);
}

.service-detail-page--3d .service-feature-card > span {
  min-width: 44px;
  height: 34px;
  margin-bottom: 34px;
  border-radius: 999px;
  color: #073744;
  background: rgba(73, 216, 240, .16);
  border: 1px solid rgba(73, 216, 240, .25);
  font-size: .72rem;
  letter-spacing: .08em;
}

.service-detail-page--3d .service-feature-card h3 {
  margin-bottom: 12px;
  font-size: 1.28rem;
  letter-spacing: -.015em;
}

.service-detail-page--3d .service-feature-card p {
  max-width: 540px;
  font-size: .9rem;
  line-height: 1.68;
}

.service-detail-page--3d .service-feature-card:nth-child(2),
.service-detail-page--3d .service-feature-card:nth-child(3) {
  color: #fff;
  border-color: rgba(73, 216, 240, .23);
  background:
    linear-gradient(
      145deg,
      rgba(9, 17, 31, .98),
      rgba(14, 33, 49, .98)
    );
}

.service-detail-page--3d .service-feature-card:nth-child(2) h3,
.service-detail-page--3d .service-feature-card:nth-child(3) h3 {
  color: #fff;
}

.service-detail-page--3d .service-feature-card:nth-child(2) p,
.service-detail-page--3d .service-feature-card:nth-child(3) p {
  color: rgba(255, 255, 255, .69);
}

.service-detail-page--3d .section--muted {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, #08111f, #0c1728);
}

.service-detail-page--3d .section--muted .eyebrow {
  color: var(--rv-3d-cyan);
}

.service-detail-page--3d .section--muted h2 {
  color: #fff;
}

.service-detail-page--3d .service-process-list {
  max-width: none;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.service-detail-page--3d .service-process-list li,
.service-detail-page--3d .service-process-list li:first-child {
  position: relative;
  display: block;
  min-height: 230px;
  padding: 24px 20px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 16px;
  background: rgba(255, 255, 255, .035);
}

.service-detail-page--3d .service-process-list li:not(:last-child)::after {
  content: "→";
  position: absolute;
  top: 38px;
  right: -13px;
  z-index: 2;
  color: var(--rv-3d-cyan);
  font-size: 1rem;
  font-weight: 900;
}

.service-detail-page--3d .service-process-list li > span {
  width: 46px;
  height: 46px;
  margin-bottom: 28px;
  background:
    linear-gradient(145deg, #2fd1ec, #0e94b1);
  box-shadow: 0 8px 22px rgba(73, 216, 240, .22);
}

.service-detail-page--3d .service-process-list h3 {
  color: #fff;
  font-size: 1.05rem;
}

.service-detail-page--3d .service-process-list p {
  color: rgba(255, 255, 255, .62);
  line-height: 1.58;
}

.service-detail-page--3d .service-3d-reverse {
  padding-top: 18px;
}

.service-detail-page--3d .service-3d-reverse__panel {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 60px;
  padding: 54px;
  border-radius: 24px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      rgba(9, 17, 31, .99),
      rgba(14, 36, 51, .98)
    );
  box-shadow: 0 26px 60px rgba(16, 26, 47, .15);
}

.service-detail-page--3d .service-3d-reverse__panel h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.04;
  letter-spacing: -.04em;
}

.service-detail-page--3d .service-3d-reverse__panel > div:last-child > p {
  margin-top: 0;
  color: rgba(255, 255, 255, .7);
  line-height: 1.75;
}

.service-detail-page--3d .service-3d-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-top: 28px;
}

.service-detail-page--3d .service-3d-flow span {
  padding: 8px 12px;
  border: 1px solid rgba(73, 216, 240, .24);
  border-radius: 999px;
  color: #b7f5ff;
  background: rgba(73, 216, 240, .08);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .09em;
}

.service-detail-page--3d .service-3d-flow b {
  color: rgba(255, 255, 255, .32);
}

.service-detail-page--3d .faq-item {
  border-radius: 14px;
}

.service-detail-page--3d .section--final-cta {
  background:
    linear-gradient(
      125deg,
      #08111f,
      #10263a 68%,
      #153c48
    );
}

@media (max-width: 1050px) {
  .service-detail-page--3d .service-process-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .service-detail-page--3d
  .service-process-list li:not(:last-child)::after {
    display: none;
  }
}

@media (max-width: 860px) {
  .service-detail-page--3d .service-detail-hero {
    padding-top: 58px;
    padding-bottom: 62px;
  }

  .service-detail-page--3d .service-detail-hero__visual,
  .service-detail-page--3d .service-detail-hero__visual img {
    min-height: 360px;
  }

  .service-detail-page--3d .service-3d-reverse__panel {
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 38px;
  }
}

@media (max-width: 620px) {
  .service-detail-page--3d .service-detail-hero h1 {
    font-size: clamp(2.55rem, 13vw, 3.8rem);
  }

  .service-detail-page--3d .service-feature-grid,
  .service-detail-page--3d .service-process-list {
    grid-template-columns: 1fr;
  }

  .service-detail-page--3d .service-feature-card {
    min-height: 0;
    padding: 25px;
  }

  .service-detail-page--3d .service-process-list li {
    min-height: 0;
  }

  .service-detail-page--3d .service-3d-reverse__panel {
    padding: 28px 22px;
    border-radius: 18px;
  }
}

/* =========================================================
   REVELMONT 3D SERVICE - CENTERED COLOR CARDS V3
   ========================================================= */

.service-detail-page--3d .service-feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.service-detail-page--3d .service-feature-card {
  min-height: 250px;
  padding: 28px 26px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
}

.service-detail-page--3d .service-feature-card__top {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 18px;
}

.service-detail-page--3d .service-feature-card__icon {
  margin: 0 auto;
}

.service-detail-page--3d .service-feature-card__top > span {
  min-width: auto;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.58);
  font-size: .72rem;
  letter-spacing: .12em;
}

.service-detail-page--3d .service-feature-card h3 {
  width: 100%;
  margin: 0 0 12px;
  font-size: 1.22rem;
  line-height: 1.25;
  text-align: center;
}

.service-detail-page--3d .service-feature-card p {
  width: 100%;
  max-width: 330px;
  margin: 0 auto;
  font-size: .96rem;
  line-height: 1.65;
  text-align: center;
}

/* Individual card color accents */
.service-detail-page--3d .service-feature-card:nth-child(1) {
  border-color: rgba(87,215,255,.26);
  background:
    linear-gradient(145deg, rgba(15,34,51,.98), rgba(11,27,43,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(2) {
  border-color: rgba(103,240,210,.30);
  background:
    linear-gradient(145deg, rgba(10,42,43,.98), rgba(9,31,38,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(3) {
  border-color: rgba(159,140,255,.30);
  background:
    linear-gradient(145deg, rgba(31,25,55,.98), rgba(20,22,43,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(4) {
  border-color: rgba(255,180,87,.28);
  background:
    linear-gradient(145deg, rgba(49,33,18,.98), rgba(28,26,31,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(5) {
  border-color: rgba(132,233,111,.28);
  background:
    linear-gradient(145deg, rgba(24,47,31,.98), rgba(18,31,29,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(6) {
  border-color: rgba(255,122,122,.28);
  background:
    linear-gradient(145deg, rgba(53,25,31,.98), rgba(30,24,31,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(7) {
  border-color: rgba(255,139,220,.28);
  background:
    linear-gradient(145deg, rgba(50,24,46,.98), rgba(30,23,38,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(8) {
  border-color: rgba(127,179,255,.28);
  background:
    linear-gradient(145deg, rgba(20,35,58,.98), rgba(17,27,43,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(9) {
  border-color: rgba(255,209,102,.28);
  background:
    linear-gradient(145deg, rgba(49,40,21,.98), rgba(31,29,25,.98));
}

.service-detail-page--3d .service-feature-card:nth-child(10) {
  border-color: rgba(103,232,165,.28);
  background:
    linear-gradient(145deg, rgba(18,46,37,.98), rgba(17,31,31,.98));
}

/* Soft glow per card */
.service-detail-page--3d .service-feature-card:nth-child(1)::after {
  background: radial-gradient(circle, rgba(87,215,255,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(2)::after {
  background: radial-gradient(circle, rgba(103,240,210,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(3)::after {
  background: radial-gradient(circle, rgba(159,140,255,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(4)::after {
  background: radial-gradient(circle, rgba(255,180,87,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(5)::after {
  background: radial-gradient(circle, rgba(132,233,111,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(6)::after {
  background: radial-gradient(circle, rgba(255,122,122,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(7)::after {
  background: radial-gradient(circle, rgba(255,139,220,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(8)::after {
  background: radial-gradient(circle, rgba(127,179,255,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(9)::after {
  background: radial-gradient(circle, rgba(255,209,102,.14), transparent 70%);
}
.service-detail-page--3d .service-feature-card:nth-child(10)::after {
  background: radial-gradient(circle, rgba(103,232,165,.14), transparent 70%);
}

@media (max-width: 1050px) {
  .service-detail-page--3d .service-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .service-detail-page--3d .service-feature-grid {
    grid-template-columns: 1fr;
  }

  .service-detail-page--3d .service-feature-card {
    min-height: 0;
    padding: 24px 20px;
  }

  .service-detail-page--3d .service-feature-card h3 {
    font-size: 1.14rem;
  }

  .service-detail-page--3d .service-feature-card p {
    font-size: .93rem;
    max-width: 100%;
  }
}

/* 3D cards final layout polish */

@media (min-width: 1051px) {
  .service-detail-page--3d
  .service-feature-card:nth-child(10) {
    grid-column: 2;
  }
}

.service-detail-page--3d .service-feature-card {
  height: 100%;
}

.service-detail-page--3d .service-feature-card p {
  margin-top: auto;
}

/* 3D cards final icon palette */
.service-detail-page--3d .service-feature-card:nth-child(1) .service-feature-card__icon {
  color: #57d7ff;
  background: rgba(87,215,255,.12);
  border-color: rgba(87,215,255,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(2) .service-feature-card__icon {
  color: #67f0d2;
  background: rgba(103,240,210,.12);
  border-color: rgba(103,240,210,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(3) .service-feature-card__icon {
  color: #a995ff;
  background: rgba(169,149,255,.12);
  border-color: rgba(169,149,255,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(4) .service-feature-card__icon {
  color: #ffb457;
  background: rgba(255,180,87,.12);
  border-color: rgba(255,180,87,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(5) .service-feature-card__icon {
  color: #84e96f;
  background: rgba(132,233,111,.12);
  border-color: rgba(132,233,111,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(6) .service-feature-card__icon {
  color: #ff7a7a;
  background: rgba(255,122,122,.12);
  border-color: rgba(255,122,122,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(7) .service-feature-card__icon {
  color: #ff8bdc;
  background: rgba(255,139,220,.12);
  border-color: rgba(255,139,220,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(8) .service-feature-card__icon {
  color: #7fb3ff;
  background: rgba(127,179,255,.12);
  border-color: rgba(127,179,255,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(9) .service-feature-card__icon {
  color: #ffd166;
  background: rgba(255,209,102,.12);
  border-color: rgba(255,209,102,.28);
}
.service-detail-page--3d .service-feature-card:nth-child(10) .service-feature-card__icon {
  color: #67e8a5;
  background: rgba(103,232,165,.12);
  border-color: rgba(103,232,165,.28);
}

/* ==========================================================
   SERVICE FEATURE CARDS
   Images, alignment and responsive typography
   ========================================================== */

.service-feature-grid {
    align-items: stretch;
}

.service-feature-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.service-feature-card__image {
    position: relative;
    overflow: hidden;

    width: calc(100% + 48px);
    margin: -24px -24px 0;

    aspect-ratio: 16 / 9;

    border-radius: 18px 18px 0 0;
    background: rgba(7, 27, 48, 0.75);
}

.service-feature-card__image img {
    display: block;
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 0.35s ease,
        filter 0.35s ease;
}

.service-feature-card:hover .service-feature-card__image img {
    transform: scale(1.025);
}

.service-feature-card h3 {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 3.75rem;

    margin-top: 32px;
    margin-bottom: 18px;

    text-align: center;

    font-size: clamp(1.2rem, 1vw + 0.85rem, 1.5rem);
    line-height: 1.25;
    font-weight: 800;
}

.service-feature-card > p {
    width: 100%;
    margin-top: 0;

    font-size: clamp(1.02rem, 0.45vw + 0.9rem, 1.14rem);
    line-height: 1.68;
}

.service-feature-card > p:last-child {
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .service-feature-card h3 {
        min-height: 3.5rem;
        margin-top: 28px;
        margin-bottom: 14px;
    }

    .service-feature-card > p {
        font-size: clamp(1rem, 0.7vw + 0.88rem, 1.1rem);
    }
}

@media (max-width: 700px) {
    .service-feature-card__image {
        width: calc(100% + 36px);
        margin: -18px -18px 0;
    }
}

@media (max-width: 600px) {
    .service-feature-card {
        padding: 18px;
    }

    .service-feature-card h3 {
        min-height: 3.4rem;

        margin-top: 24px;
        margin-bottom: 14px;

        font-size: clamp(1.16rem, 5vw, 1.34rem);
    }

    .service-feature-card > p {
        font-size: clamp(1rem, 4vw, 1.08rem);
        line-height: 1.62;
    }
}

/* ==========================================================
   3D SERVICE CARDS - IMAGE GRID FINAL
   ========================================================== */

.service-detail-page--3d .service-feature-card {
    min-height: 430px;
    height: 100%;
    padding: 0 20px 22px;
    overflow: hidden;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    text-align: center;
}

.service-detail-page--3d .service-feature-card__image--3d {
    position: relative;
    z-index: 1;

    width: calc(100% + 40px);
    margin: 0 -20px 14px;

    aspect-ratio: 16 / 9;

    overflow: hidden;
    border-radius: 17px 17px 0 0;

    background: rgba(4, 14, 25, .75);
}

.service-detail-page--3d .service-feature-card__image--3d img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform .35s ease,
        filter .35s ease;
}

.service-detail-page--3d
.service-feature-card:not(.service-feature-card--coming-soon):hover
.service-feature-card__image--3d img {
    transform: scale(1.035);
}

.service-detail-page--3d .service-feature-card__top {
    position: relative;
    z-index: 2;

    width: 100%;
    margin-bottom: 10px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 5px;
}

.service-detail-page--3d .service-feature-card__icon {
    position: relative;
    z-index: 4;

    width: 42px;
    height: 42px;

    margin-top: -34px;
    margin-bottom: 3px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid currentColor;
    border-radius: 12px;

    background: rgba(7, 24, 39, .94);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
}

.service-detail-page--3d .service-feature-card h3 {
    position: relative;
    z-index: 2;

    width: 100%;
    min-height: 2.8rem;

    margin: 0 0 10px !important;

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;

    gap: 6px;

    text-align: center;

    font-size: 1.05rem !important;
    line-height: 1.22;
}

.service-detail-page--3d .service-feature-card > p {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 100%;

    margin: 0 !important;

    text-align: center;

    font-size: .88rem !important;
    line-height: 1.52 !important;
}

.service-detail-page--3d .service-feature-card__status {
    display: inline-flex !important;
    align-items: center;

    padding: 4px 8px;

    border-radius: 999px;

    font-size: .58rem;
    line-height: 1;
    letter-spacing: .04em;

    white-space: nowrap;
}

/* Připravovaná služba */
.service-detail-page--3d
.service-feature-card--coming-soon {
    opacity: .70 !important;
}

.service-detail-page--3d
.service-feature-card--coming-soon::before {
    display: none !important;
    content: none !important;
}

.service-detail-page--3d
.service-feature-card--coming-soon
.service-feature-card__coming-note {
    display: none !important;
}

.service-detail-page--3d
.service-feature-card--coming-soon
.service-feature-card__image--3d img {
    filter: grayscale(.5) brightness(.62);
}

/* Desktop - schválené rozložení 5 + 5 */
@media (min-width: 1180px) {
    .service-detail-page--3d
    .section:has(.service-feature-grid) > .container {
        width: min(1500px, calc(100% - 48px));
        max-width: 1500px;
    }

    .service-detail-page--3d .service-feature-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 16px;
    }

    .service-detail-page--3d
    .service-feature-card:nth-child(10) {
        grid-column: auto;
    }
}

/* Tablet */
@media (max-width: 1179px) and (min-width: 861px) {
    .service-detail-page--3d .service-feature-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .service-detail-page--3d .service-feature-card {
        min-height: 0;
    }
}

/* Menší tablet */
@media (max-width: 860px) and (min-width: 621px) {
    .service-detail-page--3d .service-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-detail-page--3d .service-feature-card {
        min-height: 0;
    }
}

/* Mobil */
@media (max-width: 620px) {
    .service-detail-page--3d .service-feature-grid {
        grid-template-columns: 1fr;
    }

    .service-detail-page--3d .service-feature-card {
        min-height: 0;
        padding: 0 18px 22px;
    }

    .service-detail-page--3d .service-feature-card__image--3d {
        width: calc(100% + 36px);
        margin: 0 -18px 14px;
    }

    .service-detail-page--3d .service-feature-card h3 {
        min-height: 0;
        font-size: 1.12rem !important;
    }

    .service-detail-page--3d .service-feature-card > p {
        font-size: .95rem !important;
    }
}

/* ==========================================================
   REVELMONT DESKTOP NAVBAR V3
   Larger navigation / logo / modern category effects
   ========================================================== */

@media (min-width: 861px) {

    /* ------------------------------------------------------
       HEADER FRAME
       ------------------------------------------------------ */

    .site-header {
        min-height: 90px;
    }

    .site-header__inner {
        min-height: 90px;
        gap: 26px;
    }

    /* ------------------------------------------------------
       BRAND / LOGO
       ------------------------------------------------------ */

    .site-header .brand {
        gap: 13px;
        flex-shrink: 0;
    }

    .site-header .revelmont-menu-logo {
        width: 54px;
        height: 54px;
        min-width: 54px;

        display: grid;
        place-items: center;

        border-radius: 15px;

        background:
            linear-gradient(
                145deg,
                rgba(34, 211, 238, .12),
                rgba(14, 165, 233, .04)
            );

        border: 1px solid rgba(94, 234, 212, .28);

        box-shadow:
            0 8px 24px rgba(0, 0, 0, .16),
            inset 0 0 0 1px rgba(255, 255, 255, .035);

        transition:
            transform .22s ease,
            border-color .22s ease,
            box-shadow .22s ease;
    }

    .site-header .brand:hover .revelmont-menu-logo {
        transform: translateY(-2px) scale(1.025);

        border-color: rgba(103, 232, 249, .55);

        box-shadow:
            0 10px 30px rgba(6, 182, 212, .18),
            0 0 18px rgba(34, 211, 238, .08);
    }

    .site-header .rv-logo-asset {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .site-header .brand__text {
        font-size: 1.08rem;
        font-weight: 850;
        letter-spacing: .055em;
        white-space: nowrap;
    }

    /* ------------------------------------------------------
       MAIN NAV
       ------------------------------------------------------ */

    .site-header .desktop-nav {
        gap: 4px;
        align-items: center;
    }

    /*
     * Oddělovač mezi hlavními kategoriemi.
     * Funguje pro samostatný <a> i dropdown <div>.
     */
    .site-header .desktop-nav > * + * {
        margin-left: 7px;
        padding-left: 12px;
        border-left: 1px solid rgba(148, 163, 184, .20);
    }

    .site-header .desktop-nav > a,
    .site-header .desktop-nav__parent {
        position: relative;

        min-height: 46px;
        padding: 0 12px;

        display: inline-flex;
        align-items: center;
        justify-content: center;

        border: 1px solid transparent;
        border-radius: 13px;

        font-family: var(--rv-nav-font-family);
        font-size: 18px;
        font-weight: 720;
        line-height: 1;
        letter-spacing: -.012em;

        white-space: nowrap;

        transition:
            color .20s ease,
            background-color .20s ease,
            border-color .20s ease,
            box-shadow .20s ease,
            transform .20s ease;
    }

    /* Moderní glass hover */
    .site-header .desktop-nav > a:hover,
    .site-header .desktop-nav > a:focus-visible,
    .site-header .desktop-nav__group:hover > .desktop-nav__parent,
    .site-header .desktop-nav__group:focus-within > .desktop-nav__parent {
        transform: translateY(-1px);

        background:
            linear-gradient(
                180deg,
                rgba(255, 255, 255, .07),
                rgba(255, 255, 255, .025)
            );

        border-color: rgba(103, 232, 249, .20);

        box-shadow:
            0 8px 24px rgba(0, 0, 0, .10),
            inset 0 0 0 1px rgba(255, 255, 255, .025);

        color: var(--rv-nav-hover-color);
    }

    /* Aktivní položka */
    .site-header .desktop-nav > a.is-active,
    .site-header .desktop-nav > a[aria-current="page"] {
        background:
            linear-gradient(
                180deg,
                rgba(34, 211, 238, .10),
                rgba(14, 165, 233, .035)
            );

        border-color: rgba(34, 211, 238, .24);

        box-shadow:
            0 8px 24px rgba(6, 182, 212, .08);
    }

    /* ------------------------------------------------------
       MODERN UNDERLINE / GLOW
       ------------------------------------------------------ */

    .site-header .desktop-nav > a::after,
    .site-header .desktop-nav__parent::after {
        content: "";

        position: absolute;
        left: 50%;
        bottom: 4px;

        width: 0;
        height: 2px;

        border-radius: 999px;

        background:
            linear-gradient(
                90deg,
                transparent,
                #22d3ee 22%,
                #67e8f9 50%,
                #22d3ee 78%,
                transparent
            );

        box-shadow:
            0 0 10px rgba(34, 211, 238, .60);

        opacity: 0;

        transform: translateX(-50%);

        transition:
            width .22s ease,
            opacity .22s ease;
    }

    .site-header .desktop-nav > a:hover::after,
    .site-header .desktop-nav > a:focus-visible::after,
    .site-header .desktop-nav > a.is-active::after,
    .site-header .desktop-nav > a[aria-current="page"]::after,
    .site-header .desktop-nav__group:hover > .desktop-nav__parent::after,
    .site-header .desktop-nav__group:focus-within > .desktop-nav__parent::after {
        width: calc(100% - 24px);
        opacity: 1;
    }

    /* ------------------------------------------------------
       DROPDOWN CHEVRON
       ------------------------------------------------------ */

    .site-header .desktop-nav__chevron {
        margin-left: 2px;

        font-size: .75em;
        opacity: .72;

        transform-origin: 50% 55%;

        transition:
            transform .20s ease,
            opacity .20s ease,
            color .20s ease;
    }

    .site-header .desktop-nav__group:hover .desktop-nav__chevron,
    .site-header .desktop-nav__group:focus-within .desktop-nav__chevron {
        transform: rotate(180deg);
        opacity: 1;
        color: #67e8f9;
    }

    /* ------------------------------------------------------
       DROPDOWN
       ------------------------------------------------------ */

    .site-header .desktop-nav__dropdown {
        padding-top: 16px;
    }

    .site-header .desktop-nav__dropdown-inner {
        padding: 14px;

        border-radius: 18px;

        border-color: rgba(103, 232, 249, .16);

        box-shadow:
            0 22px 55px rgba(0, 0, 0, .22),
            0 0 0 1px rgba(255, 255, 255, .025);
    }

    .site-header .desktop-nav__dropdown a {
        min-height: 42px;
        padding: 10px 13px;

        display: flex;
        align-items: center;

        font-size: 15px;
        font-weight: 650;

        border-radius: 11px;

        transition:
            background-color .18s ease,
            color .18s ease,
            transform .18s ease;
    }

    .site-header .desktop-nav__dropdown a:hover {
        transform: translateX(3px);

        background: rgba(34, 211, 238, .08);
    }

    /* Zrušení velkého underline uvnitř dropdownu */
    .site-header .desktop-nav__dropdown a::after {
        display: none !important;
    }

    /* ------------------------------------------------------
       PHONE + THEME ACTION
       ------------------------------------------------------ */

    .site-header__actions {
        gap: 10px;
    }

    .site-header .header-phone {
        min-height: 44px;
        padding: 0 13px;

        display: inline-flex;
        align-items: center;

        border-radius: 12px;

        font-size: .94rem;
        font-weight: 800;
        letter-spacing: -.01em;

        white-space: nowrap;

        background: rgba(255, 255, 255, .035);
        border: 1px solid rgba(148, 163, 184, .14);

        transition:
            color .2s ease,
            border-color .2s ease,
            background-color .2s ease,
            box-shadow .2s ease;
    }

    .site-header .header-phone:hover {
        border-color: rgba(34, 211, 238, .28);
        background: rgba(34, 211, 238, .07);

        box-shadow:
            0 7px 22px rgba(6, 182, 212, .08);
    }

    .site-header .theme-toggle {
        min-height: 44px;
        padding-inline: 15px;

        border-radius: 12px;

        font-size: .88rem;
        font-weight: 750;
    }
}

/* ==========================================================
   MID DESKTOP / SMALL LAPTOP
   Keep header usable before mobile breakpoint
   ========================================================== */

@media (min-width: 861px) and (max-width: 1199px) {

    .site-header,
    .site-header__inner {
        min-height: 80px;
    }

    .site-header__inner {
        gap: 16px;
    }

    .site-header .revelmont-menu-logo {
        width: 46px;
        height: 46px;
        min-width: 46px;
    }

    .site-header .brand__text {
        font-size: .96rem;
    }

    .site-header .desktop-nav > * + * {
        margin-left: 2px;
        padding-left: 7px;
    }

    .site-header .desktop-nav > a,
    .site-header .desktop-nav__parent {
        min-height: 42px;
        padding-inline: 8px;

        font-size: 15px;
    }

    .site-header .header-phone {
        padding-inline: 9px;
        font-size: .84rem;
    }

    .site-header .theme-toggle {
        padding-inline: 10px;
        font-size: .80rem;
    }
}

/* ==========================================================
   REVELMONT DESKTOP NAVBAR V4
   Fix underline position + stronger phone CTA
   ========================================================== */

@media (min-width: 861px) {

    /* ------------------------------------------------------
       FIX MODERN EFFECT UNDER NAV ITEMS
       ------------------------------------------------------ */

    .site-header .desktop-nav > a,
    .site-header .desktop-nav__parent,
    .site-header .desktop-nav__group {
        position: relative;
    }

    .site-header .desktop-nav > a::after,
    .site-header .desktop-nav__parent::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: -8px;
        transform: translateX(-50%) scaleX(.72);

        width: 68%;
        height: 3px;
        border-radius: 999px;

        background: linear-gradient(
            90deg,
            rgba(34, 211, 238, 0),
            rgba(34, 211, 238, .95),
            rgba(96, 165, 250, .95),
            rgba(34, 211, 238, 0)
        );

        box-shadow:
            0 0 12px rgba(34, 211, 238, .30),
            0 0 24px rgba(59, 130, 246, .20);

        opacity: 0;
        pointer-events: none;
        transition:
            opacity .22s ease,
            transform .22s ease;
    }

    .site-header .desktop-nav > a:hover::after,
    .site-header .desktop-nav > a.is-active::after,
    .site-header .desktop-nav__group:hover .desktop-nav__parent::after,
    .site-header .desktop-nav__group:focus-within .desktop-nav__parent::after,
    .site-header .desktop-nav__parent:hover::after {
        opacity: 1;
        transform: translateX(-50%) scaleX(1);
    }

    /* Jemný oddělovač mezi kategoriemi */
    .site-header .desktop-nav > * + *::before {
        content: "";
        position: absolute;
        left: -2px;
        top: 50%;
        transform: translateY(-50%);
        width: 1px;
        height: 22px;
        border-radius: 999px;
        background: linear-gradient(
            180deg,
            rgba(148,163,184,0),
            rgba(148,163,184,.28),
            rgba(148,163,184,0)
        );
    }

    /* ------------------------------------------------------
       PHONE CTA - BIGGER / COLORFUL / WITH ICON
       ------------------------------------------------------ */

    .site-header .header-phone {
        min-height: 48px;
        padding: 0 18px;

        display: inline-flex;
        align-items: center;
        gap: 10px;

        border-radius: 14px;
        font-size: 1.02rem;
        font-weight: 900;
        letter-spacing: -.01em;
        line-height: 1;

        color: #ecfeff !important;
        text-decoration: none;

        background:
            linear-gradient(135deg, rgba(6, 182, 212, .22), rgba(59, 130, 246, .16)),
            rgba(255,255,255,.04);

        border: 1px solid rgba(56, 189, 248, .38);

        box-shadow:
            0 10px 24px rgba(2, 132, 199, .14),
            inset 0 1px 0 rgba(255,255,255,.08);

        transition:
            transform .18s ease,
            box-shadow .18s ease,
            border-color .18s ease,
            background .18s ease;
    }

    .site-header .header-phone::before {
        content: "☎";
        display: inline-flex;
        align-items: center;
        justify-content: center;

        width: 28px;
        height: 28px;

        border-radius: 999px;
        font-size: 15px;
        font-weight: 700;

        color: #67e8f9;
        background: rgba(8, 47, 73, .55);
        border: 1px solid rgba(103, 232, 249, .30);

        box-shadow:
            0 0 0 1px rgba(255,255,255,.03) inset,
            0 4px 12px rgba(6,182,212,.14);
    }

    .site-header .header-phone:hover {
        transform: translateY(-1px);
        border-color: rgba(103, 232, 249, .55);

        background:
            linear-gradient(135deg, rgba(6, 182, 212, .30), rgba(59, 130, 246, .22)),
            rgba(255,255,255,.06);

        box-shadow:
            0 14px 28px rgba(2, 132, 199, .18),
            0 0 0 1px rgba(103, 232, 249, .05) inset;
    }

    /* Theme toggle lehce srovnat výškou k telefonu */
    .site-header .theme-toggle {
        min-height: 48px;
    }
}

/* ----------------------------------------------------------
   SMALL LAPTOP / MID DESKTOP
   ---------------------------------------------------------- */

@media (min-width: 861px) and (max-width: 1199px) {
    .site-header .header-phone {
        min-height: 44px;
        padding: 0 14px;
        font-size: .92rem;
        gap: 8px;
    }

    .site-header .header-phone::before {
        width: 24px;
        height: 24px;
        font-size: 13px;
    }

    .site-header .desktop-nav > a::after,
    .site-header .desktop-nav__parent::after {
        bottom: -7px;
        width: 62%;
    }
}

/* ==========================================================
   REVELMONT NAVBAR V5
   Dark tech background
   ========================================================== */

@media (min-width: 861px) {

    .site-header {
        position: relative;

        background:
            radial-gradient(
                circle at 50% 0%,
                rgba(14, 165, 233, .10),
                transparent 42%
            ),
            linear-gradient(
                90deg,
                #071729 0%,
                #0a2038 45%,
                #0b223b 55%,
                #071729 100%
            ) !important;

        border-bottom: 1px solid rgba(56, 189, 248, .16);

        box-shadow:
            0 10px 30px rgba(0, 0, 0, .22),
            inset 0 -1px 0 rgba(255,255,255,.025);

        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
    }

    .site-header::after {
        content: "";

        position: absolute;
        left: 50%;
        bottom: 0;

        width: min(70%, 900px);
        height: 1px;

        transform: translateX(-50%);

        background:
            linear-gradient(
                90deg,
                transparent,
                rgba(34, 211, 238, .22),
                rgba(96, 165, 250, .34),
                rgba(34, 211, 238, .22),
                transparent
            );

        box-shadow:
            0 0 14px rgba(34, 211, 238, .18);

        pointer-events: none;
    }

    .site-header__inner {
        position: relative;
        z-index: 2;
    }
}

/* ==========================================================
   REVELMONT NAVBAR V6
   Force dark premium gradient over Appearance overrides
   ========================================================== */

@media (min-width: 861px) {

    html body .site-header[data-site-header] {
        background-color: #071729 !important;

        background-image:
            radial-gradient(
                ellipse at 52% -40%,
                rgba(34, 211, 238, .22) 0%,
                rgba(14, 165, 233, .10) 28%,
                transparent 58%
            ),
            linear-gradient(
                100deg,
                #050f1d 0%,
                #071a2e 24%,
                #0a2743 52%,
                #071b30 76%,
                #050f1d 100%
            ) !important;

        border-bottom: 1px solid rgba(56, 189, 248, .24) !important;

        box-shadow:
            0 10px 32px rgba(0, 0, 0, .30),
            0 1px 0 rgba(103, 232, 249, .06) inset !important;
    }

    html body .site-header[data-site-header]::before {
        content: "";

        position: absolute;
        inset: 0;
        z-index: 0;

        pointer-events: none;

        background:
            linear-gradient(
                115deg,
                transparent 0%,
                rgba(255,255,255,.025) 38%,
                rgba(103,232,249,.045) 50%,
                rgba(255,255,255,.018) 62%,
                transparent 100%
            );
    }

    html body .site-header[data-site-header]::after {
        content: "";

        position: absolute;
        left: 50%;
        bottom: 0;

        width: min(1100px, 76%);
        height: 1px;

        transform: translateX(-50%);

        background:
            linear-gradient(
                90deg,
                transparent,
                rgba(34,211,238,.18),
                rgba(103,232,249,.55),
                rgba(59,130,246,.34),
                rgba(34,211,238,.18),
                transparent
            );

        box-shadow:
            0 0 18px rgba(34,211,238,.25);

        pointer-events: none;
    }

    html body .site-header[data-site-header] .site-header__inner {
        position: relative;
        z-index: 2;
    }
}

/* ==========================================================
   REVELMONT NAVBAR V7
   LIGHT MODE CONTRAST + PREMIUM DARK HEADER
   ========================================================== */

@media (min-width: 861px) {

    /* ------------------------------------------------------
       LIGHT MODE - KEEP NAVBAR DARK, TEXT LIGHT
       ------------------------------------------------------ */

    html[data-theme="light"] body .site-header[data-site-header] {
        background-color: #061524 !important;

        background-image:
            radial-gradient(
                ellipse at 50% -50%,
                rgba(34, 211, 238, .18) 0%,
                rgba(14, 165, 233, .08) 32%,
                transparent 62%
            ),
            linear-gradient(
                100deg,
                #050f1c 0%,
                #071a2d 28%,
                #09243e 52%,
                #07192c 74%,
                #050f1c 100%
            ) !important;

        border-bottom-color: rgba(56, 189, 248, .24) !important;
    }

    /* Brand */
    html[data-theme="light"] .site-header .brand__text {
        color: #f8fafc !important;

        text-shadow:
            0 1px 10px rgba(0, 0, 0, .18);
    }

    /* Main navigation */
    html[data-theme="light"] .site-header .desktop-nav > a,
    html[data-theme="light"] .site-header .desktop-nav__parent,
    html[data-theme="light"] .site-header .desktop-nav__parent--button {
        color: #eaf4ff !important;
    }

    html[data-theme="light"] .site-header .desktop-nav > a:hover,
    html[data-theme="light"] .site-header .desktop-nav > a:focus-visible,
    html[data-theme="light"] .site-header
    .desktop-nav__group:hover > .desktop-nav__parent,
    html[data-theme="light"] .site-header
    .desktop-nav__group:focus-within > .desktop-nav__parent {
        color: #ffffff !important;

        background:
            linear-gradient(
                180deg,
                rgba(56, 189, 248, .12),
                rgba(34, 211, 238, .045)
            ) !important;

        border-color: rgba(103, 232, 249, .28) !important;

        box-shadow:
            0 8px 24px rgba(0, 0, 0, .14),
            0 0 18px rgba(34, 211, 238, .055);
    }

    /* Active item */
    html[data-theme="light"] .site-header
    .desktop-nav > a.is-active,
    html[data-theme="light"] .site-header
    .desktop-nav > a[aria-current="page"] {
        color: #ffffff !important;

        background:
            linear-gradient(
                180deg,
                rgba(34, 211, 238, .15),
                rgba(14, 165, 233, .055)
            ) !important;

        border-color: rgba(103, 232, 249, .30) !important;
    }

    /* Chevron */
    html[data-theme="light"] .site-header .desktop-nav__chevron {
        color: #94a3b8 !important;
    }

    html[data-theme="light"] .site-header
    .desktop-nav__group:hover .desktop-nav__chevron {
        color: #67e8f9 !important;
    }

    /* Separators */
    html[data-theme="light"] .site-header
    .desktop-nav > * + *::before {
        background:
            linear-gradient(
                180deg,
                transparent,
                rgba(148, 163, 184, .30),
                transparent
            );
    }

    /* ------------------------------------------------------
       PHONE CTA
       ------------------------------------------------------ */

    html[data-theme="light"] .site-header .header-phone {
        color: #ffffff !important;

        background:
            linear-gradient(
                135deg,
                rgba(6, 182, 212, .26),
                rgba(37, 99, 235, .20)
            ) !important;

        border-color: rgba(103, 232, 249, .40) !important;

        box-shadow:
            0 9px 24px rgba(2, 132, 199, .17),
            inset 0 1px 0 rgba(255,255,255,.08);
    }

    html[data-theme="light"] .site-header .header-phone:hover {
        background:
            linear-gradient(
                135deg,
                rgba(6, 182, 212, .36),
                rgba(37, 99, 235, .27)
            ) !important;

        border-color: rgba(103, 232, 249, .68) !important;
    }

    html[data-theme="light"] .site-header .header-phone::before {
        color: #a5f3fc;

        background: rgba(8, 47, 73, .72);

        border-color: rgba(103, 232, 249, .38);
    }

    /* ------------------------------------------------------
       THEME BUTTON
       ------------------------------------------------------ */

    html[data-theme="light"] .site-header .theme-toggle {
        color: #0f172a !important;

        background: #f8fafc !important;

        border-color: rgba(255, 255, 255, .68) !important;

        box-shadow:
            0 6px 18px rgba(0, 0, 0, .16);

        font-weight: 800;
    }

    html[data-theme="light"] .site-header .theme-toggle:hover {
        color: #0369a1 !important;

        background: #ffffff !important;

        border-color: #67e8f9 !important;
    }

    /* ------------------------------------------------------
       DROPDOWN ALSO DARK IN LIGHT MODE
       ------------------------------------------------------ */

    html[data-theme="light"] .site-header
    .desktop-nav__dropdown-inner {
        background:
            linear-gradient(
                145deg,
                rgba(7, 23, 41, .985),
                rgba(9, 35, 59, .985)
            ) !important;

        border-color: rgba(103, 232, 249, .18) !important;

        box-shadow:
            0 24px 55px rgba(2, 8, 23, .34),
            0 0 0 1px rgba(255,255,255,.025);
    }

    html[data-theme="light"] .site-header
    .desktop-nav__dropdown-title {
        color: #67e8f9 !important;
        opacity: .92;
    }

    html[data-theme="light"] .site-header
    .desktop-nav__dropdown a {
        color: #e2e8f0 !important;
    }

    html[data-theme="light"] .site-header
    .desktop-nav__dropdown a:hover {
        color: #ffffff !important;
        background: rgba(34, 211, 238, .09) !important;
    }

    html[data-theme="light"] .site-header
    .desktop-nav__coming-soon {
        color: #cbd5e1 !important;
    }
}

/* ==========================================================
   REVELMONT HERO CTA V2
   Larger modern homepage buttons
   ========================================================== */

.public-home .hero__actions {
    gap: 14px;
    margin-top: 24px;
}

.public-home .hero__actions .button {
    min-height: 54px;
    padding: 0 24px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 14px;

    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.01em;

    transition:
        transform .20s ease,
        box-shadow .20s ease,
        border-color .20s ease,
        background .20s ease;
}

/* Hlavní CTA */
.public-home .hero__actions .button--primary {
    color: #ffffff !important;

    background:
        linear-gradient(
            135deg,
            #2563eb 0%,
            #0ea5e9 55%,
            #06b6d4 100%
        );

    border: 1px solid rgba(103, 232, 249, .30);

    box-shadow:
        0 10px 26px rgba(37, 99, 235, .26),
        0 0 0 1px rgba(255,255,255,.05) inset;
}

.public-home .hero__actions .button--primary:hover {
    transform: translateY(-2px);

    background:
        linear-gradient(
            135deg,
            #1d4ed8 0%,
            #0284c7 52%,
            #0891b2 100%
        );

    box-shadow:
        0 14px 32px rgba(37, 99, 235, .34),
        0 0 22px rgba(34, 211, 238, .14);
}

/* Vedlejší CTA */
.public-home .hero__actions .button--secondary {
    color: #f8fafc !important;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.075),
            rgba(255,255,255,.025)
        );

    border: 1px solid rgba(148, 163, 184, .34);

    box-shadow:
        0 8px 20px rgba(0,0,0,.12),
        inset 0 1px 0 rgba(255,255,255,.05);
}

.public-home .hero__actions .button--secondary:hover {
    transform: translateY(-2px);

    color: #ffffff !important;

    border-color: rgba(103,232,249,.44);

    background:
        linear-gradient(
            180deg,
            rgba(34,211,238,.11),
            rgba(14,165,233,.045)
        );

    box-shadow:
        0 12px 26px rgba(0,0,0,.16),
        0 0 18px rgba(34,211,238,.10);
}

/* Světlý režim - sekundární tlačítko */
html[data-theme="light"]
.public-home .hero__actions .button--secondary {
    color: #0f172a !important;

    background: rgba(255,255,255,.88);

    border-color: rgba(30,41,59,.18);

    box-shadow:
        0 8px 22px rgba(15,23,42,.10);
}

html[data-theme="light"]
.public-home .hero__actions .button--secondary:hover {
    color: #0369a1 !important;

    background: #ffffff;

    border-color: rgba(14,165,233,.38);

    box-shadow:
        0 12px 26px rgba(15,23,42,.12),
        0 0 18px rgba(14,165,233,.08);
}

/* Mobil */
@media (max-width: 620px) {
    .public-home .hero__actions {
        gap: 10px;
    }

    .public-home .hero__actions .button {
        min-height: 52px;
        width: 100%;
        padding-inline: 20px;
        font-size: .98rem;
    }
}

/* ==========================================================
   HOMEPAGE SERVICE CARDS V3
   Realistic image cards
   ========================================================== */

.public-home .service-card--photo {
    position: relative;
    overflow: hidden;
    padding: 0 24px 24px;
    min-height: 0;
    border-radius: 18px;
    background: rgba(8, 24, 42, .94);
    border: 1px solid rgba(148, 163, 184, .18);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .16);
    transition:
        transform .24s ease,
        box-shadow .24s ease,
        border-color .24s ease;
}

.public-home .service-card--photo:hover {
    transform: translateY(-5px);
    border-color: rgba(56, 189, 248, .32);
    box-shadow:
        0 20px 44px rgba(0, 0, 0, .22),
        0 0 24px rgba(34, 211, 238, .07);
}

.public-home .service-card__media {
    width: calc(100% + 48px);
    margin: 0 -24px 20px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #071729;
}

.public-home .service-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .38s ease;
}

.public-home .service-card--photo:hover .service-card__media img {
    transform: scale(1.045);
}

.public-home .service-card--photo .service-card__number {
    position: relative;
    z-index: 2;
    margin-top: -40px;
    margin-bottom: 18px;
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    color: #fff;
    background: linear-gradient(135deg, #0891b2, #2563eb);
    border: 1px solid rgba(103, 232, 249, .34);
    box-shadow:
        0 9px 22px rgba(0,0,0,.24),
        0 0 16px rgba(34,211,238,.08);
}

.public-home .service-card--photo h3 {
    margin-top: 0;
}

.public-home .service-card--photo > p {
    flex: 1;
}

.public-home .service-card--photo > a {
    margin-top: 18px;
}

html[data-theme="light"] .public-home .service-card--photo {
    background: #ffffff;
    border-color: rgba(15, 23, 42, .12);
    box-shadow: 0 12px 32px rgba(15, 23, 42, .10);
}

html[data-theme="light"] .public-home .service-card--photo:hover {
    border-color: rgba(14, 165, 233, .30);
    box-shadow:
        0 18px 40px rgba(15, 23, 42, .14),
        0 0 20px rgba(14,165,233,.06);
}

@media (max-width: 620px) {
    .public-home .service-card--photo {
        padding: 0 20px 22px;
    }

    .public-home .service-card__media {
        width: calc(100% + 40px);
        margin: 0 -20px 18px;
    }
}

/* ==========================================================
   REVISION PANEL REALISTIC IMAGE V1
   ========================================================== */

.public-home .revision-panel__visual--photo {
    position: relative;
    overflow: hidden;
    min-height: 100%;
    border-radius: 0 18px 18px 0;
    background: #071729;
}

.public-home .revision-panel__visual--photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 420px;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 860px) {
    .public-home .revision-panel__visual--photo {
        border-radius: 0 0 18px 18px;
    }

    .public-home .revision-panel__visual--photo img {
        min-height: 320px;
    }
}

@media (max-width: 620px) {
    .public-home .revision-panel__visual--photo img {
        min-height: 260px;
    }
}

/* ==========================================================
   REVISION PANEL PHOTO FIX V2
   Remove old background image completely
   ========================================================== */

.public-home .revision-panel__visual.revision-panel__visual--photo {
    display: block !important;
    place-items: unset !important;

    background: none !important;
    background-image: none !important;

    padding: 0 !important;
}

.public-home .revision-panel__visual.revision-panel__visual--photo img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;
    min-height: 420px;

    object-fit: cover !important;
    object-position: center center;

    margin: 0 !important;
}

/* ==========================================================
   HOMEPAGE SECTION HEADINGS CENTERED V1
   ========================================================== */

.public-home .section-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;
}

.public-home .section-heading > div {
    width: 100%;
    text-align: center;
}

.public-home .section-heading .eyebrow,
.public-home .section-heading h2,
.public-home .section-heading .home-section-title,
.public-home .section-heading .home-section-copy,
.public-home .section-heading > p {
    text-align: center !important;
}

.public-home .section-heading .home-section-copy,
.public-home .section-heading > p {
    margin-left: auto;
    margin-right: auto;
    max-width: 760px;
}

/* Nadpis procesu */
.public-home .section-heading--center {
    text-align: center;
}

.public-home .section-heading--center > div {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* ==========================================================
   HOMEPAGE SECTION HEADINGS CENTERED V2
   Force heading + subtitle alignment
   ========================================================== */

.public-home .section-heading,
.public-home .section-heading--center {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.public-home .section-heading > div,
.public-home .section-heading--center > div {
    width: 100% !important;
    max-width: 900px;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

.public-home .section-heading h2,
.public-home .section-heading .home-section-title,
.public-home .section-heading--center h2,
.public-home .section-heading--center .home-section-title,
.public-home .section-heading h2[class*="home-align-"],
.public-home .section-heading .home-section-title[class*="home-align-"] {
    display: block !important;
    width: 100% !important;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}

.public-home .section-heading .eyebrow,
.public-home .section-heading--center .eyebrow {
    display: block !important;
    width: 100% !important;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}

.public-home .section-heading .home-section-copy,
.public-home .section-heading > p,
.public-home .section-heading--center .home-section-copy,
.public-home .section-heading--center > p {
    display: block !important;

    width: 100% !important;
    max-width: 760px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}

/* ==========================================================
   HOMEPAGE SECTION HEADINGS CENTERED V3 - FINAL
   ========================================================== */

.public-home .home-page-content .section-heading,
.public-home .home-page-content .section-heading--center {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    text-align: center !important;
}

.public-home .home-page-content .section-heading > div,
.public-home .home-page-content .section-heading--center > div {
    width: 100% !important;
    max-width: 1000px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

.public-home .home-page-content .section-heading h2,
.public-home .home-page-content .section-heading--center h2,
.public-home .home-page-content .section-heading .home-section-title {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

.public-home .home-page-content .section-heading .eyebrow,
.public-home .home-page-content .section-heading--center .eyebrow {
    width: 100% !important;
    text-align: center !important;
}

.public-home .home-page-content .section-heading > p,
.public-home .home-page-content .section-heading .home-section-copy,
.public-home .home-page-content .section-heading--center > p {
    width: 100% !important;
    max-width: 760px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

/* ==========================================================
   3D SCANNING ACTIVE V1
   ========================================================== */

.service-detail-page--3d .service-feature-card#3d-skenovani {
    opacity: 1 !important;
    filter: none !important;
    cursor: default;
}

.service-detail-page--3d
.service-feature-card#3d-skenovani
.service-feature-card__image--3d img {
    filter: none !important;
}

.service-detail-page--3d
.service-feature-card#3d-skenovani:hover
.service-feature-card__image--3d img {
    transform: scale(1.035);
}

/* ==========================================================
   3D SCANNING ACTIVE V2 - FINAL
   ========================================================== */

.service-detail-page--3d
.service-feature-card#3d-skenovani {
    opacity: 1 !important;
    filter: none !important;
    cursor: default !important;
}

.service-detail-page--3d
.service-feature-card#3d-skenovani::before,
.service-detail-page--3d
.service-feature-card#3d-skenovani::after {
    content: none !important;
    display: none !important;
}

.service-detail-page--3d
.service-feature-card#3d-skenovani
.service-feature-card__status,
.service-detail-page--3d
.service-feature-card#3d-skenovani
.service-feature-card__coming-note {
    display: none !important;
}

.service-detail-page--3d
.service-feature-card#3d-skenovani
.service-feature-card__image--3d img {
    filter: none !important;
    opacity: 1 !important;
}

.service-detail-page--3d
.service-feature-card#3d-skenovani:hover
.service-feature-card__image--3d img {
    transform: scale(1.035);
}

/* ==========================================================
   PUBLIC EYEBROW LABELS HIDDEN V1
   Remove small uppercase labels above section headings
   ========================================================== */

.public-home .eyebrow,
.service-detail-page .eyebrow,
.page-hero .eyebrow,
.section .eyebrow,
.final-cta .eyebrow,
.area-panel .eyebrow,
.revision-panel .eyebrow {
    display: none !important;
}


/* ==========================================================
   REVELMONT 3D SERVICE DETAIL V1
   Reusable detail for individual 3D services
   ========================================================== */

.service-detail-page--3d-detail .service-detail-hero {
    color: #f8fafc;
    background:
        radial-gradient(
            circle at 82% 18%,
            rgba(14, 165, 233, .15),
            transparent 31%
        ),
        linear-gradient(
            135deg,
            #101c43 0%,
            #162653 54%,
            #111d40 100%
        );
}

.service-detail-page--3d-detail .service-detail-hero h1 {
    max-width: 760px;
    color: #ffffff;
    text-wrap: balance;
}

.service-detail-page--3d-detail .service-detail-hero .page-hero__lead {
    max-width: 700px;
    color: rgba(241, 245, 249, .88);
}

.service-detail-page--3d-detail .service-detail-hero__visual {
    overflow: hidden;
    border:
        1px solid
        rgba(148, 163, 184, .24);
    border-radius: 18px;
    background: #0f1938;
}

.service-detail-page--3d-detail .service-detail-hero__visual img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
}

.service-detail-page--3d-detail .service-feature-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.service-detail-page--3d-detail .service-feature-card__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: auto;
    padding-top: 18px;
    color: var(--rv-teal);
    font-weight: 750;
    text-decoration: none;
}

.service-detail-page--3d-detail
.service-feature-card__link:hover {
    text-decoration: underline;
}

.service-detail-proscons__grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.service-detail-proscons__panel {
    padding: 30px;
    border:
        1px solid
        var(--rv-line);
    border-radius: 20px;
    background: var(--rv-surface, #fff);
}

.service-detail-proscons__panel--advantages {
    border-top:
        3px solid
        #22c55e;
}

.service-detail-proscons__panel--limitations {
    border-top:
        3px solid
        #f59e0b;
}

.service-detail-proscons__label {
    display: inline-flex;
    margin-bottom: 22px;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.service-detail-point-list {
    display: grid;
    gap: 18px;
}

.service-detail-point-list > div {
    padding-bottom: 18px;
    border-bottom:
        1px solid
        var(--rv-line);
}

.service-detail-point-list > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.service-detail-point-list strong {
    display: block;
    margin-bottom: 6px;
    color: var(--rv-text);
    font-size: 1rem;
}

.service-detail-point-list p {
    margin: 0;
    color: var(--rv-muted);
    line-height: 1.65;
}

.service-detail-why__panel {
    display: grid;
    grid-template-columns:
        minmax(260px, .8fr)
        minmax(0, 1.2fr);
    gap: 48px;
    align-items: center;

    padding: 42px;

    border:
        1px solid
        rgba(34, 211, 238, .18);
    border-radius: 22px;

    color: #f8fafc;
    background:
        linear-gradient(
            135deg,
            #111d40 0%,
            #162653 100%
        );
}

.service-detail-why__panel h2 {
    color: #fff;
}

.service-detail-why__panel p {
    color: rgba(241, 245, 249, .86);
    line-height: 1.75;
}

.service-detail-gallery__grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.service-detail-gallery__grid figure {
    margin: 0;
    overflow: hidden;
    border-radius: 18px;
    background: #0f1938;
}

.service-detail-gallery__grid img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}


/* dark mode */

html[data-theme="dark"]
.service-detail-proscons__panel {
    background: rgba(255, 255, 255, .025);
}


/* tablet */

@media (max-width: 900px) {

    .service-detail-proscons__grid {
        grid-template-columns: 1fr;
    }

    .service-detail-why__panel {
        grid-template-columns: 1fr;
        gap: 22px;
        padding: 32px;
    }

    .service-detail-gallery__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* mobile */

@media (max-width: 680px) {

    .service-detail-page--3d-detail
    .service-detail-hero__visual img {
        min-height: 260px;
    }

    .service-detail-proscons__panel {
        padding: 22px;
        border-radius: 16px;
    }

    .service-detail-why__panel {
        padding: 24px;
        border-radius: 17px;
    }

    .service-detail-gallery__grid {
        grid-template-columns: 1fr;
    }

}


/* ==========================================================
   REVELMONT 3D SERVICE DETAIL V1 END
   ========================================================== */



/* ==========================================================
   REVELMONT 3D DETAIL USE CASES V2
   Balanced 2x2 layout
   ========================================================== */

.service-detail-page--3d-detail .service-detail-usecases {
    padding-top: 72px;
    padding-bottom: 78px;
}


/* SECTION HEADING */

.service-detail-page--3d-detail
.service-detail-usecases .section-heading {
    display: block;

    width: 100%;
    max-width: 820px;

    margin:
        0 auto
        38px;

    text-align: center;
}

.service-detail-page--3d-detail
.service-detail-usecases .section-heading > div {
    width: 100%;
    text-align: center;
}

.service-detail-page--3d-detail
.service-detail-usecases .section-heading .eyebrow {
    margin-bottom: 10px;
    text-align: center;
}

.service-detail-page--3d-detail
.service-detail-usecases .section-heading h2 {
    max-width: 760px;

    margin:
        0 auto
        14px;

    text-align: center;
    text-wrap: balance;
}

.service-detail-page--3d-detail
.service-detail-usecases .section-heading > p {
    max-width: 680px;

    margin:
        0 auto;

    text-align: center;
    line-height: 1.65;
}


/* 2 x 2 GRID */

.service-detail-page--3d-detail
.service-detail-usecases .service-feature-grid {
    counter-reset: rv-usecase;

    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    width: 100%;
    max-width: 1080px;

    margin-left: auto;
    margin-right: auto;

    gap: 20px;
}


/* CARD */

.service-detail-page--3d-detail
.service-detail-usecases .service-feature-card {
    counter-increment: rv-usecase;

    display: flex;
    flex-direction: column;
    align-items: center;

    min-height: 245px;

    padding:
        28px
        30px
        30px;

    border:
        1px solid
        rgba(148, 163, 184, .22);

    border-radius: 18px;

    text-align: center;

    background:
        rgba(9, 19, 48, .34);

    box-shadow:
        0 12px 34px
        rgba(0, 0, 0, .07);

    transition:
        border-color .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}


/* NUMBER 01 - 04 */

.service-detail-page--3d-detail
.service-detail-usecases
.service-feature-card h3::before {
    content:
        counter(
            rv-usecase,
            decimal-leading-zero
        );

    display: flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 28px;

    margin:
        0 auto
        16px;

    border:
        1px solid
        rgba(34, 211, 238, .28);

    border-radius: 999px;

    color: #67e8f9;

    background:
        rgba(34, 211, 238, .08);

    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .08em;
}


/* TITLE */

.service-detail-page--3d-detail
.service-detail-usecases
.service-feature-card h3 {
    width: 100%;
    max-width: 390px;

    margin:
        0 auto
        15px;

    text-align: center;

    font-size:
        clamp(
            1.08rem,
            1.4vw,
            1.25rem
        );

    line-height: 1.3;

    text-wrap: balance;
}


/* TEXT */

.service-detail-page--3d-detail
.service-detail-usecases
.service-feature-card > p {
    width: 100%;
    max-width: 420px;

    margin:
        0 auto;

    text-align: center;

    line-height: 1.7;
}


/* HOVER */

@media (hover: hover) {

    .service-detail-page--3d-detail
    .service-detail-usecases
    .service-feature-card:hover {

        transform:
            translateY(-3px);

        border-color:
            rgba(34, 211, 238, .38);

        box-shadow:
            0 18px 42px
            rgba(0, 0, 0, .12);
    }

}


/* TABLET */

@media (max-width: 900px) {

    .service-detail-page--3d-detail
    .service-detail-usecases {
        padding-top: 60px;
        padding-bottom: 64px;
    }

    .service-detail-page--3d-detail
    .service-detail-usecases
    .service-feature-card {
        min-height: 230px;

        padding:
            26px
            24px;
    }

}


/* MOBILE */

@media (max-width: 680px) {

    .service-detail-page--3d-detail
    .service-detail-usecases {
        padding-top: 48px;
        padding-bottom: 54px;
    }

    .service-detail-page--3d-detail
    .service-detail-usecases
    .section-heading {
        margin-bottom: 28px;
    }

    .service-detail-page--3d-detail
    .service-detail-usecases
    .service-feature-grid {
        grid-template-columns: 1fr;

        max-width: 520px;

        gap: 15px;
    }

    .service-detail-page--3d-detail
    .service-detail-usecases
    .service-feature-card {
        min-height: 0;

        padding:
            24px
            20px
            25px;

        border-radius: 16px;
    }

    .service-detail-page--3d-detail
    .service-detail-usecases
    .service-feature-card h3 {
        max-width: 100%;
    }

    .service-detail-page--3d-detail
    .service-detail-usecases
    .service-feature-card > p {
        max-width: 34rem;
    }

}


/* LIGHT THEME */

html[data-theme="light"]
.service-detail-page--3d-detail
.service-detail-usecases
.service-feature-card {

    background:
        rgba(255, 255, 255, .90);

    border-color:
        rgba(15, 23, 42, .10);
}


/* ==========================================================
   REVELMONT 3D DETAIL USE CASES V2 END
   ========================================================== */


/* ==========================================================
   REVELMONT 3D SCAN USE CASES V3
   Final balanced 2 x 2 layout
   ========================================================== */

.service-detail-usecases {
    padding-top: 70px;
    padding-bottom: 76px;
}


/* HEADER */

.service-detail-usecases .section-heading {
    display: block !important;

    width: 100% !important;
    max-width: 820px !important;

    margin:
        0 auto
        40px !important;

    text-align: center !important;
}

.service-detail-usecases .section-heading > div {
    width: 100% !important;
    max-width: 100% !important;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}

.service-detail-usecases
.section-heading .eyebrow {
    display: block;

    width: 100%;

    margin:
        0 auto
        10px !important;

    text-align: center !important;
}

.service-detail-usecases
.section-heading h2 {
    max-width: 760px;

    margin:
        0 auto
        14px !important;

    text-align: center !important;
    text-wrap: balance;
}

.service-detail-usecases
.section-heading > p {
    max-width: 690px !important;

    margin:
        0 auto !important;

    text-align: center !important;
    line-height: 1.65;
}


/* GRID */

.service-detail-usecases
.service-feature-grid {
    counter-reset: rv-scan-usecase;

    display: grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr))
        !important;

    width: 100%;
    max-width: 1040px;

    margin:
        0 auto !important;

    gap: 20px !important;

    align-items: stretch;
}


/* CARD */

.service-detail-usecases
.service-feature-card {
    counter-increment: rv-scan-usecase;

    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    min-width: 0;
    min-height: 250px !important;

    margin: 0 !important;

    padding:
        30px
        32px
        32px !important;

    border:
        1px solid
        rgba(148, 163, 184, .20)
        !important;

    border-radius: 18px !important;

    text-align: center !important;

    background:
        rgba(8, 18, 47, .34)
        !important;

    box-shadow:
        0 10px 30px
        rgba(0, 0, 0, .06);

    transition:
        transform .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}


/* NUMBER */

.service-detail-usecases
.service-feature-card::before {
    content:
        counter(
            rv-scan-usecase,
            decimal-leading-zero
        );

    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-width: 42px;
    height: 28px;

    margin-bottom: 18px;

    padding:
        0 10px;

    border:
        1px solid
        rgba(34, 211, 238, .30);

    border-radius: 999px;

    color: #67e8f9;

    background:
        rgba(34, 211, 238, .08);

    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .08em;
}


/* TITLE */

.service-detail-usecases
.service-feature-card h3 {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 2.7em !important;
    max-width: 400px;

    margin:
        0 auto
        14px !important;

    text-align: center !important;

    font-size:
        clamp(
            1.08rem,
            1.55vw,
            1.28rem
        )
        !important;

    line-height: 1.3 !important;

    text-wrap: balance;
}


/* REMOVE PREVIOUS H3 NUMBER IF PRESENT */

.service-detail-usecases
.service-feature-card h3::before {
    content: none !important;
    display: none !important;
}


/* DESCRIPTION */

.service-detail-usecases
.service-feature-card > p {
    width: 100%;
    max-width: 420px;

    margin:
        0 auto !important;

    text-align: center !important;

    line-height: 1.7 !important;
}


/* HOVER */

@media (hover: hover) {

    .service-detail-usecases
    .service-feature-card:hover {

        transform:
            translateY(-3px);

        border-color:
            rgba(34, 211, 238, .38)
            !important;

        box-shadow:
            0 16px 38px
            rgba(0, 0, 0, .12);
    }

}


/* TABLET */

@media (max-width: 820px) {

    .service-detail-usecases {
        padding-top: 58px;
        padding-bottom: 62px;
    }

    .service-detail-usecases
    .service-feature-grid {

        grid-template-columns:
            repeat(2, minmax(0, 1fr))
            !important;

        gap: 16px !important;
    }

    .service-detail-usecases
    .service-feature-card {

        min-height: 235px !important;

        padding:
            26px
            22px
            28px !important;
    }

}


/* MOBILE */

@media (max-width: 640px) {

    .service-detail-usecases {
        padding-top: 46px;
        padding-bottom: 52px;
    }

    .service-detail-usecases
    .section-heading {

        margin-bottom:
            28px !important;
    }

    .service-detail-usecases
    .service-feature-grid {

        grid-template-columns:
            1fr !important;

        max-width: 520px;

        gap: 14px !important;
    }

    .service-detail-usecases
    .service-feature-card {

        min-height: 0 !important;

        padding:
            24px
            20px
            26px !important;

        border-radius:
            16px !important;
    }

    .service-detail-usecases
    .service-feature-card h3 {

        min-height: 0 !important;

        font-size:
            1.1rem !important;
    }

}


/* LIGHT */

html[data-theme="light"]
.service-detail-usecases
.service-feature-card {

    background:
        rgba(255, 255, 255, .94)
        !important;

    border-color:
        rgba(15, 23, 42, .10)
        !important;
}


/* ==========================================================
   REVELMONT 3D SCAN USE CASES V3 END
   ========================================================== */


/* ==========================================================
   REVELMONT 3D DETAIL PROCESS V4
   Desktop workflow 01 -> 05
   ========================================================== */

.service-detail-page--3d-detail
.service-process-list {
    counter-reset: none;

    display: grid !important;
    grid-template-columns:
        repeat(5, minmax(0, 1fr));

    width: 100%;
    max-width: 1220px;

    margin:
        38px auto
        0 !important;

    padding: 0 !important;

    gap: 14px;

    list-style: none;
}


/* CARD */

.service-detail-page--3d-detail
.service-process-list > li {
    position: relative;

    display: flex !important;
    flex-direction: column;
    align-items: center;

    min-width: 0;
    min-height: 245px;

    margin: 0 !important;

    padding:
        26px
        20px
        24px !important;

    border:
        1px solid
        rgba(148, 163, 184, .20);

    border-radius: 18px;

    text-align: center;

    background:
        rgba(8, 18, 47, .34);

    box-shadow:
        0 10px 28px
        rgba(0, 0, 0, .05);

    transition:
        transform .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}


/* NUMBER */

.service-detail-page--3d-detail
.service-process-list > li > span {
    display: inline-flex !important;

    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    width: 44px !important;
    height: 44px !important;

    margin:
        0 auto
        20px !important;

    border:
        1px solid
        rgba(34, 211, 238, .28);

    border-radius: 50%;

    color: #67e8f9;

    background:
        rgba(34, 211, 238, .09);

    font-size: .76rem;
    font-weight: 800;
    line-height: 1;
}


/* CONTENT */

.service-detail-page--3d-detail
.service-process-list > li > div {
    display: flex;
    flex: 1;
    flex-direction: column;

    width: 100%;

    align-items: center;
}


/* TITLE */

.service-detail-page--3d-detail
.service-process-list h3 {
    display: flex;

    align-items: center;
    justify-content: center;

    min-height: 2.7em;

    margin:
        0 0
        12px !important;

    text-align: center;

    font-size: 1rem;
    line-height: 1.35;

    text-wrap: balance;
}


/* DESCRIPTION */

.service-detail-page--3d-detail
.service-process-list p {
    width: 100%;

    margin: 0 !important;

    text-align: center;

    font-size: .92rem;
    line-height: 1.6;
}


/* CONNECTOR */

@media (min-width: 981px) {

    .service-detail-page--3d-detail
    .service-process-list > li:not(:last-child)::after {

        content: "→";

        position: absolute;

        top: 37px;
        right: -13px;

        z-index: 2;

        display: flex;
        align-items: center;
        justify-content: center;

        width: 24px;
        height: 24px;

        color:
            rgba(103, 232, 249, .72);

        background:
            #182653;

        font-size: 1rem;
        font-weight: 800;
    }

}


/* HOVER */

@media (hover: hover) {

    .service-detail-page--3d-detail
    .service-process-list > li:hover {

        transform:
            translateY(-3px);

        border-color:
            rgba(34, 211, 238, .38);

        box-shadow:
            0 16px 38px
            rgba(0, 0, 0, .11);
    }

}


/* ==========================================================
   TABLET
   3 + 2, second row centered
   ========================================================== */

@media (max-width: 980px)
       and (min-width: 641px) {

    .service-detail-page--3d-detail
    .service-process-list {

        grid-template-columns:
            repeat(6, minmax(0, 1fr));

        max-width: 820px;

        gap: 16px;
    }

    .service-detail-page--3d-detail
    .service-process-list > li {

        grid-column: span 2;

        min-height: 220px;
    }

    .service-detail-page--3d-detail
    .service-process-list > li:nth-child(4) {

        grid-column:
            2 / span 2;
    }

    .service-detail-page--3d-detail
    .service-process-list > li:nth-child(5) {

        grid-column:
            4 / span 2;
    }

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 640px) {

    .service-detail-page--3d-detail
    .service-process-list {

        display: grid !important;

        grid-template-columns:
            1fr !important;

        max-width: 520px;

        margin-top:
            28px !important;

        gap: 14px;
    }

    .service-detail-page--3d-detail
    .service-process-list > li {

        display: grid !important;

        grid-template-columns:
            48px
            minmax(0, 1fr);

        column-gap: 16px;

        align-items: start;

        min-height: 0;

        padding:
            22px
            20px !important;

        text-align: left;
    }

    .service-detail-page--3d-detail
    .service-process-list > li > span {

        width: 42px !important;
        height: 42px !important;

        margin: 0 !important;
    }

    .service-detail-page--3d-detail
    .service-process-list > li > div {

        align-items:
            flex-start;
    }

    .service-detail-page--3d-detail
    .service-process-list h3 {

        display: block;

        min-height: 0;

        margin-bottom:
            7px !important;

        text-align: left;
    }

    .service-detail-page--3d-detail
    .service-process-list p {

        text-align: left;
    }

}


/* LIGHT THEME */

html[data-theme="light"]
.service-detail-page--3d-detail
.service-process-list > li {

    background:
        rgba(255, 255, 255, .94);

    border-color:
        rgba(15, 23, 42, .10);
}


/* ==========================================================
   REVELMONT 3D DETAIL PROCESS V4 END
   ========================================================== */


/* ==========================================================
   REVELMONT PROCESS NUMBERS POLISH V5
   Larger and more premium step numbers
   ========================================================== */

.service-detail-page--3d-detail
.service-process-list > li > span {
    position: relative;

    width: 62px !important;
    height: 62px !important;

    margin:
        0 auto
        22px !important;

    border:
        1px solid
        rgba(34, 211, 238, .42);

    border-radius: 50%;

    color: #bff8ff;

    background:
        radial-gradient(
            circle at 35% 30%,
            rgba(34, 211, 238, .22) 0%,
            rgba(34, 211, 238, .10) 38%,
            rgba(15, 23, 42, .92) 100%
        );

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .08),
        0 0 0 6px rgba(34, 211, 238, .05),
        0 10px 28px rgba(2, 8, 23, .28),
        0 0 24px rgba(34, 211, 238, .14);

    font-size: .98rem;
    font-weight: 900;
    letter-spacing: .04em;
}

.service-detail-page--3d-detail
.service-process-list > li > span::before {
    content: "";

    position: absolute;
    inset: 7px;

    border:
        1px solid
        rgba(103, 232, 249, .14);

    border-radius: 50%;
    pointer-events: none;
}

.service-detail-page--3d-detail
.service-process-list > li > span::after {
    content: "";

    position: absolute;
    top: 10px;
    left: 13px;

    width: 16px;
    height: 7px;

    border-radius: 999px;

    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, .28),
            rgba(255, 255, 255, 0)
        );

    transform: rotate(-18deg);
    pointer-events: none;
}


/* connector arrows align better with larger number */

@media (min-width: 981px) {

    .service-detail-page--3d-detail
    .service-process-list > li:not(:last-child)::after {
        top: 48px;
        right: -13px;

        width: 26px;
        height: 26px;

        border-radius: 50%;

        color: #7ee8f7;
        background: #182653;

        box-shadow:
            0 0 0 1px rgba(34, 211, 238, .12);
    }

}


/* tablet */

@media (max-width: 980px) and (min-width: 641px) {

    .service-detail-page--3d-detail
    .service-process-list > li > span {
        width: 56px !important;
        height: 56px !important;

        margin-bottom: 18px !important;

        font-size: .92rem;
    }

}


/* mobile */

@media (max-width: 640px) {

    .service-detail-page--3d-detail
    .service-process-list > li > span {
        width: 50px !important;
        height: 50px !important;

        margin: 0 !important;

        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .08),
            0 0 0 4px rgba(34, 211, 238, .05),
            0 8px 18px rgba(2, 8, 23, .22),
            0 0 18px rgba(34, 211, 238, .12);

        font-size: .86rem;
    }

    .service-detail-page--3d-detail
    .service-process-list > li > span::before {
        inset: 6px;
    }

}


/* light theme */

html[data-theme="light"]
.service-detail-page--3d-detail
.service-process-list > li > span {
    color: #0f3b4a;

    background:
        radial-gradient(
            circle at 35% 30%,
            rgba(34, 211, 238, .18) 0%,
            rgba(34, 211, 238, .08) 38%,
            rgba(255, 255, 255, .98) 100%
        );

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .7),
        0 0 0 5px rgba(34, 211, 238, .04),
        0 10px 22px rgba(15, 23, 42, .08);
}


/* ==========================================================
   REVELMONT PROCESS NUMBERS POLISH V5 END
   ========================================================== */


/* ==========================================================
   REVELMONT 3D PROS CONS POLISH V6
   Advantages + honest limitations
   ========================================================== */

.service-detail-page--3d-detail
.service-detail-proscons {
    padding-top: 76px;
    padding-bottom: 82px;
}


/* ----------------------------------------------------------
   SECTION HEADING
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.service-detail-proscons .section-heading {
    display: block !important;

    width: 100%;
    max-width: 820px;

    margin:
        0 auto
        42px !important;

    text-align: center !important;
}

.service-detail-page--3d-detail
.service-detail-proscons .section-heading > div {
    width: 100%;

    margin-left: auto;
    margin-right: auto;

    text-align: center !important;
}

.service-detail-page--3d-detail
.service-detail-proscons .section-heading .eyebrow {
    margin-bottom: 10px;

    text-align: center !important;
}

.service-detail-page--3d-detail
.service-detail-proscons .section-heading h2 {
    max-width: 760px;

    margin:
        0 auto
        14px;

    text-align: center !important;
    text-wrap: balance;
}

.service-detail-page--3d-detail
.service-detail-proscons .section-heading > p {
    max-width: 680px;

    margin:
        0 auto;

    text-align: center !important;
    line-height: 1.65;
}


/* ----------------------------------------------------------
   TWO MAIN PANELS
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.service-detail-proscons__grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    width: 100%;
    max-width: 1120px;

    margin:
        0 auto;

    gap: 22px;

    align-items: stretch;
}


/* ----------------------------------------------------------
   PANEL BASE
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.service-detail-proscons__panel {
    position: relative;

    overflow: hidden;

    min-width: 0;
    height: 100%;

    padding:
        32px
        34px
        34px;

    border:
        1px solid
        rgba(148, 163, 184, .20);

    border-radius: 22px;

    background:
        rgba(8, 18, 47, .38);

    box-shadow:
        0 14px 38px
        rgba(0, 0, 0, .08);
}


/* subtle light in corner */

.service-detail-page--3d-detail
.service-detail-proscons__panel::after {
    content: "";

    position: absolute;

    top: -90px;
    right: -90px;

    width: 210px;
    height: 210px;

    border-radius: 50%;

    pointer-events: none;

    filter: blur(2px);
}


/* ----------------------------------------------------------
   ADVANTAGES
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.service-detail-proscons__panel--advantages {
    border-top:
        3px solid
        rgba(34, 197, 94, .80);
}

.service-detail-page--3d-detail
.service-detail-proscons__panel--advantages::after {
    background:
        radial-gradient(
            circle,
            rgba(34, 197, 94, .13) 0%,
            rgba(34, 197, 94, 0) 70%
        );
}


/* ----------------------------------------------------------
   LIMITATIONS
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.service-detail-proscons__panel--limitations {
    border-top:
        3px solid
        rgba(245, 158, 11, .82);
}

.service-detail-page--3d-detail
.service-detail-proscons__panel--limitations::after {
    background:
        radial-gradient(
            circle,
            rgba(245, 158, 11, .13) 0%,
            rgba(245, 158, 11, 0) 70%
        );
}


/* ----------------------------------------------------------
   PANEL LABEL
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.service-detail-proscons__label {
    position: relative;
    z-index: 1;

    display: inline-flex;
    align-items: center;

    min-height: 38px;

    margin-bottom: 26px;

    padding:
        0
        16px;

    border-radius: 999px;

    font-size: .77rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}


/* icon before label */

.service-detail-page--3d-detail
.service-detail-proscons__panel--advantages
.service-detail-proscons__label::before {
    content: "✓";

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 22px;
    height: 22px;

    margin-right: 9px;

    border-radius: 50%;

    color: #d9ffe6;
    background:
        rgba(34, 197, 94, .24);

    font-size: .82rem;
    font-weight: 900;
}

.service-detail-page--3d-detail
.service-detail-proscons__panel--limitations
.service-detail-proscons__label::before {
    content: "!";

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 22px;
    height: 22px;

    margin-right: 9px;

    border-radius: 50%;

    color: #fff1ca;
    background:
        rgba(245, 158, 11, .24);

    font-size: .82rem;
    font-weight: 900;
}


.service-detail-page--3d-detail
.service-detail-proscons__panel--advantages
.service-detail-proscons__label {
    color: #bbf7d0;

    border:
        1px solid
        rgba(34, 197, 94, .25);

    background:
        rgba(34, 197, 94, .09);
}

.service-detail-page--3d-detail
.service-detail-proscons__panel--limitations
.service-detail-proscons__label {
    color: #fde7ad;

    border:
        1px solid
        rgba(245, 158, 11, .27);

    background:
        rgba(245, 158, 11, .09);
}


/* ----------------------------------------------------------
   POINT LIST
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.service-detail-point-list {
    position: relative;
    z-index: 1;

    display: grid;

    gap: 0;
}


/* individual row */

.service-detail-page--3d-detail
.service-detail-point-list > div {
    position: relative;

    padding:
        21px
        0
        21px
        36px;

    border-bottom:
        1px solid
        rgba(148, 163, 184, .13);
}

.service-detail-page--3d-detail
.service-detail-point-list > div:first-child {
    padding-top: 4px;
}

.service-detail-page--3d-detail
.service-detail-point-list > div:last-child {
    padding-bottom: 0;

    border-bottom: 0;
}


/* point marker */

.service-detail-page--3d-detail
.service-detail-point-list > div::before {
    position: absolute;

    top: 25px;
    left: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 22px;
    height: 22px;

    border-radius: 7px;

    font-size: .76rem;
    font-weight: 900;
}

.service-detail-page--3d-detail
.service-detail-point-list > div:first-child::before {
    top: 8px;
}


.service-detail-page--3d-detail
.service-detail-proscons__panel--advantages
.service-detail-point-list > div::before {
    content: "✓";

    color: #86efac;

    border:
        1px solid
        rgba(34, 197, 94, .25);

    background:
        rgba(34, 197, 94, .08);
}


.service-detail-page--3d-detail
.service-detail-proscons__panel--limitations
.service-detail-point-list > div::before {
    content: "•";

    color: #fbbf24;

    border:
        1px solid
        rgba(245, 158, 11, .25);

    background:
        rgba(245, 158, 11, .08);
}


/* ----------------------------------------------------------
   TEXT
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.service-detail-point-list strong {
    display: block;

    margin-bottom: 7px;

    color: #ffffff;

    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.4;

    text-wrap: balance;
}

.service-detail-page--3d-detail
.service-detail-point-list p {
    margin: 0;

    color:
        rgba(226, 232, 240, .86);

    font-size: .95rem;
    line-height: 1.68;
}


/* ----------------------------------------------------------
   HOVER
   ---------------------------------------------------------- */

@media (hover: hover) {

    .service-detail-page--3d-detail
    .service-detail-proscons__panel {
        transition:
            transform .22s ease,
            border-color .22s ease,
            box-shadow .22s ease;
    }

    .service-detail-page--3d-detail
    .service-detail-proscons__panel:hover {
        transform:
            translateY(-3px);

        box-shadow:
            0 19px 46px
            rgba(0, 0, 0, .13);
    }

}


/* ----------------------------------------------------------
   TABLET
   ---------------------------------------------------------- */

@media (max-width: 900px) {

    .service-detail-page--3d-detail
    .service-detail-proscons {
        padding-top: 62px;
        padding-bottom: 66px;
    }

    .service-detail-page--3d-detail
    .service-detail-proscons__grid {
        grid-template-columns: 1fr;

        max-width: 720px;
    }

}


/* ----------------------------------------------------------
   MOBILE
   ---------------------------------------------------------- */

@media (max-width: 640px) {

    .service-detail-page--3d-detail
    .service-detail-proscons {
        padding-top: 48px;
        padding-bottom: 54px;
    }

    .service-detail-page--3d-detail
    .service-detail-proscons .section-heading {
        margin-bottom:
            28px !important;
    }

    .service-detail-page--3d-detail
    .service-detail-proscons__grid {
        gap: 16px;
    }

    .service-detail-page--3d-detail
    .service-detail-proscons__panel {
        padding:
            24px
            21px
            26px;

        border-radius: 17px;
    }

    .service-detail-page--3d-detail
    .service-detail-point-list > div {
        padding-left: 32px;
    }

}


/* ----------------------------------------------------------
   LIGHT THEME
   ---------------------------------------------------------- */

html[data-theme="light"]
.service-detail-page--3d-detail
.service-detail-proscons__panel {
    background:
        rgba(255, 255, 255, .96);

    border-left-color:
        rgba(15, 23, 42, .10);

    border-right-color:
        rgba(15, 23, 42, .10);

    border-bottom-color:
        rgba(15, 23, 42, .10);
}

html[data-theme="light"]
.service-detail-page--3d-detail
.service-detail-point-list strong {
    color: #172033;
}

html[data-theme="light"]
.service-detail-page--3d-detail
.service-detail-point-list p {
    color: #526079;
}


/* ==========================================================
   REVELMONT 3D PROS CONS POLISH V6 END
   ========================================================== */


/* ==========================================================
   REVELMONT WHY SECTION V7
   3D scan -> usable manufactured result
   ========================================================== */

.service-detail-page--3d-detail
.service-detail-why {
    padding-top: 78px;
    padding-bottom: 82px;
}


/* MAIN PANEL */

.service-detail-page--3d-detail
.service-detail-why__panel {
    position: relative;

    display: grid;

    grid-template-columns:
        minmax(280px, .85fr)
        minmax(0, 1.15fr);

    width: 100%;
    max-width: 1160px;

    margin:
        0 auto;

    gap:
        32px
        54px;

    overflow: hidden;

    padding:
        44px
        46px
        40px;

    border:
        1px solid
        rgba(34, 211, 238, .22);

    border-radius: 24px;

    background:
        radial-gradient(
            circle at 88% 8%,
            rgba(34, 211, 238, .13),
            transparent 29%
        ),
        radial-gradient(
            circle at 5% 100%,
            rgba(59, 130, 246, .11),
            transparent 32%
        ),
        linear-gradient(
            135deg,
            #0e1939 0%,
            #14234b 55%,
            #101c3f 100%
        );

    box-shadow:
        0 22px 52px
        rgba(2, 8, 23, .18);
}


/* TECHNICAL DECORATION */

.service-detail-page--3d-detail
.service-detail-why__panel::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(34, 211, 238, .85),
            rgba(59, 130, 246, .65),
            transparent
        );
}


/* LEFT COLUMN */

.service-detail-page--3d-detail
.service-detail-why__panel > div:first-child {
    position: relative;
    z-index: 1;
}

.service-detail-page--3d-detail
.service-detail-why__panel .eyebrow {
    margin-bottom: 11px;

    color: #67e8f9;
}

.service-detail-page--3d-detail
.service-detail-why__panel h2 {
    max-width: 460px;

    margin: 0;

    color: #ffffff;

    font-size:
        clamp(
            1.9rem,
            3vw,
            2.7rem
        );

    line-height: 1.08;

    text-wrap: balance;
}


/* RIGHT COLUMN */

.service-detail-page--3d-detail
.service-detail-why__panel > div:nth-child(2) {
    position: relative;
    z-index: 1;
}

.service-detail-page--3d-detail
.service-detail-why__panel > div:nth-child(2) > p {
    max-width: 650px;

    margin:
        0 0
        26px;

    color:
        rgba(226, 232, 240, .90);

    font-size: 1rem;
    line-height: 1.75;
}


/* CTA */

.service-detail-page--3d-detail
.service-detail-why__panel .button--primary {
    min-height: 50px;

    padding:
        0 24px;

    border-radius: 13px;

    box-shadow:
        0 10px 26px
        rgba(14, 165, 233, .18);
}


/* ==========================================================
   WORKFLOW
   ========================================================== */

.service-detail-page--3d-detail
.service-detail-why__flow {
    position: relative;
    z-index: 1;

    grid-column:
        1 / -1;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        28px
        minmax(0, 1fr)
        28px
        minmax(0, 1fr)
        28px
        minmax(0, 1fr)
        28px
        minmax(0, 1fr);

    align-items: center;

    width: 100%;

    margin-top: 12px;

    padding-top: 32px;

    border-top:
        1px solid
        rgba(148, 163, 184, .16);
}


/* STEP */

.service-detail-page--3d-detail
.service-detail-why__flow-step {
    display: flex;
    flex-direction: column;

    align-items: center;

    min-width: 0;

    padding:
        19px
        10px
        18px;

    border:
        1px solid
        rgba(103, 232, 249, .15);

    border-radius: 15px;

    text-align: center;

    background:
        rgba(255, 255, 255, .025);
}


/* STEP NUMBER */

.service-detail-page--3d-detail
.service-detail-why__flow-step > span {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-width: 34px;
    height: 24px;

    margin-bottom: 10px;

    padding:
        0 8px;

    border:
        1px solid
        rgba(34, 211, 238, .28);

    border-radius: 999px;

    color: #67e8f9;

    background:
        rgba(34, 211, 238, .08);

    font-size: .66rem;
    font-weight: 850;
}


/* STEP NAME */

.service-detail-page--3d-detail
.service-detail-why__flow-step strong {
    color: #ffffff;

    font-size: .96rem;
    font-weight: 850;
    letter-spacing: .045em;
}


/* STEP DESCRIPTION */

.service-detail-page--3d-detail
.service-detail-why__flow-step small {
    display: block;

    margin-top: 6px;

    color:
        rgba(203, 213, 225, .74);

    font-size: .76rem;
    line-height: 1.4;
}


/* ARROWS */

.service-detail-page--3d-detail
.service-detail-why__flow > b {
    display: flex;

    align-items: center;
    justify-content: center;

    color:
        rgba(103, 232, 249, .72);

    font-size: 1rem;
    font-weight: 900;
}


/* HOVER */

@media (hover: hover) {

    .service-detail-page--3d-detail
    .service-detail-why__flow-step {
        transition:
            transform .2s ease,
            border-color .2s ease,
            background .2s ease;
    }

    .service-detail-page--3d-detail
    .service-detail-why__flow-step:hover {
        transform:
            translateY(-3px);

        border-color:
            rgba(34, 211, 238, .34);

        background:
            rgba(34, 211, 238, .055);
    }

}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 980px) {

    .service-detail-page--3d-detail
    .service-detail-why__panel {
        grid-template-columns: 1fr;

        gap: 24px;

        padding:
            36px
            34px;
    }

    .service-detail-page--3d-detail
    .service-detail-why__flow {
        grid-column: 1;

        grid-template-columns:
            repeat(5, minmax(0, 1fr));

        gap: 10px;
    }

    .service-detail-page--3d-detail
    .service-detail-why__flow > b {
        display: none;
    }

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 640px) {

    .service-detail-page--3d-detail
    .service-detail-why {
        padding-top: 50px;
        padding-bottom: 54px;
    }

    .service-detail-page--3d-detail
    .service-detail-why__panel {
        padding:
            27px
            21px;

        border-radius: 18px;
    }

    .service-detail-page--3d-detail
    .service-detail-why__panel h2 {
        font-size:
            clamp(
                1.7rem,
                8vw,
                2.2rem
            );
    }

    .service-detail-page--3d-detail
    .service-detail-why__flow {
        display: grid;

        grid-template-columns:
            1fr;

        gap: 10px;

        margin-top: 2px;

        padding-top: 24px;
    }

    .service-detail-page--3d-detail
    .service-detail-why__flow-step {
        display: grid;

        grid-template-columns:
            38px
            84px
            minmax(0, 1fr);

        align-items: center;

        padding:
            14px
            14px;

        text-align: left;
    }

    .service-detail-page--3d-detail
    .service-detail-why__flow-step > span {
        margin:
            0 10px 0 0;
    }

    .service-detail-page--3d-detail
    .service-detail-why__flow-step small {
        margin: 0;

        text-align: left;
    }

}


/* ==========================================================
   LIGHT THEME
   ========================================================== */

html[data-theme="light"]
.service-detail-page--3d-detail
.service-detail-why__panel {
    color: #f8fafc;
}


/* ==========================================================
   REVELMONT WHY SECTION V7 END
   ========================================================== */


/* ==========================================================
   REVELMONT 3D DETAIL FAQ + CTA V8
   ========================================================== */


/* ----------------------------------------------------------
   FAQ
   ---------------------------------------------------------- */

.service-detail-page--3d-detail .faq-layout {
    display: grid;
    grid-template-columns:
        minmax(260px, .72fr)
        minmax(0, 1.28fr);

    max-width: 1120px;

    margin:
        0 auto;

    gap: 54px;

    align-items: start;
}


.service-detail-page--3d-detail
.faq-layout > div:first-child {
    position: sticky;
    top: 110px;
}


.service-detail-page--3d-detail
.faq-layout > div:first-child h2 {
    max-width: 420px;

    margin-bottom: 16px;

    font-size:
        clamp(
            1.8rem,
            3vw,
            2.55rem
        );

    line-height: 1.1;

    text-wrap: balance;
}


.service-detail-page--3d-detail
.faq-layout .section-lead {
    max-width: 420px;

    line-height: 1.7;
}


.service-detail-page--3d-detail
.faq-list {
    display: grid;
    gap: 12px;
}


.service-detail-page--3d-detail
.faq-item {
    overflow: hidden;

    border:
        1px solid
        rgba(148, 163, 184, .20);

    border-radius: 16px;

    background:
        rgba(8, 18, 47, .34);

    transition:
        border-color .2s ease,
        background .2s ease;
}


.service-detail-page--3d-detail
.faq-item[open] {
    border-color:
        rgba(34, 211, 238, .34);

    background:
        rgba(8, 22, 54, .58);
}


.service-detail-page--3d-detail
.faq-item summary {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    min-height: 72px;

    padding:
        18px
        22px;

    cursor: pointer;

    color: #f8fafc;

    font-size: 1rem;
    font-weight: 780;
    line-height: 1.45;

    list-style: none;
}


.service-detail-page--3d-detail
.faq-item summary::-webkit-details-marker {
    display: none;
}


.service-detail-page--3d-detail
.faq-item summary > span {
    display: inline-flex;

    flex: 0 0 auto;

    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    border:
        1px solid
        rgba(34, 211, 238, .28);

    border-radius: 50%;

    color: #67e8f9;

    background:
        rgba(34, 211, 238, .08);

    font-size: 1.2rem;
    font-weight: 500;

    transition:
        transform .22s ease,
        background .22s ease;
}


.service-detail-page--3d-detail
.faq-item[open] summary > span {
    transform: rotate(45deg);

    background:
        rgba(34, 211, 238, .15);
}


.service-detail-page--3d-detail
.faq-item__answer {
    padding:
        0
        22px
        22px;

    color:
        rgba(226, 232, 240, .86);

    line-height: 1.7;
}


.service-detail-page--3d-detail
.faq-item__answer p:last-child {
    margin-bottom: 0;
}


/* ----------------------------------------------------------
   FINAL CTA
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.section--final-cta {
    padding-top: 74px;
    padding-bottom: 78px;

    background:
        transparent;
}


.service-detail-page--3d-detail
.final-cta {
    position: relative;

    display: grid;

    grid-template-columns:
        minmax(0, 1.35fr)
        auto;

    width: 100%;
    max-width: 1120px;

    margin:
        0 auto;

    gap: 42px;

    align-items: center;

    overflow: hidden;

    padding:
        40px
        44px;

    border:
        1px solid
        rgba(34, 211, 238, .24);

    border-radius: 22px;

    background:
        radial-gradient(
            circle at 92% 15%,
            rgba(34, 211, 238, .15),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #0e1939 0%,
            #152650 100%
        );

    box-shadow:
        0 18px 48px
        rgba(2, 8, 23, .16);
}


.service-detail-page--3d-detail
.final-cta::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #22d3ee,
            #3b82f6,
            transparent
        );
}


.service-detail-page--3d-detail
.final-cta .eyebrow {
    color: #67e8f9;
}


.service-detail-page--3d-detail
.final-cta h2 {
    max-width: 700px;

    margin-bottom: 12px;

    color: #fff;

    font-size:
        clamp(
            1.7rem,
            2.8vw,
            2.45rem
        );

    line-height: 1.12;

    text-wrap: balance;
}


.service-detail-page--3d-detail
.final-cta p {
    max-width: 720px;

    margin-bottom: 0;

    color:
        rgba(226, 232, 240, .86);

    line-height: 1.7;
}


.service-detail-page--3d-detail
.final-cta__actions {
    display: flex;

    align-items: center;
    justify-content: flex-end;
}


.service-detail-page--3d-detail
.final-cta__actions .button {
    min-width: 180px;
    min-height: 52px;

    justify-content: center;

    border-radius: 13px;

    white-space: nowrap;
}


/* ----------------------------------------------------------
   TABLET
   ---------------------------------------------------------- */

@media (max-width: 900px) {

    .service-detail-page--3d-detail
    .faq-layout {
        grid-template-columns: 1fr;

        max-width: 720px;

        gap: 30px;
    }

    .service-detail-page--3d-detail
    .faq-layout > div:first-child {
        position: static;

        text-align: center;
    }

    .service-detail-page--3d-detail
    .faq-layout > div:first-child h2,
    .service-detail-page--3d-detail
    .faq-layout .section-lead {
        margin-left: auto;
        margin-right: auto;
    }

    .service-detail-page--3d-detail
    .final-cta {
        grid-template-columns: 1fr;

        max-width: 720px;

        gap: 26px;
    }

    .service-detail-page--3d-detail
    .final-cta__actions {
        justify-content: flex-start;
    }

}


/* ----------------------------------------------------------
   MOBILE
   ---------------------------------------------------------- */

@media (max-width: 640px) {

    .service-detail-page--3d-detail
    .faq-item {
        border-radius: 14px;
    }

    .service-detail-page--3d-detail
    .faq-item summary {
        min-height: 64px;

        padding:
            16px
            17px;

        font-size: .96rem;
    }

    .service-detail-page--3d-detail
    .faq-item__answer {
        padding:
            0
            17px
            18px;
    }

    .service-detail-page--3d-detail
    .section--final-cta {
        padding-top: 50px;
        padding-bottom: 54px;
    }

    .service-detail-page--3d-detail
    .final-cta {
        padding:
            28px
            22px;

        border-radius: 18px;

        text-align: center;
    }

    .service-detail-page--3d-detail
    .final-cta__actions {
        width: 100%;

        justify-content: center;
    }

    .service-detail-page--3d-detail
    .final-cta__actions .button {
        width: 100%;
    }

}


/* light theme */

html[data-theme="light"]
.service-detail-page--3d-detail
.faq-item {
    background:
        rgba(255, 255, 255, .94);

    border-color:
        rgba(15, 23, 42, .10);
}

html[data-theme="light"]
.service-detail-page--3d-detail
.faq-item summary {
    color: #172033;
}

html[data-theme="light"]
.service-detail-page--3d-detail
.faq-item__answer {
    color: #526079;
}


/* ==========================================================
   REVELMONT 3D DETAIL FAQ + CTA V8 END
   ========================================================== */


/* ==========================================================
   REVELMONT 3D DETAIL FAQ + CTA V8
   ========================================================== */


/* ----------------------------------------------------------
   FAQ
   ---------------------------------------------------------- */

.service-detail-page--3d-detail .faq-layout {
    display: grid;
    grid-template-columns:
        minmax(260px, .72fr)
        minmax(0, 1.28fr);

    max-width: 1120px;

    margin:
        0 auto;

    gap: 54px;

    align-items: start;
}


.service-detail-page--3d-detail
.faq-layout > div:first-child {
    position: sticky;
    top: 110px;
}


.service-detail-page--3d-detail
.faq-layout > div:first-child h2 {
    max-width: 420px;

    margin-bottom: 16px;

    font-size:
        clamp(
            1.8rem,
            3vw,
            2.55rem
        );

    line-height: 1.1;

    text-wrap: balance;
}


.service-detail-page--3d-detail
.faq-layout .section-lead {
    max-width: 420px;

    line-height: 1.7;
}


.service-detail-page--3d-detail
.faq-list {
    display: grid;
    gap: 12px;
}


.service-detail-page--3d-detail
.faq-item {
    overflow: hidden;

    border:
        1px solid
        rgba(148, 163, 184, .20);

    border-radius: 16px;

    background:
        rgba(8, 18, 47, .34);

    transition:
        border-color .2s ease,
        background .2s ease;
}


.service-detail-page--3d-detail
.faq-item[open] {
    border-color:
        rgba(34, 211, 238, .34);

    background:
        rgba(8, 22, 54, .58);
}


.service-detail-page--3d-detail
.faq-item summary {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    min-height: 72px;

    padding:
        18px
        22px;

    cursor: pointer;

    color: #f8fafc;

    font-size: 1rem;
    font-weight: 780;
    line-height: 1.45;

    list-style: none;
}


.service-detail-page--3d-detail
.faq-item summary::-webkit-details-marker {
    display: none;
}


.service-detail-page--3d-detail
.faq-item summary > span {
    display: inline-flex;

    flex: 0 0 auto;

    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    border:
        1px solid
        rgba(34, 211, 238, .28);

    border-radius: 50%;

    color: #67e8f9;

    background:
        rgba(34, 211, 238, .08);

    font-size: 1.2rem;
    font-weight: 500;

    transition:
        transform .22s ease,
        background .22s ease;
}


.service-detail-page--3d-detail
.faq-item[open] summary > span {
    transform: rotate(45deg);

    background:
        rgba(34, 211, 238, .15);
}


.service-detail-page--3d-detail
.faq-item__answer {
    padding:
        0
        22px
        22px;

    color:
        rgba(226, 232, 240, .86);

    line-height: 1.7;
}


.service-detail-page--3d-detail
.faq-item__answer p:last-child {
    margin-bottom: 0;
}


/* ----------------------------------------------------------
   FINAL CTA
   ---------------------------------------------------------- */

.service-detail-page--3d-detail
.section--final-cta {
    padding-top: 74px;
    padding-bottom: 78px;

    background:
        transparent;
}


.service-detail-page--3d-detail
.final-cta {
    position: relative;

    display: grid;

    grid-template-columns:
        minmax(0, 1.35fr)
        auto;

    width: 100%;
    max-width: 1120px;

    margin:
        0 auto;

    gap: 42px;

    align-items: center;

    overflow: hidden;

    padding:
        40px
        44px;

    border:
        1px solid
        rgba(34, 211, 238, .24);

    border-radius: 22px;

    background:
        radial-gradient(
            circle at 92% 15%,
            rgba(34, 211, 238, .15),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #0e1939 0%,
            #152650 100%
        );

    box-shadow:
        0 18px 48px
        rgba(2, 8, 23, .16);
}


.service-detail-page--3d-detail
.final-cta::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #22d3ee,
            #3b82f6,
            transparent
        );
}


.service-detail-page--3d-detail
.final-cta .eyebrow {
    color: #67e8f9;
}


.service-detail-page--3d-detail
.final-cta h2 {
    max-width: 700px;

    margin-bottom: 12px;

    color: #fff;

    font-size:
        clamp(
            1.7rem,
            2.8vw,
            2.45rem
        );

    line-height: 1.12;

    text-wrap: balance;
}


.service-detail-page--3d-detail
.final-cta p {
    max-width: 720px;

    margin-bottom: 0;

    color:
        rgba(226, 232, 240, .86);

    line-height: 1.7;
}


.service-detail-page--3d-detail
.final-cta__actions {
    display: flex;

    align-items: center;
    justify-content: flex-end;
}


.service-detail-page--3d-detail
.final-cta__actions .button {
    min-width: 180px;
    min-height: 52px;

    justify-content: center;

    border-radius: 13px;

    white-space: nowrap;
}


/* ----------------------------------------------------------
   TABLET
   ---------------------------------------------------------- */

@media (max-width: 900px) {

    .service-detail-page--3d-detail
    .faq-layout {
        grid-template-columns: 1fr;

        max-width: 720px;

        gap: 30px;
    }

    .service-detail-page--3d-detail
    .faq-layout > div:first-child {
        position: static;

        text-align: center;
    }

    .service-detail-page--3d-detail
    .faq-layout > div:first-child h2,
    .service-detail-page--3d-detail
    .faq-layout .section-lead {
        margin-left: auto;
        margin-right: auto;
    }

    .service-detail-page--3d-detail
    .final-cta {
        grid-template-columns: 1fr;

        max-width: 720px;

        gap: 26px;
    }

    .service-detail-page--3d-detail
    .final-cta__actions {
        justify-content: flex-start;
    }

}


/* ----------------------------------------------------------
   MOBILE
   ---------------------------------------------------------- */

@media (max-width: 640px) {

    .service-detail-page--3d-detail
    .faq-item {
        border-radius: 14px;
    }

    .service-detail-page--3d-detail
    .faq-item summary {
        min-height: 64px;

        padding:
            16px
            17px;

        font-size: .96rem;
    }

    .service-detail-page--3d-detail
    .faq-item__answer {
        padding:
            0
            17px
            18px;
    }

    .service-detail-page--3d-detail
    .section--final-cta {
        padding-top: 50px;
        padding-bottom: 54px;
    }

    .service-detail-page--3d-detail
    .final-cta {
        padding:
            28px
            22px;

        border-radius: 18px;

        text-align: center;
    }

    .service-detail-page--3d-detail
    .final-cta__actions {
        width: 100%;

        justify-content: center;
    }

    .service-detail-page--3d-detail
    .final-cta__actions .button {
        width: 100%;
    }

}


/* light theme */

html[data-theme="light"]
.service-detail-page--3d-detail
.faq-item {
    background:
        rgba(255, 255, 255, .94);

    border-color:
        rgba(15, 23, 42, .10);
}

html[data-theme="light"]
.service-detail-page--3d-detail
.faq-item summary {
    color: #172033;
}

html[data-theme="light"]
.service-detail-page--3d-detail
.faq-item__answer {
    color: #526079;
}


/* ==========================================================
   REVELMONT 3D DETAIL FAQ + CTA V8 END
   ========================================================== */


/* ==========================================================
   REVELMONT DESKTOP NAV GHOST FIX V10

   - mouse click must not keep dropdown visually open
   - keyboard focus-visible remains accessible
   - dropdown always renders above page content
   ========================================================== */

@media (min-width: 981px) {

    /* Header owns the navigation stacking context */
    .site-header {
        z-index: 5000 !important;
        isolation: isolate;
    }

    /* Default state must always be completely hidden */
    .site-header
    .desktop-nav__group
    .desktop-nav__dropdown {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;

        transform:
            translate(-50%, -8px) !important;
    }


    /* Normal mouse hover */
    .site-header
    .desktop-nav__group:hover
    .desktop-nav__dropdown {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;

        transform:
            translate(-50%, 0) !important;
    }


    /*
       Keyboard navigation.
       :focus-visible prevents ordinary mouse focus
       from leaving the menu visibly open.
    */
    .site-header
    .desktop-nav__group:has(:focus-visible)
    .desktop-nav__dropdown {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;

        transform:
            translate(-50%, 0) !important;
    }


    /*
       Explicitly defeat the older :focus-within rule
       when the pointer is no longer over the group
       and there is no keyboard-visible focus.
    */
    .site-header
    .desktop-nav__group:focus-within:not(:hover):not(:has(:focus-visible))
    .desktop-nav__dropdown {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;

        transform:
            translate(-50%, -8px) !important;
    }


    /* Chevron follows the same behavior */
    .site-header
    .desktop-nav__group:focus-within:not(:hover):not(:has(:focus-visible))
    .desktop-nav__chevron {
        transform: rotate(0deg) !important;
    }


    /* Dropdown itself above page content */
    .site-header
    .desktop-nav__dropdown {
        z-index: 5100 !important;
    }

}


/* ==========================================================
   REVELMONT DESKTOP NAV GHOST FIX V10 END
   ========================================================== */

/* =========================================================
   REVELMONT 3D PRINT GALLERY V2
   Dedicated polish for /sluzby/zakazkovy-3d-tisk/
   ========================================================= */

.service-detail-page--3d-print
.service-detail-gallery__grid {
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;

    gap: 24px;
}

.service-detail-page--3d-print
.service-detail-gallery figure {
    width: 100%;
    margin: 0;
}

.service-detail-page--3d-print
.service-detail-gallery figure img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio: 640 / 420;
    object-fit: cover;
}

@media (max-width: 680px) {

    .service-detail-page--3d-print
    .service-detail-gallery__grid {
        grid-template-columns: 1fr;

        max-width: 620px;
    }

}

/* REVELMONT 3D PRINT GALLERY V2 END */


/* =========================================================
   REVELMONT 3D PRINT GALLERY V7
   Desktop 3 / Tablet 2 / Mobile 1
   ========================================================= */

.service-detail-page--3d-print
.service-detail-gallery__grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    max-width: 1220px;

    margin-left: auto;
    margin-right: auto;

    gap: 22px;
}


.service-detail-page--3d-print
.service-detail-gallery figure {
    position: relative;

    width: 100%;

    margin: 0;

    overflow: hidden;

    border-radius: 18px;

    border:
        1px solid
        rgba(34, 197, 94, .26);

    background: #08101b;

    box-shadow:
        0 16px 34px
        rgba(0, 0, 0, .16);
}


.service-detail-page--3d-print
.service-detail-gallery figure::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    z-index: 2;

    height: 3px;

    background:
        linear-gradient(
            90deg,
            #22c55e,
            #4ade80
        );

    pointer-events: none;
}


.service-detail-page--3d-print
.service-detail-gallery figure img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio: 12 / 7;

    object-fit: cover;

    transition:
        transform .28s ease,
        filter .28s ease;
}


@media (hover: hover) {

    .service-detail-page--3d-print
    .service-detail-gallery figure:hover img {

        transform:
            scale(1.035);

        filter:
            brightness(1.04);
    }

}


@media (max-width: 980px) {

    .service-detail-page--3d-print
    .service-detail-gallery__grid {

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        max-width: 820px;
    }

}


@media (max-width: 680px) {

    .service-detail-page--3d-print
    .service-detail-gallery__grid {

        grid-template-columns:
            1fr;

        max-width: 620px;
    }

}


/* REVELMONT 3D PRINT GALLERY V7 END */



/* REVELMONT_TAPHOME_UNCROPPED_RGB_V1 */
/* TapHome only: keep the whole image visible, never crop its edges. */
body.service-detail-page--taphome .service-detail-hero__visual,
body.service-detail-page--taphome .service-detail-hero__visual picture {
    overflow: visible !important;
}
body.service-detail-page--taphome .service-detail-hero__visual img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block;
    border-radius: 18px;
}
/* Select the TapHome item by its unique URL: works in desktop and mobile nav
   without rewriting the shared base.html or affecting other links. */
nav a[href="/sluzby/taphome/"],
nav a[href$="/sluzby/taphome/"] {
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px !important;
    padding: .65rem 1.05rem !important;
    font-weight: 800 !important;
    color: #fff !important;
    border: 2px solid transparent !important;
    background: linear-gradient(#142244,#142244) padding-box,
                linear-gradient(115deg,#ff3774,#6e67ff,#00d7ff,#5cffb4,#ffcb47,#ff3774) border-box !important;
    background-size: 100% 100%, 350% 350% !important;
    box-shadow: 0 0 13px rgba(0,200,255,.30), 0 0 20px rgba(131,88,255,.16);
    animation: rv-taphome-rgb 5s linear infinite;
    transition: transform .2s ease, box-shadow .2s ease;
}
nav a[href="/sluzby/taphome/"]:hover,
nav a[href$="/sluzby/taphome/"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 0 18px rgba(0,200,255,.48), 0 0 28px rgba(158,89,255,.28);
}
@keyframes rv-taphome-rgb {
    0% { background-position: 0 0, 0% 50%; }
    100% { background-position: 0 0, 100% 50%; }
}
@media (prefers-reduced-motion: reduce) {
    nav a[href="/sluzby/taphome/"],
    nav a[href$="/sluzby/taphome/"] { animation: none !important; }
}

/* REVELMONT_TAPHOME_FIX_V2: TapHome hero without crop + clearly animated menu. */
body.service-detail-page--taphome .service-detail-hero__visual {
    overflow: visible !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
}
body.service-detail-page--taphome .service-detail-hero__visual > img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
    clip-path: none !important;
}
body .site-header .desktop-nav a[href="/sluzby/taphome/"],
body .mobile-nav a[href="/sluzby/taphome/"] {
    position: relative !important;
    isolation: isolate;
    color: #fff !important;
    font-weight: 800 !important;
    border: 2px solid #00d9ff;
    border-radius: 13px !important;
    background: #152344 !important;
    box-shadow: 0 0 12px #00d9ff90, inset 0 0 12px #00d9ff36;
    animation: rv-taphome-rgb-v2 4.5s linear infinite !important;
}
@keyframes rv-taphome-rgb-v2 {
    0%, 100% { border-color: #00d9ff; box-shadow: 0 0 12px #00d9ffaa, inset 0 0 12px #00d9ff36; }
    25% { border-color: #f441c3; box-shadow: 0 0 17px #f441c3cc, inset 0 0 12px #f441c344; }
    50% { border-color: #48ee9b; box-shadow: 0 0 17px #48ee9bcc, inset 0 0 12px #48ee9b44; }
    75% { border-color: #ffc34c; box-shadow: 0 0 17px #ffc34ccc, inset 0 0 12px #ffc34c44; }
}
@media (prefers-reduced-motion: reduce) {
    body .site-header .desktop-nav a[href="/sluzby/taphome/"],
    body .mobile-nav a[href="/sluzby/taphome/"] { animation: none !important; }
}

/* REVELMONT_TAPHOME_RGB_CARDS_V3 */
/* Scoped exclusively to TapHome: prevent legacy process grid from shrinking text. */
body.service-detail-page--taphome .service-feature-grid .service-feature-card,
body.service-detail-page--taphome ol.service-process-list > li {
    position: relative !important;
    display: block !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    isolation: isolate;
    border: 1px solid rgba(72,201,255,.32) !important;
    border-radius: 20px !important;
    background: #121d39 !important;
    box-shadow: 0 10px 28px rgba(0,0,0,.17) !important;
    padding: 28px 28px 30px !important;
    height: auto !important;
    min-height: 0 !important;
    transition: transform .25s ease !important;
}

/* Absolute neon border does not affect card width, grid layout, or text wrapping. */
body.service-detail-page--taphome .service-feature-grid .service-feature-card::after,
body.service-detail-page--taphome ol.service-process-list > li::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: -2px !important;
    border: 2px solid #00d5ff !important;
    border-radius: 21px !important;
    pointer-events: none !important;
    z-index: 3 !important;
    box-shadow: 0 0 10px rgba(0,213,255,.33), inset 0 0 6px rgba(0,213,255,.08);
    animation: rv-taphome-outline-v3 7s linear infinite !important;
}
body.service-detail-page--taphome .service-feature-grid .service-feature-card:nth-child(2n)::after,
body.service-detail-page--taphome ol.service-process-list > li:nth-child(2n)::after {
    animation-delay: -2s !important;
}
body.service-detail-page--taphome .service-feature-grid .service-feature-card:nth-child(3n)::after,
body.service-detail-page--taphome ol.service-process-list > li:nth-child(3n)::after {
    animation-delay: -4s !important;
}
@keyframes rv-taphome-outline-v3 {
    0%, 100% { border-color:#00d5ff; box-shadow:0 0 11px rgba(0,213,255,.40); }
    25% { border-color:#b777ff; box-shadow:0 0 15px rgba(183,119,255,.48); }
    50% { border-color:#15eab0; box-shadow:0 0 16px rgba(21,234,176,.43); }
    75% { border-color:#ff6fa4; box-shadow:0 0 15px rgba(255,111,164,.44); }
}
body.service-detail-page--taphome .service-feature-grid .service-feature-card:hover,
body.service-detail-page--taphome ol.service-process-list > li:hover {
    transform: translateY(-4px) !important;
}

/* Original process cards contained a 2-column grid. Its leftover child sizing
   caused every Czech word to wrap into a narrow strip. */
body.service-detail-page--taphome ol.service-process-list > li > div {
    display: block !important;
    position: relative !important;
    grid-column: 1 / -1 !important;
    min-width: 0 !important;
    max-width: none !important;
    width: 100% !important;
    flex: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}
body.service-detail-page--taphome ol.service-process-list > li > span:first-child {
    display: none !important;
}
body.service-detail-page--taphome ol.service-process-list {
    list-style: none !important;
}
body.service-detail-page--taphome .service-feature-card h3,
body.service-detail-page--taphome ol.service-process-list > li h3 {
    font-size: clamp(1.45rem,1.75vw,1.85rem) !important;
    line-height: 1.25 !important;
    margin: 0 0 16px !important;
    font-weight: 800 !important;
    color: #fff !important;
    text-wrap: pretty;
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: normal !important;
}
body.service-detail-page--taphome .service-feature-card p,
body.service-detail-page--taphome ol.service-process-list > li p {
    font-size: clamp(1.08rem,1.24vw,1.22rem) !important;
    line-height: 1.65 !important;
    color: #eaf3ff !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    white-space: normal !important;
    max-width: none !important;
    width: auto !important;
}
@media (max-width: 760px) {
    body.service-detail-page--taphome .service-feature-grid .service-feature-card,
    body.service-detail-page--taphome ol.service-process-list > li {
        padding: 24px 22px 26px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    body.service-detail-page--taphome .service-feature-grid .service-feature-card::after,
    body.service-detail-page--taphome ol.service-process-list > li::after {
        animation: none !important;
    }
    body.service-detail-page--taphome .service-feature-grid .service-feature-card,
    body.service-detail-page--taphome ol.service-process-list > li {
        transition: none !important;
    }
}
/* REVELMONT_TAPHOME_RGB_CARDS_V3 END */

/* REVELMONT_TAPHOME_RGB_SURFACES_V4 */
/* Jemné, ale skutečně pohyblivé RGB světlo uvnitř TapHome karet. */
body.service-detail-page--taphome .service-feature-grid .service-feature-card,
body.service-detail-page--taphome ol.service-process-list > li {
    isolation: isolate !important;
    overflow: hidden !important;
}
body.service-detail-page--taphome .service-feature-grid .service-feature-card::before,
body.service-detail-page--taphome ol.service-process-list > li::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    border-radius: inherit;
    background:
        radial-gradient(ellipse at 16% 10%, rgba(0,210,255,.42), transparent 66%),
        radial-gradient(ellipse at 95% 95%, rgba(156,73,255,.38), transparent 64%),
        linear-gradient(115deg, rgba(0,230,175,.15), rgba(255,80,150,.15));
    opacity: .82 !important;
    animation: rv-taphome-surface-v4 10s linear infinite !important;
    transform: translateZ(0);
}
body.service-detail-page--taphome .service-feature-grid .service-feature-card:nth-child(2n)::before,
body.service-detail-page--taphome ol.service-process-list > li:nth-child(2n)::before {
    animation-delay: -3.3s !important;
}
body.service-detail-page--taphome .service-feature-grid .service-feature-card:nth-child(3n)::before,
body.service-detail-page--taphome ol.service-process-list > li:nth-child(3n)::before {
    animation-delay: -6.6s !important;
}
body.service-detail-page--taphome .service-feature-grid .service-feature-card > *,
body.service-detail-page--taphome ol.service-process-list > li > * {
    position: relative !important;
    z-index: 1 !important;
}
body.service-detail-page--taphome .service-feature-grid .service-feature-card:hover::before,
body.service-detail-page--taphome ol.service-process-list > li:hover::before {
    opacity: 1 !important;
}
@keyframes rv-taphome-surface-v4 {
    0%, 100% { filter: hue-rotate(0deg); opacity: .70; }
    25% { filter: hue-rotate(95deg); opacity: .88; }
    50% { filter: hue-rotate(185deg); opacity: .75; }
    75% { filter: hue-rotate(275deg); opacity: .94; }
}
/* 3 karty nahore a 2 vycentrovane dole; bez zasahu do ostatnich sluzeb. */
@media (min-width: 861px) {
    body.service-detail-page--taphome ol.service-process-list {
        display: grid !important;
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
        column-gap: 18px !important;
        row-gap: 18px !important;
    }
    body.service-detail-page--taphome ol.service-process-list > li {
        grid-column: span 2;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
    }
    body.service-detail-page--taphome ol.service-process-list > li:nth-child(4) {
        grid-column: 2 / span 2;
    }
    body.service-detail-page--taphome ol.service-process-list > li:nth-child(5) {
        grid-column: 4 / span 2;
    }
}
@media (max-width: 860px) {
    body.service-detail-page--taphome ol.service-process-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }
    body.service-detail-page--taphome ol.service-process-list > li {
        grid-column: auto !important;
    }
}
@media (max-width: 600px) {
    body.service-detail-page--taphome ol.service-process-list {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    body.service-detail-page--taphome .service-feature-grid .service-feature-card::before,
    body.service-detail-page--taphome ol.service-process-list > li::before {
        animation: none !important;
        filter: none !important;
        opacity: .7 !important;
    }
}
/* REVELMONT_TAPHOME_RGB_SURFACES_V4 END */


/* REVELMONT_TAPHOME_RGB_SURFACE_V5 */
/* TapHome – tmavy az svetly RGB efekt i uvnitr karet, ale stale dobre citelny. */
body.service-detail-page--taphome .service-feature-card,
body.service-detail-page--taphome .service-process-list li {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    border-radius: 22px;
    border: 1px solid rgba(70, 135, 255, .30) !important;
    background:
        linear-gradient(180deg,
            rgba(8, 15, 40, .98) 0%,
            rgba(12, 25, 62, .97) 38%,
            rgba(18, 39, 92, .94) 72%,
            rgba(10, 20, 48, .98) 100%) !important;
    box-shadow:
        0 12px 28px rgba(2, 8, 28, .30),
        0 0 0 1px rgba(0, 220, 255, .06) inset;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

body.service-detail-page--taphome .service-feature-card::before,
body.service-detail-page--taphome .service-process-list li::before {
    content: "";
    position: absolute;
    inset: -28%;
    z-index: 0;
    pointer-events: none;
    border-radius: 30px;
    background:
        radial-gradient(circle at 12% 18%, rgba(0, 242, 255, .22) 0%, rgba(0, 242, 255, .10) 12%, transparent 34%),
        radial-gradient(circle at 86% 20%, rgba(120, 86, 255, .20) 0%, rgba(120, 86, 255, .10) 14%, transparent 36%),
        radial-gradient(circle at 80% 82%, rgba(84, 255, 179, .16) 0%, rgba(84, 255, 179, .07) 15%, transparent 38%),
        radial-gradient(circle at 16% 84%, rgba(255, 68, 170, .14) 0%, rgba(255, 68, 170, .06) 13%, transparent 36%),
        linear-gradient(135deg,
            rgba(7, 14, 38, .86) 0%,
            rgba(17, 35, 84, .70) 35%,
            rgba(10, 22, 54, .78) 62%,
            rgba(5, 10, 28, .88) 100%);
    filter: blur(22px) saturate(120%);
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transform-origin: center;
    animation: rv-taphome-surface-flow 13s ease-in-out infinite alternate;
}

body.service-detail-page--taphome .service-feature-card::after,
body.service-detail-page--taphome .service-process-list li::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    border-radius: 22px;
    padding: 1.5px;
    background: linear-gradient(135deg,
        rgba(0, 230, 255, .95),
        rgba(112, 92, 255, .88),
        rgba(92, 255, 186, .92),
        rgba(0, 230, 255, .95));
    background-size: 260% 260%;
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: rv-taphome-border-flow 9s linear infinite;
    opacity: .95;
}

body.service-detail-page--taphome .service-feature-card > *,
body.service-detail-page--taphome .service-process-list li > * {
    position: relative;
    z-index: 1;
}

body.service-detail-page--taphome .service-feature-card:hover,
body.service-detail-page--taphome .service-process-list li:hover {
    transform: translateY(-3px);
    border-color: rgba(0, 235, 255, .52) !important;
    box-shadow:
        0 18px 36px rgba(3, 10, 33, .38),
        0 0 24px rgba(0, 230, 255, .18),
        0 0 36px rgba(112, 92, 255, .12);
}

body.service-detail-page--taphome .service-feature-card h3,
body.service-detail-page--taphome .service-process-list h3 {
    font-size: clamp(1.65rem, 2vw, 2.05rem) !important;
    line-height: 1.14 !important;
    letter-spacing: -.015em;
    margin-bottom: 1rem;
}

body.service-detail-page--taphome .service-feature-card p,
body.service-detail-page--taphome .service-process-list p {
    font-size: clamp(1.10rem, 1.28vw, 1.30rem) !important;
    line-height: 1.66 !important;
    color: rgba(241, 247, 255, .94) !important;
}

/* Lehce odlisena faze animace pro jednotlive karty. */
body.service-detail-page--taphome .service-feature-card:nth-child(2)::before,
body.service-detail-page--taphome .service-process-list li:nth-child(2)::before { animation-delay: -2.1s; }
body.service-detail-page--taphome .service-feature-card:nth-child(3)::before,
body.service-detail-page--taphome .service-process-list li:nth-child(3)::before { animation-delay: -4.2s; }
body.service-detail-page--taphome .service-feature-card:nth-child(4)::before,
body.service-detail-page--taphome .service-process-list li:nth-child(4)::before { animation-delay: -6.3s; }
body.service-detail-page--taphome .service-feature-card:nth-child(5)::before,
body.service-detail-page--taphome .service-process-list li:nth-child(5)::before { animation-delay: -8.4s; }
body.service-detail-page--taphome .service-feature-card:nth-child(6)::before,
body.service-detail-page--taphome .service-process-list li:nth-child(6)::before { animation-delay: -10.5s; }

body.service-detail-page--taphome .service-feature-card:nth-child(2)::after,
body.service-detail-page--taphome .service-process-list li:nth-child(2)::after { animation-delay: -1.7s; }
body.service-detail-page--taphome .service-feature-card:nth-child(3)::after,
body.service-detail-page--taphome .service-process-list li:nth-child(3)::after { animation-delay: -3.4s; }
body.service-detail-page--taphome .service-feature-card:nth-child(4)::after,
body.service-detail-page--taphome .service-process-list li:nth-child(4)::after { animation-delay: -5.1s; }
body.service-detail-page--taphome .service-feature-card:nth-child(5)::after,
body.service-detail-page--taphome .service-process-list li:nth-child(5)::after { animation-delay: -6.8s; }
body.service-detail-page--taphome .service-feature-card:nth-child(6)::after,
body.service-detail-page--taphome .service-process-list li:nth-child(6)::after { animation-delay: -8.5s; }

@keyframes rv-taphome-surface-flow {
    0% {
        transform: translate3d(-5%, -3%, 0) scale(1.02) rotate(0deg);
        filter: blur(20px) saturate(112%);
        opacity: .92;
    }
    50% {
        transform: translate3d(4%, 2%, 0) scale(1.08) rotate(8deg);
        filter: blur(26px) saturate(130%);
        opacity: 1;
    }
    100% {
        transform: translate3d(6%, -4%, 0) scale(1.05) rotate(-7deg);
        filter: blur(22px) saturate(122%);
        opacity: .96;
    }
}

@keyframes rv-taphome-border-flow {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

@media (max-width: 980px) {
    body.service-detail-page--taphome .service-feature-card,
    body.service-detail-page--taphome .service-process-list li {
        border-radius: 20px;
    }

    body.service-detail-page--taphome .service-feature-card h3,
    body.service-detail-page--taphome .service-process-list h3 {
        font-size: clamp(1.35rem, 4.7vw, 1.8rem) !important;
    }

    body.service-detail-page--taphome .service-feature-card p,
    body.service-detail-page--taphome .service-process-list p {
        font-size: clamp(1rem, 3.3vw, 1.14rem) !important;
        line-height: 1.58 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.service-detail-page--taphome .service-feature-card::before,
    body.service-detail-page--taphome .service-process-list li::before,
    body.service-detail-page--taphome .service-feature-card::after,
    body.service-detail-page--taphome .service-process-list li::after {
        animation: none !important;
    }
}
/* REVELMONT_TAPHOME_RGB_SURFACE_V5 END */


/* REVELMONT_TAPHOME_FUTURISTIC_V2 */
/* Samostatny hi-tech styl pro TapHome; ostatni stranky jsou nedotceny. */
body.service-detail-page--taphome {
  background-color:#080e27 !important;
  background-image:
    radial-gradient(ellipse 60% 35% at 15% 10%,rgba(0,217,255,.20),transparent 75%),
    radial-gradient(ellipse 57% 40% at 90% 26%,rgba(155,66,255,.26),transparent 75%),
    radial-gradient(ellipse 45% 35% at 22% 66%,rgba(11,255,179,.13),transparent 78%),
    radial-gradient(ellipse 55% 34% at 83% 90%,rgba(255,43,148,.17),transparent 78%),
    linear-gradient(145deg,#080e27 0%,#142052 46%,#080f2c 100%) !important;
}
body.service-detail-page--taphome #main-content {
  position:relative;
  isolation:isolate;
  overflow:clip;
  background:transparent !important;
}
/* Svetelna mrizka a hladky barevny tok. */
body.service-detail-page--taphome #main-content::before {
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
  opacity:.8 !important;
  background-image:
    linear-gradient(rgba(56,169,255,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(56,169,255,.09) 1px,transparent 1px),
    radial-gradient(ellipse 34% 15% at 25% 18%,rgba(0,231,255,.20),transparent),
    radial-gradient(ellipse 40% 20% at 80% 55%,rgba(122,56,255,.22),transparent),
    radial-gradient(ellipse 30% 18% at 24% 82%,rgba(0,255,176,.16),transparent);
  background-size:48px 48px,48px 48px,100% 100%,100% 100%,100% 100%;
  animation:rv-taphome-grid-shift-v2 26s linear infinite;
}
body.service-detail-page--taphome #main-content::after {
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
  opacity:.78 !important;
  background:
    radial-gradient(ellipse 34% 12% at 12% 18%,rgba(0,219,255,.24),transparent 80%),
    radial-gradient(ellipse 42% 13% at 89% 48%,rgba(149,67,255,.25),transparent 80%),
    radial-gradient(ellipse 33% 14% at 21% 78%,rgba(0,248,167,.18),transparent 80%);
  animation:rv-taphome-aurora-v2 16s ease-in-out infinite alternate;
}
body.service-detail-page--taphome #main-content > * {
  position:relative;
  z-index:1;
}
body.service-detail-page--taphome .service-detail-hero,
body.service-detail-page--taphome #main-content > .section {
  background:transparent !important;
}
body.service-detail-page--taphome .service-detail-hero {
  border-bottom:1px solid rgba(64,208,255,.16);
}
body.service-detail-page--taphome #main-content > .section {
  border-bottom:1px solid rgba(80,170,255,.12);
}
body.service-detail-page--taphome .service-detail-hero .container,
body.service-detail-page--taphome #main-content > .section > .container {
  position:relative;
  z-index:2;
}
@keyframes rv-taphome-grid-shift-v2 {
  0% {background-position:0 0,0 0,0 0,0 0,0 0;}
  100% {background-position:48px 48px,-48px 48px,0 0,0 0,0 0;}
}
@keyframes rv-taphome-aurora-v2 {
  0% {opacity:.45;transform:translate3d(-2%,0,0) scale(1);}
  50% {opacity:.9;transform:translate3d(2%,1%,0) scale(1.05);}
  100% {opacity:.62;transform:translate3d(-1%,-1%,0) scale(1.02);}
}
@media(max-width:780px) {
  body.service-detail-page--taphome #main-content::before {
    opacity:.42 !important;
    background-size:32px 32px,32px 32px,100% 100%,100% 100%,100% 100%;
  }
  body.service-detail-page--taphome #main-content::after {opacity:.46 !important;}
}
@media(prefers-reduced-motion:reduce) {
  body.service-detail-page--taphome #main-content::before,
  body.service-detail-page--taphome #main-content::after {animation:none !important;transform:none !important;}
}
/* REVELMONT_TAPHOME_FUTURISTIC_V2 END */



/* REVELMONT_TAPHOME_FUTURISTIC_BG_V3_START */
/* TapHome: futuristicke pozadi bez teckoveho rastru */
body.service-detail-page--taphome {
    background:
        radial-gradient(circle at 12% 18%, rgba(0, 229, 255, .14), transparent 0 22%),
        radial-gradient(circle at 84% 16%, rgba(88, 101, 242, .18), transparent 0 24%),
        radial-gradient(circle at 78% 58%, rgba(168, 85, 247, .15), transparent 0 22%),
        radial-gradient(circle at 20% 78%, rgba(16, 185, 129, .12), transparent 0 22%),
        linear-gradient(135deg, #081321 0%, #0d1730 28%, #121f46 56%, #18275a 78%, #101d3f 100%) !important;
    background-attachment: fixed !important;
}

body.service-detail-page--taphome #main-content,
body.service-detail-page--taphome .service-detail-hero,
body.service-detail-page--taphome .section,
body.service-detail-page--taphome .section--final-cta {
    position: relative;
    overflow: hidden;
}

body.service-detail-page--taphome #main-content::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px),
        linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px);
    background-size: 90px 90px, 90px 90px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.52), rgba(0,0,0,.18));
    opacity: .18;
}

body.service-detail-page--taphome #main-content::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(0, 229, 255, .22), transparent 0 18%),
        radial-gradient(circle at 82% 22%, rgba(124, 58, 237, .20), transparent 0 18%),
        radial-gradient(circle at 72% 80%, rgba(59, 130, 246, .18), transparent 0 20%),
        linear-gradient(120deg, transparent 0 44%, rgba(255,255,255,.06) 50%, transparent 56%),
        linear-gradient(300deg, transparent 0 46%, rgba(0,229,255,.06) 50%, transparent 54%);
    filter: blur(8px);
    animation: rv-taphome-bg-shift 16s ease-in-out infinite alternate;
    opacity: .92;
}

body.service-detail-page--taphome .service-detail-hero > .container,
body.service-detail-page--taphome .section > .container,
body.service-detail-page--taphome .section--final-cta > .container {
    position: relative;
    z-index: 1;
}

body.service-detail-page--taphome .service-detail-hero::before,
body.service-detail-page--taphome .section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        linear-gradient(135deg, rgba(255,255,255,.028) 0%, transparent 30%, rgba(0,229,255,.045) 58%, transparent 100%);
    opacity: .9;
}

body.service-detail-page--taphome .service-detail-hero::after {
    content: "";
    position: absolute;
    right: -160px;
    top: 40px;
    width: 540px;
    height: 540px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0,229,255,.16) 0%, rgba(0,229,255,.06) 32%, transparent 68%);
    filter: blur(14px);
    pointer-events: none;
    z-index: 0;
}

body.service-detail-page--taphome .service-feature-card,
body.service-detail-page--taphome .service-process-list li,
body.service-detail-page--taphome .final-cta,
body.service-detail-page--taphome .faq-item {
    backdrop-filter: blur(10px);
}

@keyframes rv-taphome-bg-shift {
    0% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: .86;
    }
    50% {
        transform: translate3d(-1.5%, 1.2%, 0) scale(1.03);
        opacity: 1;
    }
    100% {
        transform: translate3d(1.8%, -1.4%, 0) scale(1.05);
        opacity: .90;
    }
}

@media (max-width: 900px) {
    body.service-detail-page--taphome #main-content::before {
        background-size: 64px 64px, 64px 64px;
        opacity: .14;
    }

    body.service-detail-page--taphome .service-detail-hero::after {
        width: 360px;
        height: 360px;
        right: -120px;
        top: 80px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.service-detail-page--taphome #main-content::after {
        animation: none !important;
    }
}
/* REVELMONT_TAPHOME_FUTURISTIC_BG_V3_END */

/* REVELMONT_TAPHOME_BG_V4_OVERRIDE_START */
/* All selectors are limited to the TapHome service detail. */
html body.service-detail-page--taphome,
html body.service-detail-page--taphome #main-content,
html body.service-detail-page--taphome .service-detail-hero,
html body.service-detail-page--taphome #main-content > section {
    background-image: none !important;
    background-color: #101a38 !important;
}
/* Remove existing dot/grid overlays, even if they were declared with !important. */
html body.service-detail-page--taphome #main-content::before,
html body.service-detail-page--taphome #main-content::after,
html body.service-detail-page--taphome .service-detail-hero::before,
html body.service-detail-page--taphome .service-detail-hero::after,
html body.service-detail-page--taphome #main-content > section::before,
html body.service-detail-page--taphome #main-content > section::after {
    content: none !important;
    display: none !important;
    background: none !important;
    animation: none !important;
}
html body.service-detail-page--taphome #main-content {
    background:
        radial-gradient(ellipse 65% 42% at 7% 10%, rgba(0,184,255,.20), transparent 72%),
        radial-gradient(ellipse 55% 35% at 98% 25%, rgba(126,64,235,.19), transparent 75%),
        radial-gradient(ellipse 65% 40% at 12% 66%, rgba(0,196,168,.12), transparent 75%),
        radial-gradient(ellipse 55% 35% at 95% 89%, rgba(57,95,245,.20), transparent 75%),
        linear-gradient(145deg,#0b142d 0%,#182653 45%,#0e1b3e 100%) !important;
    background-attachment: scroll !important;
}
html body.service-detail-page--taphome #main-content > section,
html body.service-detail-page--taphome .service-detail-hero {
    background: transparent !important;
}
/* Ensure existing text and RGB cards remain above the page backdrop. */
html body.service-detail-page--taphome #main-content > section > .container {
    position: relative;
    z-index: 1;
}
/* REVELMONT_TAPHOME_BG_V4_OVERRIDE_END */

/* REVELMONT_TAPHOME_VIDEO_V1 */
body.service-detail-page--taphome .rv-taphome-video { position: relative; background: transparent; padding-top: 4rem; padding-bottom: 4.2rem; }
body.service-detail-page--taphome .rv-taphome-video .container { max-width: 1050px; margin-inline: auto; }
body.service-detail-page--taphome .rv-taphome-video__intro { text-align: center; margin-bottom: 1.6rem; }
body.service-detail-page--taphome .rv-taphome-video__intro h2 { color: #fff; font-size: clamp(1.8rem, 3vw, 2.65rem); line-height: 1.2; }
body.service-detail-page--taphome .rv-taphome-video__intro p:not(.eyebrow) { color: #d9e4f8; font-size: 1.05rem; }
body.service-detail-page--taphome .rv-taphome-video__frame { width: 100%; aspect-ratio: 16 / 9; background: #09142d; overflow: hidden; border-radius: 20px; border: 1px solid rgba(0,214,255,.5); box-shadow: 0 0 24px rgba(0,194,255,.14), 0 20px 48px rgba(0,0,0,.24); }
body.service-detail-page--taphome .rv-taphome-video__frame iframe { display: block; width: 100%; height: 100%; border: 0; }
body.service-detail-page--taphome .rv-taphome-video__link { text-align: center; margin: 1rem 0 0; }
body.service-detail-page--taphome .rv-taphome-video__link a { color: #90e9ff; text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 700px) { body.service-detail-page--taphome .rv-taphome-video { padding-block: 2.5rem; } body.service-detail-page--taphome .rv-taphome-video__frame { border-radius: 12px; } }

/* REVELMONT_TAPHOME_MOBILE_V1_START */
/* Only TapHome – no changes to other service pages. */
@media (max-width: 900px) {
  body.service-detail-page--taphome .service-detail-hero__grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 26px !important;
  }
  body.service-detail-page--taphome .service-detail-hero__grid > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  body.service-detail-page--taphome .service-detail-hero__visual {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  body.service-detail-page--taphome .service-detail-hero__visual img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 auto !important;
  }
  body.service-detail-page--taphome .service-feature-grid,
  body.service-detail-page--taphome ol.service-process-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  body.service-detail-page--taphome .service-feature-grid > *,
  body.service-detail-page--taphome ol.service-process-list > li {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }
  body.service-detail-page--taphome ol.service-process-list > li > div {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}
@media (max-width: 640px) {
  body.service-detail-page--taphome .service-detail-hero {
    padding-block: 34px 44px !important;
  }
  body.service-detail-page--taphome .service-detail-hero h1 {
    font-size: clamp(2rem, 9vw, 3rem) !important;
    line-height: 1.08 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  body.service-detail-page--taphome .service-detail-hero .page-hero__lead,
  body.service-detail-page--taphome .service-detail-hero p {
    font-size: 1.04rem !important;
    line-height: 1.65 !important;
  }
  body.service-detail-page--taphome .service-feature-grid,
  body.service-detail-page--taphome ol.service-process-list {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
  }
  body.service-detail-page--taphome .service-feature-card,
  body.service-detail-page--taphome ol.service-process-list > li {
    padding: 24px 22px !important;
    min-height: 0 !important;
    height: auto !important;
  }
  body.service-detail-page--taphome .service-feature-card h3,
  body.service-detail-page--taphome ol.service-process-list h3 {
    font-size: clamp(1.4rem, 6vw, 1.75rem) !important;
    line-height: 1.22 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  body.service-detail-page--taphome .service-feature-card p,
  body.service-detail-page--taphome ol.service-process-list p {
    font-size: 1.04rem !important;
    line-height: 1.68 !important;
    overflow-wrap: break-word !important;
  }
  body.service-detail-page--taphome .faq-layout,
  body.service-detail-page--taphome .final-cta {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
  }
  body.service-detail-page--taphome .final-cta__actions,
  body.service-detail-page--taphome .hero__actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
  }
  body.service-detail-page--taphome iframe {
    max-width: 100% !important;
  }
}
/* REVELMONT_TAPHOME_MOBILE_V1_END */

/* REVELMONT_TAPHOME_SEO_VIDEO_V2_START */
body.service-detail-page--taphome .rv-taphome-video__frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 20px;
    background: linear-gradient(125deg,#071225 0%,#172d5e 37%,#372073 70%,#0a2941 100%);
}
body.service-detail-page--taphome .rv-taphome-video__frame iframe {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
}
body.service-detail-page--taphome .rv-taphome-video__play {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 13px;
    width: 100%;
    height: 100%;
    min-height: 240px;
    padding: 20px;
    border: 1px solid rgba(98,214,255,.35);
    border-radius: inherit;
    background: radial-gradient(circle at 30% 30%,rgba(0,214,255,.15),transparent 48%),radial-gradient(circle at 75% 65%,rgba(154,80,255,.20),transparent 50%);
    color: #fff;
    cursor: pointer;
    text-align: center;
    font: inherit;
}
body.service-detail-page--taphome .rv-taphome-video__play:hover,
body.service-detail-page--taphome .rv-taphome-video__play:focus-visible {
    background-color: rgba(0, 168, 240, .10);
    outline: 2px solid #59d8ff;
    outline-offset: -3px;
}
body.service-detail-page--taphome .rv-taphome-video__play-circle {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    padding-left: 5px;
    border-radius: 50%;
    background: linear-gradient(135deg,#10c8fa,#6e62f5);
    box-shadow: 0 0 36px rgba(27,194,255,.28);
    font-size: 30px;
}
body.service-detail-page--taphome .rv-taphome-video__play-label {
    font-size: clamp(1.1rem,2.3vw,1.55rem);
    font-weight: 700;
}
body.service-detail-page--taphome .rv-taphome-video__play-privacy {
    color: #d0ddf2;
    font-size: clamp(.85rem,1.5vw,1rem);
}
@media (max-width: 500px) {
  body.service-detail-page--taphome .rv-taphome-video__frame { border-radius: 12px; }
  body.service-detail-page--taphome .rv-taphome-video__play { min-height: 175px; gap: 8px; }
  body.service-detail-page--taphome .rv-taphome-video__play-circle { width: 54px; height: 54px; font-size: 22px; }
}
/* REVELMONT_TAPHOME_SEO_VIDEO_V2_END */

/* REVELMONT_TAPHOME_CONTRAST_V1_START */
/* TapHome pouziva tmave RGB plochy i pri svetlem motivu.
   Text proto musi zustat kontrastni v obou rezimech. */
html[data-theme="light"] body.service-detail-page--taphome,
html[data-theme="dark"] body.service-detail-page--taphome,
body.service-detail-page--taphome {
    color: #f3f7ff !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content,
html[data-theme="dark"] body.service-detail-page--taphome #main-content,
body.service-detail-page--taphome #main-content {
    color: #f3f7ff !important;
}
body.service-detail-page--taphome #main-content h1,
body.service-detail-page--taphome #main-content h2,
body.service-detail-page--taphome #main-content h3,
body.service-detail-page--taphome #main-content h4,
body.service-detail-page--taphome #main-content .section-heading h2,
body.service-detail-page--taphome #main-content .service-feature-card h3,
body.service-detail-page--taphome #main-content .service-process-list li h3,
body.service-detail-page--taphome #main-content .rv-taphome-video__intro h2 {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .25);
}
body.service-detail-page--taphome #main-content p,
body.service-detail-page--taphome #main-content li,
body.service-detail-page--taphome #main-content .section-heading p,
body.service-detail-page--taphome #main-content .service-feature-card p,
body.service-detail-page--taphome #main-content .service-process-list li p,
body.service-detail-page--taphome #main-content .rv-taphome-video__intro p {
    color: #e1ebff !important;
    -webkit-text-fill-color: #e1ebff !important;
}
body.service-detail-page--taphome #main-content .eyebrow,
body.service-detail-page--taphome #main-content .service-detail-hero .eyebrow {
    color: #b6f3ff !important;
    -webkit-text-fill-color: #b6f3ff !important;
}
body.service-detail-page--taphome #main-content a:not(.btn):not(.button) {
    color: #8fe7ff;
}
body.service-detail-page--taphome #main-content a:not(.btn):not(.button):hover {
    color: #ffffff;
}
/* REVELMONT_TAPHOME_CONTRAST_V1_END */

/* REVELMONT_TAPHOME_READABLE_HOVER_V2_START */
/* Final, scoped contrast override. TapHome uses dark surfaces in both themes. */
html[data-theme="light"] body.service-detail-page--taphome,
html[data-theme="dark"] body.service-detail-page--taphome,
html[data-theme="light"] body.service-detail-page--taphome main,
html[data-theme="dark"] body.service-detail-page--taphome main {
  --rv-taphome-foreground: #f8fbff;
  --rv-taphome-secondary: #e3efff;
  color: #f8fbff !important;
}
html[data-theme="light"] body.service-detail-page--taphome main :is(h1,h2,h3,h4,h5,h6),
html[data-theme="dark"] body.service-detail-page--taphome main :is(h1,h2,h3,h4,h5,h6),
html[data-theme="light"] body.service-detail-page--taphome #main-content :is(h1,h2,h3,h4,h5,h6),
html[data-theme="dark"] body.service-detail-page--taphome #main-content :is(h1,h2,h3,h4,h5,h6) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background-image: none !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.25) !important;
}
html[data-theme="light"] body.service-detail-page--taphome main :is(p,li,.eyebrow,.service-detail-lead),
html[data-theme="dark"] body.service-detail-page--taphome main :is(p,li,.eyebrow,.service-detail-lead),
html[data-theme="light"] body.service-detail-page--taphome #main-content :is(p,li,.eyebrow),
html[data-theme="dark"] body.service-detail-page--taphome #main-content :is(p,li,.eyebrow) {
  color: #e3efff !important;
  -webkit-text-fill-color: #e3efff !important;
  opacity: 1 !important;
}
/* Links remain obvious and readable. */
html[data-theme="light"] body.service-detail-page--taphome .rv-taphome-video__link a,
html[data-theme="dark"] body.service-detail-page--taphome .rv-taphome-video__link a {
  color: #8eeaff !important;
  -webkit-text-fill-color: #8eeaff !important;
}
/* Large, visible preview instead of default browser-styled white button. */
html[data-theme="light"] body.service-detail-page--taphome button#rv-taphome-video-play,
html[data-theme="dark"] body.service-detail-page--taphome button#rv-taphome-video-play {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  padding: 18px !important;
  gap: 12px !important;
  border: 0 !important;
  border-radius: 18px !important;
  background:
    linear-gradient(120deg, rgba(5,14,35,.82), rgba(14,36,76,.77)),
    radial-gradient(circle at 50% 45%, rgba(0,217,255,.36), transparent 44%) !important;
  color: white !important;
  -webkit-text-fill-color: white !important;
  font-family: inherit !important;
  text-align: center !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  appearance: none !important;
}
body.service-detail-page--taphome #rv-taphome-video-play .rv-taphome-video__play-circle {
  display: grid !important;
  place-items: center !important;
  width: 82px !important;
  height: 82px !important;
  flex-shrink: 0;
  border-radius: 50% !important;
  background: linear-gradient(135deg,#04c8ed,#7153fa) !important;
  color: white !important;
  -webkit-text-fill-color: white !important;
  font-size: 30px !important;
  box-shadow: 0 0 35px rgba(0,213,255,.30) !important;
}
body.service-detail-page--taphome #rv-taphome-video-play .rv-taphome-video__play-label {
  display: block !important;
  font-size: clamp(1.15rem, 2.6vw, 1.7rem) !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
}
body.service-detail-page--taphome #rv-taphome-video-play .rv-taphome-video__play-privacy {
  display: block !important;
  max-width: 550px;
  font-size: clamp(.85rem, 1.3vw, 1rem) !important;
  line-height: 1.5 !important;
  color: #e1efff !important;
  -webkit-text-fill-color: #e1efff !important;
}
body.service-detail-page--taphome .rv-taphome-video__frame {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
  background: #071329 !important;
}
body.service-detail-page--taphome .rv-taphome-video__frame iframe {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  border: 0 !important;
}
@media (hover: hover) and (pointer: fine) {
  body.service-detail-page--taphome #rv-taphome-video-play:hover {
    box-shadow: inset 0 0 45px rgba(0,215,255,.22) !important;
  }
}
@media (max-width: 600px) {
  body.service-detail-page--taphome #rv-taphome-video-play .rv-taphome-video__play-circle {
    width: 54px !important;
    height: 54px !important;
    font-size: 22px !important;
  }
  body.service-detail-page--taphome #rv-taphome-video-play .rv-taphome-video__play-privacy {
    font-size: .75rem !important;
  }
}
/* REVELMONT_TAPHOME_READABLE_HOVER_V2_END */

/* REVELMONT_TAPHOME_THEME_SWITCH_V3_START */
/* Pouze TapHome. Opravdovy svetly/tmavy rezim misto trvale tmavych barev. */
html[data-theme="light"] body.service-detail-page--taphome {
  background: linear-gradient(125deg, #f1f7ff 0%, #e9f4ff 40%, #f4f0ff 72%, #e7f8f7 100%) !important;
  color: #162947 !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content {
  background: transparent !important;
  color: #162947 !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content::before {
  opacity: .08 !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content::after {
  opacity: .14 !important;
  filter: blur(28px) !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero,
html[data-theme="light"] body.service-detail-page--taphome .section {
  background: transparent !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-feature-card,
html[data-theme="light"] body.service-detail-page--taphome .service-process-list > li {
  background: linear-gradient(145deg, rgba(255,255,255,.97), rgba(234,244,255,.96)) !important;
  border-color: rgba(27,119,196,.48) !important;
  box-shadow: 0 14px 32px rgba(34,69,111,.13) !important;
  color: #162947 !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-feature-card::before,
html[data-theme="light"] body.service-detail-page--taphome .service-process-list > li::before {
  opacity: .07 !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero h1,
html[data-theme="light"] body.service-detail-page--taphome .section h2,
html[data-theme="light"] body.service-detail-page--taphome .section h3,
html[data-theme="light"] body.service-detail-page--taphome .service-feature-card h3,
html[data-theme="light"] body.service-detail-page--taphome .service-process-list h3,
html[data-theme="light"] body.service-detail-page--taphome .rv-taphome-video__intro h2 {
  color: #0c2c52 !important;
  -webkit-text-fill-color: #0c2c52 !important;
  text-shadow: none !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero p,
html[data-theme="light"] body.service-detail-page--taphome .section-heading p,
html[data-theme="light"] body.service-detail-page--taphome .service-feature-card p,
html[data-theme="light"] body.service-detail-page--taphome .service-process-list p,
html[data-theme="light"] body.service-detail-page--taphome .rv-taphome-video__intro p {
  color: #294765 !important;
  -webkit-text-fill-color: #294765 !important;
  text-shadow: none !important;
}
html[data-theme="light"] body.service-detail-page--taphome .eyebrow {
  color: #126aa2 !important;
  -webkit-text-fill-color: #126aa2 !important;
}
/* CTA, tmavy obrazkovy nahled videa a prvky uvnitr videa maji vlastni kontrast. */
html[data-theme="light"] body.service-detail-page--taphome .rv-taphome-video__frame {
  background: #08172e !important;
}
html[data-theme="light"] body.service-detail-page--taphome .rv-taphome-video__frame button,
html[data-theme="light"] body.service-detail-page--taphome .rv-taphome-video__frame button * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html[data-theme="dark"] body.service-detail-page--taphome .service-detail-hero h1,
html[data-theme="dark"] body.service-detail-page--taphome .section h2,
html[data-theme="dark"] body.service-detail-page--taphome .section h3,
html[data-theme="dark"] body.service-detail-page--taphome .rv-taphome-video__intro h2 {
  color: #f7fbff !important;
  -webkit-text-fill-color: #f7fbff !important;
}
html[data-theme="dark"] body.service-detail-page--taphome .service-detail-hero p,
html[data-theme="dark"] body.service-detail-page--taphome .section-heading p,
html[data-theme="dark"] body.service-detail-page--taphome .service-feature-card p,
html[data-theme="dark"] body.service-detail-page--taphome .service-process-list p,
html[data-theme="dark"] body.service-detail-page--taphome .rv-taphome-video__intro p {
  color: #dceaff !important;
  -webkit-text-fill-color: #dceaff !important;
}
/* REVELMONT_TAPHOME_THEME_SWITCH_V3_END */


/* REVELMONT_TAPHOME_LIGHT_TEXT_V4_START */
/* Vynutit kontrast POUZE v rezimu svetly a POUZE na strance TapHome. */
html[data-theme="light"] body.service-detail-page--taphome #main-content,
html[data-theme="light"] body.service-detail-page--taphome #main-content .section,
html[data-theme="light"] body.service-detail-page--taphome #main-content .container {
    color: #182b48 !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content h1,
html[data-theme="light"] body.service-detail-page--taphome #main-content h2,
html[data-theme="light"] body.service-detail-page--taphome #main-content h3,
html[data-theme="light"] body.service-detail-page--taphome #main-content h4,
html[data-theme="light"] body.service-detail-page--taphome #main-content .section-heading h2,
html[data-theme="light"] body.service-detail-page--taphome #main-content .rv-taphome-video__intro h2,
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-feature-card h3,
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-process-list li h3 {
    color: #142b4c !important;
    text-shadow: none !important;
    -webkit-text-fill-color: #142b4c !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content p,
html[data-theme="light"] body.service-detail-page--taphome #main-content li,
html[data-theme="light"] body.service-detail-page--taphome #main-content .section-heading p,
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-feature-card p,
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-process-list li p,
html[data-theme="light"] body.service-detail-page--taphome #main-content .rv-taphome-video__intro p {
    color: #304561 !important;
    text-shadow: none !important;
    -webkit-text-fill-color: #304561 !important;
}
/* Karty zustanou svetle, s decentnim RGB. */
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-feature-card,
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-process-list li {
    background: linear-gradient(135deg, #ffffff 0%, #f1f7ff 48%, #e9f2fc 100%) !important;
    color: #182b48 !important;
    box-shadow: 0 12px 30px rgba(19, 48, 85, .12) !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-feature-card::before,
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-process-list li::before {
    opacity: .10 !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-feature-card h3,
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-process-list li h3 {
    color: #142b4c !important;
    -webkit-text-fill-color: #142b4c !important;
}
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-feature-card p,
html[data-theme="light"] body.service-detail-page--taphome #main-content .service-process-list li p {
    color: #304561 !important;
    -webkit-text-fill-color: #304561 !important;
}
/* Akcni tlacitka maji vlastni kontrastni barvy. */
html[data-theme="light"] body.service-detail-page--taphome #main-content a.btn-primary,
html[data-theme="light"] body.service-detail-page--taphome #main-content .btn-primary,
html[data-theme="light"] body.service-detail-page--taphome #main-content .button--primary {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
/* REVELMONT_TAPHOME_LIGHT_TEXT_V4_END */


/* REVELMONT_TAPHOME_LIGHT_HERO_V5_START */
/* Pouze TapHome ve svetlem rezimu: kontrast uvodu a video-sekce. */
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero .container {
  color: #172d4e !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero h1,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero h2,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero h3 {
  color: #102749 !important;
  text-shadow: none !important;
  -webkit-text-fill-color: #102749 !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero p,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero .lead,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero .hero-description,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero [class*="description"],
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero [class*="subtitle"] {
  color: #304867 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  -webkit-text-fill-color: #304867 !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero .eyebrow,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero [class*="badge"],
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero [class*="kicker"] {
  color: #0b4773 !important;
  -webkit-text-fill-color: #0b4773 !important;
  background-color: rgba(15, 126, 189, .10) !important;
  border-color: rgba(15, 126, 189, .32) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero a:not(.btn-primary):not([class*="primary"]) {
  color: #12395d !important;
  -webkit-text-fill-color: #12395d !important;
  background-color: rgba(255,255,255,.84) !important;
  border-color: rgba(32, 93, 143, .55) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero a.btn-primary,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero a[class*="primary"] {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1 !important;
}
/* Nadpis a uvodni text u vlozeneho videa. */
html[data-theme="light"] body.service-detail-page--taphome .rv-taphome-video__intro h2 {
  color: #102749 !important;
  -webkit-text-fill-color: #102749 !important;
  text-shadow: none !important;
}
html[data-theme="light"] body.service-detail-page--taphome .rv-taphome-video__intro p {
  color: #304867 !important;
  -webkit-text-fill-color: #304867 !important;
  opacity: 1 !important;
}
/* REVELMONT_TAPHOME_LIGHT_HERO_V5_END */

/* REVELMONT_TAPHOME_HERO_LIGHT_CONTRAST_V6_START */
/* Uvod TapHome: cilene prepsani slabe kontrastnich hodnot ve svetlem rezimu. */
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero__grid > div:first-child,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero__grid > div:first-child .page-hero__lead,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero__grid > div:first-child .eyebrow {
  opacity: 1 !important;
  filter: none !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero__grid > div:first-child :is(p, span, small, .page-hero__lead, .section-lead, .hero__lead, .eyebrow, [class*="description"], [class*="subtitle"], [class*="badge"], [class*="kicker"]):not(.button):not(a) {
  color: #263f5f !important;
  -webkit-text-fill-color: #263f5f !important;
  opacity: 1 !important;
  text-shadow: none !important;
  filter: none !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero__grid > div:first-child h1 {
  color: #102749 !important;
  -webkit-text-fill-color: #102749 !important;
  opacity: 1 !important;
}
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero__grid > div:first-child :is(.eyebrow, [class*="badge"], [class*="kicker"]) {
  color: #075b82 !important;
  -webkit-text-fill-color: #075b82 !important;
  opacity: 1 !important;
  font-weight: 750 !important;
}
/* Pojistka pro samostatny uvodni blok mimo grid prvniho sloupce. */
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero .page-hero__lead,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero .hero__lead,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero .service-detail-hero__lead,
html[data-theme="light"] body.service-detail-page--taphome .service-detail-hero .service-detail-hero__description {
  color: #263f5f !important;
  -webkit-text-fill-color: #263f5f !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* Tmavy rezim ani ostatni stranky nemenime. */
/* REVELMONT_TAPHOME_HERO_LIGHT_CONTRAST_V6_END */
