:root {
  --red:#cd3d3b;
  --red-light:#de9a98;
  --ink:#5a5854;
  --cream:#fbfaf3;
  --sand:#ddd3bb;
  --line:#e8e8e6;
  --font:'Kosugi Maru','Hiragino Maru Gothic ProN','Yu Gothic',sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px;
}
body {
  margin:0;
  color:var(--ink);
  background:#fff;
  font-family:var(--font);
  font-size:16px;
  line-height:2.2;
  letter-spacing:.06em;
}
h1,h2,h3,p,ul,ol,dl,dd {
  margin:0;
}
h1,h2,h3 {
  font-weight:400;
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,textarea {
  font:inherit;
}
button,a {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
a,button {
  touch-action:manipulation;
}
a:focus-visible,button:focus-visible {
  outline:3px solid var(--red);
  outline-offset:5px;
}
a:hover {
  opacity:.78;
}
a {
  transition:opacity .18s;
}
main {
  min-height:40vh;
}
.container {
  width:calc(100% - 160px);
  max-width:1200px;
  margin-inline:auto;
  position:relative;
}
.narrow {
  max-width:1000px;
}
.center {
  text-align:center;
}
.section-cream {
  background:var(--cream);
}
.section-heading {
  position:relative;
  z-index:1;
}
.section-heading h2 {
  font-size:32px;
  line-height:1.5;
  letter-spacing:.18em;
}
.eyebrow {
  font:400 11px/1 'Roboto',Arial,sans-serif;
  letter-spacing:.24em;
  color:var(--red-light);
  margin-bottom:2px;
}
.section-lead {
  margin-top:30px;
}
.center-link {
  display:flex;
  justify-content:center;
  margin-top:60px;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  line-height:1.2;
  letter-spacing:.06em;
  font-size:15px;
  max-width:100%;
  vertical-align:middle;
}
.button--solid,.button--white {
  padding:12px 24px 12px 32px;
  border-radius:40px;
  min-height:48px;
  background:var(--red);
  color:#fff;
}
.button--white {
  background:#fff;
  color:var(--red);
}
.button__arrow {
  width:24px;
  height:24px;
  flex:0 0 24px;
}
.button--text {
  color:var(--red);
  gap:30px;
  min-height:50px;
}
.button--text .button__arrow {
  width:50px;
  height:50px;
  flex-basis:50px;
}
.button[aria-disabled] {
  cursor:default;
}
.decoration {
  pointer-events:none;
  position:absolute;
  object-fit:contain;
}
.skip-link {
  position:fixed;
  left:12px;
  top:-100px;
  z-index:100;
  background:#fff;
  padding:10px 20px;
}
.skip-link:focus {
  top:12px;
}
/* Shared header, navigation and footer. */
.site-header {
  height:130px;
  max-width:1680px;
  margin:auto;
  padding:23px 50px 20px;
  background:#fff;
  position:relative;
  z-index:10;
}
.utility-bar {
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:24px;
  height:36px;
  font-size:14px;
  line-height:1.3;
  color:#333;
}
.utility-bar>a>span {
  color:var(--red);
}
.utility-phone {
  display:flex;
  align-items:center;
  letter-spacing:.06em;
}
.utility-phone strong {
  font:700 25px/1.2 'Roboto',Arial,sans-serif;
}
.utility-phone small {
  font-size:13px;
}
.phone-icon {
  width:24px;
  height:24px;
  flex-shrink:0;
}
.header-main {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding-top:10px;
}
.brands {
  display:flex;
  align-items:center;
  gap:30px;
  flex-shrink:0;
  line-height:1.3;
  color:#141414;
}
.brand {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:20px;
  letter-spacing:0;
  white-space:nowrap;
}
.brand__mark {
  width:35px;
  height:35px;
  object-fit:contain;
}
.primary-nav {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:15px;
  letter-spacing:.1em;
  white-space:nowrap;
  color:#2a2a28;
}
.primary-nav a[aria-current] {
  text-decoration:underline;
  text-underline-offset:12px;
  text-decoration-color:var(--red);
}
.primary-nav .nav-contact {
  padding:13px 30px;
  background:var(--red);
  color:#fff;
  border-radius:50px;
  line-height:1.2;
}
.menu-toggle {
  display:none;
}
.instagram-tab {
  position:fixed;
  right:0;
  top:160px;
  z-index:6;
  width:74px;
  height:230px;
  display:flex;
  align-items:center;
  gap:12px;
  flex-direction:column;
  padding:35px 15px;
  background:var(--red);
  border-radius:20px 0 0 20px;
  color:white;
}
.instagram-icon {
  width:28px;
  height:28px;
  flex-shrink:0;
}
.instagram-tab span {
  writing-mode:vertical-rl;
  font:15px/1 'Roboto',sans-serif;
  letter-spacing:.24em;
}
.site-footer {
  padding:80px 0 0;
  border-top:1px solid var(--line);
}
.site-footer .brands {
  gap:20px;
  color:var(--ink);
}
.footer-address {
  font-size:14px;
  line-height:1.8;
  margin:20px 0 56px;
}
.footer-address>div {
  display:flex;
}
.footer-address dt {
  width:88px;
  flex-shrink:0;
}
.footer-bar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:28px 30px;
  border-block:1px solid var(--line);
  gap:24px;
}
.footer-bar nav {
  display:flex;
  flex-wrap:wrap;
  gap:18px 28px;
  font-size:13px;
  line-height:1.4;
}
.footer-instagram {
  width:35px;
  height:35px;
  min-width:35px;
}
.copyright {
  text-align:center;
  font:11.5px/1.6 Arial,sans-serif;
  letter-spacing:.06em;
  color:#8a8a88;
  padding:24px 0 32px;
}
/* Front page, based on Figma frame 54:1620 (1440px). */
.home-hero {
  position:relative;
  margin:0 50px 55px;
  height:716px;
  overflow:hidden;
  max-width:1580px;
}
.home-hero__image {
  width:116.765%;
  height:123%;
  max-width:none;
  object-fit:cover;
  position:absolute;
  left:-2.96%;
  top:-16.46%;
}
.home-hero__content {
  position:absolute;
  left:8.73%;
  top:320px;
  width:550px;
  max-width:85%;
}
.hero-eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  font:11px/1 'Roboto',sans-serif;
  letter-spacing:.24em;
}
.heading-dots {
  width:24px;
  height:10px;
  flex:0 0 24px;
}
.home-hero h1 {
  font-size:50px;
  line-height:1.5;
  letter-spacing:.15em;
  margin:20px 0;
}
.hero-description {
  max-width:500px;
  line-height:2.3;
}
.hero-actions {
  display:flex;
  gap:19px;
  margin-top:28px;
}
.home-message {
  min-height:758px;
  position:relative;
  padding:88px 0 110px;
  border-bottom:1px solid var(--line);
}
.message-copy {
  margin-top:60px;
  text-align:center;
  line-height:2.3;
  font-size:16px;
  letter-spacing:.06em;
}
.message-copy p+p {
  margin-top:36px;
}
.message-town-right {
  top:24px;
  right:4.2%;
  width:33%;
  max-width:476px;
  height:130px;
}
.message-town-left {
  top:16px;
  left:15.55%;
  width:16.2%;
  height:134px;
  max-width:233px;
}
.message-truck {
  top:99px;
  left:8%;
  width:6%;
  height:47px;
  max-width:86px;
}
.home-service {
  min-height:1320px;
  padding:110px 0;
  overflow:hidden;
}
.home-service .container {
  max-width:1240px;
}
.service-town {
  right:22%;
  top:2px;
  width:31%;
  height:111px;
}
.service-houses {
  right:2%;
  bottom:-30px;
  width:288px;
  height:197px;
}
.service-list {
  display:grid;
  grid-auto-flow:column;
  grid-template-rows:repeat(7,106px);
  grid-template-columns:1fr 1fr;
  column-gap:120px;
  list-style:none;
  padding:0;
  margin:70px auto 0;
  max-width:1120px;
}
.service-list li {
  display:flex;
  align-items:center;
  gap:60px;
  padding:20px 24px 20px 40px;
  border-top:1px solid var(--sand);
  font-size:20px;
  line-height:1.8;
}
.service-list li:nth-child(7),.service-list li:last-child {
  border-bottom:1px solid var(--sand);
}
.service-number {
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border:1px solid #e9a6a2;
  border-radius:50%;
  color:var(--red);
  font:16px/1 'Roboto',sans-serif;
  letter-spacing:.15em;
}
.home-service .center-link {
  margin-top:110px;
}
.home-works {
  min-height:1124px;
  padding:108px 0 150px;
}
.work-cards {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  margin:70px auto 0;
  max-width:1100px;
}
.work-card {
  padding:20px 30px;
  border:1px solid var(--sand);
}
.work-card__image {
  aspect-ratio:457/273;
  object-fit:cover;
  width:100%;
}
.photo-placeholder {
  background:#d9d9d9;
}
.work-card h3 {
  font-size:28px;
  line-height:1.8;
  letter-spacing:.1em;
  margin:40px 0 20px;
}
.work-spec {
  border-top:1px solid var(--line);
  padding-top:18px;
  font-size:16px;
  line-height:1.8;
}
.work-spec>div {
  display:flex;
  align-items:center;
  gap:20px;
  margin-bottom:20px;
}
.work-spec dt {
  border-radius:30px;
  padding:0 15px;
  min-width:116px;
  text-align:center;
  background:var(--sand);
  white-space:nowrap;
}
.work-spec dd {
  margin:0;
}
.home-works .center-link {
  margin-top:70px;
}
.home-strength {
  min-height:780px;
  background:#fdf8ec;
  padding:120px 0 110px;
}
.strength-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:70px;
}
.strength-grid article {
  padding:40px 20px;
  text-align:center;
}
.strength-grid article+article {
  border-left:1px solid var(--sand);
}
.strength-grid h3 {
  font-size:20px;
  line-height:1.8;
  letter-spacing:.1em;
}
.strength-icon {
  width:182px;
  height:182px;
  object-fit:contain;
  margin:20px auto;
}
.strength-grid p {
  line-height:2.1;
}
.home-banners {
  background:#c5c0b3;
  padding:92px 0;
  min-height:788px;
}
.banner-grid {
  max-width:1290px;
  width:calc(100% - 100px);
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:44px;
}
.feature-card {
  background:#fff;
  border:1px solid var(--sand);
  padding:44px 22px;
  text-align:center;
  min-width:0;
}
.feature-card__image {
  width:100%;
  height:308px;
  object-fit:contain;
  margin:11px auto;
}
.feature-card p:not(.eyebrow) {
  font-size:16px;
  line-height:1.8;
  margin-bottom:33px;
}
.home-instagram {
  padding:140px 0 140px;
  min-height:733px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.instagram-town {
  right:-120px;
  top:-46px;
  width:72%;
  height:93px;
  object-fit:cover;
  object-position:bottom;
  opacity:1;
}
.instagram-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:20px;
  margin-top:60px;
}
.instagram-placeholder {
  aspect-ratio:1;
  display:grid;
  place-content:center;
  text-align:center;
  background:#e7e7e5;
  border:1px solid #dcdcda;
  color:#6e6e6c;
  font-size:11px;
  line-height:1.7;
}
.contact-band {
  padding:108px 0 105px;
  background:#f6f1e6;
  min-height:579px;
  overflow:hidden;
}
.contact-band__inner:before {
  content:'';
  position:absolute;
  inset:143px 0 -105px;
  background:url('../images/contact-town.png') bottom center/100% auto no-repeat;
  opacity:1;
}
.contact-panel {
  position:relative;
  padding:70px 30px;
  background:rgb(255 255 255 / .8);
  text-align:center;
}
.contact-panel>p {
  margin:30px 0 48px;
}
.contact-actions {
  display:flex;
  gap:40px;
  justify-content:center;
  align-items:center;
}
.contact-phone {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  font:700 30px/1.2 'Roboto',sans-serif;
  letter-spacing:.06em;
}
.contact-phone .phone-icon {
  width:30px;
  height:30px;
}
.contact-actions small {
  display:block;
  font-size:12px;
  line-height:1.6;
}
.contact-actions .button {
  padding-block:15px;
}
/* Static lower pages. */
.page-hero {
  height:357px;
  margin:6px 50px 0;
  position:relative;
  overflow:hidden;
}
.page-hero__image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.page-hero__title {
  position:absolute;
  left:12%;
  bottom:64px;
}
.page-hero__title .eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
}
.page-hero h1 {
  font-size:44px;
  line-height:1.5;
  letter-spacing:.18em;
  margin-top:4px;
}
.page-hero--recruit .page-hero__image {
  object-position:center;
}
.breadcrumbs {
  margin:0 50px;
  display:flex;
  gap:15px;
  align-items:center;
  min-height:36px;
  font-size:12px;
}
.page-intro {
  padding:60px 0;
}
.page-intro p:not(.eyebrow) {
  margin-top:50px;
  text-align:center;
  line-height:2.3;
}
.page-intro .section-heading h2 {
  font-size:30px;
}
.page-section {
  padding:80px 0;
}
.line-heading {
  font-size:30px;
  letter-spacing:.14em;
  line-height:1.6;
  margin:0 0 50px;
  position:relative;
  padding-bottom:20px;
  display:flex;
  align-items:center;
  gap:24px;
}
.line-heading:after {
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:50px;
  height:2px;
  background:var(--red);
}
.title-illustration {
  width:116px;
  height:80px;
  object-fit:contain;
  margin-top:-30px;
}
.page-section .service-list {
  margin-top:0;
  column-gap:120px;
}
.page-section .service-list li {
  font-size:18px;
  gap:60px;
  padding-left:40px;
}
.service-city {
  height:340px;
  overflow:hidden;
  position:relative;
  max-width:800px;
  margin:60px auto 30px;
}
.service-city__image {
  position:absolute;
  bottom:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:bottom;
}
.client-section {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:50px;
}
.client-section ul {
  list-style:none;
  padding:0;
}
.client-section li {
  display:flex;
  gap:40px;
  align-items:center;
  padding:30px 20px;
  border-block-start:1px solid var(--sand);
}
.client-section li:last-child {
  border-bottom:1px solid var(--sand);
}
.client-icon {
  width:35px;
  height:50px;
  object-fit:cover;
  object-position:center;
}
.project+.project {
  margin-top:100px;
}
.project .line-heading {
  margin-bottom:35px;
}
.project-spec {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  border:0;
  padding:0;
  margin-bottom:10px;
}
.project-spec dt {
  background:var(--red);
  color:#fff;
}
.project-gallery {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}
.project-gallery img,.project-gallery .photo-placeholder {
  width:100%;
  aspect-ratio:1.7;
  object-fit:cover;
}
.gallery-link {
  overflow:hidden;
}
.gallery-link img {
  transition:transform .25s;
}
.gallery-link:hover img {
  transform:scale(1.025);
}
.data-table {
  background:#fff;
  font-size:16px;
  line-height:1.9;
  border-top:1px solid var(--sand);
}
.data-table>div {
  display:grid;
  grid-template-columns:230px 1fr;
  border-bottom:1px solid var(--sand);
  align-items:center;
  padding:20px 30px;
  gap:0;
}
.data-table dt {
  padding-right:20px;
}
.data-table dd {
  min-width:0;
}
.company-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
}
.company-pair>span+span {
  border-left:1px solid var(--sand);
  padding-left:30px;
}
.company-table>div:first-child .company-pair>span:before {
  content:'●';
  color:var(--red);
  font-size:10px;
  margin-right:10px;
}
.company-table>div:first-child .company-pair>span+span:before {
  color:#9cae81;
}
.access-map {
  margin-top:80px;
}
.map-image {
  width:100%;
  aspect-ratio:1240/723;
  object-fit:cover;
}
.recruit-table>div {
  grid-template-columns:280px 1fr;
  padding:20px 50px;
}
.recruit-table dt {
  color:var(--red);
}
.spaced-heading {
  margin-top:80px;
}
.interview {
  display:grid;
  grid-template-columns:394fr 464fr;
  gap:62px;
  padding:30px 40px;
  background:#fcf6f5;
}
.interview-photo {
  min-height:425px;
  background:#e7e7e5;
  display:grid;
  place-items:center;
}
.interview-photo span {
  font-size:11px;
  background:white;
  padding:2px 12px;
}
.interview p {
  font-size:14px;
  line-height:2.1;
}
.interview h3 {
  color:var(--red);
  font-size:24px;
  margin:15px 0 20px;
}
.partners-illustration {
  width:640px;
  max-height:330px;
  object-fit:contain;
  margin:0 auto 50px;
}
.contact-page-panel {
  background:white;
  padding:60px 30px;
}
.contact-notice {
  margin-top:40px;
}
.contact-page-panel .button {
  margin-top:30px;
}
.page-content {
  overflow-wrap:anywhere;
}
.page-content p {
  margin-block:1em;
}
.photo-dialog {
  border:0;
  max-width:94vw;
  width:max-content;
  max-height:94vh;
  padding:42px 20px 12px;
  background:#fff;
}
.photo-dialog::backdrop {
  background:rgb(0 0 0 / .8);
}
.photo-dialog img {
  max-width:86vw;
  max-height:76vh;
  object-fit:contain;
  margin:auto;
}
.photo-dialog p {
  font-size:13px;
  text-align:center;
}
.dialog-close {
  position:absolute;
  right:8px;
  top:0;
  width:40px;
  height:40px;
  border:0;
  background:white;
  color:var(--ink);
  font-size:30px;
  line-height:1;
}
@media(min-width:1680px) {
  .home-hero {
    margin-inline:auto;
  }
  .home-hero__content {
    top:320px;
  }
}
@media(max-width:1380px) and (min-width:1201px) {
  .site-header {
    padding-inline:32px;
  }
  .brand {
    font-size:17px;
  }
  .brands {
    gap:18px;
  }
  .primary-nav {
    gap:20px;
    font-size:14px;
  }
  .primary-nav .nav-contact {
    padding-inline:22px;
  }
  .service-list {
    column-gap:80px;
  }
  .service-list li {
    gap:40px;
  }
  .work-card h3 {
    font-size:25px;
  }
}
@media(max-width:1200px) {
  .site-header {
    height:112px;
    padding:14px 32px;
  }
  .header-main {
    padding-top:8px;
  }
  .utility-bar {
    font-size:12px;
    height:30px;
  }
  .utility-phone strong {
    font-size:21px;
  }
  .brand {
    font-size:18px;
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    gap:12px;
    background:white;
    border:1px solid var(--sand);
    border-radius:30px;
    padding:7px 16px;
    font-size:12px;
    color:var(--ink);
    min-height:44px;
  }
  .menu-toggle__lines {
    width:19px;
    height:12px;
    border-top:1px solid;
    border-bottom:1px solid;
  }
  .primary-nav {
    display:none;
    position:absolute;
    top:100%;
    right:24px;
    background:#fff;
    padding:28px;
    box-shadow:0 10px 30px #0002;
    width:300px;
    white-space:normal;
  }
  .primary-nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:22px;
  }
  .primary-nav .nav-contact {
    text-align:center;
  }
  .instagram-tab {
    top:140px;
    width:55px;
    height:205px;
    padding-inline:12px;
  }
  .container {
    width:calc(100% - 80px);
  }
  .home-hero {
    margin-inline:32px;
    height:680px;
  }
  .home-hero__content {
    top:280px;
  }
  .home-hero h1 {
    font-size:44px;
  }
  .home-message {
    padding-block:100px;
    min-height:0;
  }
  .message-town-right {
    width:30%;
  }
  .message-copy br {
    display:none;
  }
  .message-copy {
    line-height:2.5;
  }
  .service-list,.page-section .service-list {
    column-gap:50px;
  }
  .service-list li,.page-section .service-list li {
    padding-left:15px;
    gap:28px;
    font-size:17px;
  }
  .home-service {
    min-height:0;
  }
  .home-works {
    min-height:0;
    padding-block:100px;
  }
  .work-cards {
    gap:30px;
  }
  .work-card {
    padding:20px;
  }
  .work-card h3 {
    font-size:22px;
  }
  .home-strength {
    min-height:0;
    padding-block:100px;
  }
  .strength-grid {
    gap:0;
  }
  .strength-grid article {
    padding:20px 15px;
  }
  .strength-grid h3 {
    font-size:18px;
  }
  .strength-grid p {
    font-size:14px;
  }
  .strength-grid br {
    display:none;
  }
  .home-banners {
    min-height:0;
    padding-block:70px;
  }
  .banner-grid {
    width:calc(100% - 64px);
    gap:28px;
  }
  .feature-card {
    padding:30px 20px;
  }
  .feature-card__image {
    height:240px;
  }
  .feature-card p:not(.eyebrow) {
    font-size:14px;
    min-height:50px;
  }
  .home-instagram {
    min-height:0;
    padding-block:100px;
  }
  .instagram-town {
    right:-40px;
  }
  .contact-band {
    min-height:0;
    padding-block:90px;
  }
  .contact-panel {
    padding:60px 25px;
  }
  .page-hero {
    margin-inline:32px;
  }
  .breadcrumbs {
    margin-inline:32px;
  }
  .project-spec {
    gap:15px;
    font-size:13px;
  }
  .project-spec dt {
    min-width:85px;
  }
  .project-spec>div {
    gap:10px;
  }
  .data-table>div {
    grid-template-columns:180px 1fr;
    padding-inline:25px;
  }
  .company-pair {
    gap:20px;
  }
  .company-pair>span+span {
    padding-left:20px;
  }
  .interview {
    gap:30px;
    padding:30px;
  }
  .footer-bar {
    padding-inline:0;
  }
  .footer-bar nav {
    gap:20px;
    font-size:12px;
  }
}
@media(max-width:767px) {
  body {
    font-size:14px;
    line-height:2.1;
  }
  .container {
    width:calc(100% - 40px);
  }
  .section-heading h2 {
    font-size:26px;
    letter-spacing:.12em;
  }
  .eyebrow {
    font-size:10px;
  }
  .section-lead {
    margin-top:24px;
  }
  .center-link {
    margin-top:36px;
  }
  .button {
    font-size:13px;
    gap:12px;
  }
  .button--solid,.button--white {
    padding:12px 18px 12px 23px;
  }
  .button--text {
    gap:20px;
  }
  .button--text .button__arrow {
    width:44px;
    height:44px;
    flex-basis:44px;
  }
  .site-header {
    height:100px;
    padding:12px 18px;
  }
  .utility-bar {
    height:24px;
    gap:0;
    justify-content:flex-start;
  }
  .utility-bar>a:not(.utility-phone) {
    display:none;
  }
  .utility-phone strong {
    font-size:17px;
  }
  .utility-phone small {
    font-size:10px;
  }
  .utility-phone .phone-icon {
    width:17px;
    height:17px;
  }
  .header-main {
    gap:10px;
    align-items:center;
    padding-top:10px;
  }
  .header-main .brands {
    flex-direction:column;
    gap:4px;
    align-items:flex-start;
  }
  .brand {
    font-size:13px;
    gap:4px;
  }
  .brand__mark {
    width:22px;
    height:22px;
  }
  .menu-toggle {
    font-size:11px;
    gap:8px;
    padding:7px 12px;
    flex-shrink:0;
  }
  .primary-nav {
    right:18px;
    left:18px;
    width:auto;
    padding:24px;
    font-size:15px;
    max-height:calc(100dvh - 120px);
    overflow:auto;
  }
  .instagram-tab {
    top:120px;
    width:38px;
    height:166px;
    padding:17px 8px;
    border-radius:12px 0 0 12px;
    gap:10px;
  }
  .instagram-tab .instagram-icon {
    width:22px;
    height:22px;
  }
  .instagram-tab span {
    font-size:11px;
    letter-spacing:.18em;
  }
  .home-hero {
    margin:10px 18px 30px;
    height:auto;
  }
  .home-hero__image {
    position:relative;
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:1580 / 716;
    left:0;
    top:0;
    object-fit:cover;
    object-position:center;
  }
  .home-hero__content {
    position:relative;
    top:auto;
    left:auto;
    max-width:none;
    width:auto;
    padding:24px 18px 28px;
    background:#fff5d9;
  }
  .hero-eyebrow {
    font-size:8px;
    letter-spacing:.12em;
    gap:7px;
  }
  .hero-eyebrow .heading-dots {
    width:20px;
    height:9px;
    flex-basis:20px;
  }
  .home-hero h1 {
    font-size:clamp(27px,7.4vw,43px);
    letter-spacing:.09em;
    margin:20px 0;
    line-height:1.65;
  }
  .hero-description {
    font-size:13px;
    line-height:2.1;
    max-width:320px;
  }
  .hero-actions {
    gap:10px;
    margin-top:25px;
    flex-wrap:wrap;
  }
  .hero-actions .button {
    font-size:12px;
    padding:12px 15px;
    gap:8px;
  }
  .hero-actions .button__arrow {
    width:20px;
    height:20px;
    flex-basis:20px;
  }
  .home-message {
    padding:90px 0 65px;
  }
  .message-town-left {
    top:10px;
    left:5%;
    height:65px;
    width:28%;
  }
  .message-truck {
    top:53px;
    left:3%;
    width:13%;
    height:25px;
  }
  .message-town-right {
    top:10px;
    right:4%;
    width:42%;
    height:70px;
  }
  .message-copy {
    margin-top:35px;
    font-size:14px;
    text-align:left;
    line-height:2.3;
  }
  .message-copy p+p {
    margin-top:25px;
  }
  .home-service {
    padding:65px 0 80px;
  }
  .home-service .section-lead {
    max-width:75%;
  }
  .service-town {
    right:-12px;
    top:20px;
    width:39%;
    height:80px;
    opacity:.8;
  }
  .service-list,.page-section .service-list {
    grid-template-columns:1fr;
    grid-template-rows:none;
    grid-auto-flow:row;
    gap:0;
    margin-top:40px;
  }
  .service-list li,.page-section .service-list li {
    padding:18px 8px;
    gap:26px;
    font-size:16px;
    min-height:80px;
  }
  .service-list li:nth-child(7) {
    border-bottom:0;
  }
  .service-number {
    width:38px;
    height:38px;
    flex-basis:38px;
    font-size:14px;
  }
  .home-service .center-link {
    margin-top:50px;
  }
  .service-houses {
    width:95px;
    height:85px;
    right:-5px;
    bottom:-70px;
    opacity:.65;
  }
  .home-works {
    padding:65px 0;
  }
  .work-cards {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:38px;
  }
  .work-card {
    padding:20px;
  }
  .work-card h3 {
    font-size:21px;
    margin:25px 0 16px;
  }
  .work-spec {
    font-size:14px;
  }
  .work-spec>div {
    margin-bottom:12px;
  }
  .work-spec dt {
    min-width:94px;
  }
  .home-works .center-link {
    margin-top:38px;
  }
  .home-strength {
    padding:65px 0;
  }
  .strength-grid {
    grid-template-columns:1fr;
    margin-top:25px;
  }
  .strength-grid article {
    padding:32px 12px;
  }
  .strength-grid article+article {
    border-left:0;
    border-top:1px solid var(--sand);
  }
  .strength-grid h3 {
    font-size:20px;
  }
  .strength-icon {
    width:155px;
    height:155px;
    margin:14px auto;
  }
  .strength-grid p {
    font-size:14px;
  }
  .home-banners {
    padding:35px 0;
  }
  .banner-grid {
    width:calc(100% - 36px);
    grid-template-columns:1fr;
    gap:24px;
  }
  .feature-card {
    padding:30px 16px;
  }
  .feature-card__image {
    height:auto;
    aspect-ratio:577/308;
    object-fit:contain;
  }
  .feature-card p:not(.eyebrow) {
    min-height:0;
    margin:12px 0 25px;
  }
  .home-instagram {
    padding:80px 0 65px;
  }
  .instagram-town {
    top:-40px;
    right:-20px;
    width:60%;
    height:50px;
  }
  .instagram-grid {
    grid-template-columns:repeat(2,1fr);
    margin-top:35px;
    gap:12px;
  }
  .instagram-placeholder:last-child {
    display:none;
  }
  .contact-band {
    padding:55px 0;
  }
  .contact-band__inner:before {
    inset:70% -10px -55px;
    background-size:auto 120px;
  }
  .contact-panel {
    padding:38px 20px;
  }
  .contact-panel>p {
    margin:25px 0 30px;
    text-align:left;
    font-size:14px;
  }
  .contact-actions {
    flex-direction:column;
    gap:25px;
  }
  .contact-phone {
    font-size:27px;
    letter-spacing:.04em;
  }
  .contact-actions small {
    font-size:11px;
  }
  .site-footer {
    padding-top:45px;
  }
  .site-footer .brands {
    flex-direction:column;
    gap:15px;
    align-items:flex-start;
  }
  .site-footer .brand {
    font-size:17px;
  }
  .site-footer .brand__mark {
    width:30px;
    height:30px;
  }
  .footer-address {
    font-size:12px;
    margin-bottom:30px;
  }
  .footer-address dt {
    width:60px;
  }
  .footer-address dd {
    min-width:0;
  }
  .footer-bar {
    padding:25px 0;
    align-items:flex-start;
    gap:20px;
  }
  .footer-bar nav {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px 20px;
    font-size:12px;
  }
  .footer-instagram {
    width:25px;
    height:25px;
    min-width:25px;
  }
  .copyright {
    font-size:9px;
    letter-spacing:0;
    padding-block:24px;
  }
  .page-hero {
    height:255px;
    margin:10px 18px 0;
  }
  .page-hero__title {
    left:24px;
    bottom:35px;
  }
  .page-hero h1 {
    font-size:30px;
  }
  .page-hero__title .eyebrow {
    font-size:9px;
  }
  .page-hero--recruit .page-hero__image {
    object-position:65% center;
  }
  .breadcrumbs {
    margin-inline:20px;
    font-size:10px;
    gap:12px;
    min-height:35px;
  }
  .page-intro {
    padding:45px 0;
  }
  .page-intro .section-heading h2 {
    font-size:24px;
    line-height:1.8;
  }
  .page-intro p:not(.eyebrow) {
    margin-top:28px;
    text-align:left;
  }
  .page-intro br {
    display:none;
  }
  .page-section {
    padding:50px 0;
  }
  .line-heading {
    font-size:23px;
    letter-spacing:.1em;
    margin-bottom:30px;
    gap:12px;
  }
  .title-illustration {
    width:75px;
    height:60px;
    margin-top:-10px;
  }
  .page-section .service-list {
    margin-top:0;
  }
  .service-city {
    height:180px;
    margin-top:30px;
  }
  .client-section {
    grid-template-columns:1fr;
    gap:0;
  }
  .client-section li {
    padding:22px 5px;
    gap:15px;
  }
  .client-section .line-heading {
    margin-bottom:25px;
  }
  .project+.project {
    margin-top:55px;
  }
  .project-spec {
    display:flex;
    flex-wrap:wrap;
    gap:0 22px;
    margin-bottom:12px;
  }
  .project-spec>div {
    gap:10px;
  }
  .project-spec dt {
    min-width:70px;
    padding-inline:10px;
    font-size:12px;
  }
  .project-gallery {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .data-table {
    font-size:14px;
  }
  .data-table>div,.recruit-table>div {
    grid-template-columns:1fr;
    padding:18px 16px;
    gap:8px;
  }
  .data-table dt {
    font-size:13px;
    color:var(--red);
  }
  .company-pair {
    grid-template-columns:1fr;
    gap:14px;
  }
  .company-pair>span+span {
    border-left:0;
    border-top:1px solid var(--line);
    padding:14px 0 0;
  }
  .access-map {
    margin-top:50px;
  }
  .map-image {
    aspect-ratio:1.1;
    object-position:center;
  }
  .spaced-heading {
    margin-top:50px;
  }
  .interview {
    grid-template-columns:1fr;
    gap:25px;
    padding:20px;
  }
  .interview-photo {
    min-height:290px;
  }
  .interview h3 {
    font-size:22px;
  }
  .contact-page-panel {
    padding:35px 20px;
  }
  .contact-page-panel .contact-phone {
    font-size:25px;
  }
  .partners-illustration {
    margin-bottom:30px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
  }
}
.client-section>.line-heading {
  align-self:start;
}
.privacy-title {
  font-size:32px;
  line-height:1.5;
  letter-spacing:.15em;
}
@media(max-width:767px) {
  .privacy-title {
    font-size:24px;
  }
}
.page-hero:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.5),transparent 65%);
  pointer-events:none;
}
.page-hero__title {
  z-index:1;
}

/* 0921 latest — verified service, partners and contact frames. */
.revision-0921 .eyebrow { color: var(--red); }
.revision-0921 .section-cream { background: #fdfbf5; }
.revision-0921 .page-intro p:not(.eyebrow) { margin-top: 40px; }
.service-page-content { max-width: 1240px; }
.service-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px 53px; padding: 0; margin: 0; list-style: none; }
.service-cards li { position: relative; min-height: 180px; background: white; border: 1px solid var(--sand); padding: 15px 30px 16px; display: flex; flex-direction: column; align-items: center; }
.service-cards li:nth-child(even) { background: #fbf4f4; }
.service-cards .service-number { position: absolute; top: 15px; left: 15px; font-size: 16px; }
.service-card-icon { width: 86px; height: 86px; object-fit: contain; margin: 0 auto 15px; }
.service-card-label { display: block; width: 100%; border-top: 1px solid var(--sand); text-align: center; padding-top: 5px; font-size: 20px; line-height: 2.3; letter-spacing: .06em; }
.service-cards li:nth-child(5) .service-card-label { font-size: 18px; white-space: nowrap; }
.service-page .service-city { max-width: none; height: 200px; margin: -145px 0 80px; pointer-events: none; }
.service-page .service-city__image { width: min(570px, 64%); height: 230px; right: 0; object-fit: contain; }
.service-page .client-section { grid-template-columns: 1fr 2fr; }
.service-page .center-link { margin-top: 80px; }
.partners-body { padding-block: 80px; max-width: 1224px; }
.partners-intro { margin-top: 50px; }
.partners-intro h3 { font-size: 25px; line-height: 2.3; margin-top: 30px; }
.partners-concerns { background: #f6f1e6; border-radius: 20px; width: fit-content; max-width: 100%; margin: 10px auto 30px; text-align: left; padding: 20px 100px; list-style: none; }
.partners-concerns li:before { content: '・'; }
.partners-benefits { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 30px; }
.partners-benefits article { padding: 0 20px 10px; text-align: center; }
.partners-benefits article+article { border-left: 1px solid var(--sand); }
.partner-benefit-icon { width: 182px; height: 182px; object-fit: contain; margin: 0 auto 20px; }
.partners-benefits p { line-height: 2.1; }
.partner-contact { position: relative; background: #f6f1e6; padding: 94px 0 95px; min-height: 513px; overflow: hidden; }
.partner-contact:before { content: ''; position: absolute; width: min(1200px,100%); height: 400px; bottom: -35px; left: 50%; transform: translateX(-50%); background: url('../images/0921-7fb03.png') center/contain no-repeat; }
.partner-contact-panel { text-align: center; background: rgb(255 255 255 / .85); padding: 70px 30px; }
.partner-contact-button { min-width: 388px; margin: 30px auto; gap: 30px; }
.mail-icon { width: 23px; height: 18px; object-fit: contain; }
.partner-contact-phone { display: flex; align-items: center; justify-content: center; gap: 20px; }
.partner-contact-phone small { font-size: 12px; }
.contact-telephone-section { background: #fdfbf5; padding: 60px 0; }
.contact-telephone-card { display: grid; grid-template-columns: 213px minmax(0,1fr); align-items: center; gap: 50px; border: 1px solid var(--sand); border-radius: 5px; background: white; padding: 30px 20px 30px 50px; }
.telephone-illustration { min-height: 200px; display: grid; place-items: center; padding-right: 50px; border-right: 1px solid var(--sand); }
.telephone-illustration__image { width: 108px; height: 94px; object-fit: contain; }
.telephone-copy h2 { font-size: 30px; line-height: 1.5; letter-spacing: .16em; }
.telephone-copy>p { margin: 10px 0; }
.telephone-number { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.telephone-number .contact-phone { font-size: 46px; }
.telephone-number .phone-icon { width: 45px; height: 45px; }
.telephone-number small { font-size: 16px; }
.contact-form-section { position: relative; padding: 60px 0 92px; overflow: hidden; }
.contact-form-section:before { content: ''; position: absolute; inset: auto 0 -40px; height: 481px; background: url('../images/0921-7fb03.png') bottom center/1443px auto no-repeat; }
.form-lead { margin: 30px 0; }
.contact-form,.contact-confirmation { background: rgb(255 253 251 / .9); border: 1px solid var(--sand); border-radius: 5px; padding: 40px 76px; max-width: 1000px; margin-inline: auto; position: relative; }
.contact-form-fields { display: grid; gap: 25px; }
.form-row { display: grid; grid-template-columns: 208px minmax(0,1fr); gap: 30px; align-items: center; }
.form-row label { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 18px; line-height: 2.3; }
.required-badge { background: var(--red); color: white; font-size: 14px; line-height: 24px; min-width: 48px; text-align: center; border-radius: 2px; }
.form-row input,.form-row textarea { width: 100%; min-width: 0; background: #eee; border: 1px solid #ccc; border-radius: 5px; padding: 8px 12px; color: var(--ink); line-height: 1.7; }
.form-row input { min-height: 50px; }
.form-row textarea { min-height: 176px; resize: vertical; }
.form-row--message { align-items: start; }
.form-row input:focus-visible,.form-row textarea:focus-visible,.form-consent input:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.form-consent { margin-top: 25px; text-align: center; }
.form-consent label { display: flex; align-items: center; justify-content: center; gap: 10px; }
.form-consent input { width: 25px; height: 25px; accent-color: var(--red); }
.form-consent a { display: inline-block; color: var(--red); text-decoration: underline; margin-top: 10px; }
.form-confirm-button { width: 345px; border: 0; display: flex; margin: 25px auto 0; min-height: 54px; }
.form-confirm-button:disabled { opacity: .6; cursor: not-allowed; }
.form-availability { font-size: 12px; text-align: center; margin-top: 18px; }
.contact-confirmation h3 { font-size: 26px; margin-bottom: 25px; }
.contact-confirmation[hidden],.contact-form[hidden] { display: none; }
.confirmation-values>div { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 20px; border-bottom: 1px solid var(--sand); padding: 15px 0; }
.confirmation-values dd { white-space: pre-wrap; overflow-wrap: anywhere; }
.form-status { margin: 30px 0; }
.contact-confirmation button { border: 0; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media(max-width:1200px) {
  .service-cards { gap: 25px; }
  .service-card-label { font-size: 17px; }
  .service-cards li:nth-child(5) .service-card-label { font-size: 14px; }
  .service-cards li { padding-inline: 18px; }
  .partners-body .section-heading h2 { font-size: 28px; }
  .partners-concerns { padding-inline: 50px; }
  .partner-benefit-icon { width: 140px; height: 160px; }
  .partner-contact-phone { gap: 12px; flex-wrap: wrap; }
  .contact-telephone-card { grid-template-columns: 140px minmax(0,1fr); gap: 30px; padding-left: 30px; }
  .telephone-illustration { padding-right: 30px; }
  .telephone-copy h2 { font-size: 24px; }
  .telephone-number .contact-phone { font-size: 34px; }
  .contact-form,.contact-confirmation { padding-inline: 35px; }
  .form-row { grid-template-columns: 190px minmax(0,1fr); gap: 20px; }
}
@media(max-width:767px) {
  .service-cards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .service-cards li { padding: 22px 10px 12px; min-height: 164px; }
  .service-cards .service-number { width: 27px; height: 27px; top: 7px; left: 7px; font-size: 11px; }
  .service-card-icon { width: 64px; height: 70px; margin-bottom: 15px; }
  .service-card-label { font-size: 14px; line-height: 1.7; padding-top: 10px; }
  .service-cards li:nth-child(5) .service-card-label { font-size: 12px; white-space: normal; }
  .service-page .service-city { height: 140px; margin: 25px 0 35px; }
  .service-page .service-city__image { width: 100%; height: 140px; }
  .service-page .client-section { grid-template-columns: 1fr; }
  .service-page .center-link { margin-top: 40px; }
  .partners-body { padding-block: 50px; }
  .partners-body .section-heading h2 { font-size: 24px; line-height: 1.8; }
  .partners-intro { margin-top: 30px; }
  .partners-intro p { text-align: left; }
  .partners-intro h3 { font-size: 20px; line-height: 1.9; }
  .partners-concerns { padding: 22px 18px; }
  .partners-benefits { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 30px; }
  .partners-benefits article { padding-inline: 10px; }
  .partners-benefits article:nth-child(3) { border-left: 0; }
  .partner-benefit-icon { width: 110px; height: 125px; }
  .partners-benefits p { font-size: 12px; line-height: 2; }
  .partner-contact { padding: 55px 0 90px; min-height: 0; }
  .partner-contact-panel { padding: 35px 20px; }
  .partner-contact-button { min-width: 0; width: 100%; gap: 10px; padding-inline: 15px; }
  .partner-contact-phone { flex-direction: column; gap: 10px; }
  .partner-contact-phone .contact-phone { font-size: 25px; }
  .contact-telephone-section { padding: 35px 0; }
  .contact-telephone-card { grid-template-columns: 1fr; padding: 25px 20px; gap: 22px; text-align: center; }
  .telephone-illustration { min-height: 100px; border: 0; padding: 0; }
  .telephone-copy h2 { font-size: 22px; line-height: 1.7; }
  .telephone-copy>p { text-align: left; }
  .telephone-number { justify-content: center; gap: 10px; }
  .telephone-number .contact-phone { font-size: clamp(22px,6.4vw,32px); }
  .telephone-number .phone-icon { width: 28px; height: 28px; }
  .telephone-number small { font-size: 13px; }
  .contact-form-section { padding: 45px 0 100px; }
  .contact-form-section .section-heading h2 { font-size: 24px; }
  .contact-form,.contact-confirmation { padding: 28px 18px; }
  .form-row { grid-template-columns: 1fr; gap: 8px; }
  .form-row label { justify-content: flex-start; gap: 16px; font-size: 16px; }
  .required-badge { font-size: 12px; min-width: 42px; line-height: 22px; }
  .form-row input,.form-row textarea { font-size: 16px; }
  .form-consent { font-size: 12px; }
  .form-consent label { align-items: flex-start; text-align: left; gap: 6px; }
  .form-consent input { flex-shrink: 0; width: 20px; height: 20px; margin: 3px 0 0; }
  .form-availability { text-align: left; font-size: 11px; }
  .form-confirm-button { width: 100%; }
  .contact-form-section:before { background-size: auto 180px; height: 180px; bottom: 0; }
  .confirmation-values>div { grid-template-columns: 1fr; gap: 5px; }
  .confirmation-values dt { color: var(--red); }
}

/* Remaining 0921 frames, read from the supplied local .fig archive. */
.home-0921 .home-message { min-height: 693px; padding: 70px 0 61px; }
.home-0921 .message-town-left { left: 3.33%; top: 15px; width: 23.68%; max-width: 341px; height: 134px; }
.home-0921 .message-town-right { right: 1.11%; top: 10px; height: 159px; }
.home-0921 .home-service { min-height: 0; padding: 80px 0; }
.home-0921 .home-service .section-lead { max-width: 576px; margin-top: 30px; margin-bottom: 70px; }
.home-0921 .home-service .center-link { margin-top: 60px; }
.home-0921 .service-cards li { height: 180px; min-height: 180px; }
.home-0921 .home-works { min-height: 0; padding: 80px 0 110px; overflow: hidden; }
.home-0921 .home-works .section-lead { max-width: 576px; margin: 30px auto 0; }
.home-0921 .works-town { width: 387px; height: 129px; top: -14px; right: -7px; }
.home-0921 .works-houses { width: 288px; height: 197px; bottom: 53px; left: -70px; }
.home-0921 .work-cards,.home-0921 .home-works .center-link { position: relative; }
.home-0921 .home-strength { min-height: 0; padding: 90px 0; }
.home-0921 .home-banners { min-height: 0; padding: 90px 0; }
.home-0921 .home-instagram { min-height: 0; padding: 140px 0 80px; }
.home-0921 .instagram-town { top: -75px; right: -117px; width: 757px; height: 134px; object-fit: contain; }
.instagram-photo { aspect-ratio: 1; overflow: hidden; }
.instagram-photo img { width: 100%; height: 100%; object-fit: cover; }
.instagram-photo:first-child img { object-position: 75% center; }
.instagram-photo:nth-child(4) img { object-position: 36% center; }
.revision-0921 .contact-band__inner:before { inset: 106px 0 -140px; background-image: url('../images/0921-7fb03.webp'); background-size: 1200px 400px; }
.recruit-0921 .recruit-table>div { grid-template-columns: 280px minmax(0,1fr); padding: 20px 30px 20px 100px; min-height: 81px; }
.recruit-0921 .spaced-heading { margin-top: 52px; }
.recruit-0921 .interview-photo { display: block; width: 100%; height: 425px; object-fit: cover; object-position: 34% center; }
.recruit-0921 .interview p { font-size: 16px; line-height: 1.8; }
.recruit-0921 .interview>div>p:first-child { font-size: 20px; line-height: 2.3; }
.recruit-0921 .interview h3 { font-size: 25px; line-height: 1.8; margin: 14px 0 20px; }
.company-0921 .company-table>div { grid-template-columns: 240px minmax(0,1fr); }
.company-0921 .company-table dd { text-align: center; }
.company-0921 .company-table .company-pair { text-align: left; }
.company-0921 .company-table>div:nth-child(9) dd { text-align: left; }
.company-0921 .company-table dt { color: var(--red); }
.company-0921 .title-illustration { width: 194px; height: 100px; object-fit: contain; position: absolute; left: 170px; bottom: 5px; margin: 0; }
.company-0921 .access-map .title-illustration { left: 280px; width: 215px; height: 72px; }
.privacy-content { max-width: 1156px; padding: 60px 0; }
.privacy-copy { margin-top: 40px; font-size: 16px; line-height: 2.3; }
.privacy-clause { margin-top: 20px; }
.privacy-clause h3 { font-size: 20px; line-height: 2.3; font-weight: 400; }
@media(max-width:1200px) {
  .home-0921 .works-town { width: 28%; right: 0; }
  .home-0921 .works-houses { width: 23%; left: -40px; }
  .home-0921 .instagram-town { width: 63%; right: -30px; }
  .recruit-0921 .recruit-table>div { grid-template-columns: 220px minmax(0,1fr); padding-left: 40px; }
  .company-0921 .company-table>div { grid-template-columns: 180px minmax(0,1fr); }
}
@media(max-width:767px) {
  .home-0921 .home-message { min-height: 0; padding: 105px 0 55px; }
  .home-0921 .message-town-left { top: 10px; left: 4%; width: 35%; height: 75px; }
  .home-0921 .message-town-right { top: 10px; right: 0; width: 50%; height: 75px; }
  .home-0921 .home-service { padding: 55px 0; }
  .home-0921 .home-service .section-lead { margin-bottom: 35px; }
  .home-0921 .home-service .center-link { margin-top: 35px; }
  .home-0921 .service-cards li { height: auto; min-height: 164px; }
  .home-0921 .home-works { padding: 95px 0 55px; }
  .home-0921 .home-works .section-lead br { display: none; }
  .home-0921 .works-town { width: 150px; height: 65px; top: -75px; }
  .home-0921 .works-houses { width: 100px; height: 70px; bottom: -45px; left: -15px; }
  .home-0921 .home-strength,.home-0921 .home-banners { padding: 55px 0; }
  .home-0921 .home-instagram { padding: 100px 0 55px; }
  .home-0921 .instagram-town { top: -75px; width: 240px; height: 70px; right: -20px; }
  .revision-0921 .contact-band__inner:before { inset: 100px -20px -100px; background-size: auto 220px; }
  .recruit-0921 .recruit-table>div,.company-0921 .company-table>div { grid-template-columns: 1fr; padding: 20px; }
  .recruit-0921 .interview-photo { height: 340px; min-height: 0; }
  .recruit-0921 .interview>div>p:first-child { font-size: 16px; }
  .recruit-0921 .interview h3 { font-size: 22px; }
  .company-0921 .company-table dd { text-align: left; }
  .company-0921 .title-illustration { left: auto; right: 0; width: 100px; height: 65px; }
  .company-0921 .access-map .title-illustration { left: auto; right: 0; width: 85px; height: 45px; }
  .privacy-content { padding: 45px 0; }
  .privacy-copy { font-size: 14px; line-height: 2.1; }
  .privacy-clause h3 { font-size: 18px; line-height: 1.8; margin-bottom: 8px; }
}
@media(min-width:768px) {
  .home-0921 .home-service .section-lead,.home-0921 .home-works .section-lead { max-width: 580px; }
  .company-0921 .page-section>.container,.works-0921 .page-section>.container { max-width: 1240px; }
}
.service-card-label { max-width: 237px; }
.home-0921 .instagram-town { overflow: hidden; }
.home-0921 .instagram-town__image { position: absolute; width: 114.39%; max-width: none; height: 216.42%; left: -7.49%; top: -55.22%; object-fit: fill; }

/* September 28 revisions: names stay attached to the full mascot artwork. */
.mascot-figure { position: relative; margin: 18px auto 24px; padding-bottom: 28px; }
.mascot-figure .feature-card__image { display: block; width: 100%; height: auto; aspect-ratio: 2; margin: 0; }
.mascot-name { position: absolute; transform: translateX(-50%); font-family: var(--font); font-size: 14px; line-height: 1.8; letter-spacing: .08em; white-space: nowrap; }
.mascot-figure .mascot-name { bottom: 0; }
.mascot-figure .mascot-name--ario { left: 35.5%; }
.mascot-figure .mascot-name--aripi { left: 63.8%; }
.recruit-0921 .page-hero--recruit { height: auto; aspect-ratio: 2043 / 770; }
.recruit-0921 .page-hero--recruit .page-hero__image { position: relative; display: block; width: 100%; height: auto; object-fit: contain; }
.recruit-0921 .page-hero--recruit .page-hero__title { bottom: 22%; }
.page-hero--recruit .mascot-name { top: 84%; z-index: 2; }
.page-hero--recruit .mascot-name--ario { left: 70.5%; }
.page-hero--recruit .mascot-name--aripi { left: 81%; }
.recruit-contact-person { margin-top: 12px; }
.telephone-copy .telephone-recruit-note { margin: 12px 0 0; font-size: 14px; }
.contact-form-intro { position: relative; display: grid; grid-template-columns: 180px minmax(0,1fr) 180px; align-items: center; gap: 20px; max-width: 1000px; margin: 0 auto 28px; }
.contact-person { margin: 0; text-align: center; }
.contact-person__portrait { position: relative; width: 148px; height: 186px; margin: 0 auto; overflow: hidden; border-radius: 48% 48% 42% 42% / 38% 45% 35% 40%; background: #fbf2db; border: 3px solid var(--sand); }
.contact-person__portrait img { position: absolute; width: 526%; max-width: none; height: auto; left: -194%; top: -53%; }
.contact-person figcaption { margin-top: 8px; font-size: 13px; }
.contact-form-intro .form-lead { margin-bottom: 0; }
.home-0921 .instagram-photo:nth-child(2) img { object-position: center 20%; }
.home-0921 .instagram-photo:nth-child(3) img { object-position: 38% center; }
.home-0921 .instagram-photo:nth-child(4) img { object-position: center 15%; }
.home-0921 .instagram-photo:nth-child(5) img { object-position: 57% center; }
/* Give decorative town artwork its own space, clear of the copy. */
.home-0921 .home-works { padding-top: 160px; }
.home-0921 .works-town { top: -130px; }
.home-0921 .works-houses { bottom: -85px; left: -40px; width: 200px; height: 137px; }
.home-0921 .message-copy { position: relative; margin-top: 100px; }
@media (max-width: 1000px) {
  .contact-form-intro { grid-template-columns: 150px minmax(0,1fr); }
  .contact-form-intro .section-heading h2 { font-size: 26px; }
}
@media (max-width: 767px) {
  .home-0921 .message-copy { margin-top: 35px; }
  .home-0921 .home-works { padding-top: 105px; padding-bottom: 100px; }
  .home-0921 .works-town { top: -85px; }
  .home-0921 .works-houses { width: 100px; height: 70px; bottom: -80px; left: 0; }
  .mascot-name { font-size: 12px; }
  .recruit-0921 .page-hero--recruit { aspect-ratio: auto; }
  .recruit-0921 .page-hero--recruit .page-hero__image { width: 180%; max-width: none; margin-left: -80%; }
  .recruit-0921 .page-hero--recruit .page-hero__title { top: 18px; bottom: auto; left: 20px; }
  .page-hero--recruit .mascot-name--ario { left: 46.9%; }
  .page-hero--recruit .mascot-name--aripi { left: 65.8%; }
  .contact-form-intro { display: flex; flex-direction: column-reverse; gap: 22px; }
  .contact-person__portrait { width: 134px; height: 171px; }
  .contact-form-intro .section-heading h2 { font-size: 24px; }
}

/* Contact layout matched to the supplied 0928 frame; preserve the fixed Instagram tab. */
.contact-page .telephone-recruit-note { font-size: 18px; line-height: 1.9; margin: 10px 0 14px; }
.contact-page .telephone-recruit-note strong { font-weight: 700; }
.contact-page .contact-form-intro { display: block; max-width: 1000px; min-height: 156px; margin: 0 auto 0; padding: 0 150px 30px; }
.contact-page .contact-person { position: absolute; right: 16px; bottom: 0; width: 134px; }
.contact-page .contact-person__portrait { width: 134px; height: 171px; border: 0; border-radius: 0; background: transparent; transform: scaleX(-1); }
.contact-page .contact-person__portrait img { width: 396.63%; height: 174.94%; left: -133.71%; top: -45.84%; object-fit: fill; }
@media (max-width: 767px) {
  .contact-page .telephone-recruit-note { font-size: 16px; }
  .contact-page .contact-form-intro { padding: 0 0 145px; min-height: 0; }
  .contact-page .contact-person { right: 4px; width: 108px; }
  .contact-page .contact-person__portrait { width: 108px; height: 138px; }
  .contact-page .contact-form-intro .form-lead { margin-top: 25px; }
}

/* Shared name badges for the recruit hero and home recruit card. */
.recruit-0921 .page-hero--recruit .mascot-name,
.home-0921 .mascot-figure .mascot-name {
  padding: 1px 10px;
  border: 1px solid currentColor;
  border-radius: 999px;
  background: #fff;
  line-height: 1.6;
  font-weight: 400;
}
.recruit-0921 .page-hero--recruit .mascot-name--ario,
.home-0921 .mascot-figure .mascot-name--ario { color: #0050d8; }
.recruit-0921 .page-hero--recruit .mascot-name--aripi,
.home-0921 .mascot-figure .mascot-name--aripi { color: #ff343b; }
@media (max-width: 767px) {
  .recruit-0921 .page-hero--recruit .mascot-name,
.home-0921 .mascot-figure .mascot-name { padding-inline: 6px; }
}
@media (max-width: 374px) {
  .recruit-0921 .page-hero--recruit .mascot-name,
.home-0921 .mascot-figure .mascot-name { font-size: 11px; padding-inline: 3px; }
}
