/*
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-v1.png") 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: 40px;
    height: 40px;
    flex: 0 0 40px;

    display: inline-flex;
    align-items: center;
    justify-content: 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: cover;
}

/* 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: 620px) {

    .revelmont-menu-logo {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
        border-radius: 10px;
    }

    .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;
}

.footer-socials__link--instagram,
.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;
}
