/* Image-led architectural editorial. All artwork is local and clearly illustrative. */
.hp-opening { display: grid; grid-template-columns: 1.7fr 1fr; gap: 64px; align-items: end; padding-block: 55px 48px; }
.hp-location { font-size: 15px; color: var(--green); margin-bottom: 29px; }
.hp-location span { margin-inline: 12px; color: #87948c; }
.hp-title h1 { font-size: clamp(3.3rem, 6.65vw, 6rem); line-height: 1.02; letter-spacing: -.035em; }
.hp-opening-copy { padding-bottom: 5px; }
.hp-opening-copy > p { font-size: 21px; line-height: 1.45; max-width: 360px; margin-bottom: 25px; color: var(--muted); }
.hp-jump { display: block; width: fit-content; font-size: 16px; margin-top: 17px; color: var(--green); }
.hp-jump span { margin-left: 13px; }
.hp-panorama { position: relative; margin-inline: 24px; padding-bottom: 63px; }
.hp-panorama > figure { position: relative; }
.hp-panorama img { width: 100%; height: min(45vw, 640px); object-position: 50% 60%; }
.hp-panorama figcaption { position: absolute; left: 18px; bottom: 15px; background: white; padding: 7px 11px; color: #38443c; font-size: 12px; line-height: 1.35; max-width: calc(100% - 36px); }
.hp-project-note { position: absolute; right: max(32px, calc((100vw - 1230px)/2)); bottom: 0; display: flex; gap: 33px; padding: 29px 34px; width: 345px; background: var(--green); color: white; }
.hp-note-cross { font-size: 37px; line-height: 1; color: #d9e8df; }
.hp-project-note p { font-size: 15px; color: #e1eee6; margin-bottom: 11px; }
.hp-project-note strong { display: block; font-size: 28px; font-weight: 400; line-height: 1.15; }
.hp-note-link { display: block; font-size: 15px; margin-top: 19px; }
.hp-note-link > span { margin-left: 12px; }
.hp-company-line { display: flex; align-items: center; gap: 23px; padding-block: 26px 32px; border-bottom: 1px solid var(--line); font-size: 16px; color: var(--muted); }
.hp-company-line a { margin-left: auto; color: var(--green); }
.hp-company-line a span { margin-left: 15px; }
.hp-introduction { display: grid; grid-template-columns: 1fr 1fr; gap: 115px; padding-block: 88px 73px; }
.hp-intro-title h2 { font-size: clamp(2.6rem, 3.9vw, 3.7rem); }
.hp-margin-note { margin-top: 30px; font-size: 16px; color: var(--muted); padding-top: 23px; border-top: 1px solid var(--line); max-width: 275px; }
.hp-intro-copy p { font-size: 18px; color: var(--muted); }
.hp-intro-copy .lead { font-size: 25px; color: var(--ink); line-height: 1.38; margin-bottom: 21px; }
.hp-intro-copy .text-link { margin-top: 26px; }
.hp-material-scene { display: grid; grid-template-columns: 1.05fr 1fr; gap: 77px; margin-bottom: 97px; }
.hp-structure-photo { padding-top: 23px; }
.hp-structure-photo img { width: 100%; height: 610px; }
.hp-material-scene figcaption { margin-top: 9px; font-size: 12px; }
.hp-material-side { padding-top: 107px; }
.hp-detail-photo { width: 89%; margin-left: auto; }
.hp-detail-photo img { width: 100%; height: 280px; }
.hp-detail-copy { padding-top: 35px; padding-right: 12px; }
.hp-small-cross { display: block; font-size: 35px; color: var(--green); line-height: 1; margin-bottom: 15px; }
.hp-detail-copy h2 { font-size: 37px; margin-bottom: 22px; }
.hp-detail-copy p { font-size: 18px; color: var(--muted); max-width: 470px; }
.hp-detail-copy .text-link { margin-top: 23px; font-size: 17px; }
.hp-work { background: var(--green); color: white; padding-block: 83px 90px; position: relative; }
.hp-work-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; }
.hp-work-marker { font-size: 16px; color: #e1eee6; margin-bottom: 24px; }
.hp-work-heading h2 { font-size: clamp(3rem, 4.5vw, 4.7rem); line-height: 1.02; margin-bottom: 27px; }
.hp-work-heading em { color: #d3e4d8; }
.hp-work-heading > p:not(.hp-work-marker) { color: #e1eee6; font-size: 18px; max-width: 395px; }
.hp-work-heading .btn { margin-top: 27px; }
.hp-work-heading > .hp-work-note { font-size: 14px; max-width: 385px; margin-top: 25px; line-height: 1.5; }
.hp-work-topics { padding-top: 4px; }
.hp-work-topics details { border-color: #668273; padding-block: 25px; }
.hp-work-topics details:last-child { border-color: #668273; }
.hp-work-topics summary { font-size: 25px; }
.hp-work-topics summary::after { color: white; }
.hp-work-topics summary:focus-visible, .hp-work-topics a:focus-visible { outline-color: white; }
.hp-topic-body { padding-block: 21px 2px; }
.hp-topic-body p { color: #e1eee6; font-size: 18px; line-height: 1.5; }
.hp-topic-body a { display: inline-block; border-bottom: 1px solid #a9c4b5; padding-bottom: 6px; font-size: 16px; margin-top: 21px; }
.hp-topic-body a span { margin-left: 15px; }
.hp-planning { display: grid; grid-template-columns: .96fr 1.04fr; gap: 100px; padding-block: 99px 90px; align-items: center; }
.hp-planning-copy h2 { font-size: clamp(2.6rem, 3.7vw, 3.7rem); margin-bottom: 25px; }
.hp-planning-copy > p { color: var(--muted); font-size: 18px; }
.hp-preparation { list-style: none; padding: 0; margin: 32px 0; }
.hp-preparation li { display: flex; gap: 23px; padding: 19px 0; border-top: 1px solid var(--line); }
.hp-preparation li > span { color: var(--green); font-size: 15px; padding-top: 4px; }
.hp-preparation h3 { font-size: 23px; margin-bottom: 7px; }
.hp-preparation p { font-size: 16px; color: var(--muted); }
.hp-planning-photo { position: relative; padding-bottom: 111px; }
.hp-planning-photo img { width: 100%; height: 510px; }
.hp-planning-photo figcaption { font-size: 12px; margin-top: 9px; max-width: 90%; }
.hp-planning-note { position: absolute; left: -35px; bottom: 0; width: 300px; background: var(--soft); padding: 28px 33px; border: 1px solid var(--line); }
.hp-planning-note p { font-size: 15px; color: var(--muted); margin-bottom: 10px; }
.hp-planning-note strong { font-size: 31px; line-height: 1.1; font-weight: 400; color: var(--green); }
.hp-journal { padding-block: 34px 69px; border-top: 1px solid var(--line); }
.hp-journal-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 37px; }
.hp-journal-heading h2 { font-size: clamp(2.5rem, 3.6vw, 3.5rem); }
.hp-journal-heading p { font-size: 18px; color: var(--muted); margin-top: 20px; }
.hp-journal-heading .text-link { flex-shrink: 0; }
.hp-guide-list .story-row { grid-template-columns: 170px 1fr 54px; padding-block: 28px; }
.hp-contact-strip { display: flex; justify-content: space-between; align-items: center; gap: 80px; padding: 48px 0 87px; }
.hp-contact-strip h2 { font-size: clamp(2.7rem, 4.7vw, 4.7rem); }
.hp-contact-strip p { color: var(--muted); font-size: 18px; margin-top: 23px; max-width: 470px; }
.hp-contact-circle { width: 157px; height: 157px; flex-shrink: 0; border-radius: 50%; background: var(--green); color: white; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 4px; transition: transform 140ms var(--ease), opacity 140ms var(--ease); }
.hp-contact-circle > span:first-child { font-size: 48px; line-height: 1; }
.hp-contact-circle > span:last-child { font-size: 20px; }
.hp-project-note, .hp-detail-photo img { transition: transform 140ms var(--ease), opacity 140ms var(--ease); }
@media (hover:hover) and (pointer:fine) {
  .hp-project-note:hover, .hp-contact-circle:hover { transform: translateY(-3px); }
  .hp-jump:hover, .hp-company-line a:hover, .hp-topic-body a:hover { text-decoration: underline; text-underline-offset: 5px; }
}
@media (max-width:1150px) {
  .hp-opening { gap: 42px; grid-template-columns: 1.5fr 1fr; }
  .hp-title h1 { font-size: 5.2rem; }
  .hp-opening-copy > p { font-size: 19px; }
  .hp-introduction, .hp-material-scene, .hp-planning, .hp-work-layout { gap: 60px; }
  .hp-structure-photo img { height: 580px; }
  .hp-work-topics summary { font-size: 23px; }
  .hp-planning-photo img { height: 475px; }
}
@media (max-width:900px) {
  .hp-opening { gap: 29px; padding-block: 40px 35px; grid-template-columns: 1.45fr 1fr; }
  .hp-title h1 { font-size: 4.1rem; }
  .hp-location { font-size: 13px; margin-bottom: 21px; }
  .hp-location span { margin-inline: 5px; }
  .hp-opening-copy > p { font-size: 18px; }
  .hp-opening-copy .btn { padding-inline: 18px; gap: 15px; }
  .hp-panorama { margin-inline: 15px; }
  .hp-panorama img { height: 440px; }
  .hp-project-note { right: 24px; width: 300px; padding: 23px 26px; gap: 23px; }
  .hp-company-line { flex-wrap: wrap; gap: 10px 18px; font-size: 14px; }
  .hp-company-line a { width: 100%; margin: 0; }
  .hp-introduction { gap: 40px; padding-block: 62px 52px; }
  .hp-intro-title h2 { font-size: 39px; }
  .hp-intro-copy .lead { font-size: 23px; }
  .hp-material-scene { gap: 39px; margin-bottom: 65px; }
  .hp-structure-photo img { height: 510px; }
  .hp-material-side { padding-top: 65px; }
  .hp-detail-photo { width: 100%; }
  .hp-detail-photo img { height: 210px; }
  .hp-detail-copy h2 { font-size: 31px; }
  .hp-work { padding-block: 62px 67px; }
  .hp-work-layout { gap: 40px; }
  .hp-work-heading h2 { font-size: 49px; }
  .hp-work-topics summary { font-size: 22px; }
  .hp-planning { gap: 39px; padding-block: 72px 68px; }
  .hp-planning-copy h2 { font-size: 39px; }
  .hp-planning-photo img { height: 400px; }
  .hp-planning-note { left: -15px; width: 250px; padding: 25px; }
  .hp-planning-note strong { font-size: 27px; }
  .hp-journal-heading { align-items: start; flex-direction: column; }
  .hp-journal-heading h2 { font-size: 39px; }
  .hp-guide-list .story-row { grid-template-columns: 115px 1fr 40px; }
}
@media (max-width:600px) {
  .hp-opening { display: block; padding-block: 28px 31px; }
  .hp-location { font-size: 13px; margin-bottom: 23px; }
  .hp-title h1 { font-size: clamp(2.9rem,12.4vw,3.8rem); }
  .hp-opening-copy { margin-top: 24px; padding: 0; }
  .hp-opening-copy > p { font-size: 19px; max-width: 340px; margin-bottom: 23px; }
  .hp-jump { margin-top: 18px; font-size: 15px; }
  .hp-panorama { margin-inline: 10px; padding-bottom: 0; }
  .hp-panorama img { height: 315px; object-position: 58% 50%; }
  .hp-panorama figcaption { left: 10px; bottom: 10px; max-width: calc(100% - 20px); font-size: 10px; padding: 6px 8px; }
  .hp-project-note { position: relative; right: auto; bottom: auto; width: calc(100% - 30px); margin: 0 0 0 auto; padding: 23px; gap: 23px; }
  .hp-project-note strong { font-size: 27px; }
  .hp-note-cross { font-size: 31px; }
  .hp-company-line { padding-block: 24px; gap: 9px; font-size: 13px; }
  .hp-company-line > span { display: none; }
  .hp-company-line p { width: 100%; }
  .hp-company-line a { margin-top: 6px; font-size: 14px; }
  .hp-introduction { display: block; padding-block: 50px 43px; }
  .hp-intro-title h2 { font-size: 37px; }
  .hp-margin-note { display: none; }
  .hp-intro-copy { margin-top: 28px; }
  .hp-intro-copy .lead { font-size: 24px; }
  .hp-intro-copy .text-link { font-size: 17px; }
  .hp-material-scene { display: block; margin-bottom: 53px; }
  .hp-structure-photo { padding: 0; width: 86%; }
  .hp-structure-photo img { height: 390px; }
  .hp-material-side { padding: 0; margin-top: 25px; }
  .hp-detail-photo { width: 80%; margin-left: auto; }
  .hp-detail-photo img { height: 206px; }
  .hp-detail-copy { padding: 26px 0 0; }
  .hp-detail-copy h2 { font-size: 36px; }
  .hp-small-cross { display: none; }
  .hp-work { padding-block: 49px 53px; }
  .hp-work-layout { display: block; }
  .hp-work-heading h2 { font-size: 52px; }
  .hp-work-heading > p:not(.hp-work-marker) { font-size: 18px; }
  .hp-work-topics { margin-top: 35px; }
  .hp-work-topics summary { font-size: 23px; }
  .hp-work-topics details { padding-block: 22px; }
  .hp-topic-body p { font-size: 17px; }
  .hp-planning { display: flex; flex-direction: column; gap: 37px; padding-block: 55px 55px; }
  .hp-planning-copy h2 { font-size: 37px; }
  .hp-preparation h3 { font-size: 22px; }
  .hp-preparation li { gap: 17px; }
  .hp-planning-photo { width: 100%; padding-bottom: 106px; }
  .hp-planning-photo img { height: 295px; }
  .hp-planning-note { left: 12px; bottom: 0; width: 265px; padding: 23px 25px; }
  .hp-planning-note strong { font-size: 29px; }
  .hp-journal { padding-block: 32px 35px; }
  .hp-journal-heading { gap: 24px; margin-bottom: 30px; }
  .hp-journal-heading h2 { font-size: 36px; }
  .hp-journal-heading p { margin-top: 19px; }
  .hp-journal-heading .text-link { font-size: 16px; }
  .hp-guide-list .story-row { grid-template-columns: 1fr 40px; }
  .hp-contact-strip { gap: 24px; padding-block: 36px 55px; align-items: start; }
  .hp-contact-strip h2 { font-size: 36px; }
  .hp-contact-strip p { font-size: 17px; }
  .hp-contact-circle { width: 79px; height: 79px; margin-top: 7px; }
  .hp-contact-circle > span:first-child { font-size: 31px; }
  .hp-contact-circle > span:last-child { font-size: 13px; }
}
@media (prefers-reduced-motion:reduce) {
  .hp-project-note, .hp-contact-circle, .hp-detail-photo img { transition: opacity 140ms var(--ease); }
  .hp-project-note:hover, .hp-contact-circle:hover { transform: none; }
}

/* Shared header refinement keeps the company logo and navigation consistent. */
.site-header { border-top: 4px solid var(--green); }
.header-inner { min-height: 99px; }
.brand img { width: 62px; height: 62px; }
.site-header .wordmark { font-size: 27px; }
@media(max-width:900px) { .header-inner { min-height: 87px; } }
@media(max-width:600px) { .brand img { width: 46px; height: 46px; } .site-header .wordmark { font-size: 22px; } .header-inner { min-height: 81px; } }

.regional-address { font-size: 18px !important; }
.about-offices { display:grid; grid-template-columns:.8fr 1fr 1.2fr; gap:55px; padding-block:40px 65px; border-top:1px solid var(--line); }
.about-offices h2 { font-size:36px; }
.about-offices h3 { font-size:23px; margin-bottom:16px; }
.about-offices address { font-size:18px; color:var(--muted); line-height:1.55; }
@media(max-width:900px) { .about-offices { grid-template-columns:1fr 1fr; gap:30px; } .about-offices h2 { grid-column:1 / -1; } }
@media(max-width:600px) { .about-offices { display:block; padding-block:33px 45px; } .about-offices>div { margin-top:26px; } }
