@charset "utf-8";
/* ==========================================================
   由工房 TOP — top.css（トップページ専用）
   構成：セクション単位（ベース → セクション内 @media の順）
   共通パーツ（header/footer/CTA Final/works・chip/news一覧/
   swipe-hint/project-link/eyebrow 等）は common.css 側に定義。
========================================================== */

/* ============================== */
/* Section: base（トップ専用の変数上書き・全体トーン） */
/* ============================== */
:root{
  --max:        1240px;
  --gutter:     clamp(24px, 5.5vw, 72px);
  --section-y:  clamp(96px, 11vw, 160px);
}

body{
  letter-spacing:.06em;
  line-height:1.95;
}

.section-title .en{
  display:block;
  font-family:var(--en);
  font-size:.34em;
  letter-spacing:.32em;
  font-weight:300;
  color:var(--ink-mute);
  margin-top:.9em;
  text-transform:uppercase;
}

@media (max-width:768px){
  body{
    letter-spacing:.04em;
  }
}
/* /Section: base */

/* ============================== */
/* Section: hero */
/* ============================== */
.hero-meta .en{
  font-family:var(--en);
  font-size:10px;
  letter-spacing:.28em;
  color:var(--ink-mute);
  font-weight:400;
}
.hero-title .accent{
  position:relative;
  display:inline-block;
  color:#FFCB85;
}
.hero-title .accent::after{
  content:"";
  position:absolute;
  left:-.05em;
  right:-.05em;
  z-index:-1;
  height:.18em;
  background:rgba(232,154,46,.85);
  bottom:.04em;
}
.hero-trust .item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:4px 18px !important;
  border-right:1px solid rgba(255,255,255,.35) !important;
}
.hero-trust .item:last-child{
  border-right:none !important;
}
.hero-trust .item:first-child{
  padding-left:0;
}
.hero-trust .item .t{
  font-size:10.5px;
  letter-spacing:.14em;
  margin-bottom:2px;
  color:#fff;
  font-weight:600;
  text-shadow:0 1px 6px rgba(0,0,0,.55);
  opacity:1;
}
.hero-trust .item .v{
  font-family:var(--serif);
  line-height:1.2;
  display:flex;
  align-items:baseline;
  gap:3px;
  flex-wrap:wrap;
  letter-spacing:.04em;
  font-weight:600;
  margin-bottom:0;
  color:#fff;
  font-size:24px;
  text-shadow:0 2px 8px rgba(0,0,0,.6), 0 0 2px rgba(0,0,0,.35);
}
.hero-trust .item .v .u{
  font-size:12px;
  letter-spacing:.04em;
  font-weight:400;
  opacity:.85;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.6);
}
.hero-trust .item .l{
  color:#fff;
  opacity:.7;
  font-size:10px;
  letter-spacing:.2em;
  margin-top:6px;
  text-transform:uppercase;
  font-family:var(--en);
  font-weight:500;
}

.hero{
  position:relative;
  height:calc(100vh - 0px);
  padding-top:80px;
  overflow:hidden;
  background:#1a1714;
  isolation:isolate;
  min-height:760px;
  max-height:920px;
}

/* 背景クロスフェード用スライド層（画像そのもの） */
.hero-slides{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.hero-slide{
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  opacity:0;
  transform:scale(1.06);
  transition:opacity 1.6s ease, transform 7s ease;
  will-change:opacity, transform;
}
.hero-slide.is-active{
  opacity:1;
  transform:scale(1.0);
}
@media (prefers-reduced-motion: reduce){
  .hero-slide{
    transition:opacity .4s ease;
    transform:none;
  }
  .hero-slide.is-active{
    transform:none;
  }
}

/* hero-bg は画像の上に重ねる暗幕グラデ（可読性確保） */
.hero-bg{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(112deg, rgba(20,16,12,.72) 0%, rgba(20,16,12,.42) 42%, rgba(20,16,12,.18) 100%),
    linear-gradient(180deg, rgba(20,16,12,.0) 40%, rgba(20,16,12,.62) 100%);
}

.hero-inner{
  position:relative;
  z-index:2;
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  height:100%;
  min-height:680px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.hero-text{
  position:relative;
  z-index:3;
  max-width:760px;
  color:#fff;
}

.hero-meta{
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin-bottom:28px;
  border-radius:999px;
  animation-delay:.0s;
  background:rgba(255,255,255,.96);
  padding:9px 20px;
  border:1px solid rgba(232,154,46,.6);
}
.hero-meta .dot{
  width:6px;
  height:6px;
  background:var(--o);
  border-radius:50%;
}
.hero-meta .txt{
  color:var(--o-deep);
  font-weight:700;
  font-size:11.5px;
  letter-spacing:.24em;
}

.hero-title{
  font-family:var(--serif);
  color:#fff;
  text-shadow:0 2px 24px rgba(0,0,0,.45);
  animation:heroFadeUp .9s .15s both ease-out;
  font-weight:600;
  letter-spacing:.08em;
  line-height:1.36;
  font-size:clamp(34px, 4.8vw, 60px);
  margin-bottom:30px;
}

@keyframes heroFadeUp{
  from{
    opacity:0;
    transform:translateY(18px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.hero-meta,.hero-sub,.hero-cta,.hero-trust{
  animation:heroFadeUp .9s both ease-out;
}
.hero-sub{
  animation-delay:.30s;
  margin-bottom:32px;
  text-shadow:0 1px 10px rgba(0,0,0,.45);
  font-family:var(--sans);
  font-size:clamp(14.5px, 1.3vw, 17px);
  line-height:2.05;
  font-weight:400;
  letter-spacing:.1em;
  color:#F4ECDC;
  max-width:560px;
}
.hero-sub b{
  font-weight:600;
  color:#FFCB85;
}
.hero-cta{
  animation-delay:.45s;
  display:flex;
  flex-wrap:wrap;
  margin-bottom:44px;
  gap:12px;
}
.hero-trust{
  animation-delay:.6s;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  backdrop-filter:none;
  cursor:default;
  pointer-events:none; /* リンクと誤認されないよう */
  background:transparent !important;
  border:none !important;
  border-top:1px solid rgba(255,255,255,.55) !important;
  border-bottom:1px solid rgba(255,255,255,.55) !important;
  box-shadow:none !important;
  padding:16px 4px !important;
  max-width:560px !important;
  border-radius:0 !important;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:17px 32px;
  font-size:14.5px;
  font-weight:700;
  letter-spacing:.1em;
  border-radius:2px;
  transition:all .25s ease;
}
.btn-secondary{
  padding:15.5px 30px;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
  color:#fff;
  border:1px solid rgba(255,255,255,.5);
  font-weight:500;
}
.btn-secondary:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.16);
  border-color:#fff;
}
.btn-arrow{
  display:inline-block;
  width:14px;
  height:1px;
  background:currentColor;
  position:relative;
}
.btn-arrow::after{
  content:"";
  position:absolute;
  right:0;
  top:-3px;
  width:8px;
  height:8px;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:rotate(45deg);
}

/* 13代 落款（はんこ）風バッジ */
.hero-stamp{
  position:absolute;
  z-index:3;
  border-radius:50%;
  place-items:center;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  width:184px;
  height:184px;
  right:40px;
  bottom:40px;
  background:rgba(255,253,247,.98);
  border:1px solid var(--o);
  box-shadow:6px 12px 36px rgba(0,0,0,.34), 0 0 0 7px rgba(255,253,247,.42);
}
.hero-stamp::before{
  content:"";
  position:absolute;
  border-radius:50%;
  inset:12px;
  border:1px solid rgba(232,154,46,.5);
}
.hero-stamp .num{
  display:inline-flex;
  align-items:baseline;
  font-family:var(--serif);
  font-weight:700;
  font-size:60px;
  line-height:.9;
  letter-spacing:.01em;
  color:var(--o-deep);
}
.hero-stamp .num .unit{
  font-size:.4em;
  font-weight:700;
  letter-spacing:.02em;
  margin-left:3px;
  color:var(--ink);
}
.hero-stamp .lbl{
  position:relative;
  margin-top:12px;
  padding-top:11px;
  font-family:var(--serif);
  font-size:13px;
  font-weight:700;
  letter-spacing:.2em;
  line-height: 1.2;
  text-indent:.2em;
  color:var(--ink);
}
.hero-stamp .lbl::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:36px;
  height:1px;
  background:var(--o);
}
.hero-stamp .en{
  margin-top:7px;
  font-family:var(--en);
  font-size:8.5px;
  font-weight:600;
  letter-spacing:.24em;
  text-indent:.24em;
  text-transform:uppercase;
  color:var(--ink-mute);
}

@media (max-width:980px){
  .hero-trust .item{
    border-right:none;
    padding:8px 0;
    border-bottom:1px solid var(--line);
  }
  .hero-trust .item:nth-last-child(-n+1){
    border-bottom:none;
  }
}
@media (max-width:600px){
  .hero-trust .item{
    border-bottom:1px solid var(--line);
    border-right:none !important;
    padding:10px 8px !important;
  }
  .hero-trust .item .v .u{
    font-size:10px;
  }
  .hero-trust .item:last-child{
    border-bottom:none;
  }
}
@media (max-width:767px){
  .hero-trust .item{
    border-right:none !important;
    border-bottom:1px solid rgba(255,255,255,.25) !important;
    padding:8px 10px !important;
  }
  .hero-trust .item .v{
    font-size:17px;
  }
  .hero-trust .item:nth-last-child(-n+1){
    border-bottom:none !important;
  }
}
@media (max-width:980px){
  .hero{
    min-height:680px;
    max-height:none;
    height:auto;
    padding-top:96px;
    padding-bottom:60px;
  }
  .hero-inner{
    min-height:0;
  }
  .hero-trust{
    grid-template-columns:1fr 1fr;
    gap:14px;
    padding:20px 22px;
  }
  .hero-stamp{
    right:18px;
    bottom:18px;
    width:128px;
    height:128px;
  }
  .hero-stamp .num{
    font-size:44px;
  }
  .hero-stamp .lbl{
    font-size:11px;
    margin-top:9px;
    padding-top:8px;
  }
}
@media (max-width:600px){
  .hero-trust{
    grid-template-columns:1fr !important;
  }
}
@media (max-width:768px){
  .hero{
    padding-top:90px;
  }
  .hero-title{
    font-size:clamp(28px, 7vw, 42px);
    letter-spacing:.04em;
  }
  .hero-sub{
    font-size:14px;
    line-height:1.95;
  }
  .hero-stamp{
    width:116px;
    height:116px;
  }
  .hero-stamp .num{
    font-size:28px;
  }
  .hero-stamp .lbl{
    font-size:10.5px;
    letter-spacing:.14em;
    margin-top:8px;
    padding-top:7px;
  }
  .hero-stamp .en{
    font-size:7.5px;
    margin-top:4px;
  }
}
@media (max-width:767px){
  .hero-trust{
    grid-template-columns:1fr 1fr !important;
    padding:14px 12px !important;
  }
}

/* SP時は FV 内の hero-trust / hero-cta を隠し、
   ビジュアル直下の帯（.hero-trust-strip / .hero-cta-strip）に表示。
   内容は index.php の2箇所を同期させること */
.hero-trust-strip{
  display:none;
}
@media (max-width:767px){
  .hero .hero-inner .hero-trust{
    display:none !important;
  }
  .hero-trust-strip{
    display:block;
    background:#1a1714;
    padding:16px var(--gutter);
  }
  .hero-trust-strip .hero-trust{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    gap:0 !important;
    max-width:none !important;
    margin:0 auto !important;
    padding:0 !important;
    border:none !important;
    box-shadow:none !important;
    animation:none;
    pointer-events:none;
  }
  .hero-trust-strip .item{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:2px;
    border-bottom:none !important;
    padding:2px 6px;
  }
  .hero-trust-strip .item + .item{
    border-left:1px solid rgba(255,255,255,.18);
  }
}

.hero-cta-strip{
  display:none;
}
@media (max-width:767px){
  .hero .hero-inner .hero-cta{
    display:none !important;
  }
  .hero-cta-strip{
    display:flex;
    flex-direction:column;
    gap:10px;
    background:#1a1714;
    padding:6px var(--gutter) 22px;
  }
  .hero-cta-strip .btn{
    width:100%;
    box-sizing:border-box;
    justify-content:center;
    margin:0;
  }
}
/* /Section: hero */

/* ============================== */
/* Section: achievement */
/* ============================== */
.achievement{
  color:#fff;
  position:relative;
  overflow:hidden;
  background:var(--o);
  padding:26px 0;
}
.achievement::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 1px, transparent 1px 100px);
}
.ach-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:56px;
  font-size:12.5px;
  letter-spacing:.18em;
}
.ach-inner b{
  font-family:var(--serif);
  font-size:15px;
  letter-spacing:.06em;
  font-weight:500;
}
.ach-divider{
  width:1px;
  height:18px;
  background:rgba(255,255,255,.4);
}
@media (max-width:768px){
  .ach-divider{
    display:none;
  }
}
/* /Section: achievement */

/* ============================== */
/* Section: sec-common（セクション余白・見出し） */
/* ============================== */
.section-narrow{
  padding:calc(var(--section-y) * .7) 0;
}
.section-deep{
  background:var(--bg-deep);
}
.section-soft{
  background:var(--bg-soft);
}
.section-stone{
  background:var(--bg-stone);
}
.section-ink{
  background:var(--bg-stone);
  color:var(--ink-soft);
}
.container-narrow{
  max-width:1080px;
  margin:0 auto;
  padding:0 var(--gutter);
}
.sec-head{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  position:relative;
  margin-bottom:56px;
}
.sec-head.center{
  align-items:center;
  text-align:center;
}
.ttl-en{
  font-family:var(--en);
  color:var(--o);
  text-transform:uppercase;
  font-size:11.5px;
  letter-spacing:.36em;
  margin-bottom:18px;
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:14px;
}
.ttl-en::before{
  content:"";
  width:32px;
  height:1px;
  background:var(--o);
  display:inline-block;
}
.sec-head.center .ttl-en{
  justify-content:center;
}
.ttl-jp{
  font-family:var(--serif);
  font-size:clamp(24px, 3.4vw, 34px);
  font-weight:500;
  letter-spacing:.06em;
  line-height:1.55;
  color:var(--ink);
}
.ttl-lead{
  margin-top:24px;
  color:var(--ink-soft);
  font-size:14.5px;
  line-height:2.1;
  letter-spacing:.06em;
}
@media (max-width:768px){
  .sec-head{
    margin-bottom:32px;
  }
  .ttl-jp{
    font-size:clamp(22px, 5.6vw, 26px);
  }
  .ttl-lead{
    text-align: justify;
  }
}
/* /Section: sec-common */

/* ============================== */
/* Section: entries（3つの相談窓口） */
/* ============================== */
.entry .ph{
  background:var(--bg-stone);
  overflow:hidden;
  position:relative;
  aspect-ratio:5/4;
}
.entry .ph img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .8s ease;
}
.entry:hover .ph img{
  transform:scale(1.05);
}
.entry .ph::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(20,16,12,.18) 100%);
  pointer-events:none;
}
.entry .num{
  font-family:var(--en);
  font-size:10.5px;
  letter-spacing:.32em;
  font-weight:500;
  color:var(--o-deep);
  margin-bottom:14px;
}
.entry .ttl{
  font-family:var(--serif);
  font-weight:500;
  color:var(--ink);
  font-size:21px;
  line-height:1.55;
  letter-spacing:.06em;
  margin-bottom:14px;
}
.entry .desc{
  flex:1;
  font-size:13.5px;
  line-height:2.0;
  text-align: justify;
  color:var(--ink-soft);
}

.entries{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:28px;
}
.entry{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .3s ease;
  position:relative;
  border:1px solid var(--line);
  background:#fff;
  border-radius:0;
}
.entry:hover{
  border-color:var(--o-soft);
  transform:translateY(-8px);
  box-shadow:0 28px 64px rgba(122,93,63,.16);
}
.entry .body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:32px 30px 34px;
}
.entry .footer{
  border-top:1px solid var(--line);
  color:var(--ink-mute);
  margin-top:26px;
  padding-top:18px;
  font-size:12px;
  letter-spacing:.08em;
}
.entry .footer b{
  color:var(--o-deep);
  font-weight:700;
}
.entry .arrow{
  font-family:var(--en);
  color:var(--ink);
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:24px;
  font-size:11.5px;
  letter-spacing:.24em;
  font-weight:500;
}
.entry .arrow::after{
  content:"→";
  transition:transform .3s ease;
}
.entry:hover .arrow::after{
  transform:translateX(6px);
}
.entry.is-primary{
  border:1px solid var(--o);
  background:linear-gradient(180deg, #FFFBF2 0%, #FFFEFB 100%);
  border-color:rgba(232,154,46,.45);
}
.entry.is-primary .badge-main{
  position:absolute;
  z-index:2;
  background:var(--o);
  color:#fff;
  font-family:var(--en);
  font-weight:700;
  top:20px;
  left:20px;
  padding:7px 14px;
  font-size:9.5px;
  letter-spacing:.28em;
}
@media (max-width:767px){
  .entry .ttl{
    font-size:19px;
  }
}
@media (max-width:980px){
  .entries{
    grid-template-columns:1fr 1fr;
  }
  .entry.is-primary{
    grid-column:1/-1;
  }
}
@media (max-width:680px){
  .entries{
    grid-template-columns:1fr;
  }
  .entry.is-primary{
    grid-column:auto;
  }
}
/* SP時カルーセル化（JSなし・CSS scroll-snap） */
@media (max-width:767px){
  .entries{
    display:flex;
    flex-direction:row;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scroll-padding:0 var(--gutter);
    gap:14px;
    padding:0 var(--gutter) 18px;
    margin:0 calc(-1 * var(--gutter));
    scrollbar-width:none;
  }
  .entries::-webkit-scrollbar{
    display:none;
  }
  .entries .entry{
    flex:0 0 84%;
    max-width:84%;
    scroll-snap-align:start;
  }
}
/* /Section: entries */

/* ============================== */
/* Section: reasons（選ばれる3つの理由） */
/* ============================== */
.reasons{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:24px;
  gap:56px;
}
.reason{
  text-align:center;
  position:relative;
}
.reason-badge{
  border-radius:0;
  margin:0 auto 14px;
  display:inline-flex;
  align-items:baseline;
  justify-content:center;
  position:relative;
  padding:0;
  width:auto;
  height:auto;
  background:none;
  box-shadow:none;
}
.reason-badge::before{
  display:none;
}
.reason-badge .n{
  font-family:var(--en);
  color:var(--o-deep);
  letter-spacing:.18em;
  display:inline-flex;
  align-items:baseline;
  gap:4px;
  padding:0 0 4px;
  border-bottom:1px solid var(--o);
  font-size:14px;
  font-weight:600;
  font-style:normal;
}
.reason-badge .n small{
  display:inline;
  color:var(--ink-mute);
  font-size:10px;
  letter-spacing:.2em;
  margin:0 2px 0 0;
  font-weight:500;
  opacity:1;
}
.reason-ttl{
  font-family:var(--serif);
  font-weight:500;
  color:var(--ink);
  font-size:21px;
  letter-spacing:.06em;
  line-height:1.6;
  margin-bottom:18px;
}
.reason-desc{
  color:var(--ink-soft);
  margin:0 auto;
  font-size:13.5px;
  line-height:2.0;
  text-align: justify;
  max-width:320px;
}
.reason-img{
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:4px;
  margin-bottom:24px;
  background:var(--bg-deep);
}
.reason-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s ease;
}
@media (max-width:767px){
  .reason-ttl{
    font-size:19px;
  }
}
@media (max-width:780px){
  .reasons{
    grid-template-columns:1fr;
    gap:48px;
  }
}
/* SP時カルーセル化（JSなし・CSS scroll-snap） */
@media (max-width:767px){
  .reasons{
    display:flex;
    flex-direction:row;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scroll-padding:0 var(--gutter);
    gap:14px;
    padding:0 var(--gutter) 18px;
    margin:0 calc(-1 * var(--gutter));
    scrollbar-width:none;
  }
  .reasons::-webkit-scrollbar{
    display:none;
  }
  .reasons .reason{
    flex:0 0 80%;
    max-width:80%;
    scroll-snap-align:start;
  }
  .reason-img{
    aspect-ratio:16/10;
    margin-bottom:16px;
  }
}
/* /Section: reasons */

/* ============================== */
/* Section: micro-cvr（各セクション末の小型CTA） */
/* ============================== */
.micro-cvr{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  border-radius:2px;
  margin-top:64px;
  padding:28px 32px;
  background:#fff;
  border:1px dashed rgba(232,154,46,.55);
}
.micro-cvr .txt{
  font-family:var(--serif);
  color:var(--ink);
  font-weight:500;
  font-size:15px;
  letter-spacing:.06em;
  line-height:1.7;
}
.micro-cvr .txt small{
  display:block;
  font-family:var(--sans);
  color:var(--ink-mute);
  font-weight:400;
  font-size:12px;
  margin-top:6px;
  letter-spacing:.06em;
}
.micro-cvr .btn{
  background:var(--o);
  color:#fff;
  font-family:var(--sans);
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:none;
  cursor:pointer;
  transition:background .25s ease,transform .25s ease;
  text-decoration:none;
  padding:13px 26px;
  font-size:12.5px;
  letter-spacing:.16em;
  font-weight:500;
}
.micro-cvr .btn:hover{
  background:var(--o-deep);
  transform:translateY(-2px);
}
.micro-cvr .btn::after{
  content:"→";
}
.section-ink .micro-cvr{
  background:#fff;
  border-color:var(--o);
}
.section-ink .micro-cvr .txt{
  color:var(--ink);
}
.section-ink .micro-cvr .txt small{
  color:var(--ink-mute);
}
/* /Section: micro-cvr */

/* ============================== */
/* Section: story（13代） */
/* ============================== */
.story-body .ttl-jp{
  font-size:clamp(24px, 3.4vw, 34px);
  line-height:1.5;
}

.story{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  align-items:center;
  gap:88px;
}
.story-visual{
  background:var(--bg-stone);
  overflow:hidden;
  position:relative;
  aspect-ratio:3/4;
}
.story-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.story-visual::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:80px;
  height:80px;
  left:-20px;
  top:-20px;
  background:repeating-linear-gradient(45deg, var(--o) 0 1px, transparent 1px 7px);
  opacity:.4;
}
.story-stamp{
  position:absolute;
  bottom:-22px;
  right:-22px;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:160px;
  height:160px;
  background:#fff;
  border:1px solid var(--o);
  box-shadow:0 16px 44px rgba(122,93,63,.24), 0 0 0 6px rgba(255,255,255,.55);
  transform:rotate(-4deg);
  gap:0;
}
.story-stamp .n{
  display:inline-flex;
  align-items:baseline;
  font-family:var(--serif);
  font-size:52px;
  font-weight:700;
  line-height:.9;
  letter-spacing:.01em;
  color:var(--o-deep);
}
.story-stamp .l{
  font-size:11px;
  letter-spacing:.18em;
  color:var(--ink);
  margin-top:4px;
  font-weight:700;
}
.story-stamp .e{
  position:relative;
  margin-top:10px;
  padding-top:6px;
  font-family:var(--serif);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  text-indent:.16em;
  color:var(--ink);
}
.story-quote{
  font-family:var(--serif);
  color:var(--ink);
  background:#fff;
  border-left:3px solid var(--o);
  padding:28px 32px;
  font-size:18px;
  line-height:1.95;
  letter-spacing:.06em;
  font-weight:500;
  position:relative;
  margin:36px 0;
}
.story-quote cite{
  display:block;
  font-style:normal;
  font-family:var(--sans);
  font-weight:400;
  margin-top:16px;
  font-size:11.5px;
  letter-spacing:.2em;
  color:var(--ink-mute);
}
.story-text{
  color:var(--ink-soft);
  font-size:14px;
  letter-spacing:.06em;
  text-align: justify;
}
.story-text p{
  line-height:2.1;
}
.story-text p+p{
  margin-top:18px;
}
@media (max-width:980px){
  .story{
    grid-template-columns:1fr;
    gap:16px;
  }
  .story-stamp{
    width:124px;
    height:124px;
    bottom:-14px;
    right:-14px;
  }
  .story-stamp .n{
    font-size:40px;
  }
  .story-stamp .e{
    font-size:10.5px;
    margin-top:8px;
    padding-top:7px;
  }
  .story-stamp::before{
    inset:8px;
  }
}
.story-visual::after{
  content:"";
  position:absolute;
  right:-20px;
  bottom:-20px;
  width:100px;
  height:100px;
  border:1px solid var(--o);
  opacity:.3;
  z-index:-1;
}
.story-stamp::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:50%;
  border:1px solid rgba(232,154,46,.45);
}
.story-stamp .n .unit{
  font-size:.4em;
  font-weight:700;
  letter-spacing:.02em;
  margin-left:2px;
  color:var(--ink);
}
.story-stamp .e::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:30px;
  height:1px;
  background:var(--o);
}
.story-quote::before{
  content:"\201C";
  position:absolute;
  left:16px;
  top:0;
  font-family:var(--serif);
  font-size:60px;
  color:var(--o);
  opacity:.3;
  line-height:1;
  font-weight:300;
}
/* SP時は写真を横長（3/2）に切替（index.php の <picture> と連動） */
@media (max-width:767px){
  .story-visual{
    aspect-ratio:3/2;
  }
}
@media (max-width:768px){
  .story-body .ttl-jp{
    font-size:clamp(22px, 5.6vw, 26px);
    line-height:1.6;
  }
  .story-quote{
    padding:22px 24px;
    font-size:16px;
  }
}
/* /Section: story */

/* ============================== */
/* Section: works（実体スタイルは common.css。ここは配置調整のみ） */
/* ============================== */
#works .works-toolbar{
  justify-content:center;
  align-items:center;
}
#works .works-toolbar .filter-group{
  justify-content:center;
}
/* SP時：カテゴリ／ご予算を縦並び（2段）にし、ツールバー全体を横スクロール。
   下部スクロールバーは .pillar-grid カルーセルと同スタイル（薄いオレンジ） */
@media (max-width:767px){
  #works .works-toolbar{
    flex-direction:column;
    justify-content:flex-start;
    align-items:flex-start;
    flex-wrap:nowrap;
    gap:12px;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    margin:0 calc(-1 * var(--gutter)) 24px;
    padding:0 var(--gutter) 18px;
    scrollbar-width:thin;
    scrollbar-color:rgba(232,154,46,.4) transparent;
  }
  #works .works-toolbar::-webkit-scrollbar{
    display:block;
    height:4px;
  }
  #works .works-toolbar::-webkit-scrollbar-track{
    background:rgba(0,0,0,.04);
  }
  #works .works-toolbar::-webkit-scrollbar-thumb{
    background:rgba(232,154,46,.45);
    border-radius:2px;
  }
  #works .works-toolbar .filter-group{
    justify-content:flex-start;
    flex-wrap:nowrap;
    flex:0 0 auto;
    gap:6px;
    padding-right:var(--gutter); /* スクロール右端の余白（marginはSafariで無視されるためpaddingで確保） */
  }
  #works .works-toolbar .filter-group .label{
    flex:0 0 auto;
  }
  #works .works-toolbar .chip{
    white-space:nowrap;
    flex:0 0 auto;
    font-size: 11px;
    padding: 5px 12px;
  }
}
/* /Section: works */

/* ============================== */
/* Section: project（空き家再生） */
/* ============================== */
.stat-card .num{
  font-family:var(--serif);
  line-height:1;
  font-size:38px;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--koke-deep);
  display:flex;
  align-items:baseline;
  gap:4px;
}
.stat-card .num small{
  color:var(--koke);
  letter-spacing:.04em;
  font-size:14px;
  font-weight:500;
}
.stat-card .lbl{
  font-size:12px;
  letter-spacing:.08em;
  margin-top:14px;
  line-height:1.7;
  color:var(--ink-soft);
}
.project-body .ttl-en{
  color:var(--koke);
}
.project-body .ttl-en::before{
  background:var(--koke);
}
.project-body .ttl-jp em::after{
  background:var(--koke-tint);
}
.project-body .ttl-jp em{
  color:var(--koke-deep);
}
.project-body .lead{
  color:var(--ink-soft);
  font-size:14px;
  line-height:2.1;
  letter-spacing:.06em;
  margin-top:28px;
}

.project-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:80px;
}
.project-stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.stat-card{
  border:1px solid var(--line);
  position:relative;
  border-radius:2px;
  border-color:var(--line);
  border-top:3px solid var(--koke);
  background:#fff;
  padding:32px 24px 28px;
  text-align:left;
}
.stat-card .src{
  font-size:10px;
  letter-spacing:.06em;
  margin-top:10px;
  padding-top:10px;
  border-top:1px dashed var(--line);
  color:var(--ink-mute);
}
/* .section-deep 背景で沈まないよう #project スコープのみ色調整 */
#project .ttl-jp em{
  color:var(--koke-deep, #3f5c39);
}
#project .ttl-jp em::after{
  background:var(--koke, #6b8f5e);
  opacity:.34;
}
@media (max-width:880px){
  .stat-card .num{
    font-size: 24px;
  }
  .project-grid{
    grid-template-columns:1fr;
    gap:48px;
  }
}
/* /Section: project */

/* ============================== */
/* Section: column（コラム） */
/* ============================== */
.column-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:32px;
}
.col-feature,.col-card{
  background:#fff;
  border:1px solid var(--line);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .35s ease,box-shadow .35s ease;
}
.col-feature:hover,.col-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,0,0,.06);
}
.col-feature{
  grid-row:span 2;
  display:flex;
}
.col-feature .body,.col-card .body{
  padding:26px 24px;
  flex:1;
  display:flex;
  flex-direction:column;
}
.col-card .body{
  padding:18px 20px;
}
.col-tag{
  display:inline-block;
  font-family:var(--en);
  font-size:10px;
  font-weight:700;
  letter-spacing:.22em;
  color:var(--o);
  margin-bottom:10px;
  text-transform:uppercase;
}
.col-feature .col-feature-mark{
  background:var(--o);
  color:#fff;
  display:inline-block;
  padding:4px 10px;
  font-family:var(--en);
  font-size:10px;
  font-weight:700;
  letter-spacing:.22em;
  margin-bottom:14px;
}
@media (max-width:980px){
  .column-grid{
    grid-template-columns:1fr 1fr;
  }
  .col-feature{
    grid-row:auto;
    grid-column:span 2;
  }
}
@media (max-width:640px){
  .column-grid{
    grid-template-columns:1fr;
  }
  .col-feature{
    grid-column:auto;
  }
}
/* /Section: column */

/* ============================== */
/* Section: news（一覧の実体スタイルは common.css。ここは行レイアウトのみ） */
/* ============================== */
.news-item{
  display:grid;
  align-items:center;
  border-bottom:1px solid var(--line);
  transition:padding .3s ease;
  padding:24px 0;
  grid-template-columns:120px 1fr;
  gap:28px;
}
.news-item:hover{
  padding-left:8px;
}
@media (max-width:680px){
  .news-item{
    grid-template-columns:96px 1fr;
    gap:14px;
    padding:18px 0;
  }
}
@media (max-width:768px){
  .news-item{
    grid-template-columns:90px 1fr;
    gap:14px;
    padding:18px 0;
  }
}
/* /Section: news */

/* ============================== */
/* Section: bridge（オペ防波堤） */
/* ============================== */
.bridge-item .b-head .ttl{
  font-family:var(--serif);
  font-weight:700;
  color:var(--ink);
  font-size:15px;
  letter-spacing:.06em;
}
.bridge-item .desc{
  color:var(--ink-soft);
  padding-left:38px;
  font-size:13px;
  line-height:1.95;
  letter-spacing:.04em;
}

.bridge-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  align-items:start;
  gap:64px;
}
.bridge-list{
  display:grid;
  gap:14px;
}
.bridge-text{
  color:var(--ink-soft);
  font-size:14px;
  line-height:2.1;
  letter-spacing:.06em;
}
.bridge-text p{
  margin-top:18px;
}
.bridge-text p:first-child{
  margin-top:0;
  font-family:var(--serif);
  color:var(--ink);
  border-bottom:1px solid var(--line);
  font-size:16.5px;
  line-height:1.85;
  font-weight:500;
  padding-bottom:22px;
}
.bridge-text b{
  color:var(--ink);
  font-weight:700;
  background:linear-gradient(transparent 60%, rgba(232,154,46,.18) 60%);
  padding:0 1px;
}
.bridge-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:24px;
  font-family:var(--en);
  font-size:11.5px;
  letter-spacing:.18em;
  color:var(--o-deep);
  font-weight:700;
  text-decoration:none;
  padding:14px 22px;
  background:#fff;
  border:1px solid var(--o);
  border-radius:2px;
  transition:all .25s ease;
}
.bridge-link:hover{
  background:var(--o);
  color:#fff;
}
.bridge-item{
  padding:22px 26px;
  background:#fff;
  border-left:2px solid var(--o);
  border-top:1px solid var(--line);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.bridge-item .b-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:6px;
}
.bridge-item .b-head .icon{
  background:var(--o);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  width:26px;
  height:26px;
  font-size:12px;
  font-weight:600;
}
@media (max-width:880px){
  .bridge-grid{
    grid-template-columns:1fr;
    gap:40px;
  }
  .bridge-text{
    order:-1;
    padding:22px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:2px;
  }
  .bridge-text p:first-child{
    font-size:15px;
  }
}
@media (max-width:560px){
  .bridge-item .desc{
    padding-left:0;
    margin-top:8px;
    font-size:13.5px;
  }
  .bridge-item{
    padding:16px 18px;
  }
  .bridge-item .b-head{
    margin-bottom:0;
  }
}
/* /Section: bridge */

/* ============================== */
/* Section: footer-accent（トップのみのフッター装飾） */
/* ============================== */
.foot::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:60px;
  height:1px;
  background:var(--o);
  opacity:.5;
}
/* /Section: footer-accent */
