/* urjapan.com
 * urp.jp（別法人）と見た目が似ないよう、明朝の見出し・角のない直線的な造形・
 * 深緑と錆色（さびいろ）の配色で組んでいる。丸角カードやロゴマークの箱は使わない。
 */
:root {
  --forest: #1f3a30;
  --forest-2: #2e5244;
  --forest-ink: #173026;
  --sage: #eef1ea;
  --sage-2: #e3e8de;
  --rust: #a35a26;
  --rust-soft: #f5ebe1;
  --ink: #22282a;
  --muted: #5c6560;
  --line: #d9ddd6;
  --bg: #ffffff;
  --wrap: 1120px;
  --sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "BIZ UDPGothic", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  --serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--sans); font-size: 16px; line-height: 1.9; overflow-wrap: anywhere;
}
img { max-width: 100%; height: auto; }
a { color: var(--forest-2); text-underline-offset: .2em; }
a:hover { color: var(--rust); }
:focus-visible { outline: 3px solid var(--rust); outline-offset: 2px; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 12px; top: 12px; z-index: 100; background: #fff; padding: 8px 12px; }
.muted { color: var(--muted); }
.br-sp { display: none; }
@media (max-width: 640px) { .br-sp { display: inline; } .br-pc { display: none; } }

/* ---------- ボタン（角なし） ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  background: var(--forest); color: #fff; text-decoration: none; font-weight: 700; letter-spacing: .06em;
  padding: .85em 1.8em; border: 1px solid var(--forest); line-height: 1.4; transition: background .15s, color .15s;
}
.btn::after { content: "→"; font-weight: 400; }
.btn:hover { background: var(--rust); border-color: var(--rust); color: #fff; }
.btn-sm { padding: .55em 1.2em; font-size: .88rem; }
.btn-sm::after { content: none; }
.btn-lg { padding: 1em 2.4em; font-size: 1.02rem; }
.btn-outline { background: transparent; color: var(--forest); }
.btn-outline:hover { color: #fff; }
.btn-light { background: #fff; color: var(--forest); border-color: #fff; }
.link-arrow { font-weight: 700; text-decoration: none; color: var(--forest); border-bottom: 1px solid var(--rust); padding-bottom: 2px; }
.link-arrow::after { content: "　→"; color: var(--rust); }
.link-arrow:hover { color: var(--rust); }

/* ---------- ヘッダー ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--line); }
.header-inner { display: flex; align-items: center; gap: 28px; min-height: 76px; }
.logo { display: flex; align-items: baseline; gap: .5em; text-decoration: none; color: var(--forest-ink); margin-right: auto; font-family: var(--serif); }
.logo:hover { color: var(--forest-ink); }
.logo-corp { font-size: .78rem; font-weight: 500; }
.logo-name { font-size: 1.32rem; font-weight: 700; letter-spacing: .08em; }
.gnav { display: flex; align-items: center; gap: 28px; }
.gnav ul { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.gnav ul a { color: var(--ink); text-decoration: none; font-size: .93rem; font-weight: 500; letter-spacing: .04em; position: relative; padding: 4px 0; }
.gnav ul a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 1px; background: var(--rust); transition: right .2s; }
.gnav ul a:hover { color: var(--forest); }
.gnav ul a:hover::after { right: 0; }
body[data-nav="management"] .gnav a[data-sec="management"]::after,
body[data-nav="land"] .gnav a[data-sec="land"]::after,
body[data-nav="works"] .gnav a[data-sec="works"]::after,
body[data-nav="column"] .gnav a[data-sec="column"]::after,
body[data-nav="company"] .gnav a[data-sec="company"]::after { right: 0; }
.gnav-cta { display: flex; align-items: center; gap: 18px; }
.gnav-tel { display: flex; flex-direction: column; text-decoration: none; color: var(--forest-ink); line-height: 1.25; }
.gnav-tel-num { font-family: var(--serif); font-weight: 700; font-size: 1.15rem; letter-spacing: .04em; }
.gnav-tel-note { font-size: .68rem; color: var(--muted); }
.nav-toggle { display: none; }

@media (max-width: 1080px) { .gnav-tel { display: none; } }
@media (max-width: 900px) {
  .header-inner { min-height: 60px; }
  .logo-name { font-size: 1.12rem; }
  .logo-corp { font-size: .7rem; }
  .nav-toggle { display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; margin-right: -8px; }
  .nav-toggle-bar, .nav-toggle-bar::before, .nav-toggle-bar::after {
    display: block; width: 24px; height: 1.5px; background: var(--forest-ink); position: relative; transition: transform .2s, background .2s;
  }
  .nav-toggle-bar::before, .nav-toggle-bar::after { content: ""; position: absolute; left: 0; }
  .nav-toggle-bar::before { top: -7px; }
  .nav-toggle-bar::after { top: 7px; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bar { background: transparent; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bar::before { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bar::after { transform: translateY(-7px) rotate(-45deg); }
  .gnav {
    display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff;
    flex-direction: column; align-items: stretch; gap: 0; padding: 0 20px 24px; border-bottom: 1px solid var(--line);
  }
  .gnav.is-open { display: flex; }
  .gnav ul { flex-direction: column; gap: 0; }
  .gnav ul a { display: block; padding: 15px 0; border-bottom: 1px solid var(--line); font-size: 1rem; }
  .gnav ul a::after { content: "→"; position: static; background: none; float: right; color: var(--rust); }
  .gnav-cta { flex-direction: column; align-items: stretch; margin-top: 18px; gap: 12px; }
  .gnav-tel { display: flex; align-items: center; padding: 10px; border: 1px solid var(--line); }
  .gnav-cta .btn { padding: .9em; font-size: 1rem; }
}

/* ---------- トップ：ヒーロー ---------- */
.hero {
  position: relative; color: #fff; background-color: var(--forest);
  /* 等高線の模様（土地のイメージ。画像ファイルは使わない） */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='400' viewBox='0 0 600 400'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='1.2'%3E%3Cpath d='M-20 320c80-40 150-60 230-30s150 50 230 10 120-70 180-60'/%3E%3Cpath d='M-20 280c90-50 160-70 240-40s140 40 220 0 130-80 180-70'/%3E%3Cpath d='M-20 240c100-60 170-80 250-50s130 30 210-10 140-90 180-80'/%3E%3Cpath d='M-20 200c110-70 180-90 260-60s120 20 200-20 150-100 180-90'/%3E%3Cpath d='M-20 160c120-80 190-100 270-70s110 10 190-30 160-110 180-100'/%3E%3Cpath d='M-20 120c130-90 200-110 280-80s100 0 180-40 170-120 180-110'/%3E%3Cpath d='M-20 80c140-100 210-120 290-90s90-10 170-50 180-130 180-120'/%3E%3Cpath d='M-20 40c150-110 220-130 300-100s80-20 160-60'/%3E%3Cellipse cx='470' cy='330' rx='60' ry='26'/%3E%3Cellipse cx='470' cy='330' rx='100' ry='46'/%3E%3Cellipse cx='470' cy='330' rx='140' ry='66'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 900px auto; background-position: right -120px bottom -40px;
  padding: 96px 0 150px;
}
.hero-kicker { font-size: .92rem; letter-spacing: .12em; margin: 0 0 22px; color: #e9c9a8; }
.hero-title {
  font-family: var(--serif); font-weight: 700; font-size: clamp(2rem, 5vw, 3.4rem);
  line-height: 1.5; letter-spacing: .06em; margin: 0 0 28px;
}
.hero-lead { max-width: 38em; margin: 0; color: rgba(255,255,255,.86); font-size: 1rem; }

.entry-wrap { margin-top: -90px; position: relative; z-index: 2; }
.entry { display: grid; grid-template-columns: 1fr 1fr; gap: 0; background: #fff; box-shadow: 0 18px 40px rgba(23,48,38,.14); }
.entry-card {
  position: relative; display: flex; flex-direction: column; gap: 4px; padding: 34px 36px 30px 108px;
  text-decoration: none; color: var(--ink); background: #fff; transition: background .15s;
}
.entry-card + .entry-card { border-left: 1px solid var(--line); }
.entry-card:hover { background: var(--sage); color: var(--ink); }
.entry-no {
  position: absolute; left: 34px; top: 30px; font-family: var(--serif); font-size: 2.6rem; line-height: 1; color: var(--rust);
}
.entry-for { font-size: .82rem; color: var(--muted); letter-spacing: .04em; }
.entry-title { font-family: var(--serif); font-size: 1.55rem; font-weight: 700; color: var(--forest-ink); letter-spacing: .04em; }
.entry-list { font-size: .88rem; color: var(--muted); }
.entry-go { margin-top: 14px; font-size: .88rem; font-weight: 700; color: var(--forest); }
.entry-go::after { content: "　→"; color: var(--rust); }

.facts { display: grid; grid-template-columns: 1fr 1.2fr 1.3fr 1.3fr; margin: 56px 0 0; border-top: 1px solid var(--forest); border-bottom: 1px solid var(--line); }
.fact { padding: 20px 22px; border-left: 1px solid var(--line); }
.fact:first-child { border-left: 0; padding-left: 0; }
.fact dt { font-size: .78rem; color: var(--muted); letter-spacing: .06em; }
.fact dd { margin: 4px 0 0; font-family: var(--serif); font-weight: 700; font-size: 1rem; color: var(--forest-ink); line-height: 1.5; }
.fact dd.fact-big { font-size: 1.7rem; line-height: 1.2; }

@media (max-width: 820px) {
  .hero { padding: 56px 0 110px; background-size: 700px auto; }
  .hero-kicker { font-size: .78rem; letter-spacing: .02em; }
  .entry-wrap { margin-top: -70px; }
  .entry { grid-template-columns: 1fr; }
  .entry-card { padding: 24px 22px 22px 76px; }
  .entry-card + .entry-card { border-left: 0; border-top: 1px solid var(--line); }
  .entry-no { left: 22px; top: 22px; font-size: 2rem; }
  .entry-title { font-size: 1.3rem; }
  .facts { grid-template-columns: 1fr 1fr; margin-top: 36px; }
  .fact { padding: 14px 12px; border-top: 1px solid var(--line); }
  .fact:nth-child(odd) { border-left: 0; padding-left: 0; }
  .fact:nth-child(-n+2) { border-top: 0; }
}

/* ---------- セクション ---------- */
.sec { padding: 96px 0; }
.sec-tint { background: var(--sage); }
.sec-slim { padding: 36px 0; }
.sec-kicker { color: var(--rust); font-size: .85rem; font-weight: 700; letter-spacing: .12em; margin: 0 0 10px; }
.sec-title {
  font-family: var(--serif); font-weight: 700; font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.6;
  letter-spacing: .04em; margin: 0 0 28px; color: var(--forest-ink);
}
.sec-lead { max-width: 46em; margin: 0 0 36px; }
.sec-more { margin: 32px 0 0; }
.sec-more + .sec-more { margin-top: 20px; }
@media (max-width: 720px) { .sec { padding: 64px 0; } }

/* お悩み：カードにせず罫線で区切る */
.worries { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; border-top: 1px solid var(--forest); }
.worry { display: block; padding: 24px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.worry:hover { color: var(--ink); }
.worry:hover .worry-q { color: var(--rust); }
.worry-q { display: block; font-family: var(--serif); font-weight: 700; font-size: 1.18rem; color: var(--forest-ink); margin-bottom: 4px; transition: color .15s; }
.worry-q::after { content: "→"; float: right; color: var(--rust); font-family: var(--sans); font-weight: 400; }
.worry-a { display: block; color: var(--muted); font-size: .94rem; padding-right: 2em; }
@media (max-width: 720px) { .worries { grid-template-columns: 1fr; } }

/* 土地活用の選択肢：縦罫で 4 列 */
.options { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--forest); border-bottom: 1px solid var(--line); background: #fff; }
.option { padding: 26px 24px; border-left: 1px solid var(--line); }
.option:first-child { border-left: 0; }
.option-title { font-family: var(--serif); font-size: 1.08rem; margin: 0 0 10px; color: var(--forest-ink); }
.option p { margin: 0; font-size: .92rem; color: var(--muted); }
@media (max-width: 900px) {
  .options { grid-template-columns: 1fr 1fr; }
  .option:nth-child(3) { border-left: 0; }
  .option:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 520px) {
  .options { grid-template-columns: 1fr; }
  .option { border-left: 0; }
  .option + .option { border-top: 1px solid var(--line); }
}

.policy { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; align-items: start; }
.policy .sec-title { font-size: clamp(1.6rem, 3.2vw, 2.3rem); }
.policy-body { border-left: 1px solid var(--line); padding-left: 40px; }
.policy-body p { margin: 0 0 1.2em; }
@media (max-width: 820px) { .policy { grid-template-columns: 1fr; gap: 0; } .policy-body { border-left: 0; padding-left: 0; } }

.flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--forest); }
.flow-step { padding: 24px 24px 8px 0; }
.flow-step + .flow-step { padding-left: 24px; border-left: 1px solid var(--line); }
.flow-n { font-family: var(--serif); color: var(--rust); font-size: 1.5rem; line-height: 1; }
.flow-title { font-family: var(--serif); font-size: 1.1rem; margin: 12px 0 6px; color: var(--forest-ink); }
.flow-step p { margin: 0; font-size: .92rem; color: var(--muted); }
@media (max-width: 900px) {
  .flow { grid-template-columns: 1fr 1fr; }
  .flow-step:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 520px) {
  .flow { grid-template-columns: 1fr; }
  .flow-step, .flow-step + .flow-step { padding: 18px 0; border-left: 0; border-bottom: 1px solid var(--line); }
}

.notice { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 18px 0; font-size: .94rem; }
.notice p { margin: 0; }

/* ---------- 事例・コラムの一覧（罫線区切りのリスト） ---------- */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 32px; border-top: 1px solid var(--forest); }
.card { display: flex; flex-direction: column; gap: 6px; padding: 24px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.card:hover { color: var(--ink); }
.card:hover .card-title { color: var(--rust); }
.card-meta { font-size: .8rem; color: var(--rust); letter-spacing: .06em; }
.card-title { font-family: var(--serif); font-weight: 700; font-size: 1.12rem; line-height: 1.6; color: var(--forest-ink); transition: color .15s; }
.card-text { font-size: .9rem; color: var(--muted); }
@media (max-width: 900px) { .cards { grid-template-columns: 1fr; } }

/* ---------- 下層ページ ---------- */
.page-head { background: var(--forest); color: #fff; padding: 30px 0 52px; }
.crumbs ol { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; font-size: .78rem; color: rgba(255,255,255,.7); }
.crumbs li + li::before { content: "／"; margin: 0 6px 0 2px; opacity: .6; }
.crumbs a { color: rgba(255,255,255,.8); }
.crumbs a:hover { color: #fff; }
.page-title { font-family: var(--serif); font-size: clamp(1.7rem, 3.8vw, 2.5rem); line-height: 1.5; letter-spacing: .05em; margin: 0 0 14px; font-weight: 700; }
.page-lead { max-width: 44em; margin: 0; color: rgba(255,255,255,.86); }
.page-lead:empty { display: none; }
.byline { font-size: .8rem; color: rgba(255,255,255,.7); margin: 18px 0 0; }

.prose { padding-top: 56px; padding-bottom: 80px; max-width: 880px; }
.prose h2 {
  font-family: var(--serif); font-size: 1.55rem; line-height: 1.55; letter-spacing: .04em;
  margin: 2.6em 0 .9em; padding-bottom: .5em; border-bottom: 1px solid var(--forest); color: var(--forest-ink);
}
.prose h2:first-child { margin-top: 0; }
.prose h3 { font-family: var(--serif); font-size: 1.18rem; margin: 1.9em 0 .5em; color: var(--forest-ink); }
.prose h3::before { content: ""; display: inline-block; width: .6em; height: 1px; background: var(--rust); vertical-align: middle; margin-right: .5em; }
.prose p, .prose ul, .prose ol { margin: 0 0 1.25em; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li + li { margin-top: .3em; }
.note { background: var(--rust-soft); border-left: 3px solid var(--rust); padding: 16px 20px; margin: 0 0 1.5em; font-size: .95rem; }
.table-wrap { overflow-x: auto; margin: 0 0 1.8em; }
.prose table { width: 100%; border-collapse: collapse; font-size: .95rem; border-top: 2px solid var(--forest); }
.prose th, .prose td { border-bottom: 1px solid var(--line); padding: 14px 16px; text-align: left; vertical-align: top; }
.prose thead th { background: var(--sage); color: var(--forest-ink); font-weight: 700; }
.prose tbody th { width: 28%; white-space: nowrap; font-weight: 700; color: var(--forest-ink); }
@media (max-width: 600px) { .prose tbody th { white-space: normal; width: 34%; } .prose th, .prose td { padding: 12px 8px; } }

.plans { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 1.8em; border-top: 2px solid var(--forest); border-bottom: 1px solid var(--line); }
.plan { padding: 22px 20px; border-left: 1px solid var(--line); }
.plan:first-child { border-left: 0; padding-left: 0; }
.plan-em { background: var(--sage); padding-left: 20px !important; }
.plan-step { margin: 0 !important; font-family: var(--serif); font-size: .82rem; color: var(--rust); letter-spacing: .1em; }
.prose .plan-name { margin: 4px 0 6px; font-size: 1.12rem; }
.prose .plan-name::before { content: none; }
.plan-for { font-size: .85rem; color: var(--muted); margin: 0 0 10px !important; }
.plan ul { font-size: .88rem; padding-left: 1.2em; margin: 0 !important; }
@media (max-width: 960px) {
  .plans { grid-template-columns: 1fr 1fr; }
  .plan:nth-child(3) { border-left: 0; padding-left: 0; }
  .plan:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 520px) {
  .plans { grid-template-columns: 1fr; }
  .plan { border-left: 0; padding-left: 0; }
  .plan + .plan { border-top: 1px solid var(--line); }
}

.steps { list-style: none; padding: 0 !important; counter-reset: step; border-top: 2px solid var(--forest); }
.steps li { counter-increment: step; position: relative; padding: 18px 0 18px 72px; margin: 0 !important; border-bottom: 1px solid var(--line); }
.steps li::before {
  content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: 16px;
  font-family: var(--serif); font-size: 1.6rem; color: var(--rust); line-height: 1.2;
}
.prose .steps h3 { margin: 0 0 4px; }
.prose .steps h3::before { content: none; }
.steps p { margin: 0 !important; color: var(--muted); }
.tel-block a { font-family: var(--serif); font-size: 1.9rem; font-weight: 700; text-decoration: none; letter-spacing: .04em; margin-right: 12px; color: var(--forest-ink); }
.tel-block span { color: var(--muted); font-size: .9rem; }

/* ---------- フォーム ---------- */
.form { border-top: 2px solid var(--forest); padding: 28px 0 0; margin: 0 0 1.8em; }
.field { margin: 0 0 22px; }
.field label { display: block; font-weight: 700; margin: 0 0 6px; }
.req, .opt { display: inline-block; font-size: .7rem; padding: 0 7px; margin-left: 8px; vertical-align: 2px; border: 1px solid; }
.req { color: var(--rust); border-color: var(--rust); }
.opt { color: var(--muted); border-color: var(--line); }
.field input, .field select, .field textarea {
  width: 100%; font: inherit; padding: 12px 14px; border: 1px solid #bcc4bd; border-radius: 0; background: #fff; color: var(--ink);
}
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--forest); outline-offset: 0; border-color: var(--forest); }
.hp { position: absolute; left: -9999px; }
.form-privacy { font-size: .9rem; }
.form-submit { text-align: center; margin: 0 !important; }

/* ---------- CTA 帯・フッター ---------- */
.cta-band { background: var(--sage); padding: 64px 0; border-top: 1px solid var(--sage-2); }
.cta-band-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.cta-band-title { font-family: var(--serif); font-size: clamp(1.35rem, 2.6vw, 1.8rem); margin: 0 0 8px; color: var(--forest-ink); letter-spacing: .04em; }
.cta-band-text { margin: 0; color: var(--muted); max-width: 32em; }
.cta-band-actions { display: flex; align-items: center; gap: 28px; flex-shrink: 0; }
.cta-tel { display: flex; flex-direction: column; color: var(--forest-ink); text-decoration: none; line-height: 1.3; }
.cta-tel:hover { color: var(--rust); }
.cta-tel-label { font-size: .75rem; color: var(--muted); }
.cta-tel-num { font-family: var(--serif); font-size: 1.95rem; font-weight: 700; letter-spacing: .04em; }
.cta-tel-note { font-size: .75rem; color: var(--muted); }
.cta-band .btn-light { background: var(--forest); color: #fff; border-color: var(--forest); }
.cta-band .btn-light:hover { background: var(--rust); border-color: var(--rust); }
@media (max-width: 860px) {
  .cta-band-inner, .cta-band-actions { flex-direction: column; align-items: stretch; text-align: center; }
  .cta-band-actions { gap: 16px; }
}

.site-footer { background: var(--forest-ink); color: rgba(255,255,255,.8); padding: 56px 0 22px; font-size: .88rem; }
.site-footer a { color: rgba(255,255,255,.8); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 36px; }
.footer-co p { margin: 0 0 6px; }
.footer-name { font-family: var(--serif); font-weight: 700; color: #fff; font-size: 1.1rem; letter-spacing: .06em; }
.footer-lic { font-size: .78rem; opacity: .7; margin-top: 14px !important; }
.footer-h { color: #e9c9a8; font-size: .82rem; letter-spacing: .1em; margin: 0 0 12px; }
.footer-nav ul { list-style: none; margin: 0; padding: 0; }
.footer-nav li { margin: 0 0 7px; }
.copyright { text-align: center; font-size: .72rem; opacity: .55; margin: 40px 0 0; letter-spacing: .06em; }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-co { grid-column: 1 / -1; } }
@media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---------- 事例の写真（実写のみ） ---------- */
.photo { margin: 0 0 1.6em; }
.photo img { display: block; width: 100%; height: auto; background: var(--sage); }
.photo figcaption { font-size: .85rem; color: var(--muted); margin-top: 8px; padding-left: 10px; border-left: 2px solid var(--rust); }
.photo-main { margin-bottom: 2.4em; }
.photos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 0 0 1.6em; }
.photos .photo { margin: 0; }
.photos .photo img { aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width: 600px) { .photos { grid-template-columns: 1fr; } }

.card-img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: 10px; background: var(--sage); }
.card:hover .card-img { opacity: .92; }
