/* Supplied photographs: full compositions, responsive sources, clear reading areas. */
.editorial-picture{display:block;width:100%;height:100%}
.editorial-picture img{display:block;width:100%;height:100%;object-fit:cover}
.hybrid-service-media,.service-story-media,.hybrid-story-media{position:relative}
.editorial-caption,.hero-image-caption{position:absolute;right:14px;bottom:14px;z-index:2;padding:4px 10px;border-radius:3px;background:rgba(255,255,255,.93);color:#405348;font-size:.8125rem;line-height:1.6;font-family:var(--sans);font-weight:400;letter-spacing:0}
.hybrid-hero.has-editorial-hero{min-height:clamp(620px,78svh,800px);background:#e7e9e5;color:var(--green-deep)}
.has-editorial-hero .hybrid-hero-media{inset:0;left:0;width:100%;height:100%}
.has-editorial-hero .hybrid-hero-media img{object-position:center 54%;filter:none}
.has-editorial-hero .hybrid-hero-shade{display:block;background:linear-gradient(90deg,rgba(249,250,246,.96) 0%,rgba(249,250,246,.88) 29%,rgba(249,250,246,.52) 44%,rgba(249,250,246,.08) 61%,transparent 75%)}
.has-editorial-hero .hybrid-hero-inner{padding-block:76px;min-height:inherit}
.has-editorial-hero .hybrid-hero-copy{width:49%;max-width:650px}
.has-editorial-hero .hybrid-hero-kicker{color:#315441;letter-spacing:.08em}
.has-editorial-hero .hybrid-hero-title{color:#123e2a;font-size:clamp(2.75rem,4.2vw,4rem);font-weight:500}
.has-editorial-hero .hybrid-hero-lead{color:#314c3d;max-width:28em;font-size:1rem;line-height:1.95}
.has-editorial-hero .hybrid-hero-actions .btn{background:var(--green);color:#fff;border-color:var(--green)}
.has-editorial-hero .hybrid-hero-actions .btn:hover{background:var(--green-deep);border-color:var(--green-deep)}
.has-editorial-hero .text-link{color:#174d34}
.has-editorial-hero a:focus-visible{outline-color:#174d34}
.hero-image-caption{right:24px;bottom:20px;background:rgba(255,255,255,.9)}
.hybrid-story.has-image .hybrid-story-media{aspect-ratio:4/3;align-self:center}
.hybrid-story.has-image .hybrid-story-media img{object-position:58% 55%}
.hybrid-service-media .editorial-picture img{object-position:center 56%}
.service-story-newbuild .editorial-picture img{object-position:60% center}
.service-story-renovation .editorial-picture img{object-position:62% 60%}
.editorial-figure{position:relative;margin:0;overflow:hidden;border-radius:8px}
.editorial-figure figcaption{position:absolute;right:12px;bottom:12px;background:rgba(255,255,255,.94);color:#405348;border-radius:3px;font-size:.8125rem;line-height:1.6;padding:4px 9px;font-weight:400}
.repair-photo{aspect-ratio:16/10;margin-bottom:26px}
.repair-photo img{object-position:38% center}
.planning-photo{aspect-ratio:3/1;max-height:380px;margin-bottom:30px}
.planning-photo img{object-position:center 42%}
.consultation-photo{aspect-ratio:4/3;margin-bottom:28px}
.consultation-photo img{object-position:55% center}
@media(max-width:1000px) and (min-width:821px){
 .has-editorial-hero .hybrid-hero-copy{width:58%}
 .has-editorial-hero .hybrid-hero-title{font-size:2.75rem}
 .has-editorial-hero .hybrid-hero-shade{background:linear-gradient(90deg,rgba(249,250,246,.97),rgba(249,250,246,.88) 36%,rgba(249,250,246,.12) 78%)}
}
@media(max-width:820px){
 .hybrid-hero.has-editorial-hero{display:block;min-height:680px;min-height:clamp(680px,calc(100svh - 70px),820px)}
 .has-editorial-hero .hybrid-hero-media{position:absolute;inset:0;width:100%;height:100%}
 .has-editorial-hero .hybrid-hero-media img{object-position:58% 53%}
 .has-editorial-hero .hybrid-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(249,250,246,.92) 0%,rgba(249,250,246,.83) 24%,rgba(249,250,246,.44) 39%,rgba(249,250,246,.04) 57%,transparent 70%)}
 .has-editorial-hero .hybrid-hero-inner{position:relative;min-height:0;padding:34px 0 42px}
 .has-editorial-hero .hybrid-hero-copy{width:100%;max-width:430px}
 .has-editorial-hero .hybrid-hero-kicker{font-size:.875rem;margin-bottom:14px}
 .has-editorial-hero .hybrid-hero-title{font-size:clamp(2.125rem,7.9vw,2.875rem);line-height:1.4}
 .has-editorial-hero .hybrid-hero-lead{margin-top:18px;max-width:25em;line-height:1.85}
 .has-editorial-hero .hybrid-hero-actions{margin-top:22px;gap:12px 18px}
 .has-editorial-hero .hybrid-hero-actions .btn{min-width:154px}
 .hero-image-caption{right:16px;bottom:16px}
 .planning-photo{aspect-ratio:16/9;max-height:none;margin-bottom:24px}
 .planning-photo img{object-position:56% center}
 .consultation-photo{aspect-ratio:16/10;max-height:300px}
 .hybrid-story.has-image .hybrid-story-media{width:100%;max-width:600px}
}
@media(min-width:601px) and (max-width:820px){
 .has-editorial-hero .hybrid-hero-media img{object-position:center 68%}
 .has-editorial-hero .hybrid-hero-shade{background:linear-gradient(180deg,rgba(249,250,246,.95),rgba(249,250,246,.8) 29%,rgba(249,250,246,.06) 60%)}
}
@media(max-width:360px){
 .has-editorial-hero .hybrid-hero-inner{padding-top:26px}
 .has-editorial-hero .hybrid-hero-title{font-size:2rem}
 .has-editorial-hero .hybrid-hero-lead{font-size:.9375rem}
 .has-editorial-hero .hybrid-hero-actions{gap:10px;margin-top:16px}
 .has-editorial-hero .hybrid-hero-actions .btn{min-height:46px;padding:11px 18px}
 .has-editorial-hero .hybrid-hero-actions .text-link{min-height:40px}
 .editorial-figure figcaption,.editorial-caption{font-size:.75rem;right:8px;bottom:8px}
}
/* 写真・リンクの操作感 */
@media (hover: hover) and (pointer: fine)
  and (prefers-reduced-motion: no-preference) {

  .hybrid-service-media,
  .hybrid-work-media,
  .hybrid-journal-cover,
  .journal-cover-v16,
  .works-archive-media {
    overflow: hidden;
  }

  .hybrid-service-media img,
  .hybrid-work-media img,
  .hybrid-journal-cover img,
  .journal-cover-v16 img,
  .works-archive-media img {
    transition: transform 700ms cubic-bezier(.22, 1, .36, 1);
  }

  a.hybrid-service-card:hover .hybrid-service-media img,
  a.hybrid-work-card:hover .hybrid-work-media img,
  a.hybrid-journal-card:hover .hybrid-journal-cover img,
  a.journal-archive-card-v16:hover .journal-cover-v16 img,
  a.works-archive-item:hover .works-archive-media img {
    transform: scale(1.035);
  }

  a.btn {
    transition:
      transform 250ms ease,
      box-shadow 250ms ease,
      background-color 250ms ease,
      color 250ms ease;
  }

  a.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgb(10 45 31 / 10%);
  }

  a.btn:active {
    transform: translateY(0);
    box-shadow: none;
  }
}

/* 展開中のヘッダーを画面上部に保持 */
@media (max-width: 1280px) {
  body.menu-open .site-header {
    position: fixed;
    top: var(--ymt-admin-offset, 0px);
    left: 0;
    right: 0;
    width: 100%;
    background: #fff;
    z-index: 1200;
    overflow: visible;
    transform: none;
    filter: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  /* ヘッダーが通常フローから外れた分を補う */
  body.menu-open #main {
    margin-top: calc(var(--header-h) + 1px);
  }

  .mobile-nav-details > .mobile-menu {
    top: calc(var(--header-h) + var(--ymt-admin-offset, 0px));
    height: calc(
      100vh - var(--header-h) - var(--ymt-admin-offset, 0px)
    );
    height: calc(
      100dvh - var(--header-h) - var(--ymt-admin-offset, 0px)
    );
  }

  .site-header .brand,
  .mobile-nav-details > .menu-toggle {
    position: relative;
    z-index: 1205;
  }

  .mobile-nav-details {
    z-index: auto;
  }
}
/* ======================================
   YAMATO — 建築の線と、静かな余白
====================================== */

:root {
  --ymt-motion-ease: cubic-bezier(.22, 1, .36, 1);
  --ymt-paper: #f6f5f0;
  --ymt-rule: #809287;
}

/* 生成りは一部の背景に限定 */
.journal-page-hero,
.company-history,
.service-flow {
  background-color: var(--ymt-paper);
}

/* JSが停止しても本文・写真は表示する */
#main .ymt-motion-item {
  opacity: 1;
  visibility: visible;
}

/* 見出しに、図面を思わせる細い基準線 */
#main .ymt-lined-heading {
  position: relative;
  padding-top: 20px;
}

#main .ymt-lined-heading::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 52px;
  height: 1px;
  background: var(--ymt-rule);
  transform: scaleX(0);
  transform-origin: left center;
  transition:
    transform 750ms var(--ymt-motion-ease);
  transition-delay: var(--ymt-line-delay, 0ms);
}

#main .ymt-lined-heading.ymt-line-drawn::before {
  transform: scaleX(1);
}

/* 暗い背景の線 */
.hybrid-contact .ymt-lined-heading::before,
.hybrid-story .ymt-lined-heading::before,
.service-story-public .ymt-lined-heading::before {
  background: rgb(255 255 255 / 55%);
}

/* 写真の縁を整える */
.hybrid-service-media,
.hybrid-work-media,
.works-archive-media,
.case-card-media {
  overflow: hidden;
}

/* 案件名の下に伸びる線 */
.hybrid-work-caption h3,
.works-archive-copy h2,
.works-archive-copy h3 {
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0 1px;
  padding-bottom: 5px;
  transition:
    background-size 450ms var(--ymt-motion-ease);
}

@media (hover: hover) and (pointer: fine)
  and (prefers-reduced-motion: no-preference) {

  /*
   * 建築写真は拡大しない。
   * 輪郭を保ち、案件名と矢印で操作に応える。
   */
  a.hybrid-work-card:hover .hybrid-work-media img,
  a.works-archive-item:hover .works-archive-media img,
  a.case-card:hover .case-card-media img {
    transform: none;
  }

  a.hybrid-work-card:hover .hybrid-work-caption h3,
  a.hybrid-work-card:focus-visible .hybrid-work-caption h3,
  a.works-archive-item:hover .works-archive-copy h2,
  a.works-archive-item:hover .works-archive-copy h3,
  a.works-archive-item:focus-visible .works-archive-copy h2,
  a.works-archive-item:focus-visible .works-archive-copy h3 {
    background-size: 100% 1px;
  }

  .text-link::after,
  .service-story-actions .text-link::after {
    transition:
      transform 350ms var(--ymt-motion-ease),
      background-color 250ms ease;
  }

  a.text-link:hover::after {
    transform: translate(3px, -3px);
  }

  /* ボタンは浮かせず、色と輪郭で反応させる */
  a.btn {
    transition:
      background-color 250ms ease,
      border-color 250ms ease,
      color 250ms ease;
  }

  a.btn:hover,
  a.btn:active {
    transform: none;
    box-shadow: none;
  }
}

@media (max-width: 820px) {
  #main .ymt-lined-heading {
    padding-top: 16px;
  }

  #main .ymt-lined-heading::before {
    width: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #main .ymt-lined-heading::before {
    transform: none;
    transition: none;
  }

  .hybrid-work-caption h3,
  .works-archive-copy h2,
  .works-archive-copy h3 {
    transition: none;
  }
}