.kp-steps.kelo-process-visual{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-top:40px;padding-bottom:80px}
.kp-steps.kelo-process-visual> :not(.kp-step){grid-column:1/-1}.kp-steps.kelo-process-visual> :not(.kp-step) h2{font-size:clamp(32px,4vw,56px)!important;max-width:900px!important}.kp-steps.kelo-process-visual> :not(.kp-step){margin-bottom:16px!important}
.kelo-process-visual .kp-step{display:flex!important;flex-direction:column;align-items:stretch!important;gap:18px!important;position:relative;padding:28px!important;background:#fff;border:1px solid #d2d5ca!important;min-width:0}
.kelo-process-visual .kp-step-num{position:absolute;top:30px;right:28px;color:#52675a}
.kelo-process-visual .kelo-stage-symbol{display:flex;width:64px;height:64px;align-items:center;justify-content:center;font-size:38px;color:#294638;background:#eef1e8;border-radius:50%}
.kelo-process-visual .kp-step h3{font-size:clamp(25px,2.2vw,34px)!important;line-height:1.14!important;margin:0!important}
.kelo-stage-result{border-top:1px solid #d8ddd3;padding-top:18px;margin-top:auto;color:#294638}
.kelo-stage-result b{font-size:10px;letter-spacing:.1em;text-transform:uppercase}.kelo-stage-result p{font-size:15px!important;line-height:1.65!important;margin:10px 0 0!important}
.kelo-stage-more summary{cursor:pointer;color:#294638;font-size:12px;padding:12px 0;border-top:1px solid #d8ddd3}
.kelo-process-visual .kp-step-details{display:block!important}.kelo-process-visual .kp-step-details>div{margin:16px 0}.kelo-process-visual .kp-step-details p{font-size:14px!important}
@media(max-width:1000px){.kp-steps.kelo-process-visual{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.kp-steps.kelo-process-visual{grid-template-columns:1fr;gap:14px}.kelo-process-visual .kp-step{padding:24px!important}}
.kelo-order-journey{background:#f2f1ea!important;padding-top:72px!important;padding-bottom:72px!important}
.ko-head{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:end;margin-bottom:36px}.ko-head h2{font-size:clamp(30px,3.6vw,54px);line-height:1.14;margin:16px 0 0}.ko-head>p{font-size:14px;line-height:1.7;max-width:440px;color:#536158}
.ko-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:0}.ko-track>li{display:flex;flex-direction:column;min-width:0;background:#fff;padding:24px;border-top:3px solid #314e3e}.ko-stage{display:flex;align-items:center;gap:12px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#314e3e}.ko-number{font-family:var(--font-serif);font-size:32px;letter-spacing:-.04em}.ko-arrow{margin-left:auto;font-size:24px}.ko-track>li:last-child .ko-arrow{visibility:hidden}.ko-track h3{font-size:25px;line-height:1.2;margin:28px 0 14px}.ko-track p{font-size:14px;line-height:1.7;margin:0 0 24px;color:#536158}.ko-result{margin-top:auto;padding-top:18px;border-top:1px solid #dce1d8}.ko-result span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#69796e;margin-bottom:8px}.ko-result b{font-size:13px;line-height:1.5;display:block;font-weight:500}.ko-link{display:inline-block;margin-top:26px;font-size:12px;border-bottom:1px solid #314e3e;padding-bottom:7px}
@media(max-width:1100px){.ko-track{grid-template-columns:repeat(2,minmax(0,1fr))}.ko-head{gap:24px}}
@media(max-width:600px){.kelo-order-journey{padding-top:40px!important;padding-bottom:40px!important}.ko-head{grid-template-columns:1fr;gap:16px;margin-bottom:24px}.ko-track{grid-template-columns:1fr;gap:12px}.ko-track>li{padding:22px}.ko-track h3{margin-top:18px}.ko-arrow{transform:rotate(90deg)}}
.main-header .header-main{grid-template-columns:115px minmax(0,1fr) 240px;column-gap:30px;min-height:120px}.main-header .main-nav{justify-content:flex-start;gap:clamp(12px,1.4vw,25px)}.header-contact{display:flex;flex-direction:column;align-items:flex-end;gap:5px;padding:12px 0}.header-phone{font-size:20px;line-height:1.2;color:#243d30;white-space:nowrap}.header-callback{font:inherit;font-size:11px;padding:0;background:none;border:0;border-bottom:1px solid #9eada1;color:#294c36;cursor:pointer}.header-hours{font-size:10px;color:#68766a}.header-socials{display:flex;gap:6px;margin-top:3px}.header-socials span{display:grid;place-items:center;min-width:26px;height:23px;padding:0 4px;border:1px solid #bac5b9;font-size:9px;color:#35533f}#header-callback-dialog{border:0;background:#f5f3ed;color:#243d30;padding:36px;width:min(620px,calc(100vw - 32px));max-height:90vh;overflow:auto}#header-callback-dialog::backdrop{background:#10251dcc}#header-callback-dialog h2{font-size:30px;margin:0 28px 16px 0}#header-callback-dialog>p{font-size:14px}.header-dialog-close{position:absolute;right:14px;top:10px;font-size:28px;border:0;background:none;cursor:pointer}
@media(max-width:1150px){.main-header .header-main{column-gap:18px;grid-template-columns:95px minmax(0,1fr) 205px}.main-header .main-nav{gap:12px}.main-header .main-nav>a,.main-header .main-nav>button{font-size:11px}}
@media(max-width:1000px){.main-header .header-main{grid-template-columns:92px 1fr auto;min-height:100px}.main-header .main-nav{display:none}.header-contact{justify-self:end}.header-phone{font-size:17px}.header-socials{display:none}.header-hours{font-size:9px}}
@media(max-width:420px){.main-header .header-main{padding-left:16px;padding-right:16px;column-gap:12px;grid-template-columns:66px 1fr auto}.main-header .site-logo{width:66px}.header-phone{font-size:15px}.header-callback{font-size:10px}}
/* Balanced desktop header; recognizable monochrome brand silhouettes. */
.main-header .main-nav{justify-content:center;gap:clamp(16px,1.65vw,32px)}
.header-socials span{width:28px;height:28px;padding:5px;box-sizing:border-box;border:0}
.header-socials i{display:block;width:18px;height:18px;background:currentColor;-webkit-mask:var(--social-icon) center/contain no-repeat;mask:var(--social-icon) center/contain no-repeat}
@media(min-width:1001px) and (max-width:1150px){.main-header .main-nav{gap:12px}}
.ko-track .ko-photo{display:block;width:calc(100% + 48px);max-width:none;height:auto;aspect-ratio:3/2;object-fit:cover;margin:-24px -24px 24px}
.ko-photo-note{font-size:11px!important;line-height:1.5;color:#69796e;margin-top:16px}
@media(max-width:600px){.ko-track .ko-photo{width:calc(100% + 44px);margin:-22px -22px 22px}}
.product-scope-grid article{min-width:0}
.product-scope-grid .scope-photo{display:block;width:calc(100% + 48px);max-width:none;height:auto;aspect-ratio:3/2;object-fit:cover;margin:-24px -24px 22px}
.product-scope-grid article h3{margin-top:24px}
:root {
  --font-sans: "Manrope";
  --font-serif: "Prata";
  --white: #ffffff;
  --paper: #f5f4ef;
  --paper-2: #eceae3;
  --ink: #171c19;
  --muted: #3f4842;
  --green: #314c3d;
  --green-dark: #263a31;
  --sage: #8d9b8c;
  --stone: #b8afa2;
  --line: #d9d8d2;
}

body.admin-bar .main-header {
  top: auto;
}

@media (max-width: 782px) {
  body.admin-bar .main-header { top: auto; }
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--paper);
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans), Arial, sans-serif;
  line-height: 1.55;
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-sans), Arial, sans-serif;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  color: inherit;
}

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

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  font-weight: 400;
}

h1,
h2 {
  font-family: var(--font-serif), Georgia, serif;
}

h2 {
  margin-bottom: 0;
  font-size: clamp(42px, 5vw, 76px);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

i {
  color: var(--green);
  font-weight: 400;
}

.page-pad {
  padding-right: max(32px, calc((100vw - 1440px) / 2));
  padding-left: max(32px, calc((100vw - 1440px) / 2));
}

.kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  color: var(--green);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.kicker::before {
  width: 28px;
  height: 1px;
  background: currentColor;
  content: "";
}

.kicker.light {
  color: rgba(255, 255, 255, 0.7);
}

.main-header {
  position: relative;
  z-index: 100;
  top: auto;
  border-bottom: 1px solid var(--line);
  background: rgba(250, 250, 247, 0.96);
  backdrop-filter: blur(14px);
  transition: box-shadow 0.25s ease;
}

.header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: 0 max(28px, calc((100vw - 1500px) / 2));
  border-bottom: 1px solid #ecece8;
  color: #404943;
  font-size: 11px;
  letter-spacing: 0.05em;
}

.header-top p {
  margin: 0;
}

.header-top > div {
  display: flex;
  gap: 24px;
}

.header-main {
  display: grid;
  grid-template-columns: 115px 1fr 170px;
  align-items: center;
  min-height: 82px;
  padding: 0 max(28px, calc((100vw - 1500px) / 2));
}

.site-logo {
  display: inline-flex;
  width: 92px;
}

.site-logo img {
  width: 100%;
}

.main-nav {
  display: flex;
  justify-content: center;
  gap: clamp(16px, 1.8vw, 32px);
}

.main-nav a,
.main-nav button {
  padding: 26px 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}

.main-nav button span,
.main-nav a[data-mega] span {
  margin-left: 3px;
  color: #969c96;
  font-size: 12px;
}

.main-nav a:hover,
.main-nav button:hover,
.main-nav a:focus-visible,
.main-nav button:focus-visible {
  color: var(--green);
}

.header-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 45px;
  padding: 0 17px;
  background: var(--green-dark);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.mobile-toggle,
.mobile-panel {
  display: none;
}

.mega-menu {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  visibility: hidden;
  border-top: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 24px 45px rgba(31, 36, 32, 0.12);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.mega-menu.open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.mega-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr) minmax(250px, 0.8fr);
  gap: 0;
  max-width: 1500px;
  min-height: 330px;
  margin: 0 auto;
}

.mega-column {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 34px 34px 40px;
  border-left: 1px solid var(--line);
}

.mega-column b {
  margin-bottom: 10px;
  color: #4b554e;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.mega-column a {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 19px;
  transition: color 0.2s ease, transform 0.2s ease;
}

.mega-column a:hover {
  color: var(--green);
  transform: translateX(4px);
}

.mega-feature {
  position: relative;
  display: flex;
  min-height: 330px;
  align-items: flex-end;
  overflow: hidden;
  padding: 25px;
  color: #fff;
}

.mega-feature::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(0deg, rgba(27, 34, 29, 0.75), transparent 65%);
  content: "";
}

.mega-feature img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mega-feature span {
  position: relative;
  z-index: 2;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-hero {
  display: grid;
  grid-template-columns: minmax(450px, 0.78fr) minmax(560px, 1.22fr);
  min-height: 750px;
  background: #fff;
}

.home-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 86px clamp(40px, 5vw, 92px) 62px max(32px, calc((100vw - 1440px) / 2));
}

.home-hero h1 {
  margin-bottom: 28px;
  font-size: clamp(60px, 6.6vw, 108px);
  line-height: 1.1;
  letter-spacing: -0.025em;
}

.home-hero h1 i {
  display: inline-block;
  font-size: 0.68em;
  line-height: 1.1;
}

.hero-lead {
  max-width: 590px;
  margin-bottom: 36px;
  color: var(--muted);
  font-size: clamp(16px, 1.4vw, 20px);
  line-height: 1.75;
}

.hero-buttons {
  display: flex;
  align-items: center;
  gap: 30px;
}

.primary-button,
.light-button {
  display: inline-flex;
  min-width: 220px;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0 21px;
  border: 0;
  background: var(--green-dark);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

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

.line-button,
.section-link {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 25px;
  padding-bottom: 7px;
  border-bottom: 1px solid currentColor;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.hero-trust {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px;
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.hero-trust div {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: center;
}

.hero-trust b {
  color: var(--green);
  font-family: var(--font-serif), Georgia, serif;
  font-size: 24px;
  font-weight: 400;
}

.hero-trust span {
  max-width: 140px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
  text-transform: uppercase;
}

.home-hero-visual {
  position: relative;
  min-height: 750px;
}

.home-hero-visual > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-image-note {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  min-width: 295px;
  flex-direction: column;
  padding: 25px 28px;
  background: rgba(255, 255, 255, 0.95);
}

.hero-image-note span {
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero-image-note b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 17px;
  font-weight: 400;
}

.intro-strip {
  display: grid;
  grid-template-columns: 0.26fr 1fr auto;
  gap: 60px;
  align-items: start;
  padding-top: 120px;
  padding-bottom: 120px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.intro-strip > p {
  color: var(--green);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.intro-strip h2 {
  max-width: 900px;
  font-size: clamp(40px, 4.5vw, 68px);
}

.intro-strip > a {
  display: flex;
  gap: 18px;
  align-items: center;
  margin-top: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.studio-proof {
  display: grid;
  grid-template-columns: minmax(320px, 0.72fr) minmax(600px, 1.28fr);
  gap: 55px clamp(60px, 8vw, 135px);
  align-items: start;
  padding-top: 120px;
  padding-bottom: 120px;
  background: var(--paper);
}

.studio-proof-copy {
  position: static;
  padding-top: 10px;
}

.studio-proof-copy h2 {
  margin-bottom: 32px;
  font-size: clamp(43px, 4.5vw, 68px);
}

.studio-proof-copy > p:not(.kicker) {
  max-width: 490px;
  margin-bottom: 35px;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.85;
}

.studio-proof-gallery {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 14px;
  min-height: 635px;
}

.proof-card {
  position: relative;
  display: block;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #d8d6ce;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.proof-card-three {
  grid-column: 2;
  grid-row: 1 / 3;
}

.proof-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

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

.proof-card-caption {
  position: absolute;
  right: 12px;
  bottom: 12px;
  left: 12px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 14px 15px;
  background: rgba(250, 250, 247, 0.92);
  backdrop-filter: blur(8px);
}

.proof-card-caption span {
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.proof-card-caption b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  text-align: right;
}

.proof-card:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 4px;
}

.proof-card:focus-visible img {
  transform: scale(1.025);
}

.studio-proof-notes {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 5px;
  border-top: 1px solid #c7c5bd;
  border-left: 1px solid #c7c5bd;
}

.studio-proof-notes div {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 4px 12px;
  padding: 22px;
  border-right: 1px solid #c7c5bd;
  border-bottom: 1px solid #c7c5bd;
}

.studio-proof-notes span {
  grid-row: 1 / 3;
  color: var(--green);
  font-size: 10px;
}

.studio-proof-notes b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 20px;
  font-weight: 400;
}

.studio-proof-notes p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.catalog-section,
.projects-section,
.turnkey-section,
.advantages,
.journal,
.consultation,
.inner-gallery,
.inner-features {
  padding-top: 120px;
  padding-bottom: 120px;
}

.catalog-section {
  background: var(--paper-2);
}

.section-title-row {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 0.36fr);
  gap: 70px;
  align-items: end;
  margin-bottom: 54px;
}

.section-title-row h2 {
  font-size: clamp(44px, 5vw, 72px);
}

.section-title-row > p {
  margin-bottom: 3px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}

.section-title-row > .section-link {
  justify-self: end;
  margin-bottom: 8px;
}

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid #cac8c0;
  border-left: 1px solid #cac8c0;
}

.catalog-card {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  gap: 16px;
  align-items: end;
  padding: 16px;
  border-right: 1px solid #cac8c0;
  border-bottom: 1px solid #cac8c0;
}

.catalog-photo {
  grid-column: 1 / -1;
  height: 275px;
  margin-bottom: 8px;
  overflow: hidden;
  background: #d4d2ca;
}

.catalog-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.65s ease;
}

.catalog-card:hover img {
  transform: scale(1.035);
}

.catalog-card > span {
  align-self: start;
  padding-top: 5px;
  color: var(--green);
  font-size: 10px;
}

.catalog-card p {
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.catalog-card h3 {
  margin-bottom: 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 24px;
  line-height: 1.1;
}

.catalog-card > b {
  display: grid;
  width: 42px;
  height: 42px;
  border: 1px solid #aaa9a4;
  border-radius: 50%;
  font-weight: 400;
  place-items: center;
}

.catalog-links {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 28px;
}

.catalog-links a {
  padding: 10px 14px;
  border: 1px solid #c5c3bb;
  background: rgba(255, 255, 255, 0.35);
  font-size: 11px;
  text-transform: uppercase;
}

.projects-section {
  background: #fff;
}

.project-mosaic {
  display: grid;
  grid-template-columns: 1.15fr 0.7fr 0.7fr;
  grid-template-rows: 405px 405px;
  gap: 18px;
}

.project-tile {
  position: relative;
  overflow: hidden;
  background: #d5d5d0;
}

.project-tile.tile-1 {
  grid-row: 1 / 3;
}

.project-tile.tile-2 {
  grid-column: 2 / 4;
}

.project-tile.tile-4 {
  display: block;
}

.project-tile > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease;
}

.project-tile:hover > img {
  transform: scale(1.03);
}

.project-tile::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(21, 27, 22, 0.7), transparent 55%);
  content: "";
}

.project-caption {
  position: absolute;
  z-index: 2;
  right: 25px;
  bottom: 24px;
  left: 25px;
  color: #fff;
}

.project-caption span {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.project-caption h3 {
  margin: 6px 0 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 29px;
}

.project-arrow {
  position: absolute;
  z-index: 3;
  top: 18px;
  right: 18px;
  display: grid;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 50%;
  background: rgba(31, 38, 33, 0.18);
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  place-items: center;
  backdrop-filter: blur(7px);
  transition: background 0.2s ease, transform 0.2s ease;
}

.project-tile:hover .project-arrow {
  background: #fff;
  color: var(--ink);
  transform: rotate(9deg);
}

.kelo-story {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  min-height: 780px;
  background: var(--paper);
}

.kelo-story-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kelo-story-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 90px max(34px, calc((100vw - 1440px) / 2)) 90px clamp(55px, 7vw, 115px);
}

.kelo-story-copy h2 {
  margin-bottom: 34px;
  font-size: clamp(46px, 5vw, 76px);
}

.kelo-story-copy > p:not(.kicker) {
  max-width: 590px;
  margin-bottom: 30px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.85;
}

.kelo-story-copy ul {
  max-width: 600px;
  margin: 0 0 34px;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.kelo-story-copy li {
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}

.kelo-story-copy li span {
  display: inline-block;
  width: 42px;
  color: var(--green);
  font-size: 10px;
}

.turnkey-section {
  background: #fff;
}

.process-list {
  border-top: 1px solid var(--line);
}

.process-list article {
  display: grid;
  grid-template-columns: 70px 0.55fr 1fr 35px;
  gap: 28px;
  align-items: center;
  padding: 27px 0;
  border-bottom: 1px solid var(--line);
}

.process-list span {
  color: var(--green);
  font-size: 10px;
}

.process-list h3 {
  margin: 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 25px;
}

.process-list p {
  max-width: 590px;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.process-list b {
  font-weight: 400;
}

.turnkey-section > .section-link {
  margin-top: 40px;
}

.architecture-band {
  display: grid;
  grid-template-columns: 0.84fr 1.16fr;
  min-height: 680px;
  background: var(--green-dark);
  color: #fff;
}

.architecture-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 90px clamp(50px, 6vw, 100px) 90px max(32px, calc((100vw - 1440px) / 2));
}

.architecture-copy h2 {
  margin-bottom: 30px;
  font-size: clamp(44px, 4.5vw, 68px);
}

.architecture-copy > p:not(.kicker) {
  max-width: 550px;
  margin-bottom: 35px;
  color: rgba(255, 255, 255, 0.86);
  font-size: 15px;
  line-height: 1.85;
}

.light-button {
  background: #fff;
  color: var(--ink);
}

.architecture-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.advantages {
  background: var(--paper);
}

.advantage-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.advantage-grid article {
  min-height: 290px;
  padding: 25px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: background 0.25s ease;
}

.advantage-grid article:hover {
  background: #fff;
}

.advantage-grid b {
  color: var(--green);
  font-size: 10px;
}

.advantage-grid h3 {
  margin: 70px 0 16px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 23px;
  line-height: 1.25;
}

.advantage-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.journal {
  background: #fff;
}

.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}

.journal-grid a {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  height: 100%;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}

.journal-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin-bottom: 20px;
  object-fit: cover;
}

.journal-grid a:first-child img {
  aspect-ratio: 4 / 3;
}

.journal-grid span {
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.journal-grid h3 {
  margin: 12px 0 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 24px;
  line-height: 1.35;
}

.journal-grid b {
  align-self: end;
  margin-top: 24px;
  color: var(--ink);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.consultation {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(70px, 10vw, 150px);
  background: var(--paper-2);
}

.consultation-copy h2 {
  margin-bottom: 25px;
  font-size: clamp(46px, 5vw, 72px);
}

.consultation-copy > p:not(.kicker) {
  max-width: 540px;
  color: var(--muted);
  line-height: 1.8;
}

.contact-direct {
  margin-top: 35px;
}

.contact-direct a {
  display: block;
  width: fit-content;
  margin-bottom: 7px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 22px;
}

.light-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  align-content: start;
}

.light-form label:not(.form-consent) {
  display: flex;
  flex-direction: column;
}

.light-form label > span {
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.light-form input,
.light-form select,
.light-form textarea {
  width: 100%;
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid #bcbab2;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-size: 14px;
}

.light-form textarea {
  min-height: 74px;
  resize: vertical;
}

.form-consent {
  display: flex;
  grid-column: 1 / -1;
  gap: 10px;
  align-items: center;
}

.form-consent input {
  width: 16px;
  height: 16px;
  accent-color: var(--green);
}

.form-consent span {
  margin: 0 !important;
}

.light-form .primary-button {
  grid-column: 1 / -1;
  width: 100%;
}

.form-done {
  padding: 55px;
  border: 1px solid #c3c1b9;
}

.form-done b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 38px;
  font-weight: 400;
}

.form-done p {
  max-width: 480px;
  margin-top: 20px;
  color: var(--muted);
}

.form-done button {
  padding: 0 0 5px;
  border: 0;
  border-bottom: 1px solid;
  background: transparent;
  cursor: pointer;
}

.site-footer {
  display: grid;
  grid-template-columns: 1.15fr repeat(3, 0.85fr);
  gap: 60px;
  padding: 80px max(32px, calc((100vw - 1440px) / 2)) 30px;
  background: #fff;
}

.footer-logo {
  margin-bottom: 25px;
}

.footer-brand-block > p {
  max-width: 330px;
  margin-bottom: 28px;
  color: var(--muted);
  font-size: 14px;
}

.footer-brand-block > a:not(.site-logo) {
  display: block;
  width: fit-content;
  margin-bottom: 4px;
  font-size: 12px;
}

.footer-brand-block .footer-phone {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 20px !important;
}

.footer-column {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.footer-column b {
  margin-bottom: 11px;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.footer-column a {
  color: #39423c;
  font-size: 13px;
}

.footer-bottom {
  display: flex;
  grid-column: 1 / -1;
  justify-content: space-between;
  margin-top: 45px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  color: #4d5750;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.inner-hero {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  min-height: 650px;
  padding-right: 0;
  background: #fff;
}

.inner-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px 75px 80px 0;
}

.breadcrumbs {
  display: flex;
  gap: 8px;
  margin-bottom: 50px;
  color: #4d5750;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.breadcrumbs b {
  color: var(--ink);
  font-weight: 600;
}

.inner-copy h1 {
  margin-bottom: 27px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(55px, 6vw, 90px);
  line-height: 1.1;
  letter-spacing: -0.025em;
}

.inner-copy > p:not(.kicker) {
  max-width: 610px;
  margin-bottom: 34px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.75;
}

.inner-image {
  min-height: 650px;
}

.inner-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inner-intro {
  display: grid;
  grid-template-columns: 0.3fr 1fr 0.45fr;
  gap: 55px;
  align-items: start;
  padding-top: 120px;
  padding-bottom: 120px;
}

.inner-intro h2 {
  font-size: clamp(42px, 4.8vw, 70px);
}

.inner-intro > p:last-child {
  margin-top: 55px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.85;
}

.inner-gallery {
  background: var(--paper-2);
}

.inner-gallery-grid {
  display: grid;
  grid-template-columns: 1.2fr repeat(2, 0.8fr);
  gap: 18px;
}

.inner-gallery-grid a {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}

.inner-gallery-grid img {
  grid-column: 1 / -1;
  width: 100%;
  aspect-ratio: 1.18;
  object-fit: cover;
}

.inner-gallery-grid span {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 18px;
}

.inner-gallery-grid b {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.inner-features {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 90px;
  background: #fff;
}

.inner-features h2 {
  font-size: clamp(43px, 4.5vw, 68px);
}

.inner-feature-list {
  border-top: 1px solid var(--line);
}

.inner-feature-list article {
  display: grid;
  grid-template-columns: 45px 0.5fr 1fr;
  gap: 20px;
  padding: 25px 0;
  border-bottom: 1px solid var(--line);
}

.inner-feature-list span {
  color: var(--green);
  font-size: 10px;
}

.inner-feature-list h3 {
  margin: 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 22px;
}

.inner-feature-list p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.inner-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(520px, 610px);
  align-items: center;
  gap: clamp(70px, 9vw, 160px);
  padding-top: 105px;
  padding-bottom: 105px;
  background: var(--green-dark);
  color: #fff;
}

.inner-cta h2 {
  max-width: 850px;
  font-size: clamp(46px, 4.5vw, 76px);
  line-height: .98;
}

.inner-cta .kicker {
  color: rgba(255, 255, 255, 0.86);
}

.inner-cta-copy > p:last-child {
  max-width: 610px;
  margin: 26px 0 0;
  color: rgba(255,255,255,.67);
  font-size: 15px;
  line-height: 1.7;
}

.inner-cta-card {
  padding: 30px;
  background: #f5f3ed;
  color: var(--green-dark);
  box-shadow: 0 20px 60px rgba(0,0,0,.12);
}

.inner-cta-card-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: baseline;
  margin-bottom: 20px;
}

.inner-cta-card-head span {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 27px;
}

.inner-cta-card-head b {
  color: #788078;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.inner-cta-card > .cta-phone-form {
  width: 100%;
  border-color: #c4c7c1;
}

.inner-cta-card .cta-phone-consent {
  background: #f5f3ed;
}

.inner-cta-divider {
  display: flex;
  gap: 14px;
  align-items: center;
  margin: 22px 0 14px;
  color: #747d76;
  font-size: 8px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.inner-cta-divider::before,
.inner-cta-divider::after {
  height: 1px;
  background: #cdd0ca;
  content: "";
  flex: 1;
}

.inner-cta-channels {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.inner-cta-channels b {
  padding: 12px 8px;
  border: 1px solid #b9beb8;
  color: var(--green-dark);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
}

@media (max-width: 1250px) {
  .main-nav {
    gap: 15px;
  }

  .main-nav a,
  .main-nav button {
    font-size: 11px;
  }

  .home-hero {
    grid-template-columns: 0.9fr 1.1fr;
  }

  .home-hero-copy {
    padding-right: 45px;
  }

  .catalog-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .advantage-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 1050px) {
  .header-top,
  .main-nav,
  .header-cta,
  .cta-phone-form--header,
  .mega-menu {
    display: none;
  }

  .header-main {
    grid-template-columns: 1fr auto;
    min-height: 72px;
    padding: 0 24px;
  }

  .mobile-toggle {
    position: relative;
    z-index: 102;
    display: flex;
    width: 45px;
    height: 45px;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    padding: 10px;
    border: 0;
    background: transparent;
  }

  .mobile-toggle span {
    width: 100%;
    height: 1px;
    background: var(--ink);
  }

  .mobile-panel {
    position: fixed;
    z-index: 101;
    top: 72px;
    right: 0;
    bottom: auto;
    left: 0;
    display: grid;
    visibility: hidden;
    width: 100%;
    height: calc(100vh - 72px);
    height: calc(100dvh - 72px);
    max-height: calc(100vh - 72px);
    max-height: calc(100dvh - 72px);
    grid-template-columns: repeat(2, 1fr);
    align-content: start;
    gap: 16px 35px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 34px 24px 60px;
    background: #fff;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  .mobile-panel.open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }

  body.menu-open {
    overflow: hidden;
  }

  .mobile-panel > a {
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    font-family: var(--font-serif), Georgia, serif;
    font-size: 25px;
  }

  .mobile-group {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-bottom: 15px;
  }

  .mobile-group b {
    margin-bottom: 5px;
    font-family: var(--font-serif), Georgia, serif;
    font-size: 26px;
    font-weight: 400;
  }

  .mobile-group a {
    color: var(--muted);
    font-size: 13px;
  }

  .mobile-panel .mobile-call {
    grid-column: 1 / -1;
    color: var(--green);
    font-size: 21px;
  }

  .home-hero {
    grid-template-columns: 1fr;
  }

  .home-hero-copy {
    order: 2;
    padding: 70px 32px;
  }

  .home-hero-visual {
    min-height: 580px;
  }

  .intro-strip {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .studio-proof {
    grid-template-columns: 1fr;
  }

  .studio-proof-copy {
    position: static;
    max-width: 680px;
  }

  .project-mosaic {
    grid-template-columns: 1.08fr 0.92fr;
    grid-template-rows: 400px 330px 340px;
  }

  .project-tile.tile-1 {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .project-tile.tile-2 {
    grid-column: 2;
    grid-row: 1;
  }

  .project-tile.tile-3 {
    grid-column: 2;
    grid-row: 2;
  }

  .project-tile.tile-4 {
    grid-column: 1 / 3;
    grid-row: 3;
  }

  .intro-strip > a {
    width: fit-content;
  }

  .section-title-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 25px;
  }

  .section-title-row > * {
    min-width: 0;
    max-width: 100%;
  }

  .section-title-row > .section-link {
    justify-self: start;
  }

  .kelo-story,
  .architecture-band {
    grid-template-columns: minmax(0, 1fr);
  }

  .architecture-band > * {
    min-width: 0;
    max-width: 100%;
  }

  .kelo-story-photo,
  .architecture-photo {
    min-height: 620px;
  }

  .kelo-story-copy,
  .architecture-copy {
    padding: 90px 32px;
  }

  .architecture-photo {
    order: -1;
  }

  .consultation {
    grid-template-columns: 1fr;
  }

  .site-footer {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-bottom {
    grid-column: 1 / -1;
  }

  .inner-hero {
    grid-template-columns: 1fr;
    padding-right: 0;
    padding-left: 0;
  }

  .inner-copy {
    order: 2;
    padding: 70px 32px;
  }

  .inner-image {
    min-height: 580px;
  }

  .inner-intro {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .inner-intro > p:last-child {
    max-width: 650px;
    margin-top: 0;
  }

  .inner-gallery-grid {
    grid-template-columns: 1fr 1fr;
  }

  .inner-gallery-grid a:first-child {
    grid-column: 1 / -1;
  }

  .inner-gallery-grid a:first-child img {
    aspect-ratio: 1.8;
  }

  .inner-features {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .page-pad {
    padding-right: 20px;
    padding-left: 20px;
  }

  h2 {
    font-size: 38px;
  }

  .mobile-panel {
    grid-template-columns: 1fr;
  }

  .home-hero-visual {
    min-height: 440px;
  }

  .home-hero h1 {
    font-size: clamp(49px, 15vw, 68px);
  }

  .home-hero h1 i {
    display: inline-block;
    margin-top: 8px;
    font-size: 0.58em;
    line-height: 1.12;
  }

  .hero-buttons {
    align-items: stretch;
    flex-direction: column;
  }

  .primary-button,
  .light-button {
    width: 100%;
  }

  .hero-trust {
    grid-template-columns: 1fr;
  }

  .hero-image-note {
    min-width: 230px;
    padding: 18px;
  }

  .intro-strip,
  .studio-proof,
  .catalog-section,
  .projects-section,
  .turnkey-section,
  .advantages,
  .journal,
  .consultation,
  .inner-intro,
  .inner-gallery,
  .inner-features {
    padding-top: 78px;
    padding-bottom: 78px;
  }

  .catalog-grid {
    grid-template-columns: 1fr;
  }

  .studio-proof-gallery {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    min-height: 0;
  }

  .proof-card,
  .proof-card-three {
    grid-column: auto;
    grid-row: auto;
    min-height: 330px;
  }

  .studio-proof-notes {
    grid-template-columns: 1fr;
  }

  .catalog-photo {
    height: 300px;
  }

  .project-mosaic {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .project-tile,
  .project-tile.tile-1 {
    grid-column: auto;
    grid-row: auto;
    min-height: 390px;
  }

  .project-tile.tile-2,
  .project-tile.tile-3,
  .project-tile.tile-4 {
    grid-column: auto;
    grid-row: auto;
  }

  .project-tile.tile-4 {
    display: block;
  }

  .kelo-story-photo,
  .architecture-photo {
    min-height: 440px;
  }

  .kelo-story-copy,
  .architecture-copy {
    padding: 72px 20px;
  }

  .process-list article {
    grid-template-columns: 34px 1fr;
    gap: 12px;
  }

  .process-list p {
    grid-column: 2;
  }

  .process-list b {
    display: none;
  }

  .advantage-grid {
    grid-template-columns: 1fr;
  }

  .journal-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

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

  .form-consent,
  .light-form .primary-button {
    grid-column: auto;
  }

  .site-footer {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 65px 20px 28px;
  }

  .footer-bottom {
    grid-column: auto;
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .inner-image {
    min-height: 440px;
  }

  .inner-copy h1 {
    font-size: 50px;
  }

  .breadcrumbs {
    margin-bottom: 34px;
  }

  .inner-gallery-grid {
    grid-template-columns: 1fr;
  }

  .inner-gallery-grid a:first-child {
    grid-column: auto;
  }

  .inner-gallery-grid a:first-child img,
  .inner-gallery-grid img {
    aspect-ratio: 1.25;
  }

  .inner-feature-list article {
    grid-template-columns: 35px 1fr;
  }

  .inner-feature-list p {
    grid-column: 2;
  }

  .inner-cta {
    align-items: flex-start;
    grid-template-columns: 1fr;
    gap: 44px;
    padding-top: 70px;
    padding-bottom: 70px;
  }

  .inner-cta-card { width: 100%; }
}

/* Interiors: an editorial page assembled from photographs of completed projects. */
.interiors-hero {
  display: grid;
  grid-template-columns: minmax(540px, .82fr) minmax(0, 1.18fr);
  min-height: calc(100vh - 150px);
  background: #f3f1eb;
}

.interiors-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(60px, 6vw, 110px) clamp(34px, 3.8vw, 72px) clamp(60px, 6vw, 100px) max(40px, calc((100vw - 1440px) / 2 + 56px));
}

.interiors-hero-copy h1 {
  max-width: 570px;
  margin: 24px 0 30px;
  font-size: clamp(58px, 4.35vw, 82px);
  line-height: .94;
  letter-spacing: -.035em;
}

.interiors-hero-copy h1 i,
.interiors-lead h2 i,
.interiors-feature h2 i,
.interiors-gallery-title h2 i {
  color: #375646;
  font-weight: 400;
}

.interiors-hero-copy > p:not(.kicker) {
  max-width: 530px;
  margin: 0 0 34px;
  color: #526057;
  font-size: 17px;
  line-height: 1.7;
}

.interiors-hero-copy .primary-button { align-self: flex-start; min-width: 236px; }
.interiors-hero > figure { position: relative; min-height: 690px; margin: 0; overflow: hidden; }
.interiors-hero > figure img { width: 100%; height: 100%; object-fit: cover; }
.interiors-hero > figure::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 58%, rgba(9, 18, 13, .55)); content: ""; }
.interiors-hero figcaption { position: absolute; z-index: 1; right: 44px; bottom: 38px; left: 44px; display: flex; justify-content: space-between; gap: 20px; color: #fff; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.interiors-hero figcaption b { font-weight: 500; }

.interiors-lead { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(70px, 10vw, 180px); align-items: end; padding-top: 118px; padding-bottom: 120px; background: #fff; }
.interiors-lead h2 { max-width: 850px; margin: 24px 0 0; font-size: clamp(50px, 5.2vw, 88px); line-height: .98; }
.interiors-lead > div:last-child { max-width: 590px; padding-bottom: 4px; }
.interiors-lead > div:last-child p { margin: 0 0 22px; color: #46534b; font-size: 17px; line-height: 1.75; }

.interiors-feature { display: grid; grid-template-columns: 1.2fr .8fr; min-height: 720px; background: #153126; color: #fff; }
.interiors-feature figure { min-height: 620px; margin: 0; }
.interiors-feature figure img { width: 100%; height: 100%; object-fit: cover; }
.interiors-feature > div { display: flex; flex-direction: column; justify-content: center; padding: clamp(60px, 7vw, 120px); }
.interiors-feature h2 { margin: 25px 0 30px; font-size: clamp(48px, 4.6vw, 78px); line-height: .98; }
.interiors-feature h2 i { color: #d7c7a1; }
.interiors-feature > div > p:not(.kicker) { max-width: 520px; color: rgba(255,255,255,.76); font-size: 16px; line-height: 1.75; }
.interiors-feature ul { display: grid; gap: 14px; margin: 28px 0 0; padding: 0; list-style: none; }
.interiors-feature li { padding-top: 14px; border-top: 1px solid rgba(255,255,255,.2); font-size: 13px; letter-spacing: .04em; }

.interiors-services { padding-top: 112px; padding-bottom: 118px; background: #f3f1eb; }
.interiors-services-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 72px; border-top: 1px solid #bbc0ba; border-left: 1px solid #bbc0ba; }
.interiors-services-grid article { min-height: 300px; padding: 30px 28px; border-right: 1px solid #bbc0ba; border-bottom: 1px solid #bbc0ba; }
.interiors-services-grid span { color: #6b766f; font-size: 11px; letter-spacing: .14em; }
.interiors-services-grid h3 { margin: 70px 0 18px; font-family: var(--font-serif), Georgia, serif; font-size: 28px; font-weight: 400; line-height: 1.08; }
.interiors-services-grid p { margin: 0; color: #59645d; font-size: 14px; line-height: 1.65; }

.interiors-gallery { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; padding-top: 120px; padding-bottom: 128px; background: #fff; }
.interiors-gallery-title { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; align-items: end; margin-bottom: 56px; }
.interiors-gallery-title h2 { grid-column: 1 / -1; max-width: 980px; margin: 24px 0 0; font-size: clamp(50px, 5.2vw, 86px); line-height: .98; }
.interiors-gallery figure { min-height: 370px; margin: 0; overflow: hidden; }
.interiors-gallery .interiors-gallery-main { grid-row: span 2; min-height: 758px; }
.interiors-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.interiors-gallery figure:hover img { transform: scale(1.015); }

@media (max-width: 1000px) {
  .interiors-hero { grid-template-columns: 1fr; }
  .interiors-hero-copy { padding: 72px 7vw; }
  .interiors-hero > figure { min-height: 66vw; }
  .interiors-lead { grid-template-columns: 1fr; gap: 42px; }
  .interiors-feature { grid-template-columns: 1fr; }
  .interiors-feature figure { min-height: 68vw; }
  .interiors-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inner-cta-card { width: 100%; }
}

@media (min-width: 1001px) and (max-width: 1300px) {
  .interiors-hero { grid-template-columns: minmax(455px, .9fr) minmax(0, 1.1fr); }
  .interiors-hero-copy { padding-right: 38px; padding-left: 38px; }
  .interiors-hero-copy h1 { font-size: 62px; }
}

@media (max-width: 650px) {
  .interiors-hero { min-height: 0; }
  .interiors-hero-copy { padding: 54px 22px 58px; }
  .interiors-hero-copy h1 { margin: 20px 0 24px; font-size: 57px; }
  .interiors-hero-copy > p:not(.kicker) { font-size: 15px; }
  .interiors-hero > figure { min-height: 115vw; }
  .interiors-hero figcaption { right: 18px; bottom: 20px; left: 18px; display: grid; }
  .interiors-lead { gap: 28px; padding-top: 70px; padding-bottom: 72px; }
  .interiors-lead h2, .interiors-gallery-title h2 { font-size: 45px; }
  .interiors-lead > div:last-child p { font-size: 15px; }
  .interiors-feature figure { min-height: 112vw; }
  .interiors-feature > div { padding: 65px 22px 72px; }
  .interiors-feature h2 { font-size: 45px; }
  .interiors-services { padding-top: 72px; padding-bottom: 78px; }
  .interiors-services-grid { grid-template-columns: 1fr; margin-top: 44px; }
  .interiors-services-grid article { min-height: 230px; }
  .interiors-services-grid h3 { margin-top: 48px; }
  .interiors-gallery { grid-template-columns: 1fr; gap: 10px; padding-top: 74px; padding-bottom: 78px; }
  .interiors-gallery-title { display: block; margin-bottom: 34px; }
  .interiors-gallery figure, .interiors-gallery .interiors-gallery-main { grid-row: auto; min-height: 78vw; }
  .inner-cta-card { padding: 22px 16px; }
  .inner-cta-card-head { display: grid; gap: 5px; }
  .inner-cta-channels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
  }
}

/* Catalog and product pages */
.catalog-page,
.product-page {
  background: var(--paper);
}

.catalog-hero,
.product-hero {
  display: grid;
  grid-template-columns: minmax(470px, 0.82fr) minmax(600px, 1.18fr);
  min-height: 760px;
  padding-right: 0;
  background: #fff;
}

.product-hero {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.catalog-hero-copy,
.product-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 72px clamp(40px, 5vw, 86px) 72px 0;
}

.catalog-hero h1,
.product-hero h1 {
  margin-bottom: 28px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(56px, 6vw, 92px);
  line-height: 1.1;
  letter-spacing: -0.025em;
}

.catalog-hero-lead,
.product-hero-lead {
  max-width: 670px;
  margin-bottom: 34px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
}

.catalog-hero-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 36px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.catalog-hero-meta span {
  min-height: 86px;
  padding: 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.catalog-hero-meta b {
  display: block;
  margin-bottom: 5px;
  color: var(--ink);
  font-family: var(--font-serif), Georgia, serif;
  font-size: 23px;
  font-weight: 400;
}

.catalog-hero-image,
.product-hero-media {
  position: relative;
  min-height: 760px;
  margin: 0;
  overflow: hidden;
  background: #d7d9d3;
}

.product-hero-media {
  align-self: start;
}

.catalog-hero-image > img,
.product-hero-media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.catalog-hero-image figcaption,
.product-hero-media figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  min-width: 330px;
  flex-direction: column;
  padding: 24px 28px;
  background: rgba(255, 255, 255, 0.95);
}

.catalog-hero-image figcaption span,
.product-hero-media figcaption span {
  margin-bottom: 6px;
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.catalog-hero-image figcaption b,
.product-hero-media figcaption b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 20px;
  font-weight: 400;
}

.product-catalog,
.catalog-guide,
.catalog-faq,
.product-story,
.product-journey,
.product-gallery,
.product-plan,
.product-scope,
.product-faq,
.related-product {
  padding-top: 120px;
  padding-bottom: 120px;
}

.catalog-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -20px 0 38px;
}

.catalog-chips a,
.catalog-chips span {
  padding: 10px 15px;
  border: 1px solid #bfc2bc;
  background: rgba(255, 255, 255, 0.4);
  color: var(--ink);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.catalog-chips .active {
  border-color: var(--green-dark);
  background: var(--green-dark);
  color: #fff;
}

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

.catalog-product-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border: 1px solid #c9cac4;
  background: #fff;
}

.catalog-product-photo {
  position: relative;
  display: block;
  aspect-ratio: 1.52;
  overflow: hidden;
  background: #d5d8d1;
}

.catalog-product-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.catalog-product-card:hover .catalog-product-photo img {
  transform: scale(1.02);
}

.catalog-product-index,
.catalog-product-status {
  position: absolute;
  top: 16px;
  padding: 8px 11px;
  background: rgba(250, 250, 247, 0.94);
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.catalog-product-index {
  left: 16px;
}

.catalog-product-status {
  right: 16px;
}

.catalog-product-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 28px;
}

.catalog-product-body > p:first-child {
  margin-bottom: 10px;
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.catalog-product-body h3 {
  margin: 0 0 16px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.12;
}

.catalog-product-summary {
  max-width: 620px;
  margin-bottom: 25px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.catalog-product-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: auto 0 26px;
  padding: 0;
  list-style: none;
}

.catalog-product-facts li {
  padding: 7px 10px;
  border: 1px solid #ced0ca;
  color: var(--ink);
  font-size: 11px;
}

.catalog-custom-card {
  display: flex;
  grid-column: 1 / -1;
  min-height: 340px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(40px, 6vw, 85px);
  background: var(--green-dark);
  color: #fff;
}

.catalog-custom-card h3 {
  max-width: 760px;
  margin: 0 0 20px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(40px, 4.5vw, 64px);
  font-weight: 400;
  line-height: 1.12;
}

.catalog-custom-card > p:not(.kicker) {
  max-width: 650px;
  margin-bottom: 30px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 15px;
  line-height: 1.75;
}

.catalog-guide {
  background: #fff;
}

.catalog-guide-heading {
  display: grid;
  grid-template-columns: 0.34fr 1fr;
  gap: 60px;
  align-items: start;
  margin-bottom: 58px;
}

.catalog-guide-heading h2 {
  max-width: 970px;
}

.catalog-guide-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.catalog-guide-grid article {
  min-height: 260px;
  padding: 28px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.catalog-guide-grid span,
.product-scope-grid span {
  color: var(--green);
  font-size: 11px;
  font-weight: 700;
}

.catalog-guide-grid h3 {
  margin: 70px 0 14px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 24px;
  font-weight: 400;
}

.catalog-guide-grid p,
.product-scope-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.catalog-faq,
.product-faq {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 90px;
  background: var(--paper-2);
}

.catalog-faq h2,
.product-faq h2 {
  font-size: clamp(42px, 4.5vw, 68px);
}

.faq-list {
  border-top: 1px solid #bdbfb8;
}

.faq-list details {
  border-bottom: 1px solid #bdbfb8;
}

.faq-list summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 24px 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 19px;
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
}

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

.faq-list summary span {
  flex: 0 0 auto;
  color: var(--green);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 22px;
  transition: transform 0.2s ease;
}

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

.faq-list details p {
  max-width: 760px;
  margin: -4px 55px 24px 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}

.product-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 23px;
}

.product-labels span {
  padding: 7px 10px;
  border: 1px solid #bdc1bb;
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-specs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin: 0 0 32px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.product-specs div {
  padding: 14px 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.product-specs dt {
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.product-specs dd {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-serif), Georgia, serif;
  font-size: 20px;
}

.product-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
}

.inline-lead-form {
  display: grid;
  grid-template-columns: minmax(210px, 1fr) auto;
  width: min(100%, 680px);
  border: 1px solid #c7c9c3;
  background: #fff;
}

.inline-lead-phone {
  display: block;
  min-width: 0;
  padding: 10px 18px 9px;
}

.inline-lead-phone span {
  display: block;
  margin-bottom: 3px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.inline-lead-phone input {
  width: 100%;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-size: 16px;
}

.inline-lead-phone input::placeholder {
  color: #999e98;
}

.inline-lead-form > button {
  min-height: 58px;
  padding: 0 22px;
  border: 0;
  background: var(--green-dark);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  cursor: pointer;
}

.inline-lead-form > button span {
  margin-left: 14px;
}

.inline-lead-consent {
  display: flex;
  grid-column: 1 / -1;
  gap: 8px;
  align-items: flex-start;
  padding: 8px 12px 9px;
  border-top: 1px solid #e1e2de;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}

.inline-lead-consent input {
  flex: 0 0 auto;
  margin: 1px 0 0;
}

.inline-lead-success {
  display: flex;
  gap: 10px;
  align-items: center;
  width: min(100%, 680px);
  padding: 18px 20px;
  border: 1px solid rgba(49, 76, 61, 0.38);
  background: #f4f5f1;
  color: var(--green-dark);
  font-size: 13px;
}

.hero-lead-form {
  width: 100%;
  margin-top: 25px;
  padding: 22px 22px 17px;
  background: #f3f1eb;
}

.hero-lead-form > p {
  margin: 0 0 15px;
  color: var(--green-dark);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

.hero-lead-form .inline-lead-form {
  grid-template-columns: minmax(0, 1fr) 168px;
  width: 100%;
  border: 0;
  background: transparent;
}

.hero-lead-form .inline-lead-phone {
  height: 54px;
  padding: 7px 14px;
  border: 1px solid #b9beb8;
  border-right: 0;
  background: #fff;
}

.hero-lead-form .inline-lead-phone input {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 19px;
}

.hero-lead-form .inline-lead-form > button {
  min-height: 54px;
  padding: 0 14px;
  font-size: 9px;
}

.hero-lead-form .inline-lead-consent {
  padding: 9px 11px 0;
  font-size: 7px;
}

.hero-lead-form + .hero-buttons {
  display: block;
  margin-top: 19px;
}

.hero-lead-form + .hero-buttons .line-button {
  margin: 0;
}

@media (max-width: 650px) {
  .hero-lead-form {
    padding: 18px 16px 15px;
  }

  .hero-lead-form .inline-lead-form {
    grid-template-columns: 1fr;
  }

  .hero-lead-form .inline-lead-phone {
    border-right: 1px solid #b9beb8;
  }
}

body.lead-modal-open {
  overflow: hidden;
}

.lead-modal {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  visibility: hidden;
  place-items: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease, visibility 0.22s ease;
}

.lead-modal.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.lead-modal-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(18, 30, 24, 0.78);
  backdrop-filter: blur(7px);
  cursor: pointer;
}

.lead-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 610px);
  padding: clamp(34px, 5vw, 64px);
  outline: 0;
  background: var(--paper);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.3);
  transform: translateY(16px);
  transition: transform 0.22s ease;
}

.lead-modal.is-open .lead-modal-dialog {
  transform: translateY(0);
}

.lead-modal-dialog h2 {
  max-width: 470px;
  margin: 0 0 22px;
  font-size: clamp(38px, 5vw, 58px);
}

.lead-modal-copy {
  max-width: 470px;
  margin-bottom: 32px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
}

.lead-modal-close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid #cfd0ca;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}

.lead-modal-close span {
  position: absolute;
  top: 20px;
  left: 11px;
  width: 19px;
  height: 1px;
  background: var(--ink);
  transform: rotate(45deg);
}

.lead-modal-close span:last-child {
  transform: rotate(-45deg);
}

.lead-modal-form {
  display: grid;
  grid-template-columns: 1fr auto;
  border: 1px solid #bfc3bc;
  background: #fff;
}

.lead-modal-phone {
  min-width: 0;
  padding: 11px 18px 10px;
}

.lead-modal-phone span {
  display: block;
  margin-bottom: 2px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.lead-modal-phone input {
  width: 100%;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-size: 17px;
}

.lead-modal-form > button,
.lead-modal-done {
  min-height: 62px;
  padding: 0 24px;
  border: 0;
  background: var(--green-dark);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.lead-modal-form > button span {
  margin-left: 14px;
}

.lead-modal-consent {
  display: flex;
  grid-column: 1 / -1;
  gap: 8px;
  align-items: flex-start;
  padding: 9px 12px 10px;
  border-top: 1px solid #e1e2de;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}

.lead-modal-consent input {
  flex: 0 0 auto;
  margin-top: 1px;
}

.lead-modal-direct {
  display: inline-block;
  margin-top: 22px;
  padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 18px;
}

.lead-modal-done {
  width: 100%;
}

.cta-phone-form {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  width: min(100%, 650px);
  border: 1px solid #bfc3bc;
  background: #fff;
  color: var(--ink);
}

.cta-phone-form > label:first-of-type {
  min-width: 0;
  padding: 10px 18px 9px;
}

.cta-phone-form > label:first-of-type > span {
  display: block;
  margin-bottom: 2px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.11em;
  line-height: 1.2;
  text-transform: uppercase;
}

.cta-phone-form input[type="tel"] {
  width: 100%;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-size: 16px;
}

.cta-phone-form > button {
  min-height: 58px;
  padding: 0 22px;
  border: 0;
  background: var(--green-dark);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.07em;
  line-height: 1.3;
  text-transform: uppercase;
  cursor: pointer;
}

.cta-phone-form > button span {
  margin-left: 12px;
}

.cta-phone-consent {
  display: flex;
  grid-column: 1 / -1;
  gap: 7px;
  align-items: flex-start;
  padding: 7px 11px 8px;
  border-top: 1px solid #e1e2de;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.35;
}

.cta-phone-consent input {
  flex: 0 0 auto;
  margin: 1px 0 0;
}

#header-callback-dialog { box-sizing:border-box; }
#header-callback-dialog .inline-lead-form { width:100%; max-width:none; min-width:0; grid-template-columns:minmax(0,1fr) 180px; }
#header-callback-dialog .inline-lead-phone { min-width:0; }
#header-callback-dialog .inline-lead-phone input { width:100%; min-width:0; box-sizing:border-box; }
#header-callback-dialog .cta-form-channels { grid-template-columns:1fr!important; gap:14px; padding:20px 0 0; border:0; background:transparent; }
#header-callback-dialog .cta-form-channels > span { text-align:center; font-size:10px; }
#header-callback-dialog .cta-form-channels > div { width:100%; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
#header-callback-dialog .cta-form-channels > div > * { display:flex; align-items:center; justify-content:center; gap:7px; min-width:0; min-height:44px; padding:8px 5px; box-sizing:border-box; font-size:10px; letter-spacing:0; white-space:nowrap; }
#header-callback-dialog .cta-form-channels svg { width:16px; height:16px; flex:0 0 16px; }
@media(max-width:600px){
 #header-callback-dialog { padding:26px 20px; }
 #header-callback-dialog h2 { font-size:27px; line-height:1.15; }
 #header-callback-dialog .inline-lead-form { grid-template-columns:1fr; }
 #header-callback-dialog .inline-lead-form > button { grid-column:1/-1; min-height:52px; }
 #header-callback-dialog .cta-form-channels > div { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #header-callback-dialog .inline-lead-consent { font-size:10px; line-height:1.5; }
}
.cta-form-channels {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(110px, 0.65fr) 1fr;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border-top: 1px solid #e1e2de;
  background: #f4f2ed;
}

.cta-form-channels > span {
  color: var(--muted);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.cta-form-channels > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}

.cta-form-channels b {
  padding: 7px 5px;
  border: 1px solid #bdc3ba;
  color: var(--green-dark);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
}

.cta-phone-form--header {
  grid-template-columns: minmax(110px, 1fr) 155px;
  width: 330px;
}

.cta-phone-form--header > label:first-of-type {
  padding-right: 11px;
  padding-left: 13px;
}

.cta-phone-form--header > button {
  padding: 0 12px;
}

.cta-phone-form--header .cta-phone-consent {
  padding: 5px 8px 6px;
  font-size: 7px;
}

.cta-phone-success {
  grid-column: 1 / -1;
  padding: 18px 20px;
  color: var(--green-dark);
  font-family: var(--font-serif), Georgia, serif;
  font-size: 18px;
  font-weight: 400;
}

@media (max-width: 650px) {
  .lead-modal {
    align-items: end;
    padding: 12px;
  }

  .lead-modal-dialog {
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
    padding: 46px 22px 28px;
  }

  .lead-modal-dialog h2 {
    font-size: 38px;
  }

  .lead-modal-form {
    grid-template-columns: 1fr;
  }

  .lead-modal-form > button,
  .lead-modal-consent {
    grid-column: 1;
  }

  .lead-modal-close {
    top: 12px;
    right: 12px;
  }

  .cta-phone-form {
    grid-template-columns: 1fr;
  }

  .cta-phone-form > button,
  .cta-phone-consent {
    grid-column: 1;
  }

  .cta-form-channels {
    grid-template-columns: 1fr;
  }

  .cta-form-channels > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1050px) {
  .cta-phone-form--header {
    display: none !important;
  }
}

.inner-cta .inline-lead-form {
  flex: 0 1 620px;
  border-color: rgba(255, 255, 255, 0.38);
}

.inner-cta .inline-lead-consent {
  background: var(--green-dark);
  color: rgba(255, 255, 255, 0.72);
}

.product-price {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 18px;
  align-items: baseline;
  margin: 24px 0;
  padding: 18px 20px;
  background: var(--green-dark);
  color: #fff;
}

/* Company and Karelia stone editorial pages */
.company-hero {
  display: grid;
  grid-template-columns: minmax(480px, .83fr) minmax(0, 1.17fr);
  min-height: 760px;
  background: #f4f2ec;
}

.company-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 70px clamp(40px, 5.5vw, 105px) 65px;
}

.company-hero-copy .breadcrumbs {
  margin-bottom: auto;
}

.company-hero-copy > .kicker {
  margin-top: 65px;
}

.company-hero-copy h1 {
  margin: 25px 0 30px;
  max-width: 700px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(54px, 5.8vw, 92px);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .98;
}

.company-hero-copy h1 i {
  color: var(--green-dark);
  font-weight: 400;
}

.company-hero-copy > p:not(.kicker) {
  max-width: 610px;
  margin: 0 0 32px;
  font-size: 16px;
  line-height: 1.7;
}

.company-hero-contact {
  width: 100%;
  max-width: 590px;
  padding: 18px;
  background: #ebe8df;
}

.company-hero-contact > .cta-phone-form {
  width: 100%;
  margin-top: 0;
  border: 0;
}

.company-contact-channels {
  display: flex;
  gap: 9px;
  align-items: center;
  padding-top: 14px;
}

.company-contact-channels > span {
  margin-right: auto;
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.company-contact-channels b {
  padding: 7px 10px;
  border: 1px solid #b9beb8;
  color: var(--green-dark);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.company-hero > figure {
  position: relative;
  min-height: 760px;
  margin: 0;
  overflow: hidden;
}

.company-hero > figure > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}

.company-hero figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(390px, 55%);
  padding: 26px 30px;
  background: rgba(248,247,242,.96);
}

.company-hero figcaption span,
.company-hero figcaption b {
  display: block;
}

.company-hero figcaption span {
  margin-bottom: 9px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.company-hero figcaption b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 19px;
  font-weight: 400;
}

.site-detail:has(.company-hero) > .editorial-lead {
  align-items: start;
  padding-top: 64px;
  padding-bottom: 64px;
  border-top: 1px solid #d8d9d0;
  gap: clamp(32px, 6vw, 100px);
}
.site-detail:has(.company-hero) > .editorial-lead:nth-of-type(3) { background: #e8ece5; }
.site-detail:has(.company-hero) > .editorial-lead:nth-of-type(4) { background: #fff; }
.site-detail:has(.company-hero) > .editorial-lead h2 { font-size: clamp(34px, 3vw, 54px); line-height: 1.13; }
.site-detail:has(.company-hero) > .editorial-lead > div:last-child { padding-top: 38px; }
.kelo-contact-card.kelo-contact-card {
  width: 100%; max-width: 650px; min-width: 0; box-sizing: border-box;
  padding: 24px; margin-top: 24px; background: #f5f3ed; color: #243c31;
  box-shadow: none; container-type: inline-size;
}
.kelo-contact-heading { font-family: var(--font-serif), Georgia, serif; font-size: 27px; margin-bottom: 20px; }
.kelo-contact-card form { width: 100%!important; margin: 0!important; display: grid!important; grid-template-columns: minmax(0,1fr) minmax(140px,.7fr)!important; }
.kelo-contact-card form > label:first-of-type { padding: 12px!important; background: white; }
.kelo-contact-card form input[type=tel] { width: 100%; font-family: inherit!important; font-size: 16px!important; }
.kelo-contact-card form > button { grid-column: auto!important; min-height: 58px; padding: 12px!important; font-size: 10px!important; }
.kelo-contact-card .cta-phone-consent,.kelo-contact-card .inline-lead-consent { grid-column: 1/-1!important; font-size: 10px!important; line-height: 1.5; padding: 10px!important; }
.kelo-contact-networks { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.kelo-contact-networks > * { display: flex!important; align-items:center; justify-content:center; gap:7px; min-width:0; min-height:42px; padding:8px!important; border:1px solid #b9beb8; font:500 10px/1.3 Arial,sans-serif!important; color:#243c31; white-space:nowrap; box-sizing:border-box; }
.kelo-contact-networks svg { width:16px; height:16px; flex:0 0 16px; }
.kelo-contact-card .light-form { grid-template-columns: minmax(0,1fr)!important; gap:12px; }
.kelo-contact-card .light-form > label { min-width:0; padding:12px; background:#fff; color:#243c31; }
.kelo-contact-card .light-form input,.kelo-contact-card .light-form select,.kelo-contact-card .light-form textarea { max-width:100%; box-sizing:border-box; color:#243c31; }
.kelo-contact-card .light-form > button,.kelo-contact-card .light-form > .form-consent { grid-column:1/-1!important; }
@container (max-width: 460px) { .kelo-contact-networks { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@container (max-width: 340px) { .kelo-contact-card form { grid-template-columns:1fr!important; } .kelo-contact-card form > button { grid-column:1/-1!important; } }
@media(max-width:700px) { .site-detail:has(.company-hero) > .editorial-lead { grid-template-columns:1fr; gap:20px; padding-top:40px; padding-bottom:40px; } .site-detail:has(.company-hero) > .editorial-lead > div:last-child { padding-top:0; } }
.editorial-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .72fr);
  gap: 9vw;
  align-items: end;
  padding-top: 110px;
  padding-bottom: 110px;
  background: #f4f2ec;
}

.editorial-lead h2,
.company-values h2,
.craft-split h2,
.stone-origin h2,
.stone-application h2 {
  margin: 18px 0 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(43px, 5vw, 78px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.04;
}

.editorial-lead h2 i,
.craft-split h2 i,
.stone-application h2 i {
  color: var(--green-dark);
  font-weight: 400;
}

.editorial-lead > div:last-child {
  max-width: 570px;
  padding-bottom: 8px;
}

.editorial-lead > div:last-child p {
  margin: 0 0 20px;
  font-size: 17px;
  line-height: 1.75;
}

.editorial-photo {
  padding-top: 0;
  padding-bottom: 120px;
  background: #f4f2ec;
}

.editorial-photo figure,
.stone-origin figure,
.stone-application figure {
  margin: 0;
}

.editorial-photo img {
  width: 100%;
  height: min(68vw, 820px);
  object-fit: cover;
}

.editorial-photo figcaption,
.stone-origin figcaption {
  margin-top: 12px;
  color: var(--muted);
  font-size: 11px;
}

.company-values {
  padding-top: 115px;
  padding-bottom: 125px;
}

.company-director {
  display: grid;
  grid-template-columns: minmax(360px, .8fr) minmax(420px, 1.2fr);
  gap: clamp(55px, 9vw, 150px);
  align-items: center;
  padding-top: 120px;
  padding-bottom: 120px;
}

.company-director figure {
  margin: 0;
}

.company-director img {
  width: 100%;
  max-height: 760px;
  object-fit: cover;
  object-position: center top;
}

.company-director h2 {
  margin: 24px 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(44px, 5vw, 80px);
  font-weight: 400;
  letter-spacing: -.05em;
  line-height: .95;
}

.company-director-lead {
  max-width: 620px;
  margin: 0 0 24px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1.25;
}

.company-director div > p:last-child {
  max-width: 560px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
}

.company-geography {
  padding-top: 120px;
  padding-bottom: 120px;
  background: #f4f2ec;
}

.company-geography h2 {
  max-width: 1050px;
  margin: 22px 0 32px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(50px, 7vw, 104px);
  font-weight: 400;
  letter-spacing: -.05em;
  line-height: 1.02;
}

.company-geography h2 i {
  color: var(--green-dark);
  font-weight: 400;
}

.company-geography > p:not(.kicker) {
  max-width: 650px;
  margin: 0 0 34px;
  font-size: 16px;
  line-height: 1.7;
}

.company-values-grid,
.stone-uses {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 75px;
  border-top: 1px solid var(--line);
}

.company-values-grid article,
.stone-uses article {
  min-height: 300px;
  padding: 30px 34px 36px 0;
  border-right: 1px solid var(--line);
}

.company-values-grid article:not(:first-child),
.stone-uses article:not(:first-child) {
  padding-left: 34px;
}

.company-values-grid article:last-child,
.stone-uses article:last-child {
  border-right: 0;
}

.company-values-grid span,
.stone-uses span {
  color: var(--green-dark);
  font-size: 11px;
  letter-spacing: .12em;
}

.company-values-grid h3,
.stone-uses h3 {
  margin: 70px 0 18px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 29px;
  font-weight: 400;
}

.company-values-grid p,
.stone-uses p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.craft-split {
  display: grid;
  grid-template-columns: 1.18fr .82fr;
  min-height: 760px;
  background: var(--green-dark);
  color: #fff;
}

.craft-split figure {
  min-height: 650px;
  margin: 0;
}

.craft-split img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.craft-split > div {
  align-self: center;
  padding: 85px clamp(42px, 6vw, 110px);
}

.craft-split h2 i {
  color: #d9ded8;
}

.craft-split > div > p:not(.kicker) {
  margin: 30px 0;
  color: rgba(255,255,255,.78);
  font-size: 16px;
  line-height: 1.75;
}

.craft-split ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.craft-split li {
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,.2);
  font-size: 13px;
}

.stone-origin {
  display: grid;
  grid-template-columns: 1.18fr .82fr;
  padding-top: 0;
  padding-bottom: 0;
  background: #22342c;
  color: #fff;
}

.stone-origin figure {
  min-height: 760px;
}

.stone-origin figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.stone-origin figcaption {
  display: none;
}

.stone-origin > div {
  align-self: center;
  padding: 75px clamp(42px, 6vw, 105px);
}

.stone-origin > div > p:not(.kicker) {
  margin: 26px 0 40px;
  color: rgba(255,255,255,.76);
  font-size: 15px;
  line-height: 1.75;
}

.stone-origin dl,
.stone-origin dl div {
  margin: 0;
}

.stone-origin dl div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 24px;
  padding: 16px 0;
  border-top: 1px solid rgba(255,255,255,.2);
}

.stone-origin dt {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.stone-origin dd {
  margin: 0;
  color: rgba(255,255,255,.68);
  font-size: 12px;
  line-height: 1.55;
}

.stone-application {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 8vw;
  align-items: center;
  padding-top: 120px;
  padding-bottom: 120px;
  background: #f4f2ec;
}

.stone-application-copy > p:last-child {
  margin-top: 30px;
  max-width: 470px;
  font-size: 15px;
  line-height: 1.75;
}

.stone-application img {
  width: 100%;
  height: 680px;
  object-fit: cover;
}

.stone-uses {
  grid-template-columns: repeat(4, 1fr);
  margin-top: 0;
  padding-top: 45px;
  padding-bottom: 95px;
  background: #f4f2ec;
}

@media (max-width: 900px) {
  .company-hero {
    grid-template-columns: 1fr;
  }

  .company-hero-copy {
    min-height: 670px;
    padding: 50px 28px 55px;
  }

  .company-hero > figure {
    min-height: 600px;
  }

  .editorial-lead,
  .company-director,
  .craft-split,
  .stone-origin,
  .stone-application {
    grid-template-columns: 1fr;
  }

  .company-director {
    gap: 45px;
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .editorial-lead {
    gap: 38px;
    padding-top: 70px;
    padding-bottom: 70px;
  }

  .editorial-photo,
  .company-values {
    padding-bottom: 80px;
  }

  .company-values-grid,
  .stone-uses {
    grid-template-columns: 1fr 1fr;
  }

  .craft-split figure,
  .stone-origin figure {
    min-height: 520px;
  }

  .stone-application img {
    height: 520px;
  }
}

@media (max-width: 600px) {
  .company-hero-copy {
    min-height: auto;
    padding: 34px 20px 45px;
  }

  .company-hero-copy .breadcrumbs {
    margin-bottom: 70px;
  }

  .company-hero-copy > .kicker {
    margin-top: 0;
  }

  .company-hero-copy h1 {
    font-size: 50px;
  }

  .company-hero > figure {
    min-height: 480px;
  }

  .company-hero-contact {
    padding: 12px;
  }

  .company-contact-channels {
    flex-wrap: wrap;
  }

  .company-contact-channels > span {
    flex: 1 0 100%;
    margin: 0 0 4px;
  }

  .company-values-grid,
  .stone-uses {
    grid-template-columns: 1fr;
  }

  .company-values-grid article,
  .stone-uses article,
  .company-values-grid article:not(:first-child),
  .stone-uses article:not(:first-child) {
    min-height: 0;
    padding: 26px 0 34px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .company-values-grid h3,
  .stone-uses h3 {
    margin-top: 35px;
  }

  .craft-split > div,
  .stone-origin > div {
    padding: 60px 24px;
  }

  .stone-application {
    padding-top: 75px;
    padding-bottom: 75px;
  }
}

.product-price span {
  color: rgba(255, 255, 255, 0.68);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-price strong {
  color: #fff;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(25px, 2vw, 34px);
  font-weight: 400;
}

.product-price small {
  grid-column: 1 / -1;
  color: rgba(255, 255, 255, 0.7);
  font-size: 10px;
  line-height: 1.45;
}

.product-hero-documents {
  margin: 0 0 24px;
  border-top: 1px solid var(--line);
}

.product-hero-documents > p {
  margin: 0;
  padding: 12px 0 10px;
  color: var(--green);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-hero-documents > div {
  border-bottom: 1px solid var(--line);
}

.product-hero-documents a {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) 24px;
  gap: 14px;
  align-items: center;
  min-height: 54px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
  color: var(--ink);
}

.product-hero-documents a:first-child {
  border-top: 0;
}

.product-hero-documents a span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.product-hero-documents a b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.3;
}

.product-hero-documents a i {
  color: var(--green);
  font-size: 17px;
  font-style: normal;
  text-align: right;
}

.product-hero-documents a:hover b {
  color: var(--green);
}

.product-download {
  display: inline-flex;
  gap: 18px;
  align-items: center;
  padding-bottom: 6px;
  border-bottom: 1px solid currentColor;
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.product-note {
  max-width: 630px;
  margin: 22px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.product-anchor-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 30px;
  padding-top: 20px;
  padding-bottom: 20px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.product-anchor-nav a {
  padding: 4px 0;
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-story {
  display: grid;
  grid-template-columns: 0.88fr 1.12fr;
  gap: clamp(70px, 9vw, 145px);
  background: var(--paper);
}

.product-story h2 {
  max-width: 720px;
  font-size: clamp(44px, 4.8vw, 70px);
}

.product-story-copy > p {
  margin-bottom: 22px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.85;
}

.product-story-note {
  margin-top: 42px;
  padding: 24px;
  border: 1px solid #c7c9c2;
  background: rgba(255, 255, 255, 0.45);
}

.product-story-note span {
  display: block;
  margin-bottom: 10px;
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-story-note p {
  margin: 0;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.7;
}

.product-journey {
  overflow: hidden;
  background: #e9e7e0;
}

.product-journey-head {
  display: grid;
  grid-template-columns: 0.88fr 1.12fr;
  gap: clamp(70px, 9vw, 145px);
  align-items: end;
  margin-bottom: 62px;
}

.product-journey-head h2 {
  max-width: 760px;
  font-size: clamp(44px, 4.8vw, 70px);
}

.product-journey-head > p {
  max-width: 660px;
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.product-journey-gallery {
  display: grid;
  grid-template-columns: repeat(var(--journey-media-count, 3), minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 28px;
}

.product-journey-gallery--1 { --journey-media-count: 1; }
.product-journey-gallery--2 { --journey-media-count: 2; }
.product-journey-gallery--3 { --journey-media-count: 3; }
.product-journey-gallery--4 { --journey-media-count: 4; }
.product-journey-gallery--5 { --journey-media-count: 5; }

.product-journey-gallery-item {
  position: relative;
  min-width: 0;
  height: clamp(230px, 22vw, 350px);
  margin: 0;
  overflow: hidden;
  background: #d7d5ce;
}

.product-journey-gallery--1 .product-journey-gallery-item {
  height: clamp(360px, 38vw, 560px);
}

.product-journey-gallery--2 .product-journey-gallery-item {
  height: clamp(300px, 32vw, 460px);
}

.product-journey-gallery-item > a {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

.product-journey-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.product-journey-gallery-item.is-contain img {
  padding: clamp(18px, 2.5vw, 34px);
  background: #dedbd3;
  object-fit: contain;
}

.product-journey-gallery-item:hover img {
  transform: scale(1.018);
}

.product-journey-gallery-item figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  padding: 42px 16px 14px;
  background: linear-gradient(transparent, rgba(17, 25, 21, 0.72));
  color: #fff;
}

.product-journey-gallery-item figcaption span {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-journey-gallery-item figcaption b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 16px;
  font-weight: 400;
  text-align: right;
}

.product-journey-track {
  display: grid;
  grid-template-columns: repeat(5, minmax(230px, 1fr));
  grid-auto-rows: 1fr;
  gap: 16px;
  align-items: stretch;
  margin: 0;
  padding: 0 0 8px;
  overflow-x: auto;
  list-style: none;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}

.product-journey-track::-webkit-scrollbar {
  display: none;
}

.product-journey-step {
  display: grid;
  grid-template-rows: 48px minmax(0, 1fr);
  height: 100%;
  min-width: 0;
  scroll-snap-align: start;
}

.product-journey-media {
  position: relative;
  height: 180px;
  overflow: hidden;
  background: #d7d5ce;
}

.product-journey-media > a {
  display: block;
  width: 100%;
  height: 100%;
}

.product-journey-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.product-journey-media.is-contain img {
  padding: 12px;
  background: #d5cdc2;
  object-fit: contain;
}

.product-journey-media > a:hover img {
  transform: scale(1.025);
}

.product-journey-step.is-planned .product-journey-media img {
  filter: grayscale(0.42);
  opacity: 0.7;
}

.product-journey-play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(34, 56, 45, 0.92);
  color: #fff;
  font-size: 13px;
  place-items: center;
  transform: translate(-50%, -50%);
}

.product-journey-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(135deg, transparent 49.6%, rgba(54, 74, 63, 0.14) 50%, transparent 50.4%),
    #d7d5ce;
  color: rgba(39, 49, 43, 0.34);
  font-family: var(--font-serif), Georgia, serif;
  font-size: 62px;
  place-items: center;
}

.product-journey-marker {
  position: relative;
  height: 48px;
}

.product-journey-marker::before {
  position: absolute;
  top: 23px;
  right: -16px;
  left: 0;
  border-top: 1px solid #aeb2aa;
  content: "";
}

.product-journey-step:first-child .product-journey-marker::before {
  left: 18px;
}

.product-journey-step:last-child .product-journey-marker::before {
  right: calc(100% - 18px);
}

.product-journey-step:not(:last-child) .product-journey-marker::after {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: -17px;
  width: 22px;
  background: #e9e7e0;
  color: #7c837d;
  content: "→";
  font-size: 18px;
  text-align: center;
}

.product-journey-marker span {
  position: absolute;
  z-index: 2;
  top: 17px;
  left: 10px;
  width: 13px;
  height: 13px;
  border: 3px solid #e9e7e0;
  border-radius: 50%;
  background: #9ca19b;
  box-shadow: 0 0 0 1px #9ca19b;
}

.product-journey-step.is-done .product-journey-marker span {
  background: var(--green-dark);
  box-shadow: 0 0 0 1px var(--green-dark);
}

.product-journey-step.is-current .product-journey-marker span {
  background: #fff;
  box-shadow: 0 0 0 4px rgba(49, 76, 61, 0.22), 0 0 0 1px var(--green-dark);
}

.product-journey-body {
  height: 100%;
  min-height: 245px;
  padding: 24px 22px 26px;
  border: 1px solid #c6c7c1;
  background: rgba(250, 250, 247, 0.72);
}

.product-journey-step.is-current .product-journey-body {
  border-color: var(--green-dark);
  background: #fff;
}

.product-journey-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 23px;
}

.product-journey-meta > span {
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.product-journey-meta b {
  padding: 6px 8px;
  border: 1px solid #b9bbb5;
  color: #5f6761;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.product-journey-step.is-done .product-journey-meta b,
.product-journey-step.is-current .product-journey-meta b {
  border-color: rgba(49, 76, 61, 0.42);
  color: var(--green-dark);
}

.product-journey-body time {
  display: block;
  margin: -10px 0 12px;
  color: var(--muted);
  font-size: 11px;
}

.product-journey-body h3 {
  margin: 0 0 14px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.08;
}

.product-journey-body p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.product-gallery {
  background: #fff;
}

.product-media-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 48px;
  padding-bottom: 1px;
  overflow-x: auto;
  scrollbar-width: none;
}

.product-media-tabs::-webkit-scrollbar {
  display: none;
}

.product-media-tabs button {
  display: flex;
  min-width: max-content;
  gap: 18px;
  align-items: center;
  padding: 13px 16px;
  border: 1px solid #bfc2bc;
  background: transparent;
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  cursor: pointer;
}

.product-media-tabs button span {
  color: var(--muted);
  font-size: 9px;
}

.product-media-tabs button[aria-selected="true"] {
  border-color: var(--green-dark);
  background: var(--green-dark);
  color: #fff;
}

.product-media-tabs button[aria-selected="true"] span {
  color: rgba(255, 255, 255, 0.72);
}

.product-media-tabs button:focus-visible {
  outline: 2px solid var(--green-dark);
  outline-offset: 3px;
}

.product-media-groups {
  display: grid;
  gap: 96px;
}

.product-media-group-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 18px;
  align-items: baseline;
  margin-bottom: 28px;
  padding-top: 18px;
  border-top: 1px solid #c6c8c2;
}

.product-media-group-head > span {
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.product-media-group-head h3 {
  margin: 0;
  font-family: var(--font-serif), Georgia, serif;
  font-size: clamp(28px, 2.5vw, 38px);
  font-weight: 400;
}

.product-media-group-head b {
  color: var(--muted);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.product-media-grid {
  columns: 3 320px;
  column-gap: 16px;
}

.product-media-card {
  display: inline-block;
  width: 100%;
  margin: 0 0 16px;
  break-inside: avoid;
  border: 1px solid #d0d1cc;
  background: var(--paper);
  vertical-align: top;
}

.product-media-card > a {
  display: block;
  overflow: hidden;
  background: #deddd8;
}

.product-media-card img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.35s ease;
}

.product-media-card > a:hover img {
  transform: scale(1.018);
}

.product-media-card figcaption {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 15px 16px 17px;
  color: var(--ink);
}

.product-media-card figcaption > span {
  flex: 0 0 auto;
  padding-top: 2px;
  color: var(--green);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.product-media-card figcaption div {
  display: grid;
  gap: 7px;
}

.product-media-card figcaption b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.35;
}

.product-media-card figcaption time {
  color: var(--muted);
  font-size: 10px;
}

.product-gallery-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  grid-template-rows: repeat(2, 330px) 420px;
  gap: 16px;
}

.product-gallery-item {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #d5d6d1;
}

.product-gallery-item-1 {
  grid-row: 1 / 3;
}

.product-gallery-item-4 {
  grid-column: 1;
}

.product-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-gallery-item figcaption {
  position: absolute;
  right: 12px;
  bottom: 12px;
  left: 12px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 14px;
  background: rgba(250, 250, 247, 0.93);
  color: var(--ink);
}

.product-gallery-item figcaption span {
  color: var(--green);
  font-size: 10px;
}

.product-gallery-item figcaption b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  text-align: right;
}

.product-plan {
  display: grid;
  grid-template-columns: 0.66fr 1.34fr;
  gap: 75px;
  align-items: center;
  background: var(--paper-2);
}

.product-plan-copy h2 {
  margin-bottom: 26px;
  font-size: clamp(42px, 4.3vw, 64px);
}

.product-plan-copy > p:not(.kicker) {
  margin-bottom: 34px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}

.room-list {
  margin: 0;
  border-top: 1px solid #bfc1bb;
}

.room-list div {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  padding: 12px 0;
  border-bottom: 1px solid #bfc1bb;
}

.room-list dt {
  color: var(--ink);
  font-size: 13px;
}

.room-list dd {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

.product-plan-image {
  margin: 0;
  padding: 18px;
  background: #fff;
}

.product-plan-image img {
  width: 100%;
  max-height: 760px;
  object-fit: contain;
}

.product-plan-image figcaption {
  padding: 13px 4px 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}

.product-video {
  display: grid;
  grid-template-columns: 0.65fr 1.35fr;
  gap: 75px;
  align-items: center;
  padding-top: 110px;
  padding-bottom: 110px;
  background: var(--green-dark);
  color: #fff;
}

.product-video-copy h2 {
  margin-bottom: 25px;
  font-size: clamp(42px, 4.5vw, 66px);
}

.product-video-copy > p:not(.kicker) {
  color: rgba(255, 255, 255, 0.86);
  font-size: 15px;
  line-height: 1.8;
}

.product-video video {
  width: 100%;
  max-height: 680px;
  background: #111;
}

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

.product-video-grid figure {
  margin: 0;
}

.product-video-grid figure:only-child {
  grid-column: 1 / -1;
}

.product-video-grid figcaption {
  padding-top: 10px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-scope {
  background: #fff;
}

.product-scope-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.product-scope-grid article {
  min-height: 290px;
  padding: 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.product-scope-grid h3 {
  margin: 65px 0 15px;
  font-family: var(--font-serif), Georgia, serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.25;
}

.related-product {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 80px;
  align-items: center;
  background: #fff;
}

.related-product h2 {
  margin-bottom: 20px;
  font-size: clamp(44px, 4.6vw, 68px);
}

.related-product > div > p:not(.kicker) {
  margin-bottom: 28px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}

.related-product-image {
  display: block;
  aspect-ratio: 1.55;
  overflow: hidden;
}

.related-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1250px) {
  .catalog-hero,
  .product-hero {
    grid-template-columns: minmax(420px, 0.9fr) minmax(500px, 1.1fr);
  }

  .product-scope-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 980px) {
  .catalog-hero,
  .product-hero {
    grid-template-columns: 1fr;
    padding-right: max(24px, calc((100vw - 1440px) / 2));
  }

  .catalog-hero-copy,
  .product-hero-copy {
    padding-right: 0;
  }

  .catalog-hero-image,
  .product-hero-media {
    min-height: 600px;
  }

  .catalog-product-grid,
  .catalog-faq,
  .product-faq,
  .product-story,
  .product-plan,
  .product-video,
  .related-product {
    grid-template-columns: 1fr;
  }

  .product-video-grid {
    grid-template-columns: 1fr;
  }

  .catalog-guide-heading {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .product-journey-head {
    grid-template-columns: 1fr;
    gap: 26px;
    align-items: start;
  }

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

  .product-journey-gallery--1 {
    grid-template-columns: 1fr;
  }

  .catalog-guide-grid {
    grid-template-columns: 1fr;
  }

  .catalog-faq,
  .product-faq,
  .product-story,
  .product-plan,
  .product-video,
  .related-product {
    gap: 55px;
  }

  .product-scope-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 650px) {
  .inline-lead-form {
    grid-template-columns: 1fr;
  }

  .inline-lead-form > button,
  .inline-lead-consent {
    grid-column: 1;
  }

  .inline-lead-form > button {
    min-height: 54px;
  }

  .product-journey-gallery {
    grid-auto-columns: 82vw;
    grid-auto-flow: column;
    grid-template-columns: none;
    margin-right: -20px;
    padding-right: 20px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .product-journey-gallery::-webkit-scrollbar {
    display: none;
  }

  .product-journey-gallery-item,
  .product-journey-gallery--1 .product-journey-gallery-item,
  .product-journey-gallery--2 .product-journey-gallery-item {
    height: 300px;
    scroll-snap-align: start;
  }

  .catalog-hero,
  .product-hero {
    padding-right: 20px;
    padding-left: 20px;
  }

  .catalog-hero-copy,
  .product-hero-copy {
    padding: 55px 0;
  }

  .catalog-hero h1,
  .product-hero h1 {
    font-size: 48px;
  }

  .catalog-hero-meta,
  .product-specs {
    grid-template-columns: 1fr;
  }

  .catalog-hero-image,
  .product-hero-media {
    min-height: 430px;
  }

  .catalog-hero-image figcaption,
  .product-hero-media figcaption {
    min-width: 0;
    right: 10px;
    bottom: 10px;
    left: 10px;
  }

  .product-catalog,
  .catalog-guide,
  .catalog-faq,
  .product-story,
  .product-journey,
  .product-gallery,
  .product-plan,
  .product-scope,
  .product-faq,
  .related-product {
    padding-top: 75px;
    padding-bottom: 75px;
  }

  .catalog-product-grid,
  .product-scope-grid {
    grid-template-columns: 1fr;
  }

  .catalog-product-body {
    padding: 22px;
  }

  .catalog-custom-card {
    grid-column: auto;
    min-height: 0;
    padding: 45px 24px;
  }

  .product-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .product-anchor-nav {
    gap: 8px 18px;
  }

  .product-journey-head {
    margin-bottom: 42px;
  }

  .product-journey-track {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-right: 0;
    padding-right: 0;
    overflow: visible;
  }

  .product-journey-gallery {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: 1fr;
    margin-right: 0;
    padding-right: 0;
    overflow: visible;
  }

  .product-journey-gallery-item,
  .product-journey-gallery--1 .product-journey-gallery-item,
  .product-journey-gallery--2 .product-journey-gallery-item {
    width: 100%;
    height: auto;
    min-height: 230px;
    aspect-ratio: 4 / 3;
  }

  .product-journey-step {
    grid-template-rows: auto minmax(0, 1fr);
    width: 100%;
    height: auto;
  }

  .product-journey-marker::before,
  .product-journey-marker::after {
    display: none;
  }

  .product-journey-body {
    height: auto;
    min-height: 0;
  }

  .product-plan {
    grid-template-columns: minmax(0, 1fr);
  }

  .product-plan > *,
  .product-plan-copy {
    min-width: 0;
    max-width: 100%;
  }

  .product-plan h2 {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .product-journey-media {
    height: 168px;
  }

  .product-gallery-grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .product-media-groups {
    gap: 68px;
  }

  .product-media-tabs {
    margin-right: -20px;
    margin-bottom: 34px;
    padding-right: 20px;
  }

  .product-media-grid {
    columns: 1;
  }

  .product-media-group-head {
    grid-template-columns: auto 1fr;
  }

  .product-media-group-head b {
    grid-column: 2;
  }

  .product-gallery-item,
  .product-gallery-item-1,
  .product-gallery-item-4 {
    grid-column: auto;
    grid-row: auto;
    aspect-ratio: 1.2;
  }

  .room-list div {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .room-list dd {
    text-align: left;
  }

  .product-plan-image {
    padding: 8px;
  }

  .faq-list summary {
    font-size: 17px;
  }
}

@media (min-width: 651px) and (max-width: 980px) {
  .inline-lead-form {
    grid-template-columns: 1fr;
  }

  .inline-lead-form > button,
  .inline-lead-consent {
    grid-column: 1;
  }

  .product-media-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-right: 0;
    padding-right: 0;
    overflow: visible;
  }

  .product-media-tabs button {
    width: 100%;
    min-width: 0;
    justify-content: center;
    text-align: center;
    white-space: normal;
  }

  .product-journey-gallery {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: 1fr;
    margin-right: 0;
    padding-right: 0;
    overflow: visible;
  }

  .product-journey-gallery-item,
  .product-journey-gallery--1 .product-journey-gallery-item,
  .product-journey-gallery--2 .product-journey-gallery-item {
    width: 100%;
    height: auto;
    min-height: 300px;
    aspect-ratio: 16 / 10;
  }

  .product-journey-track {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-right: 0;
    padding-right: 0;
    overflow: visible;
  }

  .product-journey-step {
    grid-template-rows: auto minmax(0, 1fr);
    width: 100%;
    height: auto;
  }

  .product-journey-marker::before,
  .product-journey-marker::after {
    display: none;
  }

  .product-journey-body {
    height: auto;
    min-height: 0;
  }
}

@media (max-width: 520px) {
  .product-media-tabs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-right: 0;
    padding-right: 0;
    overflow: visible;
  }

  .product-media-tabs button {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    justify-content: center;
    text-align: center;
    white-space: normal;
  }
}

/* Full site pages */
.site-detail { overflow:hidden; }
.site-hero { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); min-height:590px; background:#f5f4ef; }
.site-hero-copy { padding:84px clamp(28px,4vw,76px) 70px; display:flex; min-width:0; flex-direction:column; align-items:flex-start; }
.site-hero-copy .breadcrumbs { margin-bottom:58px; }
.site-hero h1 { max-width:100%; margin:14px 0 26px; font-size:clamp(42px,3.7vw,66px); line-height:1.1; letter-spacing:-.02em; overflow-wrap:break-word; hyphens:auto; }
.site-hero-lead { max-width:570px; margin:0 0 34px; color:#526057; font-size:18px; line-height:1.65; }
.site-hero-image { position:relative; min-height:100%; margin:0; overflow:hidden; }
.site-hero-image img { width:100%; height:100%; min-height:590px; display:block; object-fit:cover; }
.site-hero-image figcaption { position:absolute; right:20px; bottom:20px; padding:12px 16px; background:rgba(255,255,255,.92); color:#314539; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.site-projects,.site-journal { padding-top:116px; padding-bottom:116px; }
.site-project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:40px; }
.site-project-card { min-height:100%; background:#f1f0ea; }
.site-project-card a { display:flex; min-height:100%; flex-direction:column; color:inherit; text-decoration:none; }
.site-project-card img { width:100%; aspect-ratio:1.28; object-fit:cover; display:block; }
.site-project-card span { display:block; margin:20px 22px 0; color:#66746b; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.site-project-card h3 { margin:12px 22px 10px; font-size:28px; line-height:1.12; }
.site-project-card p:not(.kicker) { margin:0 22px 24px; color:#59665e; line-height:1.55; }
.site-project-card b { margin:auto 22px 22px; padding-top:16px; border-top:1px solid #cbd0c7; font-size:12px; letter-spacing:.05em; text-transform:uppercase; }
.site-project-card--custom { display:flex; flex-direction:column; padding:28px; background:#2e463a; color:#fff; }
.site-project-card--custom h3 { margin:42px 0 16px; font-size:35px; line-height:1; }
.site-project-card--custom p:not(.kicker) { margin:0 0 28px; color:#e7ece7; line-height:1.55; }
.site-project-card--custom .light-button { margin-top:auto; align-self:flex-start; }
.site-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.72fr); gap:80px; padding-top:118px; padding-bottom:118px; border-top:1px solid #d8d8d1; }
.site-intro h2,.site-facts h2,.site-contacts h2 { max-width:720px; margin:14px 0 0; font-size:clamp(38px,4.2vw,70px); line-height:1; letter-spacing:-.04em; }
.site-intro > p { align-self:end; margin:0; color:#526057; font-size:18px; line-height:1.7; }
.site-facts { padding-top:88px; padding-bottom:110px; background:#e9e8e1; }
.site-facts-heading { max-width:620px; }
.site-facts-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:55px; border-top:1px solid #bfc4ba; }
.site-facts-grid article { padding:22px 30px 0 0; border-right:1px solid #bfc4ba; }
.site-facts-grid article + article { padding-left:30px; }
.site-facts-grid article:last-child { border-right:0; }
.site-facts-grid span { color:#547061; font-size:12px; font-weight:700; letter-spacing:.11em; }
.site-facts-grid h3 { margin:24px 0 12px; font-family:var(--font-serif),Georgia,serif; font-size:24px; font-weight:400; }
.site-facts-grid p { margin:0; color:#58645c; line-height:1.6; }
.site-journal { background:#f5f4ef; }
.site-journal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:38px; border:1px solid #c9ccc4; background:#c9ccc4; }
.site-journal-grid article { min-height:270px; padding:28px; display:flex; flex-direction:column; background:#f9f8f4; }
.site-journal-grid span { color:#557062; font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.site-journal-grid h3 { margin:30px 0; font-size:29px; line-height:1.08; }
.site-journal-grid a { margin-top:auto; color:#22362b; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.site-contacts { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.75fr); gap:80px; padding-top:105px; padding-bottom:105px; background:#f1f0ea; }
.site-contacts > div > p:not(.kicker) { max-width:580px; color:#526057; font-size:17px; line-height:1.65; }
.site-contacts dl { margin:0; border-top:1px solid #bcc3b9; }
.site-contacts dl div { padding:21px 0; border-bottom:1px solid #bcc3b9; }
.site-contacts dt { margin-bottom:8px; color:#66746b; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.site-contacts dd { margin:0; font-family:var(--font-serif),Georgia,serif; font-size:24px; }
.site-contacts dd a { color:inherit; text-decoration:none; }
.site-contacts > div > img { width:100%; max-width:620px; margin-top:28px; aspect-ratio:4/3; object-fit:cover; display:block; }
.product-hero-documents-preview > a { display:block; margin-bottom:12px; }
.product-hero-documents-preview > a img { width:100%; max-height:220px; object-fit:contain; background:#f1f0ea; }
.site-faq { display:grid; grid-template-columns:minmax(0,.72fr) minmax(420px,1.28fr); gap:80px; padding-top:116px; padding-bottom:116px; }
.site-faq h2 { margin-top:14px; font-size:46px; line-height:1.05; }
@media (max-width:900px) { .site-hero,.site-intro,.site-contacts,.site-faq { grid-template-columns:1fr; gap:0; } .site-hero-copy { padding:50px 24px; } .site-hero-copy .breadcrumbs { margin-bottom:42px; } .site-hero-image img { min-height:390px; } .site-project-grid,.site-facts-grid,.site-journal-grid { grid-template-columns:1fr; } .site-facts-grid article,.site-facts-grid article + article { padding:24px 0; border-right:0; border-bottom:1px solid #bfc4ba; } .site-projects,.site-journal,.site-intro,.site-faq { padding-top:72px; padding-bottom:72px; } .site-intro { gap:28px; } .site-contacts { gap:42px; padding-top:72px; padding-bottom:72px; } .site-faq { gap:38px; } }

.product-carousel {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  width: 100%;
  height: 760px;
  background: #e5e4df;
}

.product-carousel-stage {
  position: relative;
  min-height: 0;
  overflow: hidden;
  outline: 0;
  background: #e5e4df;
}

.product-carousel-stage:focus-visible {
  box-shadow: inset 0 0 0 3px rgba(49, 76, 61, 0.75);
}

.product-slide {
  position: absolute;
  visibility: hidden;
  margin: 0;
  inset: 0;
  opacity: 0;
  transition: opacity 0.18s ease, visibility 0.18s ease;
}

.product-slide.is-active {
  visibility: visible;
  opacity: 1;
}

.product-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-slide-contain {
  background: #e5e4df;
}

.product-slide-contain img {
  object-fit: contain;
}

.product-hero-media .product-slide figcaption {
  position: absolute;
  right: auto;
  bottom: 18px;
  left: 18px;
  display: flex;
  width: fit-content;
  max-width: calc(100% - 36px);
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
  padding: 13px 15px;
  background: rgba(250, 250, 247, 0.94);
  color: var(--ink);
}

.product-hero-media .product-slide figcaption span {
  margin: 0;
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.product-hero-media .product-slide figcaption b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 16px;
  font-weight: 400;
  text-align: right;
}

.product-carousel-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  display: grid;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  background: rgba(23, 28, 25, 0.72);
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  place-items: center;
  transform: translateY(-50%);
}

.product-carousel-prev {
  left: 18px;
}

.product-carousel-next {
  right: 18px;
}

.product-carousel-counter {
  position: absolute;
  z-index: 3;
  top: 18px;
  right: 18px;
  display: flex;
  gap: 5px;
  align-items: baseline;
  padding: 9px 12px;
  background: rgba(250, 250, 247, 0.94);
  color: var(--muted);
  font-size: 11px;
}

.product-carousel-counter b {
  color: var(--ink);
  font-family: var(--font-serif), Georgia, serif;
  font-size: 17px;
  font-weight: 400;
}

.product-carousel-thumbs {
  display: none;
}

.product-carousel-thumbs::-webkit-scrollbar {
  display: none;
}

.product-all-photos {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 16px 15px;
  border-top: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  font-size: 11px;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-transform: uppercase;
}

.product-all-photos span {
  color: var(--green);
  font-weight: 700;
}

.product-all-photos b {
  border-bottom: 1px solid var(--ink);
  font-weight: 700;
}

.product-all-photos:hover b {
  color: var(--green-dark);
}

.product-photo-archive { display: none; }

.product-photo-archive-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 30px;
}

.product-photo-archive-card {
  position: relative;
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  background: #dfe0da;
}

.product-photo-archive-card a,
.product-photo-archive-card img {
  display: block;
  width: 100%;
  height: 100%;
}

.product-photo-archive-card img {
  object-fit: cover;
  transition: transform 240ms ease;
}

.product-photo-archive-card:hover img {
  transform: scale(1.025);
}

.product-photo-archive-card.is-sketch img {
  object-fit: contain;
  padding: 18px;
}

.product-photo-archive-card figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  gap: 9px;
  align-items: center;
  padding: 9px 10px;
  background: rgba(18, 24, 20, 0.76);
  color: #fff;
  font-size: 10px;
  letter-spacing: 0.03em;
}

.product-photo-archive-card figcaption span {
  color: #d5c49d;
  font-weight: 700;
}

.product-photo-archive-card figcaption b {
  font-weight: 500;
}


.product-carousel-thumb {
  position: relative;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  background: #ddd;
  cursor: pointer;
}

.product-carousel-thumb::after {
  position: absolute;
  inset: 0;
  background: rgba(23, 28, 25, 0.22);
  content: "";
}

.product-carousel-thumb.is-active {
  border-color: var(--green-dark);
}

.product-carousel-thumb.is-active::after {
  background: transparent;
}

.product-carousel-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-documents {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 90px;
  padding-top: 100px;
  padding-bottom: 100px;
  background: #fff;
}

.product-documents h2 {
  margin-bottom: 22px;
  font-size: clamp(42px, 4.2vw, 64px);
}

.product-documents > div:first-child > p:not(.kicker) {
  max-width: 570px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}

.product-document-list {
  border-top: 1px solid var(--line);
}

.product-document-list a {
  display: grid;
  grid-template-columns: 48px 1fr auto 28px;
  gap: 18px;
  align-items: center;
  min-height: 82px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}

.product-document-list a > span {
  display: grid;
  width: 44px;
  height: 44px;
  background: var(--paper-2);
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  place-items: center;
}

.product-document-list b {
  font-family: var(--font-serif), Georgia, serif;
  font-size: 18px;
  font-weight: 400;
}

.product-document-list small {
  color: var(--muted);
  font-size: 11px;
}

.product-document-list i {
  color: var(--green);
  font-family: var(--font-sans), Arial, sans-serif;
  font-size: 18px;
  font-style: normal;
}

@media (max-width: 980px) {
  .product-carousel {
    height: 600px;
  }

  .product-documents {
    grid-template-columns: 1fr;
    gap: 45px;
  }
}

@media (max-width: 650px) {
  .product-photo-archive {
    padding-top: 42px;
    padding-bottom: 50px;
  }

  .product-photo-archive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 20px;
  }

  .product-carousel {
    grid-template-rows: minmax(0, 1fr);
    height: 430px;
  }

  .product-carousel-thumbs {
    grid-auto-columns: 92px;
    padding: 7px;
  }

  .product-carousel-arrow {
    width: 42px;
    height: 42px;
  }

  .product-carousel-prev {
    left: 10px;
  }

  .product-carousel-next {
    right: 10px;
  }

  .product-hero-media .product-slide figcaption {
    right: auto;
    bottom: 10px;
    left: 10px;
    max-width: calc(100% - 20px);
  }

  .product-hero-documents a {
    grid-template-columns: 68px minmax(0, 1fr) 20px;
    gap: 10px;
  }

  .product-hero-documents a b {
    font-size: 15px;
  }

  .product-documents {
    padding-top: 70px;
    padding-bottom: 70px;
  }

  .product-document-list a {
    grid-template-columns: 46px 1fr 22px;
  }

  .product-document-list small {
    display: none;
  }
}

/* Projects page: fill the editorial bands with original, route-specific visuals. */
.site-intro.site-intro--projects {
  grid-template-columns: minmax(360px, .78fr) minmax(520px, 1.22fr);
  gap: clamp(56px, 8vw, 130px);
  align-items: center;
  padding-top: 96px;
  padding-bottom: 104px;
  background: #f5f4ef;
}

.site-intro-projects-copy { max-width: 700px; }
.site-intro-projects-copy > p:last-child { max-width: 570px; margin: 30px 0 0; color: #526057; font-size: 17px; line-height: 1.7; }
.site-intro--projects figure, .site-facts-projects-head figure { min-width: 0; margin: 0; }
.site-intro--projects figure img, .site-facts-projects-head figure img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.site-intro--projects figcaption, .site-facts-projects-head figcaption { margin-top: 11px; color: #6a756e; font-size: 10px; line-height: 1.5; }
.site-facts.site-facts--projects { padding-top: 96px; padding-bottom: 106px; }
.site-facts-projects-head { display: grid; grid-template-columns: minmax(350px, .75fr) minmax(520px, 1.25fr); gap: clamp(56px, 8vw, 130px); align-items: center; }
.company-mission-scene { background:#142d22 linear-gradient(90deg,rgba(15,34,26,.88),rgba(15,34,26,.82))!important; background-image:linear-gradient(90deg,rgba(15,34,26,.88),rgba(15,34,26,.82)),url('../images/company-20260907/forest.webp')!important;background-position:center!important;background-size:cover!important; color:#fff; }
.company-mission-scene h2,.company-mission-scene h2 i,.company-mission-scene .kicker,.company-mission-scene p,.company-mission-scene a {color:#fff!important;}
.company-mission-scene .kicker:before {background:#fff;}
.company-mission-scene small {display:block;margin-top:28px;font-size:11px;line-height:1.6;color:#e0e7e1;}
.company-mission-scene a {display:inline-block;margin-top:16px;text-decoration:underline;text-underline-offset:6px;}
@media(max-width:420px){.product-hero-copy h1{font-size:32px!important;line-height:1.12!important;overflow-wrap:anywhere;max-width:100%;}.product-hero-copy .breadcrumbs{flex-wrap:wrap;}.ko-stage{min-width:0;}}
.site-facts--projects .site-facts-heading { max-width: 700px; }
.site-facts--projects .site-facts-grid { margin-top: 68px; }

@media (max-width: 1000px) {
  .site-intro.site-intro--projects, .site-facts-projects-head { grid-template-columns: 1fr; gap: 38px; }
  .site-intro--projects figure { grid-row: 1; }
}

@media (max-width: 700px) {
  .site-intro.site-intro--projects, .site-facts.site-facts--projects { padding-top: 68px; padding-bottom: 72px; }
  .site-intro--projects figure img, .site-facts-projects-head figure img { aspect-ratio: 4 / 3; }
  .site-intro-projects-copy > p:last-child { margin-top: 22px; font-size: 15px; }
  .site-facts--projects .site-facts-grid { margin-top: 48px; }
}
