:root {
  --ink: #303a3c;
  --muted: #6f7774;
  --blue: #527983;
  --blue-dark: #385861;
  --blue-pale: #eef3f1;
  --green: #7e927c;
  --green-pale: #eef1e9;
  --orange: #c97b49;
  --line: #deded6;
  --paper: #fffdf9;
  --off-white: #f8f4ed;
  --font-sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", "Noto Sans JP", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  font-feature-settings: "palt" 1;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}
main { overflow: hidden; padding-top: 88px; }
section[id] { scroll-margin-top: 88px; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
button, summary, a { -webkit-tap-highlight-color: transparent; }

.site-header {
  align-items: center;
  backdrop-filter: blur(12px);
  background: rgba(255, 253, 249, .96);
  border-bottom: 1px solid rgba(88, 79, 66, .1);
  display: flex;
  height: 88px;
  justify-content: space-between;
  left: 0;
  padding: 0 max(48px, calc((100vw - 1400px) / 2 + 48px));
  position: fixed;
  right: 0;
  top: 0;
  width: 100%;
  z-index: 1000;
}
.site-logo-link { display: inline-flex; flex: 0 0 auto; }
.site-logo { height: auto; width: 306px; }
.mobile-menu-button { display: none; }
.site-header nav { display: flex; gap: 34px; }
.site-header nav a { color: #4d5d66; font-size: 17px; font-weight: 700; letter-spacing: .04em; position: relative; }
.site-header nav a::after {
  background: var(--orange);
  bottom: -7px;
  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); }

.hero {
  align-items: center;
  background: radial-gradient(circle at 84% 30%, rgba(218, 200, 172, .24), transparent 28%);
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(440px, .82fr) minmax(620px, 1.18fr);
  margin: 0 auto;
  max-width: 1500px;
  min-height: calc(100vh - 88px);
  overflow: hidden;
  padding: 50px 38px 80px 64px;
}
.hero-copy { max-width: 600px; padding-left: clamp(0px, 2.2vw, 34px); position: relative; z-index: 1; }
.eyebrow {
  align-items: center;
  color: var(--blue-dark);
  display: flex;
  font-size: 17px;
  font-weight: 800;
  gap: 12px;
  letter-spacing: .1em;
  margin: 0 0 26px;
}
.eyebrow span { background: var(--orange); border-radius: 50%; height: 8px; width: 8px; }
.hero h1 {
  font-family: var(--font-sans);
  font-size: clamp(39px, 4vw, 68px);
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.42;
  margin: 0;
}
.hero h1 strong { color: var(--blue-dark); font-weight: 700; }
.hero-lead { color: #52636c; font-size: 17px; line-height: 2.1; margin: 32px 0 34px; max-width: 580px; }
.hero-jump-link {
  align-items: center;
  border-bottom: 1px solid #9db6bd;
  color: var(--blue-dark);
  display: inline-flex;
  font-size: 17px;
  font-weight: 700;
  gap: 18px;
  letter-spacing: .05em;
  padding: 0 2px 8px;
  transition: border-color .2s ease, color .2s ease;
}
.hero-jump-link:hover, .hero-jump-link:focus-visible { border-color: var(--blue); color: var(--blue); }
.hero-jump-link span { font-size: 15px; font-weight: 400; }
.hero-visual { min-height: 620px; position: relative; }
.hero-visual::before {
  background: url("./public/images/hero-community.png") center / contain no-repeat;
  content: "";
  inset: 5% -4% 4% -10%;
  opacity: .13;
  position: absolute;
  z-index: 0;
}
.hero-photo {
  background: #fff;
  box-shadow: 0 16px 36px rgba(78, 65, 48, .14);
  margin: 0;
  padding: 7px;
  position: absolute;
  z-index: 1;
}
.hero-photo img { height: 100%; object-fit: cover; width: 100%; }
.hero-photo-main { height: 350px; left: 7%; top: 15%; transform: rotate(-1.2deg); width: 58%; }
.hero-photo-seminar { height: 220px; right: 1%; top: 3%; transform: rotate(1.1deg); width: 37%; }
.hero-photo-meeting { bottom: 9%; height: 220px; right: 0; transform: rotate(-.8deg); width: 39%; }
.hero-photo-smile { bottom: 2%; height: 190px; left: 3%; transform: rotate(1deg); width: 32%; }
.hero-visual p {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 17px;
  gap: 10px;
  justify-content: flex-end;
  letter-spacing: .06em;
  bottom: -9px;
  margin: 0;
  position: absolute;
  right: 3%;
  z-index: 2;
}
.hero-visual p span { background: var(--green); height: 1px; width: 42px; }

.section { padding: 150px 48px; }
.section-shell { margin: 0 auto; max-width: 1180px; }
.two-column { display: grid; gap: 55px 85px; grid-template-columns: .9fr 1.1fr; }
.section-number { align-items: center; color: var(--blue); display: flex; font-size: 14px; font-weight: 900; gap: 14px; letter-spacing: .12em; margin: 0 0 28px; }
.section-number::after { background: #a8cbd9; content: ""; height: 1px; order: 1; width: 42px; }
.section-number span { color: #6f8189; font-size: 10px; letter-spacing: .18em; order: 2; }
.section-heading h2 {
  font-size: clamp(30px, 3.3vw, 49px);
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.62;
  margin: 0;
}
.section-heading h2 strong { color: var(--blue-dark); font-weight: 700; }

.reason { background: linear-gradient(180deg, #f8f1e7 0%, #fbf7f0 100%); position: relative; }
.reason::before {
  border: 1px solid rgba(144, 122, 89, .22);
  border-radius: 50%;
  content: "";
  height: 320px;
  left: -155px;
  position: absolute;
  top: 115px;
  width: 320px;
}
.reason .section-heading h2 { font-family: var(--font-sans); }
.reason-body { color: #4f6068; font-size: 17px; }
.reason-body p { margin: 0 0 24px; }
.reason-topics {
  background: #eee7dc;
  display: grid;
  gap: 32px;
  grid-column: 1 / -1;
  grid-template-columns: 1fr;
  margin-top: 20px;
  padding: 44px 48px;
}
.reason-topics-heading { max-width: 850px; }
.reason-topics-heading h3 { color: #344a54; font-size: 20px; line-height: 1.7; margin: 0 0 12px; }
.reason-topics-heading p { color: #67767b; font-size: 17px; line-height: 1.9; margin: 0; }
.reason-topics ul { display: grid; gap: 0 38px; grid-template-columns: 1fr 1fr; list-style: none; margin: 0; padding: 0; }
.reason-topics li { border-top: 1px solid rgba(88, 79, 66, .18); color: #58615f; display: grid; font-size: 17px; gap: 11px; grid-template-columns: 22px 1fr; line-height: 1.75; padding: 14px 0; }
.reason-topics li::before {
  align-items: center;
  background: rgba(82, 121, 131, .42);
  border-radius: 3px;
  color: #fff;
  content: "✓";
  display: flex;
  font-size: 14px;
  font-weight: 800;
  height: 20px;
  justify-content: center;
  margin-top: 4px;
  width: 20px;
}

.connection-gallery {
  background: #fbf7f0;
  padding: 124px 0 116px;
  position: relative;
}
.connection-heading { margin: 0 auto 58px; max-width: 1180px; padding: 0 48px; }
.connection-heading h2 { color: #3e5153; font-family: var(--font-sans); font-size: clamp(30px, 3.2vw, 47px); font-weight: 600; line-height: 1.65; margin: 0; }
.connection-heading > p:last-child { color: #747c78; font-size: 17px; line-height: 2; margin: 24px 0 0; max-width: 680px; }
.photo-marquee { margin: 0 0 12px; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
.photo-marquee-track { display: flex; list-style: none; margin: 0; padding: 0; width: max-content; }
.photo-marquee-track li { flex: 0 0 clamp(270px, 28vw, 410px); padding: 0 6px; }
.photo-marquee-track img { background: #fff; border: 7px solid #fff; box-shadow: 0 7px 18px rgba(74, 62, 48, .09); height: 245px; object-fit: cover; transition: filter .25s ease, transform .25s ease; width: 100%; }
.photo-marquee-track li:nth-child(3n + 2) img { transform: translateY(3px); }
.photo-marquee-track li:nth-child(4n) img { transform: translateY(-2px); }
.photo-marquee.is-ready[data-direction="left"] .photo-marquee-track { animation: connection-scroll-left 76s linear infinite; }
.photo-marquee.is-ready[data-direction="right"] .photo-marquee-track { animation: connection-scroll-right 84s linear infinite; transform: translateX(-50%); }
.photo-marquee:hover .photo-marquee-track, .photo-marquee:focus-within .photo-marquee-track { animation-play-state: paused; }
.photo-marquee:hover img { filter: saturate(1.04); }
.connection-note { color: #827f77; font-size: 17px; letter-spacing: .03em; margin: 25px auto 0; max-width: 1180px; padding: 0 48px; text-align: right; }
@keyframes connection-scroll-left { to { transform: translateX(-50%); } }
@keyframes connection-scroll-right { to { transform: translateX(0); } }

.activities { background: #fffdf9; }
.activities-heading { align-items: end; display: grid; gap: 80px; grid-template-columns: 1.15fr .85fr; margin-bottom: 76px; }
.activities-heading > p { color: var(--muted); font-size: 17px; line-height: 2; margin: 0 0 10px; }
.featured-report { background: #fff; border-bottom: 1px solid #e0ddd5; border-top: 1px solid #e0ddd5; display: grid; grid-template-columns: 1.15fr .85fr; overflow: hidden; }
.report-gallery { display: grid; gap: 4px; grid-template-columns: 1fr 1fr; grid-template-rows: minmax(390px, 1.2fr) minmax(230px, .8fr); height: 100%; min-height: 620px; }
.report-gallery figure { height: auto; margin: 0; min-height: 0; overflow: hidden; position: relative; }
.report-gallery .report-main-photo { grid-column: 1 / -1; height: auto; }
.report-gallery img { height: 100%; object-fit: cover; transition: transform .5s ease; width: 100%; }
.report-gallery figure:hover img { transform: scale(1.025); }
.report-content { padding: 54px 48px 48px; }
.report-label { align-items: center; color: var(--blue); display: flex; font-size: 17px; font-weight: 900; justify-content: space-between; letter-spacing: .08em; margin: 0 0 24px; }
.report-label span { color: #a5b1b6; font-size: 38px; font-weight: 300; }
.report-content h3 { color: var(--blue-dark); font-size: 27px; line-height: 1.6; margin: 0 0 28px; }
.report-content dl { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); margin: 0 0 25px; padding: 14px 0; }
.report-content dl div { display: grid; gap: 12px; grid-template-columns: 86px 1fr; padding: 7px 0; }
.report-content dt { color: #75858b; font-size: 17px; font-weight: 800; }
.report-content dd { color: #4a5b63; font-size: 17px; line-height: 1.8; margin: 0; }
.report-description { color: #586971; font-size: 17px; line-height: 2; margin: 0; }
.report-voices { border-top: 1px solid var(--line); margin-top: 28px; padding-top: 22px; }
.report-voices > p { color: #6f7e84; font-size: 17px; font-weight: 700; letter-spacing: .03em; margin: 0 0 10px; }
.report-voices blockquote { color: #586971; font-size: 17px; line-height: 1.8; margin: 0; padding: 8px 0; }
.records { margin-top: 110px; }
.records-heading { align-items: end; display: grid; gap: 30px; grid-template-columns: 1fr 1fr; margin-bottom: 38px; }
.mini-label { color: var(--blue); font-size: 10px; font-weight: 900; letter-spacing: .18em; margin: 0 0 10px; }
.records-heading h3 { color: var(--blue-dark); font-size: 34px; margin: 0; }
.records-heading > p { color: var(--muted); font-size: 17px; line-height: 1.8; margin: 0 0 8px; text-align: left; }
.record-years { border-top: 1px solid #bdcacc; }
.record-years details { border-bottom: 1px solid #bdcacc; }
.record-years summary { align-items: center; border-radius: 4px; cursor: pointer; display: flex; list-style: none; padding: 22px 10px; transition: background-color .2s ease; }
.record-years summary::-webkit-details-marker { display: none; }
.record-years summary:hover, .record-years summary:focus-visible { background: rgba(82, 121, 131, .09); }
.record-years summary:focus-visible { outline: 2px solid rgba(82, 121, 131, .4); outline-offset: -2px; }
.record-years details[open] > summary { background: rgba(82, 121, 131, .045); }
.record-years details[open] > summary:hover, .record-years details[open] > summary:focus-visible { background: rgba(82, 121, 131, .11); }
.record-years .year { color: var(--blue-dark); font-size: 27px; font-weight: 800; letter-spacing: .02em; transition: color .2s ease; }
.record-years summary:hover .year, .record-years summary:focus-visible .year { color: var(--blue); }
.record-count { color: #8a989e; font-size: 10px; font-weight: 700; letter-spacing: .12em; margin-left: 18px; }
.summary-icon { height: 18px; margin-left: auto; position: relative; width: 18px; }
.summary-icon::before, .summary-icon::after { background: var(--blue); content: ""; left: 0; position: absolute; top: 8px; transition: background-color .2s ease, transform .28s ease; }
.summary-icon::before { height: 2px; width: 18px; }
.summary-icon::after { height: 18px; left: 8px; top: 0; width: 2px; }
details[open] .summary-icon::after { transform: rotate(90deg); }
.record-years details.is-closing .summary-icon::after { transform: rotate(0); }
.record-years ul { display: grid; gap: 0 34px; grid-template-columns: 1fr 1fr; list-style: none; margin: 0; padding: 0 6px 28px; }
.record-years li { border-top: 1px solid #e3e8e8; display: grid; gap: 16px; grid-template-columns: 92px 1fr; padding: 12px 0; }
.record-years time { color: var(--blue); font-size: 17px; font-weight: 800; letter-spacing: .02em; white-space: nowrap; }
.record-years li span { color: #4e6068; font-size: 17px; line-height: 1.7; }
.source-note { color: #7b888d; font-size: 17px; line-height: 1.8; margin: 18px 0 0; }

.contact { background: #f2ebe1; color: var(--ink); display: grid; gap: 72px; grid-template-columns: .82fr 1.18fr; padding-left: max(48px, calc((100vw - 1180px) / 2)); padding-right: max(48px, calc((100vw - 1180px) / 2)); }
.contact-intro h2 { color: #33464f; font-size: clamp(27px, 2.6vw, 39px); font-weight: 700; line-height: 1.6; margin: 0; }
.contact-intro > p:not(.section-number) { color: #637278; font-size: 17px; line-height: 2; margin: 26px 0 0; }
.reassurance { border-top: 1px solid #cfd9d8; font-weight: 700; line-height: 1.9; padding-top: 20px; }
.contact-form { background: white; border: 2px solid rgba(82, 121, 131, 0.55); color: var(--ink); padding: 40px; }
.form-row.two { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.contact-form label { display: block; font-size: 17px; font-weight: 800; margin-bottom: 22px; }
.contact-form label > span { background: #fff1e6; border-radius: 3px; color: #ca641b; font-size: 9px; margin-left: 8px; padding: 2px 6px; }
.contact-form input, .contact-form textarea { background: #f6f8f8; border: 1px solid #d8e1e3; border-radius: 4px; color: var(--ink); display: block; margin-top: 7px; outline: none; padding: 12px 14px; transition: border-color .2s, box-shadow .2s; width: 100%; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(22,120,170,.1); }
.contact-form textarea { line-height: 1.7; resize: vertical; }
.contact-form textarea::placeholder { color: #8d999d; font-size: 17px; }
.prototype-note { color: #76858a; font-size: 17px; line-height: 1.7; margin: -7px 0 16px; }
.contact-form button { align-items: center; background: #34596a; border: 0; border-radius: 2px; color: white; cursor: pointer; display: flex; font-size: 17px; font-weight: 700; justify-content: space-between; margin-top: 4px; padding: 16px 20px 16px 24px; transition: background .2s; width: 100%; }
.contact-form button:hover, .contact-form button:focus-visible { background: #294a59; }
.contact-form button span { font-size: 19px; font-weight: 400; }

footer { align-items: center; background: #1e2930; color: rgba(255,255,255,.68); display: grid; gap: 24px; grid-template-columns: 1fr auto auto; padding: 35px max(48px, calc((100vw - 1180px) / 2)); }
.footer-logo-wrap { background: #fff; border-radius: 3px; display: inline-flex; justify-self: start; padding: 10px 14px; }
.footer-logo { height: auto; width: 290px; }
footer p { font-size: 17px; letter-spacing: .05em; margin: 0; }
footer small { font-size: 12px; letter-spacing: .08em; margin: 0; }

@media (max-width: 1120px) {
  .hero { grid-template-columns: .9fr 1.1fr; padding-left: 42px; }
  .hero h1 { font-size: 46px; }
  .hero-visual { min-height: 550px; }
  .hero-photo-main { height: 315px; }
  .hero-photo-seminar, .hero-photo-meeting { height: 190px; }
  .hero-photo-smile { height: 165px; }
  .section { padding: 120px 40px; }
  .featured-report { grid-template-columns: 1fr; }
  .report-gallery { grid-template-rows: 390px 230px; height: auto; min-height: 0; }
}

@media (max-width: 860px) {
  main { padding-top: 72px; }
  section[id] { scroll-margin-top: 72px; }
  .site-header {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: #fffdf9;
    border-bottom: 1px solid rgba(88, 79, 66, .12);
    height: 72px;
    padding: 0 24px;
  }
  .mobile-menu-button {
    align-items: center;
    background: transparent;
    border: 0;
    cursor: pointer;
    display: grid;
    flex: 0 0 44px;
    height: 44px;
    justify-items: center;
    padding: 11px 8px;
    position: relative;
    z-index: 1002;
  }
  .mobile-menu-button span {
    background: var(--blue-dark);
    display: block;
    height: 2px;
    transition: opacity .25s ease, transform .25s ease;
    width: 26px;
  }
  body.menu-open .mobile-menu-button span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.menu-open .mobile-menu-button span:nth-child(2) { opacity: 0; }
  body.menu-open .mobile-menu-button span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-header nav {
    align-items: stretch;
    background: #fbf7f0;
    display: flex;
    flex-direction: column;
    gap: 0;
    inset: 72px 0 0;
    opacity: 0;
    overflow-y: auto;
    padding: 38px 28px max(38px, env(safe-area-inset-bottom));
    pointer-events: none;
    position: fixed;
    transform: translateY(-8px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
    visibility: hidden;
    z-index: 1001;
  }
  .site-header nav a {
    border-bottom: 1px solid rgba(88, 79, 66, .16);
    color: #3e5153;
    font-size: 18px;
    padding: 20px 4px;
  }
  .site-header nav a:first-child { border-top: 1px solid rgba(88, 79, 66, .16); }
  .site-header nav a::after { display: none; }
  body.menu-open { overflow: hidden; position: fixed; width: 100%; }
  body.menu-open .site-header { left: 0; max-width: none; position: fixed; right: 0; top: 0; width: 100%; }
  body.menu-open .site-header nav { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
  .hero { display: flex; flex-direction: column; min-height: auto; padding: 62px 24px 80px; }
  .hero-copy { max-width: 700px; padding: 0; }
  .hero h1 { font-size: clamp(35px, 8vw, 53px); }
  .hero-visual { margin: 22px auto 0; min-height: 570px; width: min(760px, 100%); }
  .hero-visual p { right: 1%; }
  .section { padding: 100px 24px; }
  .two-column, .activities-heading, .contact { grid-template-columns: 1fr; }
  .two-column { gap: 42px; }
  .reason-topics { gap: 36px; grid-template-columns: 1fr; padding: 38px 36px; }
  .connection-gallery { padding: 100px 0 94px; }
  .connection-heading { padding: 0 24px; }
  .connection-note { padding: 0 24px; }
  .photo-marquee-track li { flex-basis: clamp(250px, 44vw, 360px); }
  .photo-marquee-track img { height: 215px; }
  .activities-heading { gap: 30px; }
  .activities-heading > p { max-width: 580px; }
  .contact { gap: 48px; padding-left: 24px; padding-right: 24px; }
}

@media (max-width: 620px) {
  body { line-height: 1.85; }
  .site-logo { width: min(62vw, 245px); }
  .hero { padding-top: 42px; }
  .eyebrow { align-items: flex-start; font-size: 17px; line-height: 1.7; }
  .hero h1 { font-size: 34px; line-height: 1.48; }
  .hero-lead { font-size: 17px; line-height: 2; }
  .hero-visual { margin-top: 34px; min-height: 430px; width: 100%; }
  .hero-visual::before { inset: 8% -18% 6% -20%; }
  .hero-photo { padding: 4px; }
  .hero-photo-main { height: 230px; left: 0; top: 14%; width: 66%; }
  .hero-photo-seminar { aspect-ratio: 4 / 3; height: auto; right: 0; top: 2%; width: 50%; }
  .hero-photo-meeting { aspect-ratio: 4 / 3; bottom: 10%; height: auto; width: 50%; }
  .hero-photo-smile { aspect-ratio: 4 / 3; bottom: 12%; height: auto; left: 1%; width: 45%; }
  .hero-visual p { bottom: -17px; font-size: 17px; line-height: 1.6; right: 0; width: 100%; }
  .hero-visual p span { display: none; }
  .section-heading h2 { font-size: 28px; line-height: 1.7; }
  .section-heading h2 br { display: none; }
  .reason-body { font-size: 17px; }
  .reason-topics { gap: 26px; margin-top: 4px; padding: 30px 22px; }
  .reason-topics-heading h3 { font-size: 18px; }
  .reason-topics ul { grid-template-columns: 1fr; }
  .connection-gallery { padding: 82px 0 78px; }
  .connection-heading { margin-bottom: 42px; }
  .connection-heading h2 { font-size: 28px; }
  .connection-heading h2 br { display: none; }
  .photo-marquee { margin-bottom: 8px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); }
  .photo-marquee-track li { flex-basis: 250px; padding: 0 4px; }
  .photo-marquee-track img { border-width: 5px; height: 170px; }
  .connection-note { text-align: left; }
  .activities-heading { margin-bottom: 48px; }
  .report-gallery { grid-template-columns: 1fr; grid-template-rows: 260px 220px 220px; }
  .report-gallery .report-main-photo { grid-column: 1; height: auto; }
  .report-gallery figure { height: auto; }
  .report-content { padding: 34px 24px 38px; }
  .report-content h3 { font-size: 22px; }
  .records { margin-top: 82px; }
  .records-heading { align-items: start; grid-template-columns: 1fr; }
  .records-heading > p { text-align: left; }
  .record-years ul { grid-template-columns: 1fr; }
  .record-years .year { font-size: 24px; }
  .contact-intro h2 { font-size: 29px; }
  .contact-intro h2 br { display: none; }
  .contact-form { margin: 0 -8px; padding: 28px 20px; }
  .form-row.two { grid-template-columns: 1fr; }
  footer { grid-template-columns: 1fr; gap: 14px; padding: 34px 24px; }
  .footer-logo-wrap { max-width: 100%; padding: 9px 11px; }
  .footer-logo { width: min(72vw, 260px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
  .photo-marquee { -webkit-mask-image: none; mask-image: none; overflow-x: auto; }
  .photo-marquee .photo-marquee-track { animation: none !important; transform: none !important; }
  .photo-marquee [aria-hidden="true"] { display: none; }
}
