:root {
  --night: #0b0d0f;
  --night-soft: #16191c;
  --gold: #d7a92f;
  --gold-deep: #a97812;
  --cream: #f4efe4;
  --paper: #fbf8f1;
  --ink: #191b1d;
  --muted: #67645e;
  --line: rgba(25, 27, 29, .15);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; margin: 0; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
.sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }

.site-header {
  align-items: center;
  background: rgba(11, 13, 15, .96);
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  color: white;
  display: flex;
  height: 94px;
  justify-content: space-between;
  padding: 0 clamp(20px, 4.5vw, 76px);
  position: sticky;
  top: 0;
  z-index: 50;
}
.site-header nav { align-items: center; display: flex; gap: clamp(22px, 3.2vw, 52px); }
.site-header nav a { font-size: 15px; font-weight: 700; letter-spacing: .01em; position: relative; }
.site-header nav a::after { background: var(--gold); bottom: -10px; content: ""; height: 2px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; width: 100%; }
.site-header nav a:hover::after, .site-header nav a:focus-visible::after { transform: scaleX(1); }
.header-right { align-items: center; display: flex; gap: 18px; }
.language-switch { border: 1px solid rgba(255,255,255,.22); display: flex; padding: 3px; }
.language-switch button { background: transparent; border: 0; color: rgba(255,255,255,.66); cursor: pointer; font-size: 10px; font-weight: 900; padding: 7px 8px; }
.language-switch button.active { background: var(--gold); color: #111; }
.header-contact { background: linear-gradient(135deg, #b88110, #efc74f); border: 1px solid #efc74f; border-radius: 7px; color: white; font-size: 12px; font-weight: 900; letter-spacing: .04em; padding: 15px 18px; text-transform: uppercase; }
.header-contact:hover { filter: brightness(1.08); }
.official-logo { align-items: center; display: flex; height: 78px; justify-content: flex-end; overflow: hidden; width: 134px; }
.official-logo img { height: 66px; object-fit: contain; width: 126px; }

.hero { background: #d3b66f; height: calc(100svh - 94px); min-height: 650px; overflow: hidden; position: relative; }
.hero-background { height: 100%; object-fit: cover; object-position: center 47%; position: absolute; width: 100%; }
.hero-shade { background: linear-gradient(90deg, rgba(5,7,8,.08), transparent 36%, rgba(5,7,8,.07)), linear-gradient(0deg, rgba(5,7,8,.42), transparent 28%); inset: 0; position: absolute; }
.hero-bottom { align-items: flex-end; bottom: 6%; color: white; display: flex; justify-content: space-between; left: 5vw; position: absolute; right: 5vw; }
.hero-bottom p { font-size: 11px; font-weight: 900; letter-spacing: .16em; margin: 0; text-shadow: 0 2px 18px rgba(0,0,0,.65); text-transform: uppercase; }
.hero-bottom a { align-items: center; background: linear-gradient(135deg, #b77f0a, #e7bd43); border: 1px solid #edc64d; border-radius: 6px; box-shadow: 0 18px 45px rgba(55,34,0,.28); display: flex; font-size: 14px; font-weight: 900; gap: 26px; letter-spacing: .04em; padding: 20px 24px; text-transform: uppercase; }
.hero-bottom a span { font-size: 19px; }
.hero-bottom a > span { font-size: inherit; }
.hero-bottom a > b { font-size: 19px; }

.section { padding: clamp(82px, 9vw, 148px) clamp(24px, 6vw, 96px); }
.section-heading { display: grid; gap: 32px 5vw; grid-template-columns: minmax(120px, .35fr) 1.25fr .75fr; margin-bottom: 64px; }
.eyebrow { color: var(--gold-deep); font-size: 11px; font-weight: 900; letter-spacing: .18em; margin: 8px 0 0; text-transform: uppercase; }
.section h2, .wood-copy h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 5vw, 76px); font-weight: 400; letter-spacing: -.045em; line-height: .98; margin: 0; }
.section-heading .lead { color: var(--muted); font-size: 16px; line-height: 1.8; margin: 8px 0 0; max-width: 520px; }

.services-section { background: var(--cream); }
.service-mosaic { display: grid; gap: 14px; grid-template-columns: repeat(12, 1fr); grid-template-rows: 475px 420px; }
.visual-card { background: #222; color: white; overflow: hidden; position: relative; }
.visual-card > img { height: 100%; object-fit: cover; position: absolute; transition: transform .65s ease; width: 100%; }
.visual-card:hover > img { transform: scale(1.025); }
.visual-scrim { background: linear-gradient(0deg, rgba(5,7,8,.86), rgba(5,7,8,.05) 68%); inset: 0; position: absolute; }
.visual-copy { bottom: 0; left: 0; padding: 30px; position: absolute; right: 0; }
.visual-copy > p { color: #f0c95c; font-size: 9px; font-weight: 900; letter-spacing: .14em; margin: 0 0 10px; text-transform: uppercase; }
.visual-copy h3 { font-family: Georgia, serif; font-size: clamp(29px, 2.5vw, 42px); font-weight: 400; letter-spacing: -.03em; margin: 0 0 10px; }
.visual-copy span { color: rgba(255,255,255,.76); display: block; font-size: 13px; line-height: 1.6; max-width: 600px; }
.service-wide { grid-column: span 6; }
.service-small { grid-column: span 3; }
.service-medium { grid-column: span 4; }
.service-large { grid-column: span 8; }
.tile-focus > img { object-position: 72% center; transform: scale(1.06); }
.tile-focus:hover > img { transform: scale(1.085); }

.more-services { background: var(--paper); padding-top: 90px; }
.more-services > h2 { font-size: clamp(34px, 3.6vw, 58px); max-width: 850px; }
.more-grid { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 55px; }
.more-grid article { min-height: 285px; padding: 36px 30px 34px 0; position: relative; }
.more-grid article + article { border-left: 1px solid var(--line); padding-left: 30px; }
.more-grid i { background: var(--gold); border-radius: 50%; display: block; height: 11px; margin-bottom: 80px; width: 11px; }
.more-grid h3 { font-family: Georgia, serif; font-size: 27px; font-weight: 400; margin: 0 0 15px; }
.more-grid p { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 0; }

.wood-feature { color: white; min-height: 760px; overflow: hidden; position: relative; }
.wood-feature > img { height: 100%; object-fit: cover; object-position: center; position: absolute; width: 100%; }
.wood-overlay { background: linear-gradient(90deg, rgba(7,10,11,.92) 0%, rgba(7,10,11,.73) 42%, rgba(7,10,11,.1) 78%); inset: 0; position: absolute; }
.wood-copy { left: clamp(24px, 7vw, 110px); max-width: 670px; position: absolute; top: 50%; transform: translateY(-50%); }
.eyebrow.light { color: #f0c95c; }
.wood-copy h2 { font-size: clamp(46px, 5.6vw, 84px); margin: 28px 0; }
.wood-copy > p:last-child { color: rgba(255,255,255,.77); font-size: 16px; line-height: 1.8; margin: 0; max-width: 590px; }

.projects { align-items: stretch; background: var(--cream); display: grid; gap: clamp(45px, 7vw, 110px); grid-template-columns: minmax(340px, .8fr) 1.2fr; }
.projects-brand { min-height: 620px; overflow: hidden; }
.projects-brand img { height: 100%; object-fit: cover; width: 100%; }
.projects-copy { align-self: center; }
.projects-copy h2 { margin: 24px 0 30px; }
.projects-copy > p:not(.eyebrow) { color: var(--muted); font-size: 16px; line-height: 1.8; max-width: 650px; }
.category-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 34px; }
.category-row span { border: 1px solid var(--line); font-size: 10px; font-weight: 800; letter-spacing: .08em; padding: 10px 12px; text-transform: uppercase; }
.gallery-status { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 14px; margin-top: 46px; padding-top: 24px; }
.gallery-status i { background: var(--gold); border-radius: 50%; height: 10px; width: 10px; }
.gallery-status span { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.process { background: var(--night); color: white; display: grid; gap: 8vw; grid-template-columns: .85fr 1.15fr; }
.process-heading h2 { font-size: clamp(43px, 4.5vw, 68px); margin-top: 28px; }
.process-grid { border-top: 1px solid rgba(255,255,255,.17); }
.process-grid article { border-bottom: 1px solid rgba(255,255,255,.17); display: grid; gap: 24px; grid-template-columns: 28px minmax(170px, .55fr) 1fr; padding: 30px 0; }
.process-grid article > span { background: var(--gold); height: 10px; margin-top: 7px; transform: rotate(45deg); width: 10px; }
.process-grid h3 { font-family: Georgia, serif; font-size: 23px; font-weight: 400; margin: 0; }
.process-grid p { color: rgba(255,255,255,.62); font-size: 13px; line-height: 1.7; margin: 0; }

.contact { align-items: start; background: var(--paper); display: grid; gap: 8vw; grid-template-columns: .8fr 1.2fr; }
.contact-copy h2 { margin: 26px 0 30px; }
.contact-copy > p:not(.eyebrow) { color: var(--muted); font-size: 16px; line-height: 1.8; }
.contact-copy > a { border-bottom: 1px solid var(--ink); display: inline-flex; font-family: Georgia, serif; font-size: clamp(24px, 2.6vw, 38px); gap: 20px; margin-top: 25px; padding-bottom: 8px; }
.contact-copy small { color: var(--muted); display: block; font-size: 12px; line-height: 1.6; margin-top: 18px; }
.contact form { background: white; border: 1px solid var(--line); box-shadow: 0 26px 70px rgba(31,26,13,.09); padding: clamp(28px, 4vw, 54px); }
.contact label { display: grid; gap: 10px; margin-bottom: 24px; }
.contact label > span { font-size: 10px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.form-row { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.contact input, .contact select, .contact textarea { background: #f8f5ee; border: 1px solid rgba(25,27,29,.2); border-radius: 0; color: var(--ink); padding: 14px; width: 100%; }
.contact textarea { resize: vertical; }
.contact form button { align-items: center; background: linear-gradient(135deg, #ad7708, #e0b539); border: 0; color: white; cursor: pointer; display: flex; font-size: 12px; font-weight: 900; justify-content: space-between; letter-spacing: .08em; padding: 18px 20px; text-transform: uppercase; width: 100%; }

footer { align-items: center; background: #080a0b; color: white; display: grid; gap: 30px; grid-template-columns: 165px 1fr auto; padding: 42px clamp(24px, 6vw, 96px); }
footer > img { height: 82px; object-fit: contain; width: 155px; }
footer p { font-size: 12px; font-weight: 800; letter-spacing: .05em; margin: 0 0 8px; }
footer span, footer a { color: rgba(255,255,255,.58); font-size: 12px; }
footer a { border-bottom: 1px solid rgba(255,255,255,.35); padding-bottom: 5px; }

@media (max-width: 1050px) {
  .site-header nav { gap: 24px; }
  .site-header nav a { font-size: 12px; }
  .header-contact { display: none; }
  .section-heading { grid-template-columns: .35fr 1.2fr; }
  .section-heading .lead { grid-column: 2; }
  .service-mosaic { grid-template-rows: 430px 360px 360px; }
  .service-wide { grid-column: span 8; }
  .service-small { grid-column: span 4; }
  .service-small:nth-of-type(3) { grid-column: span 6; }
  .service-medium { grid-column: span 6; }
  .service-large { grid-column: span 12; }
  .more-grid { grid-template-columns: 1fr 1fr; }
  .more-grid article:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .more-grid article:nth-child(4) { border-top: 1px solid var(--line); }
  .projects { grid-template-columns: .8fr 1.2fr; }
}

@media (max-width: 760px) {
  .site-header { height: 78px; padding: 0 18px; }
  .site-header nav a:not(:first-child) { display: none; }
  .site-header nav a:first-child { font-size: 13px; }
  .official-logo { height: 62px; width: 102px; }
  .official-logo img { height: 56px; width: 100px; }
  .language-switch { margin-left: auto; }
  .header-right { gap: 10px; }
  .hero { height: calc(100svh - 78px); min-height: 600px; }
  .hero-background { object-position: 48% center; }
  .hero-bottom { align-items: flex-start; bottom: 5%; flex-direction: column; gap: 18px; left: 22px; right: 22px; }
  .hero-bottom a { font-size: 11px; padding: 16px 18px; }
  .section { padding: 78px 22px; }
  .section-heading { display: block; margin-bottom: 42px; }
  .section-heading h2 { margin: 20px 0 24px; }
  .service-mosaic { display: grid; grid-template-columns: 1fr; grid-template-rows: none; }
  .visual-card, .service-wide, .service-small, .service-medium, .service-large { grid-column: auto; min-height: 390px; }
  .visual-copy { padding: 24px; }
  .more-services { padding-top: 75px; }
  .more-grid { grid-template-columns: 1fr; }
  .more-grid article { border-left: 0 !important; border-top: 1px solid var(--line); min-height: 235px; padding: 28px 0; }
  .more-grid article:first-child { border-top: 0; }
  .more-grid i { margin-bottom: 55px; }
  .wood-feature { min-height: 680px; }
  .wood-overlay { background: linear-gradient(0deg, rgba(7,10,11,.92), rgba(7,10,11,.2) 80%); }
  .wood-copy { bottom: 55px; left: 22px; right: 22px; top: auto; transform: none; }
  .projects { grid-template-columns: 1fr; }
  .projects-brand { min-height: 420px; }
  .process { grid-template-columns: 1fr; }
  .process-grid article { grid-template-columns: 24px 1fr; }
  .process-grid article p { grid-column: 2; }
  .contact { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  footer { align-items: start; grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .language-switch button { padding: 6px; }
  .official-logo { width: 88px; }
  .official-logo img { width: 88px; }
  .hero-background { object-position: 47% center; }
  .visual-card { min-height: 350px; }
  .projects-brand { min-height: 360px; }
}
