/* SALMAST homepage refinement v08
   Signature: a morphing brand island and one continuous project route.
   This file intentionally follows requirements-v07.css so it can refine the
   approved structure without rewriting the underlying content system. */

:root {
  --v08-night: #2e3e44;
  --v08-deep: #2e3e44;
  --v08-blue: #2e3e44;
  --v08-gold: #b59357;
  --v08-gold-light: #b59357;
  --v08-beige: #fdf4e3;
  --v08-paper: #fdf4e3;
  --v08-ink: #2e3e44;
  --v08-ease: cubic-bezier(.22, 1, .36, 1);
  --v08-shadow: 0 22px 70px rgba(0, 0, 0, .24);
}

.skip-link {
  position: fixed;
  z-index: 200;
  top: 10px;
  left: 10px;
  padding: 12px 18px;
  color: var(--v08-night);
  background: var(--v08-beige);
  border: 2px solid var(--v08-gold);
  border-radius: 999px;
  transform: translateY(-160%);
  transition: transform .2s ease;
}

.skip-link:focus { transform: translateY(0); }

/* --------------------------------------------------------------------------
   Dynamic brand island
   -------------------------------------------------------------------------- */

.site-header[data-dynamic-island] {
  position: fixed;
  z-index: 90;
  top: 16px;
  left: 50%;
  display: grid;
  grid-template-columns: minmax(130px, auto) minmax(0, 1fr) auto;
  width: min(1180px, calc(100% - 32px));
  min-height: 68px;
  padding: 8px 10px 8px 22px;
  color: var(--v08-beige);
  background: rgba(46, 62, 68, .82);
  border: 1px solid rgba(253, 244, 227, .24);
  border-radius: 999px;
  box-shadow: 0 10px 38px rgba(0, 0, 0, .18);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transform: translateX(-50%);
  transform-origin: 50% 0;
  transition:
    width .6s var(--v08-ease),
    padding .6s var(--v08-ease),
    min-height .6s var(--v08-ease),
    background-color .35s ease,
    border-color .35s ease,
    box-shadow .35s ease;
}

.site-header[data-dynamic-island].header-hidden {
  transform: translateX(-50%) !important;
}

.site-header[data-dynamic-island]::after {
  content: "";
  position: absolute;
  inset: 5px;
  z-index: -1;
  border: 1px solid rgba(181, 147, 87, .1);
  border-radius: inherit;
  pointer-events: none;
}

.site-header[data-dynamic-island] .header-wordmark,
.site-header[data-dynamic-island] .main-nav,
.site-header[data-dynamic-island] .header-actions {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .22s ease .16s, transform .38s var(--v08-ease) .08s;
}

.site-header[data-dynamic-island] .header-wordmark {
  display: inline-flex;
  min-width: 138px;
  min-height: 44px;
  align-items: center;
}

.site-header[data-dynamic-island] .brand-logo {
  width: 142px;
  max-height: 48px;
  filter: none !important;
  opacity: .96;
  object-fit: contain;
}

.header-island-toggle {
  position: absolute;
  z-index: 3;
  inset: 5px;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin: auto;
  padding: 11px;
  color: var(--v08-gold-light);
  background: transparent;
  border: 0;
  border-radius: 50%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: scale(.72) rotate(-12deg);
  transition: opacity .22s ease, transform .5s var(--v08-ease), background-color .2s ease;
}

.header-island-toggle img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.header-island-toggle:hover,
.header-island-toggle:focus-visible { background: rgba(253, 244, 227, .09); }

.site-header[data-dynamic-island].island-compact:not(.island-expanded):not(:focus-within) {
  width: 66px;
  min-height: 66px;
  padding: 0;
  grid-template-columns: 1fr;
  background: rgba(46, 62, 68, .9);
  border-color: rgba(181, 147, 87, .46);
  box-shadow: 0 14px 44px rgba(0, 0, 0, .28);
}

.site-header[data-dynamic-island].island-compact:not(.island-expanded):not(:focus-within) .header-wordmark,
.site-header[data-dynamic-island].island-compact:not(.island-expanded):not(:focus-within) .main-nav,
.site-header[data-dynamic-island].island-compact:not(.island-expanded):not(:focus-within) .header-actions {
  position: absolute;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-8px);
  transition-delay: 0s;
}

.site-header[data-dynamic-island].island-compact:not(.island-expanded):not(:focus-within) .header-island-toggle {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: scale(1) rotate(0);
}

.site-header[data-dynamic-island] .main-nav { gap: clamp(14px, 1.7vw, 28px); }
.site-header[data-dynamic-island] .main-nav > a { color: rgba(253, 244, 227, .78); }
.site-header[data-dynamic-island] .main-nav > a::after { background: var(--v08-gold-light); }
.site-header[data-dynamic-island] .lang-dropdown__trigger { color: var(--v08-beige); }

.hero-trust {
  min-height: 44px;
  align-items: center;
}

/* --------------------------------------------------------------------------
   Rounded action language with a real vector arrow
   -------------------------------------------------------------------------- */

.primary-btn,
.secondary-btn,
.header-cta {
  position: relative;
  min-height: 52px;
  padding: 13px 62px 13px 24px !important;
  border-radius: 999px !important;
  isolation: isolate;
  overflow: hidden;
  transition: color .28s ease, background-color .28s ease, border-color .28s ease, transform .32s var(--v08-ease), box-shadow .32s ease !important;
}

.primary-btn::before,
.secondary-btn::before,
.header-cta::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  right: 5px;
  left: auto;
  width: 42px;
  height: 42px;
  background: rgba(253, 244, 227, .18);
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: .82;
  transform: translateY(-50%) scale(1);
  transition: transform .42s var(--v08-ease), background-color .26s ease, opacity .26s ease;
}

.primary-btn::after,
.secondary-btn::after,
.header-cta::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 17px;
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 1;
  transform: translateY(-50%);
  transition: transform .4s var(--v08-ease);
}

.primary-btn:hover,
.primary-btn:focus-visible,
.secondary-btn:hover,
.secondary-btn:focus-visible,
.header-cta:hover,
.header-cta:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .18);
}

.primary-btn:hover::before,
.primary-btn:focus-visible::before,
.secondary-btn:hover::before,
.secondary-btn:focus-visible::before,
.header-cta:hover::before,
.header-cta:focus-visible::before { transform: translateY(-50%) scale(1.08); }

.primary-btn:hover::after,
.primary-btn:focus-visible::after,
.secondary-btn:hover::after,
.secondary-btn:focus-visible::after,
.header-cta:hover::after,
.header-cta:focus-visible::after { transform: translate(4px, -50%); }

.site-header .header-cta { min-height: 50px; }

/* --------------------------------------------------------------------------
   Hero facts: transparent technical glass with readable icon-first hierarchy
   -------------------------------------------------------------------------- */

.hero-facts {
  gap: 10px !important;
  background: transparent !important;
  border: 0 !important;
  backdrop-filter: none !important;
}

.hero-facts > div,
.hero-facts > div + div {
  position: relative;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 18px;
  row-gap: 4px;
  min-height: 126px !important;
  padding: 22px 24px !important;
  background: rgba(46, 62, 68, .48) !important;
  border: 1px solid rgba(253, 244, 227, .2) !important;
  border-radius: 14px !important;
  box-shadow: inset 0 1px rgba(255, 255, 255, .04);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  overflow: hidden;
}

.hero-facts > div::before {
  content: "";
  position: absolute;
  inset: auto 20px 0;
  width: auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(181, 147, 87, .65), transparent);
  opacity: .7;
}

.hero-facts > div::after { display: none; }

.hero-fact-icon {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  display: block;
  width: 38px;
  height: 38px;
  background: var(--v08-gold-light);
  opacity: .95;
  -webkit-mask: var(--hero-fact-icon) center / contain no-repeat;
  mask: var(--hero-fact-icon) center / contain no-repeat;
}

.hero-fact-icon--history { --hero-fact-icon: url("assets/icons/lucide/calendar-range.svg"); }
.hero-fact-icon--projects { --hero-fact-icon: url("assets/icons/lucide/house-check.svg"); }
.hero-fact-icon--production { --hero-fact-icon: url("assets/icons/lucide/hammer.svg"); }

.hero-facts dt,
.hero-facts .hero-fact__title {
  grid-column: 2;
  margin: 0;
  font-size: clamp(27px, 2.45vw, 42px) !important;
  line-height: 1 !important;
  letter-spacing: -.035em;
}

.hero-facts .hero-fact__title { max-width: 14ch; font-size: clamp(22px, 2vw, 32px) !important; }

.hero-facts dd {
  grid-column: 2;
  margin: 0;
  color: rgba(253, 244, 227, .74) !important;
  font-size: 11px !important;
  line-height: 1.4;
  letter-spacing: .07em;
}

/* --------------------------------------------------------------------------
   Reviews: active editorial spotlight with visible continuation
   -------------------------------------------------------------------------- */

.reviews-section { overflow: hidden; }

.reviews-section .section-heading {
  max-width: 900px;
  margin-bottom: clamp(28px, 3vw, 42px);
}

.reviews-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(253, 244, 227, .2);
}

.reviews-toolbar > p {
  margin: 0;
  color: rgba(253, 244, 227, .72);
  font-size: 14px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.reviews-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}

.reviews-controls button {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  color: var(--v08-beige);
  background: transparent;
  border: 1px solid rgba(253, 244, 227, .34);
  border-radius: 50%;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .28s var(--v08-ease);
}

.reviews-controls button:hover,
.reviews-controls button:focus-visible {
  color: var(--v08-night);
  background: var(--v08-gold-light);
  border-color: var(--v08-gold-light);
  transform: scale(1.05);
}

.reviews-controls button:disabled { opacity: .32; cursor: default; transform: none; }

.reviews-controls svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.reviews-counter {
  display: flex;
  align-items: baseline;
  gap: 5px;
  min-width: 68px;
  justify-content: center;
  color: rgba(253, 244, 227, .54);
  font-variant-numeric: tabular-nums;
}

.reviews-counter strong { color: var(--v08-gold-light); font-size: 19px; }

.reviews-stage { position: relative; }

.testimonials-grid.testimonials-track {
  display: flex !important;
  grid-auto-flow: initial !important;
  grid-auto-columns: initial !important;
  gap: 16px !important;
  width: calc(100vw - max(32px, (100vw - var(--container, 1440px)) / 2));
  max-width: none;
  padding: 0 7vw 4px 0 !important;
  border: 0 !important;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0 7vw;
  scrollbar-width: none;
}

.testimonials-grid.testimonials-track::-webkit-scrollbar { display: none; }

.testimonials-track > .testimonial-card,
.testimonials-track > .testimonial-card--more {
  flex: 0 0 clamp(420px, 57vw, 780px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: clamp(340px, 31vw, 430px) !important;
  padding: clamp(34px, 4.6vw, 66px) !important;
  color: var(--v08-beige);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .012)),
    var(--v08-deep) !important;
  border: 1px solid rgba(253, 244, 227, .18) !important;
  border-radius: 26px !important;
  opacity: .48;
  scroll-snap-align: start;
  transform: scale(.965);
  transform-origin: left center;
  transition: opacity .42s ease, transform .62s var(--v08-ease), border-color .34s ease, background-color .34s ease;
}

.testimonials-track > .testimonial-card.is-review-active {
  opacity: 1;
  transform: scale(1);
  border-color: rgba(181, 147, 87, .58) !important;
  background:
    radial-gradient(circle at 92% 14%, rgba(181, 147, 87, .19), transparent 30%),
    linear-gradient(135deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .01)),
    var(--v08-deep) !important;
}

.testimonial-card__quote {
  position: relative;
  max-width: 34ch;
  margin: 0;
  padding-top: 44px;
  color: var(--v08-beige);
  font-size: clamp(19px, 2vw, 30px) !important;
  line-height: 1.42;
  text-wrap: pretty;
}

.testimonials-track > .testimonial-card::before { display: none !important; }

.testimonial-card__quote::before {
  content: "“";
  position: absolute;
  top: -8px;
  left: -4px;
  color: var(--v08-gold-light);
  font: 500 68px/1 Georgia, serif;
}

.testimonial-card__meta { padding-top: 28px; border-top: 1px solid rgba(253, 244, 227, .16); }
.testimonial-card__name { font-size: 17px; }
.testimonial-card__src { color: var(--v08-gold-light); }

.testimonials-track > .testimonial-card--more {
  flex-basis: clamp(340px, 38vw, 520px);
  justify-content: center;
}

.testimonials-track > .testimonial-card--more h3 { max-width: 10ch; font-size: clamp(32px, 3.8vw, 54px); line-height: .98; }

.reviews-progress {
  position: relative;
  width: min(420px, 62vw);
  height: 2px;
  margin-top: 22px;
  overflow: hidden;
  background: rgba(253, 244, 227, .18);
}

.reviews-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--v08-gold-light);
  transform: scaleX(var(--reviews-progress, .34));
  transform-origin: left;
  transition: transform .48s var(--v08-ease);
}

.reviews-platforms { margin-top: 28px; }
.reviews-platforms a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}

/* --------------------------------------------------------------------------
   Portfolio: composed gallery without dead cells
   -------------------------------------------------------------------------- */

.portfolio-grid {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(3, minmax(240px, auto));
  grid-auto-flow: dense;
  gap: 14px !important;
  align-items: stretch;
}

.portfolio-grid .portfolio-item { min-width: 0; min-height: 0; }
.portfolio-grid .portfolio-item:nth-child(1) { grid-column: 1 / 8; grid-row: 1 / 3; }
.portfolio-grid .portfolio-item:nth-child(2) { grid-column: 8 / 13; grid-row: 1; }
.portfolio-grid .portfolio-item:nth-child(3) { grid-column: 8 / 13; grid-row: 2; }
.portfolio-grid .portfolio-item:nth-child(4) { grid-column: 1 / 5; grid-row: 3; }
.portfolio-grid .portfolio-item:nth-child(5) { grid-column: 5 / 9; grid-row: 3; }
.portfolio-grid .portfolio-item:nth-child(6) { grid-column: 9 / 13; grid-row: 3; }

.portfolio-grid .portfolio-card,
.portfolio-grid .portfolio-item:nth-child(n) .portfolio-card {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 260px !important;
  overflow: hidden;
  border: 1px solid rgba(253, 244, 227, .12);
  border-radius: 6px !important;
  box-shadow: 0 18px 54px rgba(0, 0, 0, .16);
  isolation: isolate;
}

.portfolio-grid .portfolio-card__media::after {
  background: linear-gradient(0deg, rgba(0, 0, 0, .88) 0%, rgba(0, 0, 0, .2) 54%, rgba(0, 0, 0, .02) 78%) !important;
  transition: opacity .34s ease;
}

.portfolio-grid .portfolio-card__media img {
  filter: none !important;
  transition: transform 1.1s var(--v08-ease), filter .45s ease;
}

.portfolio-grid .portfolio-card:hover .portfolio-card__media img,
.portfolio-grid .portfolio-card:focus-visible .portfolio-card__media img { transform: scale(1.045); filter: none !important; }

.portfolio-grid .portfolio-card__body { padding: clamp(22px, 2.6vw, 38px) !important; }
.portfolio-grid .portfolio-card__body::after {
  content: "";
  position: absolute;
  right: 24px;
  bottom: 24px;
  width: 44px;
  height: 44px;
  background: rgba(253, 244, 227, .1);
  border: 1px solid rgba(253, 244, 227, .45);
  border-radius: 50%;
  transition: background-color .25s ease, transform .38s var(--v08-ease);
}

.portfolio-grid .portfolio-card__body::before {
  content: "";
  position: absolute;
  z-index: 2;
  right: 37px;
  bottom: 37px;
  width: 18px;
  height: 18px;
  background: var(--v08-beige);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .38s var(--v08-ease), background-color .25s ease;
}

.portfolio-grid .portfolio-card:hover .portfolio-card__body::after,
.portfolio-grid .portfolio-card:focus-visible .portfolio-card__body::after { background: var(--v08-gold); transform: scale(1.06); }
.portfolio-grid .portfolio-card:hover .portfolio-card__body::before,
.portfolio-grid .portfolio-card:focus-visible .portfolio-card__body::before { background: var(--v08-night); transform: translateX(3px); }

.portfolio-grid .portfolio-item:nth-child(n+4) .portfolio-card__body::after,
.portfolio-grid .portfolio-item:nth-child(n+4) .portfolio-card__body::before { display: none; }

/* --------------------------------------------------------------------------
   About: furniture as the hero, facts as an atelier index
   -------------------------------------------------------------------------- */

.about-preview-section {
  position: relative;
  overflow: hidden;
  background: var(--v08-paper) !important;
}

.about-preview-section::before {
  content: "1991";
  position: absolute;
  right: -1vw;
  bottom: -3vw;
  color: transparent;
  font-size: clamp(150px, 24vw, 390px);
  font-weight: 700;
  line-height: .72;
  letter-spacing: -.07em;
  -webkit-text-stroke: 1px rgba(46, 62, 68, .08);
  pointer-events: none;
}

.about-preview {
  position: relative;
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 18px 28px !important;
  align-items: start;
}

.about-preview > .section-heading { grid-column: 1 / 5; grid-row: 1; margin-bottom: 10px; }
.about-preview .section-heading h2 { max-width: 10ch !important; font-size: clamp(44px, 5vw, 74px) !important; line-height: .98; }

.about-preview__visual {
  position: relative;
  grid-column: 5 / -1;
  grid-row: 1 / 4;
  min-height: clamp(520px, 52vw, 740px);
  margin: 0;
  overflow: hidden;
  background: var(--v08-blue);
  border-radius: 4px;
}

.about-preview__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, .72), transparent 46%);
  pointer-events: none;
}

.about-preview__visual img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: center;
  transition: transform 1.4s var(--v08-ease);
}

.about-preview__visual:hover img { transform: scale(1.025); }

.about-preview__visual figcaption {
  position: absolute;
  z-index: 2;
  right: clamp(24px, 4vw, 56px);
  bottom: clamp(24px, 4vw, 56px);
  left: clamp(24px, 4vw, 56px);
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  color: var(--v08-beige);
}

.about-preview__visual figcaption span { color: var(--v08-gold-light); font-size: 12px; letter-spacing: .18em; }
.about-preview__visual figcaption strong { max-width: 15ch; font-size: clamp(24px, 2.6vw, 40px); font-weight: 500; line-height: 1.05; text-align: right; }

.about-preview__facts {
  grid-column: 1 / 5;
  grid-row: 2;
  display: block !important;
  border: 0 !important;
  counter-reset: about-facts;
}

.about-preview__facts article {
  position: relative;
  min-height: 0 !important;
  padding: 20px 0 20px 54px !important;
  border: 0 !important;
  border-top: 1px solid rgba(46, 62, 68, .18) !important;
  counter-increment: about-facts;
}

.about-preview__facts article::before {
  content: "0" counter(about-facts);
  position: absolute;
  top: 25px;
  left: 0;
  color: var(--v08-gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
}

.about-preview__facts strong { margin-bottom: 8px !important; font-size: clamp(22px, 2vw, 30px) !important; }
.about-preview__facts p { margin: 0; font-size: 15px; line-height: 1.55; }
.about-preview > .secondary-btn { grid-column: 1 / 5 !important; grid-row: 3; justify-self: start; margin-top: 10px; }

/* --------------------------------------------------------------------------
   Process: compact Feadship-inspired route without scroll locking
   -------------------------------------------------------------------------- */

.process-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 86% 12%, rgba(181, 147, 87, .1), transparent 28%),
    var(--v08-night) !important;
}

.process-section .section-inner { position: relative; }
.process-heading { margin-inline: auto; text-align: center; }
.process-heading h2 { margin-inline: auto; }
.process-heading > p:last-child { max-width: 620px; margin-inline: auto; }

.process-route { position: relative; margin-top: clamp(26px, 4vw, 56px); }

.process-route__line {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 410px;
  overflow: visible;
  pointer-events: none;
}

.process-route__line path {
  fill: none;
  stroke: rgba(253, 244, 227, .16);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.process-route__line .process-route__progress {
  stroke: var(--v08-gold-light);
  stroke-width: 2.5;
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--process-progress, 0));
  filter: drop-shadow(0 0 8px rgba(181, 147, 87, .42));
  transition: stroke-dashoffset .16s linear;
}

.process-journey.process-journey--eight {
  position: relative;
  z-index: 1;
  display: grid !important;
  grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
  width: 100%;
  height: 410px;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  background: transparent !important;
  border: 0 !important;
  list-style: none;
}

.process-journey--eight .process-card,
.process-journey--eight .process-card:nth-of-type(n) {
  --node-y: 50%;
  --copy-top: 8%;
  position: relative;
  display: block !important;
  min-width: 0;
  min-height: 0 !important;
  height: 410px;
  padding: 0 9px !important;
  color: var(--v08-beige) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  opacity: .42;
  transition: opacity .35s ease, transform .48s var(--v08-ease) !important;
}

.process-journey--eight .process-card:nth-child(1) { --node-y: 56%; --copy-top: 8%; }
.process-journey--eight .process-card:nth-child(2) { --node-y: 35%; --copy-top: 52%; }
.process-journey--eight .process-card:nth-child(3) { --node-y: 29%; --copy-top: 48%; }
.process-journey--eight .process-card:nth-child(4) { --node-y: 48%; --copy-top: 62%; }
.process-journey--eight .process-card:nth-child(5) { --node-y: 66%; --copy-top: 12%; }
.process-journey--eight .process-card:nth-child(6) { --node-y: 65%; --copy-top: 11%; }
.process-journey--eight .process-card:nth-child(7) { --node-y: 46%; --copy-top: 60%; }
.process-journey--eight .process-card:nth-child(8) { --node-y: 33%; --copy-top: 52%; }

.process-journey--eight .process-card.is-passed { opacity: .82; }
.process-journey--eight .process-card.is-active { opacity: 1; transform: translateY(-3px); }

.process-journey--eight .process-card__icon {
  position: absolute;
  top: var(--node-y);
  left: 50%;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0;
  color: var(--v08-gold-light);
  background: var(--v08-night);
  border: 1px solid rgba(181, 147, 87, .44);
  border-radius: 50%;
  box-shadow: 0 0 0 8px rgba(46, 62, 68, .78);
  transform: translate(-50%, -50%);
  transition: color .3s ease, background-color .3s ease, border-color .3s ease, box-shadow .3s ease, transform .45s var(--v08-ease);
}

.process-journey--eight .process-card__icon svg { width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-width: 1.35; }
.process-journey--eight .process-card__icon span { right: -5px; bottom: -5px; width: 24px; height: 24px; color: var(--v08-beige); background: var(--v08-blue); border: 1px solid rgba(253, 244, 227, .22); }

.process-journey--eight .process-card.is-active .process-card__icon {
  color: var(--v08-night);
  background: var(--v08-gold-light);
  border-color: var(--v08-gold-light);
  box-shadow: 0 0 0 9px rgba(181, 147, 87, .08), 0 0 30px rgba(181, 147, 87, .28);
  transform: translate(-50%, -50%) scale(1.08);
}

.process-journey--eight .process-card h3,
.process-journey--eight .process-card p {
  position: absolute;
  top: var(--copy-top);
  right: 7px;
  left: 7px;
  width: auto;
  color: var(--v08-beige) !important;
  text-align: center;
}

.process-journey--eight .process-card h3 {
  margin: 0 !important;
  font-size: clamp(16px, 1.35vw, 21px) !important;
  line-height: 1.1 !important;
  text-wrap: balance;
}

.process-journey--eight .process-card p {
  top: calc(var(--copy-top) + 40px);
  margin: 0 !important;
  color: rgba(253, 244, 227, .66) !important;
  font-size: clamp(11px, .86vw, 13px) !important;
  line-height: 1.42 !important;
}

.process-journey--eight .process-card--member h3 { color: var(--v08-gold-light) !important; letter-spacing: .08em; }
.process-cta { justify-content: center; margin-top: 30px; }

/* --------------------------------------------------------------------------
   Project form: compressed into clear, single-task groups
   -------------------------------------------------------------------------- */

.calculator-section > .section-inner {
  align-items: start;
  gap: clamp(32px, 6vw, 86px);
}

.calculator-copy h2 { max-width: 10ch; }

.calculator-form {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  padding: clamp(24px, 3vw, 42px) !important;
  background: var(--v08-blue) !important;
  border: 1px solid rgba(253, 244, 227, .14) !important;
  border-radius: 22px !important;
  box-shadow: 0 24px 70px rgba(46, 62, 68, .16);
}

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

.calculator-form label { min-width: 0; }
.calculator-form .form-field-heading { margin-bottom: 7px; font-size: 13px; }

.calculator-form input:not([type="checkbox"]):not([type="file"]),
.calculator-form textarea {
  min-height: 50px;
  padding: 13px 15px;
  border: 1px solid rgba(253, 244, 227, .26);
  border-radius: 10px;
  background: rgba(253, 244, 227, .97);
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.calculator-form textarea { min-height: 116px; resize: vertical; }

.calculator-form input:focus,
.calculator-form textarea:focus {
  border-color: var(--v08-gold-light);
  box-shadow: 0 0 0 3px rgba(181, 147, 87, .18);
  outline: none;
}

.attachment-field {
  display: grid;
  grid-template-columns: minmax(170px, .7fr) minmax(0, 1.3fr);
  gap: 8px 14px;
  align-items: center;
}

.attachment-field__title { grid-column: 1 / -1; }
.attachment-field__control { grid-column: 1 / -1; min-height: 54px; border-radius: 10px !important; }
.attachment-field small { grid-column: 1 / -1; line-height: 1.35; }
.attachment-field__button { border-radius: 8px; }

.privacy-consent {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 12px !important;
  padding: 12px 0;
  border-top: 1px solid rgba(253, 244, 227, .12);
}

.calculator-form .privacy-consent input[type="checkbox"] { width: 22px; height: 22px; }
.privacy-consent a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  white-space: nowrap;
}
.calculator-form > .primary-btn { width: 100%; }

/* --------------------------------------------------------------------------
   Showroom: clear next steps and interactive location image
   -------------------------------------------------------------------------- */

.contact-section > .section-inner {
  grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr) !important;
  gap: clamp(32px, 6vw, 90px) !important;
  align-items: start;
}

.contact-info { position: sticky; top: 118px; }
.contact-info h2 { max-width: 10ch; font-size: clamp(48px, 5vw, 76px); line-height: .96; }

.showroom-primary-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 28px;
}

.showroom-primary-actions .primary-btn,
.showroom-primary-actions .secondary-btn { width: 100%; justify-content: flex-start; }

.contact-actions { margin-top: 22px; }

.contact-photo {
  position: relative;
  min-height: clamp(440px, 50vw, 680px);
  margin: 0;
  overflow: hidden;
  border-radius: 22px;
  box-shadow: 0 24px 72px rgba(46, 62, 68, .16);
}

.contact-photo__link { display: block; width: 100%; height: 100%; min-height: inherit; color: inherit; }

.contact-photo img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  transition: transform 1.1s var(--v08-ease), filter .42s ease;
}

.contact-photo__link::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, .78), transparent 44%);
  pointer-events: none;
}

.contact-photo__caption {
  position: absolute;
  z-index: 2;
  right: 24px;
  bottom: 24px;
  left: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  color: var(--v08-beige);
  background: rgba(46, 62, 68, .76);
  border: 1px solid rgba(253, 244, 227, .2);
  border-radius: 999px;
  backdrop-filter: blur(14px);
}

.contact-photo__caption strong { font-size: 16px; }
.contact-photo__caption span { color: var(--v08-gold-light); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.contact-photo__link:hover img,
.contact-photo__link:focus-visible img { transform: scale(1.035); filter: none; }

.contact-map {
  grid-column: 1 / -1;
  margin-top: clamp(18px, 3vw, 42px);
  overflow: hidden;
  border-radius: 22px;
  box-shadow: 0 22px 64px rgba(46, 62, 68, .12);
}

.contact-map iframe { display: block; min-height: 380px; filter: none; }

/* --------------------------------------------------------------------------
   Responsive composition
   -------------------------------------------------------------------------- */

@media (max-width: 1180px) {
  .site-header[data-dynamic-island] {
    top: 10px;
    width: min(880px, calc(100% - 24px));
    min-height: 64px;
    padding: 7px 10px 7px 18px;
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .site-header[data-dynamic-island] .brand-logo { width: 126px; max-height: 44px; }
  .site-header[data-dynamic-island] .header-contact,
  .site-header[data-dynamic-island] .header-cta { display: none !important; }

  .site-header[data-dynamic-island] .main-nav {
    position: fixed;
    z-index: 80;
    top: 76px;
    right: 0;
    bottom: auto;
    left: 0;
    width: 100%;
    height: min(620px, calc(100dvh - 88px));
    padding: 24px clamp(24px, 6vw, 64px) 34px;
    background: rgba(46, 62, 68, .98) !important;
    border: 1px solid rgba(253, 244, 227, .18);
    border-radius: 24px;
    box-shadow: var(--v08-shadow);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-12px);
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 0;
  }

  .nav-open .site-header[data-dynamic-island] .main-nav {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .site-header[data-dynamic-island] .main-nav > a {
    display: flex;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    font-size: clamp(20px, 3vw, 30px);
  }
  .site-header[data-dynamic-island] .nav-toggle { display: block; }

  .portfolio-grid { grid-template-rows: repeat(3, minmax(250px, auto)); }
  .portfolio-grid .portfolio-item:nth-child(1) { grid-column: 1 / 7; grid-row: 1 / 3; }
  .portfolio-grid .portfolio-item:nth-child(2) { grid-column: 7 / 13; grid-row: 1; }
  .portfolio-grid .portfolio-item:nth-child(3) { grid-column: 7 / 13; grid-row: 2; }
  .portfolio-grid .portfolio-item:nth-child(4) { grid-column: 1 / 5; grid-row: 3; }
  .portfolio-grid .portfolio-item:nth-child(5) { grid-column: 5 / 9; grid-row: 3; }
  .portfolio-grid .portfolio-item:nth-child(6) { grid-column: 9 / 13; grid-row: 3; }

  .process-journey--eight .process-card p { display: none; }
}

@media (max-width: 900px) {
  html { scroll-padding-top: 92px; }

  .hero-facts > div { grid-template-columns: 40px minmax(0, 1fr); column-gap: 12px; border-radius: 12px !important; }
  .hero-fact-icon { width: 32px; height: 32px; }

  .testimonials-track > .testimonial-card,
  .testimonials-track > .testimonial-card--more { flex-basis: min(78vw, 620px); }

  .portfolio-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto !important;
  }

  .portfolio-grid .portfolio-item:nth-child(n) { grid-column: auto !important; grid-row: auto !important; }
  .portfolio-grid .portfolio-item:first-child { grid-column: 1 / -1 !important; }
  .portfolio-grid .portfolio-item:first-child .portfolio-card { min-height: 520px !important; }

  .about-preview > .section-heading { grid-column: 1 / 6; }
  .about-preview__visual { grid-column: 6 / -1; min-height: 600px; }
  .about-preview__facts { grid-column: 1 / 6; }
  .about-preview > .secondary-btn { grid-column: 1 / 6 !important; }
  .about-preview__visual figcaption { align-items: flex-start; flex-direction: column; }
  .about-preview__visual figcaption strong { text-align: left; }

  .process-route__line { display: none; }
  .process-journey.process-journey--eight {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    height: auto;
    gap: 1px !important;
    background: rgba(253, 244, 227, .16) !important;
    border: 1px solid rgba(253, 244, 227, .16) !important;
  }

  .process-journey--eight .process-card,
  .process-journey--eight .process-card:nth-of-type(n) {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 6px 16px;
    height: auto;
    min-height: 168px !important;
    padding: 24px !important;
    background: var(--v08-deep) !important;
    opacity: .64;
  }

  .process-journey--eight .process-card.is-passed,
  .process-journey--eight .process-card.is-active { opacity: 1; transform: none; }

  .process-journey--eight .process-card__icon {
    position: relative;
    top: auto;
    left: auto;
    grid-column: 1;
    grid-row: 1 / 3;
    transform: none !important;
  }

  .process-journey--eight .process-card h3,
  .process-journey--eight .process-card p {
    position: static;
    grid-column: 2;
    width: auto;
    text-align: left;
  }

  .process-journey--eight .process-card p { display: block; }

  .calculator-form__identity { grid-template-columns: 1fr 1fr; }
  .calculator-form__identity label:last-child { grid-column: 1 / -1; }

  .contact-section > .section-inner { grid-template-columns: 1fr !important; }
  .contact-info { position: static; }
  .contact-photo { min-height: 520px; }
}

@media (max-width: 700px) {
  .site-header[data-dynamic-island] {
    top: 8px;
    width: calc(100% - 16px);
    min-height: 60px;
    padding: 6px 8px 6px 16px;
  }

  .site-header[data-dynamic-island].island-compact:not(.island-expanded):not(:focus-within) { width: 58px; min-height: 58px; }
  .header-island-toggle { width: 50px; height: 50px; padding: 10px; }
  .site-header[data-dynamic-island] .header-wordmark { min-width: 108px; }
  .site-header[data-dynamic-island] .brand-logo { width: 110px; max-height: 40px; }
  .site-header[data-dynamic-island] .header-actions { gap: 5px; }
  .site-header[data-dynamic-island] .lang-dropdown__trigger { min-width: 44px; padding-inline: 8px; }
  .site-header[data-dynamic-island] .main-nav { top: 68px; height: calc(100dvh - 78px); border-radius: 20px; }

  .primary-btn,
  .secondary-btn,
  .header-cta { min-height: 50px; padding: 12px 58px 12px 20px !important; }

  .hero-facts { gap: 8px !important; }
  .hero-facts > div,
  .hero-facts > div:nth-child(3) {
    grid-column: 1 / -1;
    min-height: 86px !important;
    padding: 15px 17px !important;
  }
  .hero-facts dt { font-size: 28px !important; }
  .hero-facts .hero-fact__title { font-size: 23px !important; }

  .reviews-stats { margin-bottom: 28px; }
  .reviews-toolbar { align-items: flex-start; }
  .reviews-toolbar > p { max-width: 16ch; font-size: 11px; }
  .reviews-controls { gap: 6px; }
  .reviews-controls button { width: 44px; height: 44px; }
  .reviews-counter { min-width: 56px; }

  .testimonials-grid.testimonials-track {
    width: calc(100vw - var(--gutter));
    padding-right: 11vw !important;
  }

  .testimonials-track > .testimonial-card,
  .testimonials-track > .testimonial-card--more {
    flex-basis: 86vw;
    min-height: 360px !important;
    padding: 28px 24px !important;
    border-radius: 20px !important;
  }

  .testimonial-card__quote { padding-top: 32px; font-size: clamp(17px, 4.8vw, 21px) !important; }

  .portfolio-grid { grid-template-columns: 1fr !important; gap: 10px !important; }
  .portfolio-grid .portfolio-item:first-child { grid-column: auto !important; }
  .portfolio-grid .portfolio-item:nth-child(n) .portfolio-card,
  .portfolio-grid .portfolio-item:first-child .portfolio-card { min-height: 360px !important; }

  .about-preview { grid-template-columns: 1fr !important; gap: 28px !important; }
  .about-preview > .section-heading,
  .about-preview__visual,
  .about-preview__facts,
  .about-preview > .secondary-btn { grid-column: 1 !important; grid-row: auto !important; }
  .about-preview__visual { min-height: 460px; }
  .about-preview__visual figcaption { right: 22px; bottom: 22px; left: 22px; }
  .about-preview__facts article { padding-left: 46px !important; }

  .process-journey.process-journey--eight { grid-template-columns: 1fr !important; background: transparent !important; border: 0 !important; }
  .process-journey--eight .process-card,
  .process-journey--eight .process-card:nth-of-type(n) {
    grid-template-columns: 50px minmax(0, 1fr);
    min-height: 138px !important;
    padding: 20px 18px !important;
    border-bottom: 1px solid rgba(253, 244, 227, .15) !important;
  }
  .process-journey--eight .process-card__icon { width: 48px; height: 48px; }
  .process-journey--eight .process-card__icon svg { width: 27px; height: 27px; }

  .calculator-form { padding: 22px 18px !important; border-radius: 16px !important; }
  .calculator-form__identity { grid-template-columns: 1fr; }
  .calculator-form__identity label:last-child { grid-column: auto; }
  .privacy-consent { grid-template-columns: 22px minmax(0, 1fr); }
  .privacy-consent a { grid-column: 2; white-space: normal; }

  .showroom-primary-actions { margin-top: 22px; }
  .contact-photo { min-height: 420px; border-radius: 16px; }
  .contact-photo__caption { right: 14px; bottom: 14px; left: 14px; align-items: flex-start; flex-direction: column; border-radius: 16px; }
  .contact-map { border-radius: 16px; }
  .contact-map iframe { min-height: 320px; }
}

@media (max-width: 370px) {
  .site-header[data-dynamic-island] .brand-logo { width: 96px; }
  .site-header[data-dynamic-island] .lang-dropdown { display: none; }
  .reviews-counter { display: none; }
  .testimonials-track > .testimonial-card,
  .testimonials-track > .testimonial-card--more { flex-basis: 88vw; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header[data-dynamic-island],
  .site-header[data-dynamic-island] *,
  .primary-btn,
  .secondary-btn,
  .header-cta,
  .testimonials-track > .testimonial-card,
  .portfolio-grid .portfolio-card__media img,
  .about-preview__visual img,
  .process-route__line .process-route__progress,
  .process-journey--eight .process-card,
  .process-journey--eight .process-card__icon,
  .contact-photo img { transition: none !important; }

  .testimonials-grid.testimonials-track { scroll-behavior: auto !important; }
  .process-route__line .process-route__progress { stroke-dashoffset: 0; }
}
