@charset "UTF-8";


/* =========================
   ROOT
========================= */

:root {

  --black: #0d0d0d;
  --black-soft: #151515;

  --white: #ffffff;
  --offwhite: #f4f2ee;

  --ink: #171717;
  --gray: #6f6f6f;
  --line: #dedbd5;

  --red: #a91f27;
  --red-light: #c12832;

  --max: 1180px;
}


/* =========================
   RESET
========================= */

* {
  box-sizing: border-box;
}


html {
  scroll-behavior: smooth;
}


body {

  margin: 0;

  background: var(--white);

  color: var(--ink);

  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    "YuGothic",
    "Hiragino Kaku Gothic ProN",
    sans-serif;

  line-height: 1.9;

  letter-spacing: .04em;
}


img {

  display: block;

  width: 100%;
}


a {

  color: inherit;

  text-decoration: none;
}


button {

  font: inherit;
}


.container {

  width: min(
    calc(100% - 64px),
    var(--max)
  );

  margin-inline: auto;
}


.section {

  padding: 120px 0;
}


section {

  scroll-margin-top: 72px;
}


/* =========================
   COMMON
========================= */

.section-label {

  margin: 0 0 20px;

  color: var(--red);

  font-size: 11px;

  font-weight: 800;

  letter-spacing: .23em;
}


h2,
h3 {

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;
}


.large-text {

  color: var(--ink);

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size: 20px;

  line-height: 2;
}


.text-link {

  display: inline-flex;

  align-items: center;

  gap: 20px;

  margin-top: 24px;

  padding-bottom: 5px;

  border-bottom: 1px solid #9a9a9a;

  font-size: 13px;

  font-weight: 700;
}


.text-link span {

  transition: transform .25s ease;
}


.text-link:hover span {

  transform: translateX(6px);
}


/* =========================
   HEADER
========================= */

.site-header {

  position: fixed;

  z-index: 1000;

  top: 0;

  left: 0;

  width: 100%;

  color: #fff;

  transition:
    background .3s ease,
    box-shadow .3s ease;
}


.site-header.scrolled,
.site-header.menu-open {

  background: rgba(10, 10, 10, .97);

  box-shadow:
    0 1px 0 rgba(255,255,255,.08);
}


.header-inner {

  width: min(
    calc(100% - 64px),
    1380px
  );

  height: 72px;

  margin-inline: auto;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 30px;
}


.brand {

  display: flex;

  align-items: center;

  gap: 12px;

  flex-shrink: 0;
}


.brand-mark {
  width: 42px;
  height: 42px;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}

.brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.brand-origin {
  margin-bottom: 2px;
  color: rgba(255,255,255,.7);
  font-size: 7px;
  letter-spacing: .05em;
}

.brand-text strong {
  font-family: serif;
  font-size: 18px;
  letter-spacing: .08em;
}

.brand-en {
  margin-top: 2px;
  color: rgba(255,255,255,.5);
  font-size: 7px;
  letter-spacing: .12em;
}


.brand-text small {

  margin-top: 4px;

  color: rgba(255,255,255,.55);

  font-size: 7px;

  letter-spacing: .08em;
}


.global-nav {

  display: flex;

  align-items: center;

  gap: 25px;

  font-size: 12px;

  font-weight: 700;
}


.global-nav a {

  transition: opacity .2s;
}


.global-nav a:hover {

  opacity: .6;
}


.nav-trial {

  padding:
    10px 19px;

  border:
    1px solid rgba(255,255,255,.6);
}


.menu-button,
.mobile-nav {

  display: none;
}


/* =========================
   HERO
========================= */

.hero {

  position: relative;

  height: 100svh;

  min-height: 700px;

  overflow: hidden;

  background: #000;

  color: #fff;
}


.hero-image {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  object-fit: cover;

  /* 顔は外しつつ、拳をしっかり入れる */
  object-position: 53% 69%;

  transform: scale(1.45);
  transform-origin: center bottom;
}


.hero-overlay {

  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(0,0,0,.83) 0%,
      rgba(0,0,0,.60) 38%,
      rgba(0,0,0,.17) 72%,
      rgba(0,0,0,.1) 100%
    );
}


.hero-inner {

  position: relative;

  z-index: 2;

  width: min(
    calc(100% - 64px),
    var(--max)
  );

  height: 100%;

  margin-inline: auto;

  display: flex;

  align-items: center;
}


.hero-copy {

  padding-top: 45px;
}


.hero-small {

  margin: 0 0 25px;

  color: rgba(255,255,255,.72);

  font-size: 11px;

  font-weight: 700;

  letter-spacing: .18em;
}


.hero h1 {

  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size:
    clamp(52px, 6.5vw, 92px);

  font-weight: 400;

  line-height: 1.32;

  letter-spacing: .08em;
}


.hero-lead {

  margin-top: 35px;

  color:
    rgba(255,255,255,.7);

  font-size: 14px;

  line-height: 2;
}


.hero-scroll {

  position: absolute;

  z-index: 2;

  right: 30px;

  bottom: 0;

  display: flex;

  align-items: center;

  gap: 10px;

  writing-mode: vertical-rl;

  font-size: 8px;

  letter-spacing: .25em;
}


.hero-scroll i {

  width: 1px;

  height: 70px;

  background:
    rgba(255,255,255,.55);
}


/* =========================
   ABOUT
========================= */

.about {

  background: var(--offwhite);
}


.about-title {

  max-width: 850px;
}


.about-title h2 {

  margin: 0;

  font-size:
    clamp(40px, 5vw, 66px);

  font-weight: 400;

  line-height: 1.5;
}


.about-title-lead {

  margin: 24px 0 0;

  color: var(--gray);

  font-size: 15px;
}


.about-main {

  margin-top: 70px;

  display: grid;

  grid-template-columns:
    .85fr 1.15fr;

  gap: 90px;

  align-items: center;
}


.about-text {

  color: #5d5d5d;

  font-size: 14px;
}


.about-text p {

  margin:
    0 0 18px;
}


.about-image {

  margin: 0;
}


.about-image img {

  aspect-ratio: 4 / 4.5;

  object-fit: cover;
}


.training-wide {

  margin:
    110px 0 0;
}


.training-wide img {

  aspect-ratio: 16 / 7;

  object-fit: cover;

  object-position: center 58%;
}


.training-wide figcaption {

  margin-top: 14px;

  color: #777;

  font-family: serif;

  font-size: 13px;
}


/* =========================
   FAMILY
========================= */

.family {

  background: #fff;
}


.family-heading {

  display: grid;

  grid-template-columns:
    1fr .8fr;

  gap: 90px;

  align-items: end;
}


.family-heading h2 {

  margin: 0;

  font-size:
    clamp(42px, 5vw, 70px);

  font-weight: 400;

  line-height: 1.45;
}


.family-heading > p {

  max-width: 430px;

  margin: 0 0 10px;

  color: #666;

  font-size: 14px;
}


.family-grid {

  margin-top: 75px;

  display: grid;

  grid-template-columns:
    1.05fr .95fr;

  gap: 85px;

  align-items: center;
}


.family-main-photo {

  margin: 0;
}


.family-main-photo img {

  aspect-ratio: 4 / 5;

  object-fit: cover;
}


.family-content {

  color: #626262;

  font-size: 14px;
}


.family-content p {

  margin:
    0 0 18px;
}


.friends-photo {

  width: 78%;

  margin:
    100px 0 0 auto;
}


.friends-photo img {

  aspect-ratio: 16 / 9;

  object-fit: cover;

  object-position: center 55%;
}


.friends-photo figcaption {

  margin-top: 14px;

  color: #777;

  font-family: serif;

  font-size: 13px;
}


/* =========================
   CHALLENGE
========================= */

.challenge {

  background: var(--black);

  color: #fff;
}


.challenge .section-label {

  color: #e2525a;
}


.challenge-heading h2 {

  margin: 0;

  font-size:
    clamp(42px, 5vw, 70px);

  font-weight: 400;

  line-height: 1.4;
}


.challenge-grid {

  margin-top: 75px;

  display: grid;

  grid-template-columns:
    .85fr 1.15fr;

  gap: 80px;

  align-items: center;
}


.challenge-copy {

  color:
    rgba(255,255,255,.67);

  font-size: 14px;
}


.challenge-copy .large-text {

  color: #fff;
}


.results {

  margin-top: 45px;

  border-top:
    1px solid rgba(255,255,255,.18);
}


.result-item {

  padding:
    27px 0;

  border-bottom:
    1px solid rgba(255,255,255,.18);
}


.result-item span {

  color: #e2525a;

  font-size: 9px;

  font-weight: 700;

  letter-spacing: .17em;
}


.result-item p {

  margin:
    8px 0 2px;

  font-size: 12px;
}


.result-item strong {

  color: #fff;

  font-family: serif;

  font-size: 20px;

  font-weight: 500;
}


.light-link {

  color: #fff;

  border-color:
    rgba(255,255,255,.5);
}


.challenge-image {

  margin: 0;
}


.challenge-image img {

  aspect-ratio: 4 / 4.7;

  object-fit: cover;
}


.challenge-emphasis {
  margin-top: 30px;

  color: #fff;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size: 19px;

  line-height: 1.9;
}


.competition-lead {
  margin-top: 56px;
  padding-top: 38px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.competition-lead span {
  color: #e2525a;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .17em;
}

.competition-lead h3 {
  margin: 8px 0 0;
  color: #fff;
  font-size: 24px;
  font-weight: 400;
}


/* =========================
   TRADITION
========================= */

.tradition {
  background: var(--offwhite);
}


.tradition-heading {
  max-width: 750px;
}


.tradition-heading h2 {
  margin: 0;

  font-size:
    clamp(44px, 5vw, 70px);

  font-weight: 400;
  line-height: 1.45;
}


.tradition-copy {
  max-width: 680px;

  margin:
    60px 0 0 auto;

  color: #626262;

  font-size: 14px;
}


.tradition-copy p {
  margin:
    0 0 22px;
}


.tradition-emphasis {
  margin-top: 38px !important;

  color: var(--ink);

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size: 21px;
  line-height: 2;
}


.kobudo-photo {
  margin: 90px 0 0;
}

.kobudo-photo img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  object-position: center;
}


/* =========================
   HISTORY
========================= */

.history {

  background: #fff;
}


.history-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 110px;
}

.history-header h2 {
  margin: 0;
  font-family: serif;
  font-size: clamp(55px, 7vw, 96px);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}

.history-anniversary {
  flex-shrink: 0;
  transform: translateY(45px);
}

.history-anniversary img {
  display: block;
  width: 290px;
  height: auto;
}


.history-grid {

  margin-top: 85px;

  display: grid;

  grid-template-columns:
    1.1fr .9fr;

  gap: 90px;

  align-items: center;
}


.history-image {

  margin: 0;
}


.history-image img {

  filter: grayscale(1);

  aspect-ratio: 4 / 3;

  object-fit: cover;
}


.history-copy {

  color: #626262;

  font-size: 14px;
}


.history-copy h3 {

  margin:
    0 0 30px;

  color: var(--ink);

  font-size: 36px;

  font-weight: 400;
}


.history-copy small {

  display: block;

  margin-top: 35px;

  color: #969696;

  font-size: 10px;

  line-height: 1.8;
}


/* =========================
   INFORMATION
========================= */

.information {

  padding: 0;

  background: var(--offwhite);
}


.information-heading {
  margin-bottom: 28px;
}

.information-heading span {
  color: #b51f29;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
}

.information-heading p {
  margin: 8px 0 0;
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;
  font-size: 18px;
  color: var(--ink);
}

.information-grid {

  display: grid;

  grid-template-columns:
    repeat(3, 1fr);
}


.information-item {

  position: relative;

  min-height: 230px;

  padding: 45px;

  border-left:
    1px solid var(--line);

  transition:
    background .25s ease,
    color .25s ease;
}


.information-item:last-child {

  border-right:
    1px solid var(--line);
}


.information-item:hover {

  background: var(--black);

  color: #fff;
}


.information-item > span {

  color: var(--red);

  font-size: 9px;

  font-weight: 800;

  letter-spacing: .2em;
}


.information-item h3 {

  margin:
    18px 0 6px;

  font-size: 25px;

  font-weight: 400;
}


.information-item p {

  margin: 0;

  color: #777;

  font-size: 11px;
}


.information-item b {

  position: absolute;

  right: 35px;

  bottom: 30px;

  font-size: 20px;
}


/* =========================
   MEMBERS BANNER
========================= */
.members-section {
  padding: 38px 0;
  background: #111;
}
.members-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  max-width: 1050px;
  margin: 0 auto;
  padding: 32px 38px;
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
  transition: border-color .2s ease;
}
.members-card:hover {
  border-color: rgba(255,255,255,.5);
}
.members-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.members-label {
  color: #d45a63;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
}
.members-title {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 25px;
}
.members-description {
  color: rgba(255,255,255,.67);
  font-size: 12px;
  line-height: 1.7;
}
.members-link {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
  gap: 24px;
  min-width: 215px;
  padding: 16px 18px;
  background: var(--red);
  font-size: 12px;
  font-weight: 700;
}
.members-link span {
  font-size: 18px;
}

/* =========================
   TRIAL
========================= */

.trial {

  position: relative;

  min-height: 720px;

  overflow: hidden;

  display: flex;

  align-items: center;

  justify-content: center;

  color: #fff;
}


.trial-background {

  position: absolute;

  inset: 0;
}


.trial-background img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  object-position: center 50%;
}


.trial-overlay {

  position: absolute;

  inset: 0;

  background:
    rgba(0,0,0,.69);
}


.trial-inner {

  position: relative;

  z-index: 2;

  width:
    min(760px, calc(100% - 40px));

  text-align: center;
}


.trial h2 {

  margin: 0;

  font-family: serif;

  font-size:
    clamp(45px, 6vw, 72px);

  font-weight: 400;

  line-height: 1.45;
}


.trial-lead {

  margin:
    30px auto 0;

  max-width: 580px;

  color:
    rgba(255,255,255,.75);

  font-size: 14px;
}


.trial-points {

  margin-top: 34px;

  display: flex;

  justify-content: center;

  flex-wrap: wrap;

  gap: 10px;
}


.trial-points span {

  padding:
    8px 15px;

  border:
    1px solid rgba(255,255,255,.35);

  font-size: 11px;
}


.trial-button {

  width: 370px;

  max-width: 100%;

  min-height: 70px;

  margin:
    40px auto 0;

  padding:
    0 25px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  background: var(--red);

  font-size: 14px;

  font-weight: 700;

  transition:
    background .2s ease;
}


.trial-button:hover {

  background: var(--red-light);
}


/* =========================
   FLOATING CTA
========================= */

.floating-trial {

  position: fixed;

  z-index: 900;

  right: 24px;

  bottom: 24px;

  width: 160px;

  height: 54px;

  padding:
    0 18px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  background: var(--red);

  color: #fff;

  font-size: 12px;

  font-weight: 700;

  opacity: 0;

  visibility: hidden;

  transform:
    translateY(15px);

  transition:
    opacity .3s ease,
    transform .3s ease,
    visibility .3s ease;
}


.floating-trial.show {

  opacity: 1;

  visibility: visible;

  transform: translateY(0);
}


/* =========================
   FOOTER
========================= */

.site-footer {

  background: #0b0b0b;

  color: #fff;
}


.footer-inner {

  padding:
    70px 0;

  display: grid;

  grid-template-columns:
    .8fr 1.2fr;

  gap: 90px;
}


.footer-brand {

  display: flex;

  align-items: center;

  gap: 14px;
}


.footer-brand-mark {
  width: 42px;
  height: 42px;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}


.footer-brand > div {

  display: flex;

  flex-direction: column;
}


.footer-brand strong {

  font-family: serif;

  font-size: 22px;
}


.footer-brand small {

  color: #666;

  font-size: 7px;
}


.footer-links {

  display: grid;

  grid-template-columns:
    repeat(3, 1fr);

  gap:
    14px 30px;

  align-content: start;

  color: #aaa;

  font-size: 11px;
}


.footer-links a:hover {

  color: #fff;
}


.footer-bottom {

  padding:
    17px 30px;

  border-top:
    1px solid #222;

  text-align: center;
}


.footer-bottom p {

  margin: 0;

  color: #666;

  font-size: 8px;
}



/* =========================
   SCROLL REVEAL
========================= */

.reveal {
  opacity: 0;
  transform: translateY(14px);

  transition:
    opacity .65s ease,
    transform .65s ease;

  transition-delay:
    var(--reveal-delay, 0ms);
}


.reveal.reveal-image {
  transform: translateY(20px);

  transition-duration: .8s;
}


.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/* 動きを抑える設定をしている端末では演出しない */

@media (prefers-reduced-motion: reduce) {

  .reveal,
  .reveal.reveal-image {
    opacity: 1;
    transform: none;
    transition: none;
  }

}


/* =========================
   TABLET
========================= */

@media (max-width: 1000px) {

  .global-nav {

    display: none;
  }


  .menu-button {

    width: 42px;

    height: 42px;

    padding: 9px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    gap: 6px;

    border: 0;

    background: transparent;

    cursor: pointer;
  }


  .menu-button span {

    height: 1px;

    background: #fff;

    transition:
      transform .25s,
      opacity .25s;
  }


  .menu-open
  .menu-button
  span:nth-child(1) {

    transform:
      translateY(7px)
      rotate(45deg);
  }


  .menu-open
  .menu-button
  span:nth-child(2) {

    opacity: 0;
  }


  .menu-open
  .menu-button
  span:nth-child(3) {

    transform:
      translateY(-7px)
      rotate(-45deg);
  }


  .mobile-nav {

    position: absolute;

    top: 72px;

    left: 0;

    width: 100%;

    padding:
      18px 32px 30px;

    background:
      rgba(10,10,10,.99);

    flex-direction: column;
  }


  .menu-open
  .mobile-nav {

    display: flex;
  }


  .mobile-nav a {

    padding:
      14px 0;

    border-bottom:
      1px solid #2a2a2a;

    font-size: 12px;
  }

}


/* =========================
   MOBILE
========================= */

@media (max-width: 720px) {

  .container,
  .header-inner,
  .hero-inner {

    width:
      min(
        calc(100% - 40px),
        var(--max)
      );
  }


  .section {

    padding:
      82px 0;
  }


  .header-inner {

    height: 64px;
  }


 .brand-mark {
    width: 34px;
    height: 34px;
  }

  .brand-origin {
    display: none;
  }

  .brand-text strong {
    font-size: 16px;
    white-space: nowrap;
  }

  .brand-en {
    font-size: 6px;
  }



  .brand-text small {

    display: none;
  }


  .mobile-nav {

    top: 64px;
  }


  section {

    scroll-margin-top: 64px;
  }


  /* HERO */

  .hero {

    min-height: 690px;
  }


  .hero-image {
   object-position: 55% center;
   transform: translateY(65px) scale(1.7);
   transform-origin: center bottom;
  }

  .hero-overlay {

    background:
      linear-gradient(
        0deg,
        rgba(0,0,0,.84) 0%,
        rgba(0,0,0,.48) 50%,
        rgba(0,0,0,.16) 100%
      );
  }


  .hero-inner {

    align-items: flex-end;

    padding-bottom: 90px;
  }


  .hero h1 {

    font-size:
      clamp(42px, 13vw, 58px);
  }


  .hero-scroll {

    display: none;
  }


  /* ABOUT */

  .about-title h2 {

    font-size: 37px;
  }


  .about-main {

    margin-top: 45px;

    grid-template-columns: 1fr;

    gap: 45px;
  }


  .about-image {

    order: -1;
  }


  .training-wide {

    margin-top: 65px;
  }


  .training-wide img {

    aspect-ratio: 4 / 3;
  }


  /* FAMILY */

  .family-heading {

    grid-template-columns: 1fr;

    gap: 30px;
  }


  .family-heading h2 {
    font-size: 39px;
    white-space: nowrap;
  }


  .family-grid {

    margin-top: 50px;

    grid-template-columns: 1fr;

    gap: 45px;
  }


  .friends-photo {

    width: 100%;

    margin-top: 65px;
  }


  /* CHALLENGE */

  .challenge-heading h2 {

    font-size: 43px;
  }


  .challenge-grid {

    margin-top: 50px;

    grid-template-columns: 1fr;

    gap: 50px;
  }


  .challenge-image {

    order: -1;
  }


  /* TRADITION */

  .tradition-heading h2 {

    font-size: 43px;
  }


  .tradition-copy {

    margin-top: 45px;
  }

 .tradition-emphasis {
    font-size: 18px;
  }


  .kobudo-photo {
    margin-top: 60px;
  }

  .kobudo-photo img {
    aspect-ratio: 4 / 3;
  }


  /* HISTORY */

  .history-header {

    display: block;
  }


  .history-header h2 {

    font-size: 52px;
  }


  .history-anniversary {
    width: 100%;
    margin: 22px 0 0;
    display: flex;
    justify-content: flex-end;
    transform: none;
  }

  .history-anniversary img {
    width: 180px;
    max-width: 68%;
    height: auto;
  }


  .history-grid {

    margin-top: 55px;

    grid-template-columns: 1fr;

    gap: 45px;
  }


  .history-copy h3 {

    font-size: 30px;
  }


  /* INFORMATION */


  .information-heading {
   margin-bottom: 20px;
 }
 

 .information-heading p {
   font-size: 16px;
 }


  .information-grid {

    grid-template-columns: 1fr;
  }


  .information-item {
   min-height: 145px;
   padding: 26px 32px;

   border-right:
    1px solid var(--line);

   border-bottom:
    1px solid var(--line);
 }

 .information-item h3 {
   font-size: 20px;
   line-height: 1.4;
 }


/* =========================
    MEMBERS BANNER MOBILE
========================= */
  .members-section { padding: 26px 0; }
  .members-card { flex-direction: column; align-items: stretch; gap: 18px; padding: 24px; }
  .members-title { font-size: 22px; }
  .members-description { font-size: 11px; }
  .members-link { min-width: 0; }

/* TRIAL */

  .trial {

    min-height: 680px;
  }


  .trial h2 {

    font-size: 42px;
  }


  .trial-points {

    gap: 7px;
  }


  /* FLOATING CTA */

  .floating-trial {

    right: 12px;

    bottom: 12px;

    width: 150px;

    height: 50px;
  }


  /* FOOTER */

  .footer-inner {

    grid-template-columns: 1fr;

    gap: 45px;
  }


  .footer-links {

    grid-template-columns:
      1fr 1fr;
  }

}

/* =========================
   HOME LATEST ACTIVITY
========================= */

.home-latest {
  background: #fff;
  border-top: 1px solid var(--line);
}

.home-latest-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 44px;
}

.home-latest-heading h2 {
  margin: 0;
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 400;
  line-height: 1.5;
}

.home-latest-heading > p {
  margin: 0 0 7px;
  color: var(--gray);
  font-size: 13px;
}

.home-latest-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 38px;
}

.home-latest-card {
  display: block;
  min-width: 0;
}

.home-latest-media {
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--offwhite);
}

.home-latest-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}

.home-latest-card:hover .home-latest-media img {
  transform: scale(1.035);
}

.home-latest-no-photo {
  height: 100%;
  display: grid;
  place-items: center;
  color: #999;
  font-size: 11px;
  letter-spacing: .2em;
}

.home-latest-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: 18px 0 8px;
  color: var(--gray);
  font-size: 11px;
}

.home-latest-tag {
  color: var(--red);
  font-weight: 700;
}

.home-latest-card h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.6;
}

.home-latest-more {
  margin-top: 42px;
}

@media (max-width: 720px) {
  .home-latest-heading {
    display: block;
    margin-bottom: 30px;
  }

  .home-latest-heading > p {
    margin-top: 14px;
  }

  .home-latest-heading {
    margin-bottom: 22px;
  }

  .home-latest-heading > p {
    display: none;
  }

  .home-latest-grid {
    grid-template-columns: 1fr;
    gap: 0;
    border-top: 1px solid var(--line);
  }

  .home-latest-card {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 4px;
    align-content: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--line);
  }

  .home-latest-media {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: center;
    aspect-ratio: 4 / 3;
  }

  .home-latest-meta {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    gap: 3px 10px;
    margin: 0;
    font-size: 10px;
    line-height: 1.5;
  }

  .home-latest-card h3 {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    font-size: 16px;
    line-height: 1.5;
  }

  .home-latest-more {
    margin-top: 24px;
  }
}
