
:root {
  --paper: #f7f4ec;
  --white: #ffffff;
  --ink: #222222;
  --muted: #6a6963;
  --line: #d8d4ca;
  --accent: #e85b3f;
  --dark: #252523;
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.8;
  letter-spacing: .015em;
}
a { color: inherit; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  height: 76px;
  padding: 0 max(24px, calc((100vw - var(--max))/2));
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid rgba(216,212,202,.75);
  backdrop-filter: blur(12px);
}
.brand {
  font-size: 24px;
  font-weight: 800;
  text-decoration: none;
  letter-spacing: -.03em;
}
.nav { display: flex; align-items: center; gap: 30px; font-size: 14px; }
.nav a { text-decoration: none; }
.nav-cta { padding: 11px 17px; border: 1px solid var(--ink); transition: .2s ease; }
.nav-cta:hover { background: var(--accent); color: #fff; border-color: var(--accent); }

.section-grid,
.section-shell {
  width: min(calc(100% - 48px), var(--max));
  margin-inline: auto;
}
.hero {
  min-height: calc(100svh - 76px);
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: clamp(36px, 5vw, 84px);
  align-items: center;
  padding-block: 78px 94px;
}
.eyebrow,
.section-number {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hero h1 {
  margin: 22px 0 30px;
  font-size: clamp(58px, 6vw, 92px);
  line-height: 1.08;
  letter-spacing: -.055em;
}
.accent { color: var(--accent); }
.hero-lead { max-width: 720px; font-size: 18px; }
.hero-rhythm { margin: 32px 0 26px; font-weight: 800; font-size: 18px; }
.text-link { text-decoration: none; border-bottom: 1px solid var(--ink); padding-bottom: 4px; font-size: 14px; }

.media-placeholder {
  background:
    linear-gradient(135deg, rgba(232,91,63,.08), rgba(37,37,35,.04)),
    repeating-linear-gradient(45deg, #f3f0e8, #f3f0e8 10px, #eeeadf 10px, #eeeadf 20px);
  border: 1px solid var(--line);
  color: var(--muted);
  display: grid;
  place-items: center;
  min-height: 260px;
}
.hero-media { margin: 0; min-height: 590px; position: relative; }
.hero-media figcaption {
  position: absolute;
  left: -26px;
  bottom: 38px;
  padding: 14px 18px;
  background: var(--white);
  border-left: 4px solid var(--accent);
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", YuMincho, serif;
  font-size: 22px;
}
.placeholder-note { text-align: center; font-size: 13px; letter-spacing: .08em; }

.paper {
  width: 100%;
  max-width: none;
  padding: 120px max(24px, calc((100vw - var(--max))/2));
  background: var(--paper);
}
.ordinary-head,
.method-head { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: end; margin-top: 26px; }
.ordinary h2,
.method h2 {
  margin: 0;
  font-size: clamp(42px, 4.5vw, 70px);
  line-height: 1.18;
  letter-spacing: -.045em;
}
.ordinary-head p,
.method-head p { margin: 0; color: #454540; font-size: 17px; }

.question-editorial {
  margin-top: 88px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas:
    "qa pa"
    "pb qb"
    "qc qc";
  gap: 26px 36px;
  align-items: center;
}
.question {
  margin: 0;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", YuMincho, serif;
  font-weight: 700;
  line-height: 1.45;
  font-size: clamp(28px, 3.1vw, 48px);
}
.question-a { grid-area: qa; }
.question-b { grid-area: qb; }
.question-c { grid-area: qc; color: var(--accent); text-align: center; padding: 44px 0 12px; }
.photo-a { grid-area: pa; min-height: 360px; }
.photo-b { grid-area: pb; min-height: 360px; }
.ordinary-summary { max-width: 860px; margin: 76px auto 0; font-size: 18px; }
.keywords { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0; }
.keywords span,
.micro-tags span { border: 1px solid var(--line); background: rgba(255,255,255,.6); padding: 8px 12px; font-size: 13px; }
.note-strong { font-weight: 800; font-size: 20px; }

.method { padding-block: 128px; }
.method-gallery { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 70px; }
.method-card { margin: 0; }
.method-card .media-placeholder { min-height: 220px; }
.method-card figcaption { padding: 16px 2px 0; display: flex; flex-direction: column; }
.method-card b { font-size: 20px; }
.method-card small { color: var(--muted); font-size: 12px; }
.process {
  margin: 82px 0 58px;
  display: grid;
  grid-template-columns: repeat(7,auto);
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 28px 0;
}
.process div { display: flex; align-items: baseline; gap: 10px; }
.process span { font-size: 11px; color: var(--accent); font-weight: 800; }
.process b { font-size: 24px; }
.process i { color: var(--muted); font-style: normal; }
.method-bottom { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: end; }
.micro-tags { display: flex; gap: 9px; flex-wrap: wrap; }
.method-statement h3 { margin: 0 0 12px; font-size: clamp(34px,3.7vw,58px); line-height: 1.18; letter-spacing: -.04em; }
.method-statement p { margin: 0; font-size: 18px; }
.method-statement strong { display: inline-block; margin-top: 12px; font-size: 20px; }

.preview-end {
  background: var(--dark);
  color: #fff;
  padding: 84px 24px;
  text-align: center;
}
.preview-end p { font-size: 11px; letter-spacing: .16em; color: #c7c3bb; }
.preview-end h2 { margin: 8px 0 0; font-size: clamp(30px,4vw,54px); }

@media (max-width: 900px) {
  .site-header { height: 66px; }
  .nav a:not(.nav-cta) { display: none; }
  .nav-cta { padding: 8px 12px; }
  .hero { grid-template-columns: 1fr; min-height: auto; padding-block: 64px 78px; }
  .hero h1 { font-size: clamp(44px, 12vw, 64px); }
  .hero-lead { font-size: 16px; }
  .hero-media { min-height: 430px; }
  .hero-media figcaption { left: 16px; right: 16px; bottom: 18px; font-size: 18px; }
  .ordinary-head,
  .method-head,
  .method-bottom { grid-template-columns: 1fr; gap: 30px; }
  .ordinary h2,
  .method h2 { font-size: clamp(38px, 10vw, 56px); }
  .question-editorial {
    grid-template-columns: 1fr;
    grid-template-areas: "qa" "pa" "qb" "pb" "qc";
    gap: 26px;
  }
  .question { font-size: clamp(27px, 7.6vw, 40px); }
  .question-c { text-align: left; padding: 18px 0; }
  .method-gallery { grid-template-columns: 1fr 1fr; }
  .process { grid-template-columns: 1fr; gap: 14px; justify-items: start; }
  .process i { transform: rotate(90deg); padding-left: 10px; }
}

@media (max-width: 560px) {
  .section-grid,
  .section-shell { width: min(calc(100% - 32px), var(--max)); }
  .paper { padding-inline: 16px; padding-block: 88px; }
  .hero { padding-top: 48px; }
  .hero h1 { font-size: 45px; }
  .hero-rhythm { font-size: 16px; }
  .hero-media { min-height: 340px; }
  .ordinary-summary { font-size: 16px; }
  .method { padding-block: 90px; }
  .method-gallery { grid-template-columns: 1fr; gap: 28px; }
  .method-card .media-placeholder { min-height: 250px; }
  .process b { font-size: 22px; }
  .preview-end { padding: 70px 20px; }
}

/* Prototype refinements */
.site-header { flex-wrap: nowrap; }
.brand, .nav a { white-space: nowrap; }
@media (min-width: 901px) {
  .nav a + a::before {
    content: "／";
    color: var(--line);
    margin-right: 30px;
  }
  .nav-cta::before { content: none !important; }
}


/* --- Full prototype additions --- */
.full-paper{width:100%;padding-inline:max(24px,calc((100vw - var(--max))/2))}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 20px;text-decoration:none;border:1px solid var(--ink);font-size:14px;font-weight:700;transition:.2s ease}.btn-primary:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-secondary:hover{background:var(--ink);color:#fff}.tag-row{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}.tag-row span{border:1px solid var(--line);background:rgba(255,255,255,.64);padding:7px 11px;font-size:12px}
.services{background:var(--paper);padding-block:124px 132px}.services-intro,.cases-title,.tugumi-top{display:grid;grid-template-columns:1fr .8fr;gap:60px;align-items:end}.services h2,.cases-title h2,.tugumi h2,.values h2,.message h2,.final-cta h2{margin:0;font-size:clamp(42px,4.5vw,70px);line-height:1.18;letter-spacing:-.045em}.services-intro p,.cases-title p{margin:0;font-size:17px;color:#484842}.services-cards{margin-top:70px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{background:rgba(255,255,255,.72);border-top:4px solid var(--ink);padding:30px 28px 28px;display:flex;flex-direction:column}.service-card:nth-child(2){border-top-color:var(--accent)}.service-index{color:var(--accent);font-weight:900;font-size:34px;line-height:1}.service-card h3{margin:18px 0 2px;font-size:30px;line-height:1.2}.service-name{margin:0 0 24px;font-size:14px;font-weight:800;color:var(--muted)}.service-card .media-placeholder{min-height:180px;margin-bottom:22px}.service-card>p{font-size:15px}.service-card h4{margin:20px 0 8px;font-size:13px;letter-spacing:.08em}.service-card ul{margin:0;padding-left:1.2em;font-size:14px}.service-card .text-link{margin-top:auto;align-self:flex-start;padding-top:22px}.services-note{margin-top:34px;padding-top:26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;align-items:baseline}.services-note strong{font-size:22px}.services-note p{margin:0;color:var(--muted)}
.cases{padding-block:132px}.cases-title{margin-bottom:76px}.case-block{padding:74px 0;border-top:1px solid var(--line)}.case-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:58px;align-items:center}.case-grid.reverse{grid-template-columns:.95fr 1.05fr}.case-grid.reverse .case-copy{order:1}.case-grid.reverse .case-visual{order:2}.case-visual{min-height:420px}.case-label{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.case-copy h3{margin:14px 0 18px;font-size:clamp(34px,3.3vw,54px);line-height:1.25;letter-spacing:-.035em}.story-flow{margin-top:24px;border-left:2px solid var(--accent);padding-left:20px}.story-flow b{display:block;margin-bottom:5px}.case-logistics{background:var(--dark);color:#fff;padding:78px max(24px,calc((100vw - var(--max))/2));margin-top:18px}.case-logistics .case-label{color:#c6c1b8}.logistics-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center}.case-logistics h3{margin:14px 0 22px;font-size:clamp(38px,4vw,66px);line-height:1.18;letter-spacing:-.045em}.case-logistics p{color:#dedad2}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{border-top:1px solid #676760;padding-top:22px}.stat strong{display:block;color:var(--accent);font-size:clamp(58px,7vw,96px);line-height:1;letter-spacing:-.05em}.stat span{color:#f5f1e8;font-size:14px}.case-footnote{margin-top:22px;font-size:11px;color:#aaa69f}.industry-closer{margin-top:100px;padding-top:84px;border-top:1px solid var(--line);padding-bottom:120px}.industry-closer h3{margin:0 0 48px;font-size:clamp(40px,4.2vw,64px);line-height:1.18}.industry-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.industry{border-top:2px solid var(--ink);padding-top:18px}.industry b{font-size:20px}.industry p{font-size:13px;color:var(--muted)}.industry-message{margin:52px 0 0;max-width:800px;font-size:22px;font-weight:800}
.tugumi{background:var(--paper);padding-block:132px}.stats-light{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stat-light{border-top:2px solid var(--ink);padding-top:16px}.stat-light strong{display:block;font-size:clamp(52px,6vw,82px);line-height:1;color:var(--accent);letter-spacing:-.05em}.stat-light span{font-size:13px}.tugumi-gallery{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:14px;margin-top:70px}.tugumi-gallery .media-placeholder:nth-child(1){min-height:430px}.tugumi-gallery .media-placeholder:nth-child(n+2){min-height:300px}.tugumi-story{margin-top:78px;display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.tugumi-story h3{margin:0;font-size:clamp(34px,3.6vw,54px);line-height:1.2}.big-quote{font-size:clamp(26px,2.6vw,40px);line-height:1.45;font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;margin:36px 0;color:var(--accent)}.tugumi-manifesto{margin-top:86px;padding-top:60px;border-top:1px solid var(--line);display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:end}.tugumi-manifesto h3{margin:0;font-size:clamp(42px,4.3vw,66px);line-height:1.18}.tugumi-manifesto p{margin:0;font-size:17px}
.values{padding:150px max(24px,calc((100vw - 900px)/2));text-align:center}.values .section-number{text-align:center}.values h2{margin-bottom:14px}.kyouiku{color:var(--accent);font-weight:800;letter-spacing:.15em;margin-bottom:42px}.values p{max-width:760px;margin:0 auto 18px;font-size:17px}.values strong{display:block;margin-top:38px;font-size:24px}
.message{background:#eee9df;padding-block:132px}.message-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:76px;align-items:start}.message-photo{min-height:650px;position:sticky;top:110px}.message h2{margin:12px 0 38px}.message-body{max-width:760px}.message-body p{margin:0 0 22px}.pullquote{margin:42px 0!important;padding:28px 0;border-top:1px solid #aaa59c;border-bottom:1px solid #aaa59c;font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;font-size:clamp(24px,2.4vw,36px);line-height:1.5}.signature{margin-top:48px!important;font-weight:800}
.final-cta{background:var(--dark);color:#fff;padding:128px max(24px,calc((100vw - 980px)/2));text-align:center}.final-cta h2{margin-bottom:34px}.final-cta .questions{color:#d0ccc4;font-size:16px;display:grid;gap:5px;margin:0 auto 38px}.final-cta .lead{font-size:22px;font-weight:800}.final-cta .btn-row{justify-content:center}.final-cta .btn-primary,.final-cta .btn-secondary{color:#fff;border-color:#fff}.final-cta .btn-primary{background:var(--accent);border-color:var(--accent)}.small-note{color:#aaa69f;font-size:12px;margin-top:28px}
.site-footer{padding:70px max(24px,calc((100vw - var(--max))/2)) 34px;background:#151514;color:#e7e3da}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:60px}.site-footer h3{margin:0 0 22px;font-size:24px}.site-footer h4{margin:0 0 14px;font-size:11px;letter-spacing:.16em;color:#949189}.site-footer p,.site-footer a{color:#c8c4bc;font-size:13px;text-decoration:none}.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.footer-bottom{margin-top:54px;padding-top:22px;border-top:1px solid #3c3b38;font-size:11px;color:#89867e;display:flex;justify-content:space-between}
@media(max-width:900px){.services-intro,.cases-title,.case-grid,.case-grid.reverse,.logistics-grid,.tugumi-top,.tugumi-story,.tugumi-manifesto,.message-grid{grid-template-columns:1fr;gap:30px}.case-grid.reverse .case-copy,.case-grid.reverse .case-visual{order:initial}.services-cards{grid-template-columns:1fr}.industry-grid{grid-template-columns:1fr 1fr}.tugumi-gallery{grid-template-columns:1fr 1fr}.tugumi-gallery .media-placeholder:nth-child(1){grid-column:1/-1}.message-photo{position:static;min-height:460px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>:first-child{grid-column:1/-1}}
@media(max-width:560px){.full-paper{padding-inline:16px}.services,.cases,.tugumi,.message{padding-block:90px}.service-card{padding:25px 20px}.case-block{padding:54px 0}.case-visual{min-height:290px}.case-logistics{padding:72px 16px}.stats{grid-template-columns:1fr;gap:30px}.industry-grid{grid-template-columns:1fr}.tugumi-gallery{grid-template-columns:1fr}.tugumi-gallery .media-placeholder:nth-child(1){grid-column:auto;min-height:300px}.values{padding:100px 16px;text-align:left}.values .section-number{text-align:left}.message-photo{min-height:330px}.final-cta{padding:90px 16px;text-align:left}.final-cta .btn-row{justify-content:flex-start}.footer-grid{grid-template-columns:1fr}.footer-grid>:first-child{grid-column:auto}.footer-bottom{display:block}.services-note{display:block}}



/* ===== Photo-integrated version ===== */
.brand { display:flex; align-items:center; gap:10px; }
.brand img { width:40px; height:40px; object-fit:contain; border-radius:2px; }
.brand span { line-height:1; }

.photo-frame {
  position: relative;
  overflow: hidden;
  background: #e9e4da;
  border: 1px solid var(--line);
}
.photo-frame > img {
  width: 100%;
  height: 100%;
  max-width: none;
  display: block;
  object-fit: cover;
}
.hero-media.photo-frame { border: 0; }
.hero-media.photo-frame > img { object-position: 52% center; }
.photo-a > img { object-position: center center; }
.photo-b > img { object-position: center center; }

.method-photo { min-height: 220px; }
.method-photo img { min-height: 220px; }
.service-photo { min-height: 180px; margin-bottom: 22px; }
.service-photo img { min-height: 180px; }
.case-visual.photo-frame img { min-height: 420px; }

.construction-card-visual,
.construction-case {
  position: relative;
  overflow: hidden;
  background: #d8d2c7;
}
.construction-card-visual {
  min-height: 180px;
  margin-bottom: 22px;
}
.construction-card-visual img,
.construction-case img {
  width: 100%;
  height: 100%;
  max-width: none;
  display: block;
  object-fit: cover;
}
.construction-card-visual img {
  position:absolute; inset:0;
  object-position: center center;
}
.construction-mask {
  position:absolute;
  inset:0 auto 0 0;
  width:42%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:4px;
  padding:18px;
  background:linear-gradient(90deg, rgba(37,37,35,.98), rgba(37,37,35,.88));
  color:#fff;
}
.construction-mask span { font-size:14px; font-weight:800; }
.construction-mask small { font-size:10px; color:#bbb7af; line-height:1.45; }

.construction-case {
  min-height: 420px;
}
.construction-case img {
  position:absolute; inset:0;
  object-position:center center;
}
.construction-case-mask {
  position:absolute;
  inset:0 auto 0 0;
  width:38%;
  padding:24px 20px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background:linear-gradient(90deg, rgba(247,244,236,.99), rgba(247,244,236,.92));
  border-right:1px solid var(--line);
}
.construction-case-mask span {
  color:var(--accent);
  font-size:12px;
  font-weight:800;
  margin-bottom:7px;
}
.construction-case-mask b {
  font-size:18px;
  line-height:1.45;
}

.logistics-photo {
  height: 210px;
  margin-top: 28px;
  border-color:#4a4a46;
}
.logistics-photo img { object-position:center 48%; }

.tugumi-gallery figure { margin:0; }
.tugumi-gallery figure img { min-height:inherit; object-fit:cover; }
.tugumi-gallery figcaption,
.message-photo figcaption {
  position:absolute;
  left:14px; bottom:12px;
  padding:7px 10px;
  background:rgba(255,255,255,.92);
  font-size:11px;
  font-weight:700;
}
.tugumi-gallery figure:nth-child(1) img { object-position:center center; }
.tugumi-gallery figure:nth-child(2) img { object-position:center center; }
.tugumi-gallery figure:nth-child(3) img { object-position:center center; }

.message-photo img { min-height:650px; object-position:center center; }

@media (max-width: 900px) {
  .brand img { width:34px; height:34px; }
  .construction-case-mask { width:46%; }
  .message-photo img { min-height:460px; }
}
@media (max-width: 560px) {
  .brand span { display:none; }
  .construction-mask { width:55%; }
  .construction-case { min-height:320px; }
  .construction-case-mask {
    width:62%;
    padding:18px 14px;
  }
  .case-visual.photo-frame img { min-height:290px; }
  .method-photo, .method-photo img { min-height:250px; }
  .message-photo img { min-height:330px; }
}


/* ===== v2 update: new hero + unified image sizing by section ===== */

/* Hero */
.hero-media {
  min-height: 0 !important;
  aspect-ratio: 16 / 9;
}
.hero-media.photo-frame > img {
  object-position: center center;
}

/* Section 01: WHY */
.photo-a,
.photo-b {
  min-height: 0 !important;
  aspect-ratio: 4 / 3;
}
.photo-a > img,
.photo-b > img {
  height: 100%;
}

/* Section 02: HOW */
.method-gallery {
  align-items: start;
}
.method-card .photo-frame,
.method-photo {
  min-height: 0 !important;
  aspect-ratio: 4 / 3;
}
.method-card .photo-frame > img,
.method-photo > img {
  height: 100%;
}

/* Section 03: SERVICES */
.services-cards {
  align-items: start;
}
.service-photo,
.construction-card-visual {
  min-height: 0 !important;
  aspect-ratio: 4 / 3;
}
.service-photo img,
.construction-card-visual img {
  height: 100%;
}

/* Section 04: CASES */
.case-visual,
.construction-case {
  min-height: 0 !important;
  aspect-ratio: 4 / 3;
}
.case-visual img,
.construction-case img {
  height: 100%;
}
.logistics-photo {
  min-height: 0 !important;
  aspect-ratio: 16 / 10;
  height: auto;
}

/* Section 05: tugumi */
.tugumi-gallery {
  grid-template-columns: repeat(3, 1fr) !important;
}
.tugumi-gallery figure {
  min-height: 0 !important;
  aspect-ratio: 4 / 3;
}
.tugumi-gallery figure img {
  height: 100%;
}

/* Section 07: message */
.message-photo {
  min-height: 0 !important;
  aspect-ratio: 4 / 5;
}
.message-photo img {
  height: 100%;
}

/* Mobile tuning */
@media (max-width: 900px) {
  .tugumi-gallery {
    grid-template-columns: 1fr !important;
  }
  .tugumi-gallery figure {
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 560px) {
  .hero-media {
    aspect-ratio: 5 / 4;
  }
  .photo-a,
  .photo-b,
  .method-card .photo-frame,
  .method-photo,
  .service-photo,
  .construction-card-visual,
  .case-visual,
  .construction-case,
  .tugumi-gallery figure {
    aspect-ratio: 4 / 3;
  }
  .message-photo {
    aspect-ratio: 4 / 5;
  }
}


/* =========================================================
   v3 DESIGN REFINEMENT
   - Hero image uses its intended left-side copy space
   - Photo ratios stay unified by section
   - Representative photo preserves the surrounding people
   - Editorial rhythm / readability tightened
   ========================================================= */

/* HERO — use the generated image as one editorial canvas */
@media (min-width: 901px) {
  .hero {
    position: relative;
    display: block !important;
    width: min(calc(100% - 48px), var(--max));
    min-height: 0 !important;
    aspect-ratio: 16 / 9;
    padding: 0 !important;
    margin-top: 28px;
    margin-bottom: 62px;
    overflow: hidden;
    background: var(--paper);
  }

  .hero-media {
    position: absolute !important;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    aspect-ratio: auto !important;
    border: 0 !important;
    z-index: 0;
  }

  .hero-media > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center !important;
  }

  .hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
      linear-gradient(90deg,
        rgba(255,255,255,.98) 0%,
        rgba(255,255,255,.92) 28%,
        rgba(255,255,255,.57) 46%,
        rgba(255,255,255,.08) 63%,
        rgba(255,255,255,0) 76%);
    pointer-events: none;
  }

  .hero-copy-overlay {
    position: relative;
    z-index: 2;
    width: 55%;
    max-width: 700px;
    padding: clamp(58px, 6vw, 92px) 0 54px clamp(26px, 3vw, 48px);
  }

  .hero h1 {
    font-size: clamp(54px, 5.3vw, 82px);
    max-width: 720px;
    margin-top: 18px;
    margin-bottom: 26px;
  }

  .hero-lead {
    max-width: 650px;
    font-size: 17px;
    line-height: 1.9;
  }

  .hero-rhythm {
    margin-top: 24px;
    font-size: 17px;
  }

  .hero-media figcaption {
    left: auto !important;
    right: 24px;
    bottom: 22px;
    z-index: 3;
    font-size: 16px;
    padding: 10px 14px;
    background: rgba(255,255,255,.92);
  }
}

/* Mobile/tablet: retain clear copy first, image second */
@media (max-width: 900px) {
  .hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    aspect-ratio: auto !important;
    margin-top: 0;
  }
  .hero-copy-overlay {
    width: 100%;
    padding: 0;
  }
  .hero-media {
    position: relative !important;
    inset: auto !important;
    width: 100%;
    aspect-ratio: 16 / 10 !important;
  }
  .hero-media::after {
    display: none;
  }
  .hero-media figcaption {
    left: 14px !important;
    right: auto !important;
  }
}

/* Section rhythm: all images within one visual group feel like a set */
.question-editorial .photo-frame,
.method-gallery .photo-frame,
.services-cards .photo-frame,
.services-cards .construction-card-visual,
.case-block .case-visual,
.tugumi-gallery .photo-frame {
  box-shadow: none;
}

/* WHY — same crop height, visual alignment */
.photo-a,
.photo-b {
  aspect-ratio: 4 / 3 !important;
}
.photo-a img,
.photo-b img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* HOW — exact same image boxes */
.method-gallery {
  grid-auto-rows: auto;
}
.method-card .photo-frame {
  width: 100%;
  aspect-ratio: 4 / 3 !important;
}
.method-card .photo-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.method-card figcaption {
  min-height: 70px;
}

/* SERVICES — equal visual height and equal card rhythm */
.services-cards {
  align-items: stretch !important;
}
.service-card {
  height: 100%;
}
.service-photo,
.construction-card-visual {
  width: 100%;
  aspect-ratio: 4 / 3 !important;
}
.service-photo img,
.construction-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* CASES — one editorial visual standard */
.case-visual,
.construction-case {
  width: 100%;
  aspect-ratio: 4 / 3 !important;
}
.case-visual img,
.construction-case img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* TUGUMI — intentionally equal, like a magazine contact sheet */
.tugumi-gallery {
  grid-template-columns: repeat(3, 1fr) !important;
  align-items: stretch;
}
.tugumi-gallery figure {
  width: 100%;
  aspect-ratio: 4 / 3 !important;
}

/* MESSAGE — keep the three-person context instead of cropping to portrait */
.message-grid {
  grid-template-columns: .9fr 1.1fr;
}
.message-photo {
  aspect-ratio: 4 / 3 !important;
  min-height: 0 !important;
}
.message-photo img {
  width: 100%;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover;
  object-position: center center;
}
.message-photo figcaption {
  font-size: 11px;
}

/* Slightly stronger editorial dividers without adding decoration */
.case-block,
.industry-closer,
.tugumi-manifesto {
  border-color: #cbc6bc;
}

/* Improve long-text readability */
.message-body {
  max-width: 720px;
}
.message-body p {
  line-height: 2;
}

/* Mobile uniformity */
@media (max-width: 900px) {
  .tugumi-gallery {
    grid-template-columns: 1fr !important;
  }
  .message-grid {
    grid-template-columns: 1fr !important;
  }
  .message-photo {
    aspect-ratio: 4 / 3 !important;
    position: static !important;
  }
}

@media (max-width: 560px) {
  .hero-media {
    aspect-ratio: 4 / 3 !important;
  }
  .hero h1 {
    font-size: 44px;
  }
}


/* =========================================================
   v4 READABILITY / CASE / FLOW / LOGISTICS
   ========================================================= */

/* Let headings wrap naturally and beautifully instead of forced <br> */
h1, h2, h3 {
  text-wrap: balance;
}
p, li {
  text-wrap: pretty;
}
.hero h1,
.ordinary h2,
.method h2,
.services h2,
.cases-title h2,
.tugumi h2,
.values h2,
.message h2,
.final-cta h2 {
  line-height: 1.22;
}
.ordinary-head p,
.method-head p,
.services-intro p,
.cases-title p {
  max-width: 44rem;
  line-height: 1.95;
}
.case-copy p,
.tugumi-story p,
.tugumi-manifesto p {
  line-height: 1.95;
}

/* CASE label: clearly reads as a case study */
.case-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.case-kicker span {
  display: inline-block;
  font-size: 22px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .06em;
  color: var(--accent);
}
.case-kicker b {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid var(--ink);
  font-size: 15px;
  line-height: 1;
  letter-spacing: .08em;
}
.case-kicker-dark span {
  color: #ff8a68;
}
.case-kicker-dark b {
  border-color: #b9b5ad;
  color: #fff;
}

/* Overall flow */
.overall-flow {
  padding-block: 105px;
  background: #fff;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.flow-intro {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 58px;
  align-items: end;
}
.flow-intro h2 {
  margin: 0;
  font-size: clamp(38px, 4vw, 62px);
  line-height: 1.2;
  letter-spacing: -.04em;
  text-wrap: balance;
}
.flow-intro p {
  margin: 0;
  max-width: 38rem;
  color: var(--muted);
  line-height: 1.9;
}
.flow-steps {
  display: grid;
  grid-template-columns: repeat(11, auto);
  gap: 8px;
  align-items: stretch;
  margin-top: 58px;
}
.flow-step {
  min-width: 0;
  padding: 20px 15px 18px;
  border-top: 3px solid var(--ink);
  background: var(--paper);
}
.flow-step:nth-of-type(5) {
  border-top-color: var(--accent);
}
.flow-step span {
  display: block;
  color: var(--accent);
  font-size: 12px;
  font-weight: 900;
  margin-bottom: 8px;
}
.flow-step b {
  display: block;
  font-size: 18px;
  line-height: 1.35;
  margin-bottom: 8px;
}
.flow-step small {
  display: block;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}
.flow-steps i {
  align-self: center;
  color: #aaa69f;
  font-style: normal;
  font-size: 18px;
}

/* Logistics result panel: introduce the result before the big numbers */
.results-panel {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 30px 28px;
  background: rgba(255,255,255,.06);
  border: 1px solid #54544f;
}
.results-head {
  padding-bottom: 22px;
  margin-bottom: 24px;
  border-bottom: 1px solid #66665f;
}
.results-head span {
  display: block;
  color: #ff8a68;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .16em;
  margin-bottom: 8px;
}
.results-head p {
  margin: 0;
  color: #e8e3da;
  font-size: 15px;
  line-height: 1.7;
}
.results-panel .stats {
  gap: 18px;
}
.results-panel .stat {
  padding: 18px 0 0;
}
.results-panel .stat small {
  display: block;
  margin-bottom: 8px;
  color: #bbb7af;
  font-size: 11px;
  letter-spacing: .1em;
}
.results-panel .stat strong {
  font-size: clamp(54px, 6vw, 82px);
}
.results-panel .stat span {
  display: block;
  margin-top: 5px;
  color: #fff;
  font-size: 14px;
}

/* Slightly increase case heading clarity */
.case-copy h3,
.case-logistics h3 {
  margin-top: 10px;
}
.case-copy h3 {
  font-size: clamp(32px, 3vw, 48px);
}
.case-logistics h3 {
  font-size: clamp(36px, 3.7vw, 58px);
}

/* Mobile readability */
@media (max-width: 900px) {
  .flow-intro {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .flow-steps {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .flow-steps i {
    transform: rotate(90deg);
    justify-self: start;
    margin: 7px 0 7px 18px;
  }
  .flow-step {
    padding: 18px 16px;
  }
  .case-kicker span {
    font-size: 20px;
  }
  .results-panel {
    margin-top: 18px;
  }
}

@media (max-width: 560px) {
  .overall-flow {
    padding-block: 78px;
  }
  .flow-intro h2 {
    font-size: 36px;
  }
  .case-kicker {
    margin-bottom: 14px;
  }
  .case-kicker span {
    font-size: 19px;
  }
  .case-kicker b {
    font-size: 13px;
  }
  .results-panel {
    padding: 24px 18px;
  }
}


/* =========================================================
   v5 EDITORIAL TITLE BREAKS
   Large headlines break at punctuation / semantic boundaries.
   ========================================================= */
.title-line {
  display: block;
}

h1 .title-line,
h2 .title-line,
h3 .title-line {
  text-wrap: pretty;
}

/* Keep editorial lines visually connected */
h1 .title-line + .title-line,
h2 .title-line + .title-line,
h3 .title-line + .title-line {
  margin-top: .02em;
}

/* On narrow screens, each semantic line may wrap internally if necessary,
   but the primary line break remains the editorial punctuation boundary. */
@media (max-width: 560px) {
  .title-line {
    max-width: 100%;
  }
}

.contact-section{padding-block:118px 128px;background:var(--dark);color:#fff}.contact-section .section-number{color:#aaa69f}.contact-intro{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end}.contact-intro h2{margin:0;font-size:clamp(42px,4.5vw,70px);line-height:1.2;letter-spacing:-.045em}.contact-intro-copy{color:#d7d2ca;font-size:16px}.contact-intro-copy p{margin:0 0 10px}.contact-intro-copy strong{color:#fff;font-size:20px}.contact-layout{margin-top:74px;display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:start}.contact-side{position:sticky;top:110px}.contact-side .eyebrow{color:#aaa69f}.contact-prompts{margin-top:24px;border-top:1px solid #565650}.contact-prompts p{margin:0;padding:15px 0;border-bottom:1px solid #565650;font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;font-size:20px;line-height:1.55}.contact-side-note{margin-top:32px;padding-top:20px}.contact-side-note strong{display:block;font-size:17px}.contact-side-note p{margin:8px 0 0;color:#aaa69f;font-size:13px}.contact-phone{margin-top:42px;padding-top:24px;border-top:1px solid #565650}.contact-phone span{display:block;color:#aaa69f;font-size:12px;margin-bottom:6px}.contact-phone a{color:#fff;text-decoration:none;font-size:28px;font-weight:800}.contact-form{background:var(--paper);color:var(--ink);padding:42px}.form-row{margin-bottom:28px}.form-row label,.interest-fieldset legend{display:block;margin-bottom:9px;font-size:14px;font-weight:800}.required,.optional{display:inline-block;margin-left:6px;font-size:10px;line-height:1;padding:4px 6px;vertical-align:2px}.required{color:#fff;background:var(--accent)}.optional{color:var(--muted);border:1px solid var(--line)}.contact-form input[type=text],.contact-form input[type=email],.contact-form input[type=tel],.contact-form textarea{width:100%;border:0;border-bottom:1px solid #9e9a91;border-radius:0;background:rgba(255,255,255,.48);padding:14px 13px;color:var(--ink);font:inherit;outline:none}.contact-form textarea{resize:vertical;border:1px solid #bdb8ae;min-height:170px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);background:#fff}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}.interest-fieldset{border:0;padding:0;margin:0 0 30px}.interest-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-card{position:relative;display:block!important;margin:0!important}.check-card input{position:absolute;opacity:0;pointer-events:none}.check-card span{display:flex;min-height:58px;align-items:center;padding:11px 13px;border:1px solid var(--line);background:rgba(255,255,255,.55);font-size:13px;line-height:1.5;cursor:pointer}.check-card input:checked+span{border-color:var(--accent);background:rgba(232,91,63,.10);box-shadow:inset 3px 0 0 var(--accent)}.consent-row{display:flex;gap:10px;align-items:flex-start;margin-top:4px;font-size:12px;line-height:1.6;color:#5f5c56}.consent-row input{margin-top:4px}.form-submit{margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}.submit-button{width:100%;min-height:62px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;font:inherit;font-weight:800;font-size:16px;cursor:pointer}.submit-button:hover{border-color:var(--accent);background:var(--accent)}.form-submit p{margin:10px 0 0;color:#8c887f;font-size:10px;line-height:1.5}@media(max-width:900px){.contact-intro,.contact-layout{grid-template-columns:1fr;gap:34px}.contact-side{position:static}.contact-prompts{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}}@media(max-width:560px){.contact-section{padding-block:82px 88px}.contact-intro h2{font-size:38px}.contact-layout{margin-top:48px}.contact-prompts{grid-template-columns:1fr}.contact-prompts p{font-size:18px}.contact-form{padding:28px 18px 24px}.form-grid-2,.interest-grid{grid-template-columns:1fr;gap:0}.interest-grid{gap:7px}.contact-phone a{font-size:24px}}


/* =========================================================
   v7 PRIVACY POLICY
   ========================================================= */
.privacy-inline-link {
  color: inherit;
  font-weight: 800;
  text-underline-offset: 3px;
}
.privacy-inline-link:hover {
  color: var(--accent);
}

.policy-main {
  background: var(--paper);
  color: var(--ink);
}
.policy-hero {
  padding: 110px max(24px, calc((100vw - var(--max))/2)) 74px;
  border-bottom: 1px solid var(--line);
}
.policy-hero .eyebrow {
  margin-bottom: 20px;
}
.policy-hero h1 {
  margin: 0;
  max-width: 950px;
  font-size: clamp(48px, 6vw, 86px);
  line-height: 1.13;
  letter-spacing: -.05em;
}
.policy-hero p {
  margin: 28px 0 0;
  max-width: 760px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.9;
}
.policy-body {
  width: min(calc(100% - 48px), 920px);
  margin: 0 auto;
  padding: 86px 0 120px;
}
.policy-lead {
  margin: 0 0 68px;
  font-size: 17px;
  line-height: 2;
}
.policy-section {
  padding: 34px 0;
  border-top: 1px solid var(--line);
}
.policy-section:last-of-type {
  border-bottom: 1px solid var(--line);
}
.policy-section h2 {
  margin: 0 0 20px;
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-size: 25px;
  line-height: 1.45;
  letter-spacing: -.02em;
}
.policy-section h2 span {
  color: var(--accent);
  font-size: 12px;
  letter-spacing: .12em;
}
.policy-section p,
.policy-section li {
  font-size: 15px;
  line-height: 2;
}
.policy-section p {
  margin: 0 0 12px;
}
.policy-section ul {
  margin: 10px 0 0;
  padding-left: 1.4em;
}
.policy-contact {
  margin-top: 18px;
  padding: 20px 22px;
  background: #fff;
  border-left: 3px solid var(--accent);
}
.policy-contact strong {
  display: block;
  margin-bottom: 8px;
}
.policy-date {
  margin-top: 42px;
  color: var(--muted);
  font-size: 13px;
}
.policy-back {
  margin-top: 52px;
}
.policy-back a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  text-decoration: none;
  font-weight: 800;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 5px;
}
.policy-back a:hover {
  color: var(--accent);
  border-color: var(--accent);
}
.policy-header-nav {
  display: flex;
  align-items: center;
  gap: 20px;
}
.policy-header-nav a {
  font-size: 13px;
  color: var(--ink);
  text-decoration: none;
}
@media (max-width: 560px) {
  .policy-hero {
    padding-top: 78px;
    padding-bottom: 52px;
  }
  .policy-hero h1 {
    font-size: 44px;
  }
  .policy-body {
    width: min(calc(100% - 36px), 920px);
    padding-top: 60px;
    padding-bottom: 88px;
  }
  .policy-section {
    padding: 28px 0;
  }
  .policy-section h2 {
    display: block;
    font-size: 22px;
  }
  .policy-section h2 span {
    display: block;
    margin-bottom: 5px;
  }
}


/* =========================================================
   v8 LIVE FORM PREPARATION / NETLIFY
   ========================================================= */
.bot-field {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}
.form-security-note {
  margin-top: 26px;
  padding: 18px 0 2px;
  border-top: 1px solid var(--line);
}
.form-security-note span {
  display: block;
  color: var(--accent);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  margin-bottom: 5px;
}
.form-security-note p {
  margin: 0;
  color: #77736c;
  font-size: 11px;
  line-height: 1.65;
}

/* Thank-you page */
.thanks-main {
  min-height: calc(100vh - 160px);
  display: grid;
  place-items: center;
  padding: 100px 24px;
  background: var(--paper);
}
.thanks-card {
  width: min(100%, 840px);
  padding: clamp(42px, 7vw, 86px);
  background: #fff;
  border-top: 5px solid var(--accent);
}
.thanks-card .eyebrow {
  margin-bottom: 20px;
}
.thanks-card h1 {
  margin: 0 0 28px;
  font-size: clamp(44px, 6vw, 76px);
  line-height: 1.15;
  letter-spacing: -.045em;
}
.thanks-card p {
  max-width: 650px;
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.9;
}
.thanks-card .thanks-note {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
}
.thanks-actions {
  margin-top: 38px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.thanks-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  min-width: 220px;
  padding: 15px 18px;
  text-decoration: none;
  font-weight: 800;
  border: 1px solid var(--ink);
}
.thanks-actions .primary {
  background: var(--ink);
  color: #fff;
}
.thanks-actions .secondary {
  color: var(--ink);
  background: transparent;
}
.thanks-actions a:hover {
  border-color: var(--accent);
}
.thanks-actions .primary:hover {
  background: var(--accent);
}

@media (max-width: 560px) {
  .thanks-main {
    padding: 64px 18px;
  }
  .thanks-card {
    padding: 34px 22px;
  }
  .thanks-actions {
    display: grid;
  }
  .thanks-actions a {
    width: 100%;
  }
}

.oshigoto{padding-block:120px;background:#fff}.oshigoto-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:center}.oshigoto-copy h2{margin:8px 0 30px;font-size:clamp(44px,4.8vw,72px);line-height:1.18;letter-spacing:-.045em}.oshigoto-lead{font-size:20px;font-weight:800;line-height:1.85}.oshigoto-copy>p{max-width:640px;line-height:1.95}.oshigoto-points{margin-top:36px;border-top:1px solid var(--line)}.oshigoto-points div{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line)}.oshigoto-points span{color:var(--accent);font-size:11px;font-weight:900}.oshigoto-points b{font-size:15px}.oshigoto-actions{margin-top:34px;display:flex;flex-wrap:wrap;gap:18px;align-items:center}.oshigoto-visuals{display:grid;gap:12px}.oshigoto-main-photo{margin:0;aspect-ratio:16/10}.oshigoto-main-photo img{width:100%;height:100%;object-fit:cover}.oshigoto-main-photo figcaption{position:absolute;right:14px;bottom:12px;padding:8px 10px;background:rgba(255,255,255,.94);font-size:11px;font-weight:800}.oshigoto-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.oshigoto-mini-grid figure{margin:0;aspect-ratio:4/3}.oshigoto-mini-grid img{width:100%;height:100%;object-fit:cover}.project-note{margin-top:64px;padding:28px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:120px 1fr;gap:28px}.project-note span{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.14em}.project-note p{margin:0;max-width:840px;font-size:15px;line-height:1.9}
.media-proof{padding-block:112px;background:#efeae1}.media-proof-head{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end}.media-proof-head h2{margin:8px 0 0;font-size:clamp(42px,4.5vw,68px);line-height:1.18;letter-spacing:-.045em}.media-proof-head>p{margin:0;color:#55514b;line-height:1.9}.media-list{margin-top:64px;border-top:1px solid #bbb5aa}.media-item{display:grid;grid-template-columns:.72fr 1.18fr .9fr;gap:34px;align-items:center;padding:26px 0;border-bottom:1px solid #bbb5aa}.media-meta{display:flex;flex-direction:column;gap:5px}.media-meta span{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.08em}.media-meta b{font-size:14px}.media-item h3{margin:0;font-size:clamp(21px,2vw,30px);line-height:1.45;letter-spacing:-.02em}.media-item p{margin:0;color:#65615a;font-size:13px;line-height:1.75}.media-proof-actions{margin-top:34px;display:flex;flex-wrap:wrap;gap:26px}.text-link.subdued{color:#777169}
.media-page-main{background:var(--paper)}.media-page-hero{padding:104px max(24px,calc((100vw - var(--max))/2)) 72px;border-bottom:1px solid var(--line)}.media-page-hero h1{margin:10px 0 24px;max-width:950px;font-size:clamp(48px,6vw,84px);line-height:1.12;letter-spacing:-.05em}.media-page-hero p{max-width:760px;color:var(--muted);line-height:1.95}.media-page-body{width:min(calc(100% - 48px),980px);margin:0 auto;padding:80px 0 120px}.media-page-section{margin-bottom:84px}.media-page-section h2{margin:0 0 32px;font-size:clamp(32px,3.5vw,48px)}.media-records{border-top:1px solid var(--line)}.media-record{display:grid;grid-template-columns:130px 1fr;gap:26px;padding:22px 0;border-bottom:1px solid var(--line)}.media-record time{color:var(--accent);font-weight:900;font-size:12px}.media-record b{display:block;margin-bottom:6px}.media-record p{margin:0;line-height:1.75}.speaking-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.speaking-card{padding:24px 22px;background:#fff;border-top:3px solid var(--ink)}.speaking-card h3{margin:0 0 16px;font-size:18px}.speaking-card ul{margin:0;padding-left:1.15em;line-height:1.9;font-size:14px}.media-source-note{margin-top:42px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.8}
@media(max-width:900px){.oshigoto-grid,.media-proof-head{grid-template-columns:1fr;gap:36px}.media-item{grid-template-columns:1fr;gap:10px}.project-note{grid-template-columns:1fr;gap:8px}.speaking-groups{grid-template-columns:1fr}}
@media(max-width:560px){.oshigoto,.media-proof{padding-block:82px}.oshigoto-copy h2,.media-proof-head h2{font-size:38px}.oshigoto-mini-grid{grid-template-columns:1fr}.media-record{grid-template-columns:1fr;gap:6px}.media-page-body{width:min(calc(100% - 36px),980px)}}


/* =========================================================
   v10 REAL VIEW DETAIL PAGE
   ========================================================= */
.subpage-header .nav a { white-space: nowrap; }

.rv-main { background: var(--paper); color: var(--ink); }

.rv-hero {
  position: relative;
  width: min(calc(100% - 48px), var(--max));
  min-height: 650px;
  margin: 28px auto 0;
  overflow: hidden;
  background: #ddd8ce;
}
.rv-hero-photo {
  position: absolute;
  inset: 0;
}
.rv-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 55% center;
}
.rv-hero-photo::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,
    rgba(247,244,236,.99) 0%,
    rgba(247,244,236,.94) 34%,
    rgba(247,244,236,.60) 50%,
    rgba(247,244,236,.06) 70%);
}
.rv-hero-copy {
  position: relative;
  z-index: 2;
  width: 58%;
  padding: 78px 0 70px 48px;
}
.rv-hero-copy h1 {
  margin: 10px 0 28px;
  font-size: clamp(50px,5.5vw,82px);
  line-height: 1.15;
  letter-spacing: -.05em;
}
.rv-hero-copy .lead {
  max-width: 660px;
  font-size: 18px;
  line-height: 1.95;
}
.rv-hero-copy .hero-note {
  margin-top: 28px;
  display: inline-block;
  padding: 10px 14px;
  background: rgba(255,255,255,.78);
  border-left: 4px solid var(--accent);
  font-weight: 800;
  font-size: 14px;
}

.rv-section {
  padding: 118px max(24px, calc((100vw - var(--max))/2));
}
.rv-section.white { background:#fff; }
.rv-section.soft { background:#efeae1; }
.rv-section.dark { background:var(--dark); color:#fff; }

.rv-intro-grid,
.rv-two-col {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 76px;
  align-items:start;
}
.rv-section h2 {
  margin: 12px 0 28px;
  font-size: clamp(40px,4.3vw,66px);
  line-height:1.2;
  letter-spacing:-.045em;
}
.rv-section h3 {
  margin:0;
  font-size:clamp(26px,2.5vw,38px);
  line-height:1.35;
}
.rv-section p { line-height:1.95; }

.rv-definition {
  font-size:20px;
  font-weight:800;
  line-height:1.8;
}
.rv-quote {
  margin:36px 0 0;
  padding:28px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(26px,2.7vw,40px);
  line-height:1.55;
}
.rv-quote strong { color:var(--accent); }

.rv-not-judge {
  margin-top:70px;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:60px;
  align-items:center;
  padding:44px;
  background:#fff;
  border-top:4px solid var(--accent);
}
.rv-not-judge .photo-frame { aspect-ratio:4/3; margin:0; }
.rv-not-judge img { width:100%; height:100%; object-fit:cover; }

.rv-three {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:62px;
}
.rv-type {
  background:#fff;
  padding:30px 26px 28px;
  border-top:4px solid;
  display:flex;
  flex-direction:column;
}
.rv-type.blue { border-color:#2367aa; }
.rv-type.green { border-color:#55a55e; }
.rv-type.orange { border-color:#e6792e; }
.rv-type-index {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:20px;
}
.rv-type-index span {
  font-size:30px;
  font-weight:900;
}
.rv-type.blue .rv-type-index span,.rv-type.blue h3 { color:#2367aa; }
.rv-type.green .rv-type-index span,.rv-type.green h3 { color:#4c9655; }
.rv-type.orange .rv-type-index span,.rv-type.orange h3 { color:#db6a22; }
.rv-type-index small { font-size:10px; color:var(--muted); }
.rv-type .catch {
  min-height:66px;
  margin:16px 0 22px;
  font-weight:800;
}
.rv-checks {
  margin:0;
  padding:0;
  list-style:none;
}
.rv-checks li {
  padding:10px 0 10px 25px;
  border-top:1px solid var(--line);
  position:relative;
  font-size:14px;
  line-height:1.6;
}
.rv-checks li::before {
  content:"✓";
  position:absolute;
  left:2px;
  font-weight:900;
  color:var(--accent);
}
.rv-output {
  margin-top:auto;
  padding-top:24px;
}
.rv-output span {
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  margin-bottom:7px;
}
.rv-output b { font-size:14px; }

.rv-flow {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px;
  margin-top:58px;
}
.rv-flow-step {
  position:relative;
  padding:24px 16px 20px;
  background:#fff;
  border-top:3px solid var(--ink);
}
.rv-flow-step span {
  color:var(--accent);
  font-size:11px;
  font-weight:900;
}
.rv-flow-step b {
  display:block;
  margin:9px 0 8px;
  font-size:18px;
}
.rv-flow-step small {
  color:var(--muted);
  line-height:1.55;
}
.rv-flow-step:not(:last-child)::after {
  content:"→";
  position:absolute;
  right:-10px;
  top:50%;
  transform:translate(50%,-50%);
  z-index:2;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  background:var(--paper);
  color:#a19d95;
  font-weight:900;
}

.rv-stakeholders {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:56px;
}
.rv-stakeholder {
  padding:30px 26px;
  background:#fff;
  border-top:3px solid var(--ink);
}
.rv-stakeholder span {
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
}
.rv-stakeholder h3 {
  margin:10px 0 18px;
  font-size:24px;
}
.rv-stakeholder ul {
  margin:0;
  padding-left:1.1em;
  line-height:1.9;
  font-size:14px;
}

.rv-gap-head {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:70px;
  align-items:end;
}
.rv-gap-head p { color:#d0ccc4; }
.rv-gap-head h2 { margin-bottom:0; }
.rv-gap-message {
  margin-top:52px;
  padding:28px 30px;
  border:1px solid #55554f;
  background:rgba(255,255,255,.04);
}
.rv-gap-message strong {
  display:block;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(28px,3vw,46px);
  line-height:1.45;
}
.rv-gap-message strong em {
  color:#ff8a68;
  font-style:normal;
}
.rv-gap-grid {
  margin-top:24px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.rv-gap-card {
  padding:24px 20px;
  background:#fff;
  color:var(--ink);
}
.rv-gap-card span {
  color:var(--accent);
  font-size:11px;
  font-weight:900;
}
.rv-gap-card b {
  display:block;
  margin:9px 0 10px;
  font-size:19px;
}
.rv-gap-card p {
  margin:0;
  font-size:13px;
  color:#66625c;
  line-height:1.75;
}

.rv-deliverables {
  margin-top:58px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.rv-deliverable {
  padding:28px 20px;
  border-right:1px solid var(--line);
}
.rv-deliverable:last-child { border-right:0; }
.rv-deliverable span {
  display:block;
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  margin-bottom:10px;
}
.rv-deliverable b {
  display:block;
  font-size:18px;
  line-height:1.5;
}

.rv-next {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:center;
}
.rv-next-photo {
  margin:0;
  aspect-ratio:4/3;
}
.rv-next-photo img { width:100%; height:100%; object-fit:cover; }
.rv-next-copy .mini-flow {
  margin-top:28px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.rv-next-copy .mini-flow span {
  padding:8px 11px;
  background:#fff;
  border:1px solid var(--line);
  font-size:12px;
}

.rv-faq {
  width:min(100%,940px);
  margin:54px auto 0;
  border-top:1px solid var(--line);
}
.rv-faq details {
  border-bottom:1px solid var(--line);
  padding:0;
}
.rv-faq summary {
  cursor:pointer;
  padding:22px 0;
  font-weight:800;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:20px;
}
.rv-faq summary::after {
  content:"+";
  color:var(--accent);
  font-size:22px;
}
.rv-faq details[open] summary::after { content:"−"; }
.rv-faq details p {
  margin:0;
  padding:0 0 24px;
  color:var(--muted);
}

.rv-cta {
  padding:112px max(24px,calc((100vw - 920px)/2));
  background:var(--dark);
  color:#fff;
  text-align:center;
}
.rv-cta h2 {
  margin:0 0 28px;
  font-size:clamp(42px,4.7vw,68px);
}
.rv-cta p {
  max-width:720px;
  margin:0 auto 32px;
  color:#d0ccc4;
  line-height:1.9;
}
.rv-cta-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
}
.rv-cta-actions a {
  min-width:230px;
}

@media(max-width:900px) {
  .rv-hero { min-height:0; }
  .rv-hero-photo { position:relative; aspect-ratio:16/10; }
  .rv-hero-photo::after { display:none; }
  .rv-hero-copy { width:100%; padding:46px 28px 52px; }
  .rv-intro-grid,.rv-two-col,.rv-gap-head,.rv-next,.rv-not-judge {
    grid-template-columns:1fr;
    gap:34px;
  }
  .rv-three,.rv-stakeholders { grid-template-columns:1fr; }
  .rv-flow { grid-template-columns:repeat(2,1fr); }
  .rv-flow-step::after { display:none!important; }
  .rv-gap-grid,.rv-deliverables { grid-template-columns:repeat(2,1fr); }
  .rv-deliverable:nth-child(2) { border-right:0; }
  .rv-deliverable:nth-child(-n+2) { border-bottom:1px solid var(--line); }
}
@media(max-width:560px) {
  .rv-hero { width:100%; margin-top:0; }
  .rv-hero-copy h1 { font-size:44px; }
  .rv-section { padding-block:82px; }
  .rv-section h2 { font-size:38px; }
  .rv-not-judge { padding:24px 18px; }
  .rv-flow,.rv-gap-grid,.rv-deliverables { grid-template-columns:1fr; }
  .rv-deliverable {
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .rv-deliverable:last-child { border-bottom:0; }
}


/* =========================================================
   v11 REAL VIEW — CONCRETE EXAMPLES
   ========================================================= */
.rv-between {
  margin-top: 82px;
  padding: 54px 0 0;
  border-top: 1px solid #c8c3b9;
}
.rv-between h3 {
  margin: 10px 0 34px;
  font-size: clamp(36px,4vw,58px);
  line-height:1.24;
  letter-spacing:-.04em;
}
.rv-between-lines {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-bottom:28px;
}
.rv-between-lines div {
  padding:22px 20px;
  background:#fff;
  border-top:3px solid var(--ink);
}
.rv-between-lines span,
.rv-between-lines b {
  display:block;
  line-height:1.55;
}
.rv-between-lines span {
  color:var(--muted);
  font-size:13px;
  margin-bottom:5px;
}
.rv-between-lines b {
  font-size:18px;
}
.rv-between > p:last-child {
  max-width:760px;
  margin:0;
  font-size:16px;
  line-height:1.9;
}

.rv-concrete { background:#fff; }
.rv-detail-block {
  margin-top:78px;
  padding-top:28px;
  border-top:5px solid var(--ink);
}
.rv-detail-block.blue { border-top-color:#2367aa; }
.rv-detail-block.green { border-top-color:#55a55e; }
.rv-detail-block.orange { border-top-color:#e6792e; }

.rv-detail-heading {
  display:grid;
  grid-template-columns:86px 1fr;
  gap:24px;
  align-items:start;
  margin-bottom:38px;
}
.rv-detail-number {
  font-size:48px;
  line-height:1;
  font-weight:900;
}
.rv-detail-block.blue .rv-detail-number,
.rv-detail-block.blue .rv-detail-label { color:#2367aa; }
.rv-detail-block.green .rv-detail-number,
.rv-detail-block.green .rv-detail-label { color:#4c9655; }
.rv-detail-block.orange .rv-detail-number,
.rv-detail-block.orange .rv-detail-label { color:#db6a22; }

.rv-detail-label {
  margin:0 0 8px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.06em;
}
.rv-detail-heading h3 {
  font-size:clamp(31px,3.2vw,48px);
  line-height:1.28;
  letter-spacing:-.035em;
}

.rv-detail-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:54px;
  align-items:start;
}
.rv-detail-grid.reverse {
  grid-template-columns:.95fr 1.05fr;
}
.rv-detail-copy > p {
  margin-top:0;
  font-size:16px;
  line-height:1.95;
}
.rv-detail-photo {
  margin:0;
  aspect-ratio:4/3;
}
.rv-detail-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.rv-see-box,
.rv-question-box {
  margin-top:26px;
  padding:22px 24px;
  background:#f5f2eb;
}
.rv-see-box > span,
.rv-question-box > span,
.rv-detail-outcome > span {
  display:block;
  margin-bottom:10px;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.rv-see-box ul {
  margin:0;
  padding-left:1.2em;
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:28px;
  row-gap:4px;
  font-size:14px;
  line-height:1.75;
}
.rv-question-box p {
  margin:0;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:18px;
  line-height:1.75;
}
.rv-detail-outcome {
  margin-top:18px;
  padding:22px 24px;
  background:var(--dark);
  color:#fff;
}
.rv-detail-outcome b {
  display:block;
  font-size:17px;
  line-height:1.65;
}
.rv-detail-note {
  margin:36px 0 0;
  padding:22px 0 0;
  border-top:1px solid var(--line);
  font-size:14px;
  line-height:1.85;
}

.rv-experience-timeline {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:8px;
  margin:0 0 38px;
}
.rv-experience-step {
  padding:20px 16px;
  background:#f6f3ec;
  border-top:3px solid #55a55e;
}
.rv-experience-step span {
  display:block;
  color:#4c9655;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}
.rv-experience-step b {
  display:block;
  margin:7px 0 8px;
  font-size:17px;
}
.rv-experience-step p {
  margin:0;
  color:#69655e;
  font-size:12px;
  line-height:1.65;
}

.rv-dialogue-example {
  position:relative;
  padding:22px 24px;
  margin-bottom:12px;
  background:#f6f3ec;
  border-left:4px solid #e6792e;
}
.rv-dialogue-example span {
  color:#db6a22;
  font-size:10px;
  font-weight:900;
  letter-spacing:.11em;
}
.rv-dialogue-example p {
  margin:8px 0 0;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:18px;
  line-height:1.7;
}

@media(max-width:900px) {
  .rv-between-lines {
    grid-template-columns:1fr;
  }
  .rv-detail-grid,
  .rv-detail-grid.reverse {
    grid-template-columns:1fr;
    gap:30px;
  }
  .rv-experience-timeline {
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:560px) {
  .rv-detail-heading {
    grid-template-columns:1fr;
    gap:8px;
  }
  .rv-detail-number {
    font-size:36px;
  }
  .rv-see-box ul {
    grid-template-columns:1fr;
  }
  .rv-experience-timeline {
    grid-template-columns:1fr;
  }
}


/* =========================================================
   v12 SHIGA COMPANY PROJECT PAGE
   ========================================================= */
.project-inline-link { color:inherit; text-underline-offset:3px; }

.sc-main { background:var(--paper); color:var(--ink); }
.sc-hero {
  position:relative;
  width:min(calc(100% - 48px),var(--max));
  min-height:660px;
  margin:28px auto 0;
  overflow:hidden;
  background:#ded8ce;
}
.sc-hero-photo { position:absolute; inset:0; }
.sc-hero-photo img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center center;
}
.sc-hero-photo::after {
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg,
    rgba(247,244,236,.99) 0%,
    rgba(247,244,236,.95) 33%,
    rgba(247,244,236,.63) 49%,
    rgba(247,244,236,.08) 70%);
}
.sc-hero-copy {
  position:relative;
  z-index:2;
  width:57%;
  padding:72px 0 68px 48px;
}
.sc-hero-copy h1 {
  margin:10px 0 26px;
  font-size:clamp(50px,5.5vw,82px);
  line-height:1.14;
  letter-spacing:-.05em;
}
.sc-hero-copy .lead {
  max-width:660px;
  font-size:18px;
  line-height:1.95;
}
.sc-hero-badge {
  margin-top:26px;
  display:inline-block;
  padding:10px 14px;
  background:#fff;
  border-left:4px solid var(--accent);
  font-weight:800;
  font-size:14px;
}

.sc-section {
  padding:116px max(24px,calc((100vw - var(--max))/2));
}
.sc-section.white { background:#fff; }
.sc-section.soft { background:#efeae1; }
.sc-section.dark { background:var(--dark); color:#fff; }
.sc-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start;
}
.sc-section h2 {
  margin:10px 0 28px;
  font-size:clamp(40px,4.4vw,66px);
  line-height:1.19;
  letter-spacing:-.045em;
}
.sc-section h3 {
  margin:0;
  font-size:clamp(27px,2.6vw,40px);
  line-height:1.35;
}
.sc-section p { line-height:1.95; }

.sc-problem-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:60px;
}
.sc-problem {
  padding:26px 22px;
  background:#fff;
  border-top:3px solid var(--ink);
}
.sc-problem span {
  color:var(--accent);
  font-size:11px;
  font-weight:900;
}
.sc-problem b {
  display:block;
  margin:10px 0 8px;
  font-size:18px;
  line-height:1.5;
}
.sc-problem p {
  margin:0;
  font-size:13px;
  color:var(--muted);
}

.sc-core {
  margin-top:68px;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:60px;
  align-items:center;
}
.sc-core-photo {
  margin:0;
  aspect-ratio:4/3;
}
.sc-core-photo img {
  width:100%; height:100%; object-fit:cover;
}
.sc-core-copy {
  padding:36px 0;
}
.sc-core-copy .big-quote {
  margin:20px 0 30px;
  font-size:clamp(28px,3vw,45px);
}
.sc-core-points {
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}
.sc-core-points div {
  display:grid;
  grid-template-columns:42px 1fr;
  gap:12px;
  padding:13px 0;
  border-bottom:1px solid var(--line);
}
.sc-core-points span {
  color:var(--accent);
  font-weight:900;
  font-size:11px;
}
.sc-core-points b { font-size:15px; }

.sc-flow {
  margin-top:58px;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
}
.sc-flow-step {
  position:relative;
  padding:26px 18px 22px;
  background:#fff;
  color:var(--ink);
  border-top:4px solid #478f4e;
}
.sc-flow-step span {
  display:block;
  color:#478f4e;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
.sc-flow-step b {
  display:block;
  margin:10px 0 9px;
  font-size:18px;
  line-height:1.45;
}
.sc-flow-step p {
  margin:0;
  color:#68645e;
  font-size:12px;
  line-height:1.65;
}
.sc-flow-step:not(:last-child)::after {
  content:"→";
  position:absolute;
  right:-10px;
  top:50%;
  transform:translate(50%,-50%);
  width:24px;height:24px;
  display:grid;place-items:center;
  background:#efeae1;
  color:#8e8a82;
  z-index:2;
}

.sc-video-feature {
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:62px;
  align-items:center;
}
.sc-video-collage {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:10px;
}
.sc-video-collage figure { margin:0; }
.sc-video-collage .main {
  grid-row:span 2;
  aspect-ratio:4/5;
}
.sc-video-collage .small {
  aspect-ratio:4/3;
}
.sc-video-collage img {
  width:100%;height:100%;object-fit:cover;
}
.sc-video-copy ul {
  margin:28px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line);
}
.sc-video-copy li {
  padding:13px 0;
  border-bottom:1px solid var(--line);
  font-size:14px;
}
.sc-video-copy li strong { color:var(--accent); }

.sc-voice-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:52px;
}
.sc-voice {
  position:relative;
  padding:28px 22px;
  background:#fff;
  color:var(--ink);
  min-height:175px;
}
.sc-voice::before {
  content:"“";
  position:absolute;
  top:8px;right:14px;
  color:#d8d2c8;
  font-family:serif;
  font-size:54px;
  line-height:1;
}
.sc-voice p {
  position:relative;
  z-index:2;
  margin:0;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:18px;
  line-height:1.75;
}
.sc-voice span {
  display:block;
  margin-top:18px;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}

.sc-deliver-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:56px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.sc-deliver {
  padding:28px 22px;
  border-right:1px solid var(--line);
}
.sc-deliver:last-child { border-right:0; }
.sc-deliver span {
  display:block;
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  margin-bottom:10px;
}
.sc-deliver b {
  display:block;
  font-size:18px;
  line-height:1.5;
}
.sc-deliver p {
  margin:8px 0 0;
  color:var(--muted);
  font-size:12px;
}

.sc-usage {
  margin-top:52px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.sc-usage span {
  padding:9px 12px;
  border:1px solid var(--line);
  background:#fff;
  font-size:12px;
}

.sc-model {
  margin-top:62px;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:56px;
  align-items:center;
  padding:42px;
  background:#fff;
  border-top:5px solid #478f4e;
}
.sc-model-label {
  color:#478f4e;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}
.sc-model h3 {
  margin:8px 0 16px;
  font-size:34px;
}
.sc-price {
  display:flex;
  align-items:baseline;
  gap:8px;
  margin:14px 0 18px;
}
.sc-price strong {
  color:var(--accent);
  font-size:58px;
  line-height:1;
}
.sc-price span { font-size:14px;font-weight:800; }
.sc-model-meta {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.sc-model-meta span {
  padding:8px 10px;
  background:#f3f0e9;
  font-size:12px;
}
.sc-model-note {
  padding-left:30px;
  border-left:1px solid var(--line);
}
.sc-model-note p { margin-top:0; }
.sc-model-note small {
  color:var(--muted);
  line-height:1.7;
}

.sc-channel {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:68px;
  align-items:center;
}
.sc-channel-photo {
  margin:0;
  aspect-ratio:16/10;
}
.sc-channel-photo img {
  width:100%;height:100%;object-fit:cover;
}
.sc-channel-copy .button { margin-top:20px; }

.sc-faq {
  width:min(100%,940px);
  margin:54px auto 0;
  border-top:1px solid var(--line);
}
.sc-faq details { border-bottom:1px solid var(--line); }
.sc-faq summary {
  cursor:pointer;
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  gap:18px;
  font-weight:800;
  list-style:none;
}
.sc-faq summary::after {
  content:"+";
  color:var(--accent);
  font-size:22px;
}
.sc-faq details[open] summary::after { content:"−"; }
.sc-faq details p {
  margin:0;
  padding:0 0 24px;
  color:var(--muted);
}

.sc-cta {
  padding:112px max(24px,calc((100vw - 920px)/2));
  background:var(--dark);
  color:#fff;
  text-align:center;
}
.sc-cta h2 {
  margin:0 0 26px;
  font-size:clamp(42px,4.7vw,68px);
}
.sc-cta p {
  max-width:720px;
  margin:0 auto 32px;
  color:#d0ccc4;
  line-height:1.9;
}
.sc-cta-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
}

@media(max-width:900px){
  .sc-hero{min-height:0}
  .sc-hero-photo{position:relative;aspect-ratio:16/10}
  .sc-hero-photo::after{display:none}
  .sc-hero-copy{width:100%;padding:46px 28px 52px}
  .sc-two-col,.sc-core,.sc-video-feature,.sc-channel,.sc-model{grid-template-columns:1fr;gap:34px}
  .sc-problem-grid,.sc-voice-grid{grid-template-columns:1fr 1fr}
  .sc-flow{grid-template-columns:1fr}
  .sc-flow-step::after{display:none!important}
  .sc-deliver-grid{grid-template-columns:1fr 1fr}
  .sc-deliver:nth-child(2){border-right:0}
  .sc-deliver:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .sc-model-note{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:24px}
}
@media(max-width:560px){
  .sc-hero{width:100%;margin-top:0}
  .sc-hero-copy h1{font-size:44px}
  .sc-section{padding-block:82px}
  .sc-section h2{font-size:38px}
  .sc-problem-grid,.sc-voice-grid,.sc-deliver-grid{grid-template-columns:1fr}
  .sc-deliver{border-right:0;border-bottom:1px solid var(--line)}
  .sc-deliver:last-child{border-bottom:0}
  .sc-video-collage{grid-template-columns:1fr}
  .sc-video-collage .main{grid-row:auto;aspect-ratio:4/3}
  .sc-model{padding:26px 20px}
  .sc-price strong{font-size:48px}
}


/* =========================================================
   v13 PHOTO EDITORIAL REFINEMENT
   Real View / Students Visit Shiga Companies
   ========================================================= */

/* Real View: field imagery */
.rv-experience-gallery {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:0 0 42px;
}
.rv-experience-gallery figure,
.rv-field-strip figure {
  position:relative;
  margin:0;
  overflow:hidden;
  background:#ddd8cf;
}
.rv-experience-gallery figure { aspect-ratio:4/3; }
.rv-experience-gallery img,
.rv-field-strip img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.rv-experience-gallery figcaption {
  position:absolute;
  left:12px;
  bottom:10px;
  padding:7px 9px;
  background:rgba(255,255,255,.92);
  font-size:11px;
  font-weight:800;
}
.rv-retention-photo {
  margin:0 0 18px;
  aspect-ratio:16/10;
}
.rv-retention-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.rv-field-strip {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:54px;
}
.rv-field-strip figure { aspect-ratio:4/3; }
.rv-field-strip figcaption {
  position:absolute;
  inset:auto 0 0 0;
  padding:11px 13px;
  background:linear-gradient(0deg,rgba(20,20,19,.84),rgba(20,20,19,0));
  color:#fff;
  font-size:12px;
  font-weight:800;
}
.rv-field-strip figcaption span {
  color:#ff8a68;
  margin-right:6px;
}

/* Shiga company: the visit itself should be visible */
.sc-visit-scenes {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:62px;
}
.sc-visit-scenes figure {
  position:relative;
  margin:0;
  aspect-ratio:3/4;
  overflow:hidden;
  background:#ddd8cf;
}
.sc-visit-scenes img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.sc-visit-scenes figcaption {
  position:absolute;
  inset:auto 0 0 0;
  padding:32px 13px 12px;
  background:linear-gradient(0deg,rgba(24,24,22,.88),rgba(24,24,22,0));
  color:#fff;
  font-size:12px;
  font-weight:800;
}
.sc-visit-scenes figcaption span {
  display:inline-block;
  margin-right:7px;
  color:#ff9a78;
  font-size:11px;
  letter-spacing:.08em;
}

/* Keep added photos editorial, not card-heavy */
.rv-experience-gallery figure,
.rv-field-strip figure,
.sc-visit-scenes figure {
  box-shadow:none;
}

@media(max-width:900px){
  .rv-experience-gallery,
  .rv-field-strip {
    grid-template-columns:1fr 1fr;
  }
  .sc-visit-scenes {
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:560px){
  .rv-experience-gallery,
  .rv-field-strip,
  .sc-visit-scenes {
    grid-template-columns:1fr;
  }
  .rv-experience-gallery figure,
  .rv-field-strip figure,
  .sc-visit-scenes figure {
    aspect-ratio:4/3;
  }
}


/* =========================================================
   v14 KYOUIKU CONTINUOUS SUPPORT PAGE
   ========================================================= */

.ky-main { background:var(--paper); color:var(--ink); }

.ky-hero {
  position:relative;
  width:min(calc(100% - 48px),var(--max));
  min-height:660px;
  margin:28px auto 0;
  overflow:hidden;
  background:#ddd8ce;
}
.ky-hero-photo { position:absolute; inset:0; }
.ky-hero-photo img {
  width:100%;height:100%;
  object-fit:cover;
  object-position:center center;
}
.ky-hero-photo::after {
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(247,244,236,.99) 0%,
    rgba(247,244,236,.95) 34%,
    rgba(247,244,236,.64) 50%,
    rgba(247,244,236,.08) 72%);
}
.ky-hero-copy {
  position:relative;
  z-index:2;
  width:58%;
  padding:76px 0 70px 48px;
}
.ky-hero-copy h1 {
  margin:10px 0 28px;
  font-size:clamp(50px,5.5vw,82px);
  line-height:1.14;
  letter-spacing:-.05em;
}
.ky-hero-copy .lead {
  max-width:650px;
  font-size:18px;
  line-height:1.95;
}
.ky-hero-note {
  display:inline-block;
  margin-top:26px;
  padding:10px 14px;
  background:#fff;
  border-left:4px solid var(--accent);
  font-size:14px;
  font-weight:800;
}

.ky-section {
  padding:116px max(24px,calc((100vw - var(--max))/2));
}
.ky-section.white { background:#fff; }
.ky-section.soft { background:#efeae1; }
.ky-section.dark { background:var(--dark); color:#fff; }

.ky-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start;
}
.ky-section h2 {
  margin:10px 0 28px;
  font-size:clamp(40px,4.4vw,66px);
  line-height:1.2;
  letter-spacing:-.045em;
}
.ky-section h3 {
  margin:0;
  font-size:clamp(26px,2.5vw,39px);
  line-height:1.4;
}
.ky-section p { line-height:1.95; }

.ky-three-problems {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:58px;
}
.ky-problem {
  padding:28px 24px;
  background:#f4f1ea;
  border-top:3px solid var(--ink);
}
.ky-problem span {
  color:var(--accent);
  font-size:11px;font-weight:900;
}
.ky-problem b {
  display:block;
  margin:10px 0 8px;
  font-size:19px;
  line-height:1.55;
}
.ky-problem p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}

.ky-definition {
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:64px;
  align-items:center;
}
.ky-definition-photo {
  margin:0;
  aspect-ratio:4/3;
}
.ky-definition-photo img {
  width:100%;height:100%;object-fit:cover;
}
.ky-quote {
  margin-top:34px;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(29px,3vw,46px);
  line-height:1.55;
}
.ky-quote strong { color:var(--accent); }

.ky-principle {
  margin-top:70px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid #c4beb3;
  border-bottom:1px solid #c4beb3;
}
.ky-principle > div {
  padding:30px 26px;
  border-right:1px solid #c4beb3;
}
.ky-principle > div:last-child { border-right:0; }
.ky-principle span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.ky-principle h3 {
  margin:10px 0 12px;
  font-size:22px;
}
.ky-principle p {
  margin:0;
  color:#615d56;
  font-size:13px;
}

.ky-example-list {
  margin-top:66px;
  border-top:1px solid var(--line);
}
.ky-example {
  display:grid;
  grid-template-columns:70px 1fr .8fr;
  gap:36px;
  align-items:center;
  padding:42px 0;
  border-bottom:1px solid var(--line);
}
.ky-example-index {
  color:var(--accent);
  font-size:34px;
  font-weight:900;
}
.ky-label {
  margin:0 0 8px;
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}
.ky-example-copy h3 {
  font-size:clamp(25px,2.4vw,36px);
}
.ky-example-copy > p {
  margin:14px 0 16px;
}
.ky-example-copy ul {
  margin:0;
  padding-left:1.2em;
  columns:2;
  column-gap:26px;
  font-size:13px;
  line-height:1.8;
}
.ky-example-photo {
  margin:0;
  aspect-ratio:4/3;
}
.ky-example-photo img {
  width:100%;height:100%;object-fit:cover;
}

.ky-cycle-head {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:70px;
  align-items:end;
}
.ky-cycle-head h2 { margin-bottom:0; }
.ky-cycle-head > p {
  margin:0;
  color:#d0ccc4;
}
.ky-cycle {
  margin-top:58px;
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;
  gap:8px;
  align-items:stretch;
}
.ky-cycle-step {
  padding:24px 18px;
  background:rgba(255,255,255,.07);
  border-top:3px solid #fff;
}
.ky-cycle-step span {
  display:block;
  color:#ff8a68;
  font-size:11px;
  font-weight:900;
}
.ky-cycle-step b {
  display:block;
  margin:8px 0 7px;
  font-size:20px;
}
.ky-cycle-step small {
  color:#c9c5bd;
  line-height:1.6;
}
.ky-cycle-arrow {
  align-self:center;
  color:#8c8881;
  font-size:20px;
}
.ky-cycle-gallery {
  margin-top:30px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.ky-cycle-gallery figure {
  position:relative;
  margin:0;
  aspect-ratio:4/3;
  overflow:hidden;
}
.ky-cycle-gallery img {
  width:100%;height:100%;object-fit:cover;
}
.ky-cycle-gallery figcaption {
  position:absolute;
  inset:auto 0 0 0;
  padding:30px 13px 11px;
  color:#fff;
  font-size:12px;
  font-weight:800;
  background:linear-gradient(0deg,rgba(20,20,19,.85),rgba(20,20,19,0));
}

.ky-people {
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.ky-people > div {
  padding:26px 22px;
  background:#fff;
  border-top:3px solid var(--ink);
}
.ky-people span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.ky-people b {
  display:block;
  margin:9px 0 8px;
  font-size:20px;
}
.ky-people p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}

.ky-goal {
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:64px;
  align-items:center;
}
.ky-goal-photo {
  margin:0;
  aspect-ratio:4/3;
}
.ky-goal-photo img {
  width:100%;height:100%;object-fit:cover;
}
.ky-goal blockquote {
  margin:34px 0 0;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(27px,2.8vw,42px);
  line-height:1.55;
}
.ky-remains {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:56px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.ky-remains > div {
  padding:26px 20px;
  border-right:1px solid var(--line);
}
.ky-remains > div:last-child { border-right:0; }
.ky-remains span {
  display:block;
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  margin-bottom:9px;
}
.ky-remains b {
  font-size:17px;
  line-height:1.55;
}

.ky-bridge {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.ky-bridge > div {
  padding:34px 30px;
  background:#fff;
  border-top:4px solid var(--ink);
}
.ky-bridge > div:first-child { border-top-color:#55a55e; }
.ky-bridge > div:last-child { border-top-color:#2367aa; }
.ky-bridge h2 {
  font-size:clamp(30px,3vw,44px);
}
.ky-bridge p { color:#625e57; }

.ky-faq {
  width:min(100%,940px);
  margin:54px auto 0;
  border-top:1px solid var(--line);
}
.ky-faq details { border-bottom:1px solid var(--line); }
.ky-faq summary {
  cursor:pointer;
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  gap:18px;
  font-weight:800;
  list-style:none;
}
.ky-faq summary::after {
  content:"+";
  color:var(--accent);
  font-size:22px;
}
.ky-faq details[open] summary::after { content:"−"; }
.ky-faq details p {
  margin:0;
  padding:0 0 24px;
  color:var(--muted);
}

.ky-cta {
  padding:112px max(24px,calc((100vw - 920px)/2));
  background:var(--dark);
  color:#fff;
  text-align:center;
}
.ky-cta h2 {
  margin:0 0 26px;
  font-size:clamp(42px,4.7vw,68px);
}
.ky-cta p {
  max-width:720px;
  margin:0 auto 32px;
  color:#d0ccc4;
  line-height:1.9;
}
.ky-cta-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
}

@media(max-width:900px){
  .ky-hero{min-height:0}
  .ky-hero-photo{position:relative;aspect-ratio:16/10}
  .ky-hero-photo::after{display:none}
  .ky-hero-copy{width:100%;padding:46px 28px 52px}
  .ky-two-col,.ky-definition,.ky-cycle-head,.ky-goal{grid-template-columns:1fr;gap:34px}
  .ky-three-problems,.ky-principle,.ky-people{grid-template-columns:1fr}
  .ky-principle > div{border-right:0;border-bottom:1px solid #c4beb3}
  .ky-principle > div:last-child{border-bottom:0}
  .ky-example{grid-template-columns:52px 1fr;gap:24px}
  .ky-example-photo{grid-column:2}
  .ky-example-copy ul{columns:1}
  .ky-cycle{grid-template-columns:1fr}
  .ky-cycle-arrow{transform:rotate(90deg);justify-self:start;margin-left:20px}
  .ky-cycle-gallery{grid-template-columns:1fr 1fr}
  .ky-remains{grid-template-columns:1fr 1fr}
  .ky-remains > div:nth-child(2){border-right:0}
  .ky-remains > div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .ky-bridge{grid-template-columns:1fr}
}
@media(max-width:560px){
  .ky-hero{width:100%;margin-top:0}
  .ky-hero-copy h1{font-size:44px}
  .ky-section{padding-block:82px}
  .ky-section h2{font-size:38px}
  .ky-example{grid-template-columns:1fr}
  .ky-example-photo{grid-column:auto}
  .ky-cycle-gallery,.ky-remains{grid-template-columns:1fr}
  .ky-remains > div{border-right:0;border-bottom:1px solid var(--line)}
  .ky-remains > div:last-child{border-bottom:0}
}


/* =========================================================
   v15 KYOUIKU — CLEAR NAME + HR BURDEN REDUCTION
   ========================================================= */

.service-subname {
  margin: -6px 0 16px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
}

.ky-burden {
  background:#fff;
}

.ky-burden-catch {
  margin-top:62px;
  padding:32px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.ky-burden-catch > span {
  display:block;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  margin-bottom:10px;
}
.ky-burden-catch h3 {
  margin:0;
  font-size:clamp(31px,3.4vw,50px);
  line-height:1.35;
  letter-spacing:-.035em;
}

.ky-role-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:42px;
}
.ky-role-card {
  padding:30px 28px 24px;
  border-top:5px solid var(--ink);
}
.ky-role-card.rebirth {
  background:var(--dark);
  color:#fff;
  border-top-color:var(--accent);
}
.ky-role-card.company {
  background:#f3efe7;
  color:var(--ink);
  border-top-color:var(--ink);
}
.ky-role-head {
  padding-bottom:20px;
  margin-bottom:8px;
  border-bottom:1px solid;
}
.ky-role-card.rebirth .ky-role-head {
  border-color:#55554f;
}
.ky-role-card.company .ky-role-head {
  border-color:#cbc5ba;
}
.ky-role-head span {
  display:block;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
  margin-bottom:7px;
}
.ky-role-head h3 {
  font-size:25px;
}
.ky-role-card ul {
  margin:0;
  padding:0;
  list-style:none;
}
.ky-role-card li {
  display:grid;
  gap:4px;
  padding:14px 0;
  border-bottom:1px solid;
}
.ky-role-card.rebirth li {
  border-color:#4c4c47;
}
.ky-role-card.company li {
  border-color:#d4cec3;
}
.ky-role-card li:last-child {
  border-bottom:0;
}
.ky-role-card li b {
  font-size:15px;
}
.ky-role-card li span {
  font-size:12px;
  line-height:1.65;
}
.ky-role-card.rebirth li span {
  color:#c7c3bc;
}
.ky-role-card.company li span {
  color:#69645d;
}

.ky-burden-summary {
  margin-top:38px;
  display:grid;
  grid-template-columns:.3fr 1fr 1fr;
  gap:26px;
  align-items:start;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.ky-burden-summary .eyebrow {
  margin:6px 0 0;
}
.ky-burden-summary h3 {
  margin:0;
  font-size:clamp(23px,2.3vw,34px);
  line-height:1.5;
}
.ky-burden-summary > p:last-child {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.9;
}

@media(max-width:900px){
  .ky-role-grid {
    grid-template-columns:1fr;
  }
  .ky-burden-summary {
    grid-template-columns:1fr;
    gap:12px;
  }
}
@media(max-width:560px){
  .service-subname {
    font-size:11px;
  }
  .ky-role-card {
    padding:26px 20px 20px;
  }
}


/* =========================================================
   v16 WORK EXPERIENCE / INTERNSHIP DESIGN
   ========================================================= */

.rv-subservice-link,
.ky-example-link {
  display:inline-block;
  margin-top:16px;
}

.in-main { background:var(--paper); color:var(--ink); }

.in-hero {
  position:relative;
  width:min(calc(100% - 48px),var(--max));
  min-height:680px;
  margin:28px auto 0;
  overflow:hidden;
  background:#ddd8ce;
}
.in-hero-photo { position:absolute; inset:0; }
.in-hero-photo img {
  width:100%;height:100%;object-fit:cover;
  object-position:center center;
}
.in-hero-photo::after {
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(247,244,236,.99) 0%,
    rgba(247,244,236,.96) 36%,
    rgba(247,244,236,.66) 51%,
    rgba(247,244,236,.08) 72%);
}
.in-hero-copy {
  position:relative;
  z-index:2;
  width:61%;
  padding:76px 0 72px 48px;
}
.in-hero-copy h1 {
  margin:10px 0 28px;
  font-size:clamp(48px,5.3vw,80px);
  line-height:1.14;
  letter-spacing:-.05em;
}
.in-hero-copy .lead {
  max-width:680px;
  font-size:18px;
  line-height:1.95;
}
.in-hero-note {
  display:inline-block;
  margin-top:26px;
  padding:10px 14px;
  background:#fff;
  border-left:4px solid var(--accent);
  font-size:14px;
  font-weight:800;
}

.in-section {
  padding:116px max(24px,calc((100vw - var(--max))/2));
}
.in-section.white { background:#fff; }
.in-section.soft { background:#efeae1; }
.in-section.dark { background:var(--dark); color:#fff; }

.in-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start;
}
.in-section h2 {
  margin:10px 0 28px;
  font-size:clamp(40px,4.4vw,66px);
  line-height:1.2;
  letter-spacing:-.045em;
}
.in-section h3 {
  margin:0;
  font-size:clamp(26px,2.5vw,39px);
  line-height:1.4;
}
.in-section p { line-height:1.95; }

.in-problems {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:58px;
}
.in-problems article {
  padding:26px 22px;
  background:#f4f1ea;
  border-top:3px solid var(--ink);
}
.in-problems span,
.in-five span {
  color:var(--accent);
  font-size:11px;
  font-weight:900;
}
.in-problems b,
.in-five b {
  display:block;
  margin:9px 0 8px;
  font-size:18px;
  line-height:1.5;
}
.in-problems p,
.in-five p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}

.in-five {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
  margin-top:58px;
}
.in-five > div {
  padding:24px 18px;
  background:#fff;
  border-top:4px solid #55a55e;
}

.in-stage {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:60px;
}
.in-stage article {
  overflow:hidden;
  background:#f4f1ea;
  border-top:4px solid var(--ink);
}
.in-stage-head {
  padding:20px 22px 16px;
}
.in-stage-head span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.in-stage-head h3 {
  margin-top:5px;
  font-size:28px;
}
.in-stage figure {
  margin:0;
  aspect-ratio:16/10;
}
.in-stage figure img {
  width:100%;height:100%;object-fit:cover;
}
.in-stage ul {
  margin:0;
  padding:22px 26px 26px 40px;
  font-size:13px;
  line-height:1.8;
}

.in-work-head {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:70px;
  align-items:end;
}
.in-work-head h2 { margin-bottom:0; }
.in-work-head > div:last-child p {
  color:#d0ccc4;
  margin:0;
}
.in-work-gallery {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:58px;
}
.in-work-gallery figure {
  position:relative;
  margin:0;
  aspect-ratio:4/5;
  overflow:hidden;
  background:#333;
}
.in-work-gallery img {
  width:100%;height:100%;object-fit:cover;
}
.in-work-gallery figcaption {
  position:absolute;
  inset:auto 0 0 0;
  padding:55px 20px 18px;
  background:linear-gradient(0deg,rgba(18,18,17,.94),rgba(18,18,17,0));
}
.in-work-gallery figcaption span {
  display:block;
  color:#ff8a68;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.in-work-gallery figcaption b {
  display:block;
  margin:6px 0 5px;
  color:#fff;
  font-size:20px;
}
.in-work-gallery figcaption p {
  margin:0;
  color:#cbc7c0;
  font-size:12px;
  line-height:1.65;
}
.in-work-quote {
  margin-top:38px;
  padding:30px 0 0;
  border-top:1px solid #55554f;
}
.in-work-quote > p {
  color:#aaa69f;
  margin:0 0 8px;
}
.in-work-quote h3 {
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(31px,3.5vw,51px);
  line-height:1.45;
}

.in-employee {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:64px;
  align-items:center;
}
.in-employee figure {
  margin:0;
  aspect-ratio:4/3;
}
.in-employee figure img {
  width:100%;height:100%;object-fit:cover;
}
.in-employee-points {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:26px;
}
.in-employee-points span {
  padding:9px 11px;
  background:#fff;
  border:1px solid var(--line);
  font-size:12px;
}

.in-role-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:56px;
}
.in-role {
  padding:30px 28px;
  border-top:5px solid;
}
.in-role.rebirth {
  background:var(--dark);
  color:#fff;
  border-top-color:var(--accent);
}
.in-role.company {
  background:#f3efe7;
  border-top-color:var(--ink);
}
.in-role > span {
  display:block;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.in-role h3 {
  margin:7px 0 18px;
  font-size:25px;
}
.in-role ul {
  margin:0;
  padding:0;
  list-style:none;
}
.in-role li {
  padding:12px 0;
  border-top:1px solid;
  font-size:14px;
  line-height:1.6;
}
.in-role.rebirth li { border-color:#4c4c47; }
.in-role.company li { border-color:#d1cbc0; }

.in-flow {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:8px;
  margin-top:58px;
}
.in-flow > div {
  padding:23px 16px;
  background:#fff;
  border-top:3px solid #55a55e;
}
.in-flow span {
  display:block;
  color:#4c9655;
  font-size:10px;
  font-weight:900;
}
.in-flow b {
  display:block;
  margin:8px 0 6px;
  font-size:17px;
}
.in-flow p {
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.65;
}

.in-deliverables {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  margin-top:56px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.in-deliverables > div {
  padding:26px 18px;
  border-right:1px solid var(--line);
}
.in-deliverables > div:last-child { border-right:0; }
.in-deliverables span {
  display:block;
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  margin-bottom:9px;
}
.in-deliverables b {
  font-size:16px;
  line-height:1.55;
}

.in-bridge {
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:64px;
  align-items:center;
}
.in-bridge figure {
  margin:0;
  aspect-ratio:4/3;
  overflow:hidden;
}
.in-bridge img {
  width:100%;height:100%;object-fit:cover;
}
.in-bridge p {
  color:#d0ccc4;
}
.in-bridge .button { margin-top:20px; }

.in-faq {
  width:min(100%,940px);
  margin:54px auto 0;
  border-top:1px solid var(--line);
}
.in-faq details { border-bottom:1px solid var(--line); }
.in-faq summary {
  cursor:pointer;
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  gap:18px;
  font-weight:800;
  list-style:none;
}
.in-faq summary::after {
  content:"+";
  color:var(--accent);
  font-size:22px;
}
.in-faq details[open] summary::after { content:"−"; }
.in-faq details p {
  margin:0;
  padding:0 0 24px;
  color:var(--muted);
}

.in-cta {
  padding:112px max(24px,calc((100vw - 920px)/2));
  background:var(--dark);
  color:#fff;
  text-align:center;
}
.in-cta h2 {
  margin:0 0 26px;
  font-size:clamp(42px,4.7vw,68px);
}
.in-cta p {
  max-width:760px;
  margin:0 auto 32px;
  color:#d0ccc4;
  line-height:1.9;
}
.in-cta-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
}

@media(max-width:1000px){
  .in-five { grid-template-columns:repeat(3,1fr); }
  .in-flow { grid-template-columns:repeat(3,1fr); }
  .in-deliverables { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:900px){
  .in-hero{min-height:0}
  .in-hero-photo{position:relative;aspect-ratio:16/10}
  .in-hero-photo::after{display:none}
  .in-hero-copy{width:100%;padding:46px 28px 52px}
  .in-two-col,.in-work-head,.in-employee,.in-bridge{grid-template-columns:1fr;gap:34px}
  .in-problems,.in-stage,.in-five{grid-template-columns:1fr 1fr}
  .in-work-gallery{grid-template-columns:1fr 1fr}
  .in-role-grid{grid-template-columns:1fr}
  .in-flow{grid-template-columns:1fr 1fr}
  .in-deliverables{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .in-hero{width:100%;margin-top:0}
  .in-hero-copy h1{font-size:42px}
  .in-section{padding-block:82px}
  .in-section h2{font-size:38px}
  .in-problems,.in-stage,.in-five,.in-work-gallery,.in-flow,.in-deliverables{grid-template-columns:1fr}
  .in-work-gallery figure{aspect-ratio:4/3}
  .in-deliverables > div{border-right:0;border-bottom:1px solid var(--line)}
  .in-deliverables > div:last-child{border-bottom:0}
}


/* =========================================================
   v17 INDUSTRY LANDING PAGES
   ========================================================= */
.ind-main { background:var(--paper); color:var(--ink); }

.ind-hero {
  position:relative;
  width:min(calc(100% - 48px),var(--max));
  min-height:670px;
  margin:28px auto 0;
  overflow:hidden;
  background:#ddd8ce;
}
.ind-hero-photo { position:absolute;inset:0; }
.ind-hero-photo img {
  width:100%;height:100%;object-fit:cover;
}
.ind-hero.construction .ind-hero-photo img { object-position:center 44%; }
.ind-hero.manufacturing .ind-hero-photo img { object-position:center center; }
.ind-hero.welfare .ind-hero-photo img { object-position:center center; }
.ind-hero-photo::after {
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(247,244,236,.99) 0%,
    rgba(247,244,236,.96) 36%,
    rgba(247,244,236,.66) 52%,
    rgba(247,244,236,.07) 74%);
}
.ind-hero-copy {
  position:relative;z-index:2;
  width:61%;
  padding:76px 0 70px 48px;
}
.ind-hero-copy h1 {
  margin:10px 0 28px;
  font-size:clamp(48px,5.2vw,78px);
  line-height:1.14;
  letter-spacing:-.05em;
}
.ind-hero-copy .lead {
  max-width:690px;
  font-size:18px;
  line-height:1.95;
}
.ind-hero-note {
  display:inline-block;
  margin-top:25px;
  padding:10px 14px;
  background:#fff;
  border-left:4px solid var(--accent);
  font-size:13px;
  font-weight:800;
}

.ind-section {
  padding:116px max(24px,calc((100vw - var(--max))/2));
}
.ind-section.white{background:#fff}
.ind-section.soft{background:#efeae1}
.ind-section.dark{background:var(--dark);color:#fff}

.ind-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start;
}
.ind-section h2 {
  margin:10px 0 28px;
  font-size:clamp(40px,4.4vw,66px);
  line-height:1.2;
  letter-spacing:-.045em;
}
.ind-section h3 {
  margin:0;
  font-size:clamp(26px,2.5vw,38px);
  line-height:1.4;
}
.ind-section p { line-height:1.95; }

.ind-issues {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:58px;
}
.ind-issues article {
  padding:26px 22px;
  background:#f4f1ea;
  border-top:3px solid var(--ink);
}
.ind-issues span {
  color:var(--accent);
  font-size:11px;font-weight:900;
}
.ind-issues b {
  display:block;
  margin:9px 0 8px;
  font-size:18px;
  line-height:1.5;
}
.ind-issues p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}

.ind-approach {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:64px;
  align-items:center;
}
.ind-approach figure {
  margin:0;
  aspect-ratio:4/3;
  overflow:hidden;
}
.ind-approach figure img {
  width:100%;height:100%;object-fit:cover;
}
.ind-questions {
  margin:26px 0;
  border-top:1px solid var(--line);
}
.ind-questions p {
  margin:0;
  padding:11px 0;
  border-bottom:1px solid var(--line);
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:17px;
}

.ind-service-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:58px;
}
.ind-service-grid a {
  display:flex;
  flex-direction:column;
  min-height:300px;
  padding:26px 22px;
  color:inherit;
  text-decoration:none;
  background:#f4f1ea;
  border-top:4px solid var(--ink);
  transition:transform .2s ease;
}
.ind-service-grid a:hover { transform:translateY(-3px); }
.ind-service-grid span {
  color:var(--accent);
  font-size:10px;font-weight:900;
  letter-spacing:.08em;
}
.ind-service-grid h3 {
  margin:12px 0;
  font-size:23px;
}
.ind-service-grid p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}
.ind-service-grid b {
  margin-top:auto;
  padding-top:20px;
  font-size:12px;
  color:var(--accent);
}

.ind-photo-triptych {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:54px;
}
.ind-photo-triptych figure {
  position:relative;
  margin:0;
  aspect-ratio:4/3;
  overflow:hidden;
}
.ind-photo-triptych img {
  width:100%;height:100%;object-fit:cover;
}
.ind-photo-triptych figcaption {
  position:absolute;
  inset:auto 0 0 0;
  padding:34px 14px 12px;
  background:linear-gradient(0deg,rgba(20,20,19,.9),rgba(20,20,19,0));
  color:#fff;
  font-size:13px;
  font-weight:800;
}

.ind-tags {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:46px;
}
.ind-tags span {
  padding:10px 13px;
  background:#f3efe7;
  border:1px solid var(--line);
  font-size:13px;
}

.ind-retention {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:18px;
  align-items:center;
  margin-top:52px;
}
.ind-retention > div:not(.arrow) {
  padding:30px 26px;
  background:#fff;
  color:var(--ink);
  border-top:4px solid var(--accent);
}
.ind-retention span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.ind-retention p {
  margin:10px 0 0;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:20px;
  line-height:1.7;
}
.ind-retention .arrow {
  color:#aaa69f;
  font-size:27px;
}
.ind-retention-note {
  max-width:900px;
  margin:30px auto 0;
  text-align:center;
  color:#d0ccc4;
}

.ind-cta {
  padding:112px max(24px,calc((100vw - 940px)/2));
  background:var(--dark);
  color:#fff;
  text-align:center;
}
.ind-cta h2 {
  margin:0 0 26px;
  font-size:clamp(42px,4.7vw,68px);
}
.ind-cta p {
  max-width:740px;
  margin:0 auto 32px;
  color:#d0ccc4;
  line-height:1.9;
}
.ind-cta-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
}

/* industry links on internship page */
.in-industry-links {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:48px;
}
.in-industry-links a {
  padding:26px 22px;
  background:#fff;
  border-top:4px solid var(--ink);
  color:inherit;
  text-decoration:none;
}
.in-industry-links span {
  display:block;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.in-industry-links b {
  display:block;
  margin:8px 0;
  font-size:23px;
}
.in-industry-links p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}

/* Footer expands gracefully to four columns */
.site-footer .footer-grid {
  grid-template-columns:minmax(220px,1.3fr) repeat(3,minmax(150px,1fr));
}

@media(max-width:1000px){
  .ind-service-grid{grid-template-columns:1fr 1fr}
  .site-footer .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .ind-hero{min-height:0}
  .ind-hero-photo{position:relative;aspect-ratio:16/10}
  .ind-hero-photo::after{display:none}
  .ind-hero-copy{width:100%;padding:46px 28px 52px}
  .ind-two-col,.ind-approach{grid-template-columns:1fr;gap:34px}
  .ind-issues{grid-template-columns:1fr 1fr}
  .ind-photo-triptych{grid-template-columns:1fr 1fr}
  .ind-retention{grid-template-columns:1fr}
  .ind-retention .arrow{transform:rotate(90deg);justify-self:center}
  .in-industry-links{grid-template-columns:1fr}
}
@media(max-width:560px){
  .ind-hero{width:100%;margin-top:0}
  .ind-hero-copy h1{font-size:42px}
  .ind-section{padding-block:82px}
  .ind-section h2{font-size:38px}
  .ind-issues,.ind-service-grid,.ind-photo-triptych{grid-template-columns:1fr}
  .ind-photo-triptych figure{aspect-ratio:4/3}
  .site-footer .footer-grid{grid-template-columns:1fr}
}


/* =========================================================
   v18 CASE DETAIL PAGES
   ========================================================= */
.case-detail-link { margin-top:20px; display:inline-block; }
.case-detail-link-dark { color:#fff; }

.case-detail-main { background:var(--paper);color:var(--ink); }

.cd-hero {
  position:relative;
  width:min(calc(100% - 48px),var(--max));
  min-height:680px;
  margin:28px auto 0;
  overflow:hidden;
  background:#ddd8ce;
}
.cd-hero-photo { position:absolute;inset:0; }
.cd-hero-photo img {
  width:100%;height:100%;object-fit:cover;
  object-position:center center;
}
.cd-hero-photo::after {
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(247,244,236,.99) 0%,
    rgba(247,244,236,.96) 36%,
    rgba(247,244,236,.68) 53%,
    rgba(247,244,236,.08) 75%);
}
.cd-hero-copy {
  position:relative;
  z-index:2;
  width:62%;
  padding:72px 0 68px 48px;
}
.cd-case-no {
  margin-bottom:18px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--accent);
}
.cd-case-no span {
  margin-left:10px;
  color:var(--ink);
  letter-spacing:.03em;
}
.cd-hero-copy h1 {
  margin:18px 0 27px;
  font-size:clamp(45px,5vw,75px);
  line-height:1.16;
  letter-spacing:-.05em;
}
.cd-hero-copy .lead {
  max-width:690px;
  font-size:18px;
  line-height:1.95;
}

.cd-section {
  padding:116px max(24px,calc((100vw - var(--max))/2));
}
.cd-section.white { background:#fff; }
.cd-section.soft { background:#efeae1; }
.cd-section.dark { background:var(--dark);color:#fff; }

.cd-two-col,
.cd-story {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start;
}
.cd-section h2,
.cd-related h2 {
  margin:10px 0 28px;
  font-size:clamp(40px,4.35vw,65px);
  line-height:1.2;
  letter-spacing:-.045em;
}
.cd-section p { line-height:1.95; }

.cd-start-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:56px;
}
.cd-start-grid > div {
  padding:27px 23px;
  background:#f4f1ea;
  border-top:3px solid var(--ink);
}
.cd-start-grid span {
  color:var(--accent);
  font-size:11px;
  font-weight:900;
}
.cd-start-grid b {
  display:block;
  margin:9px 0 8px;
  font-size:18px;
  line-height:1.5;
}
.cd-start-grid p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}

.cd-process-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:56px;
}
.cd-process-grid figure {
  position:relative;
  margin:0;
  min-height:420px;
  overflow:hidden;
  background:#ddd;
}
.cd-process-grid img {
  width:100%;height:100%;
  object-fit:cover;
  position:absolute;inset:0;
}
.cd-process-grid figcaption {
  position:absolute;
  inset:auto 0 0 0;
  padding:70px 20px 19px;
  color:#fff;
  background:linear-gradient(0deg,rgba(20,20,19,.94),rgba(20,20,19,0));
}
.cd-process-grid figcaption span {
  display:block;
  color:#ff8a68;
  font-size:10px;
  font-weight:900;
}
.cd-process-grid figcaption b {
  display:block;
  margin:6px 0 5px;
  font-size:20px;
}
.cd-process-grid figcaption p {
  margin:0;
  color:#d1cdc6;
  font-size:12px;
  line-height:1.65;
}

.cd-dialogue {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:30px;
}
.cd-dialogue > div {
  padding:26px 24px;
  background:#fff;
  border-left:4px solid var(--accent);
}
.cd-dialogue span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.cd-dialogue p {
  margin:8px 0 0;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:20px;
}

.cd-change-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:54px;
}
.cd-change-cards > div {
  padding:28px 24px;
  background:#fff;
  color:var(--ink);
  border-top:4px solid var(--accent);
}
.cd-change-cards span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.cd-change-cards h3 {
  margin:9px 0 10px;
  font-size:22px;
  line-height:1.45;
}
.cd-change-cards p {
  margin:0;
  color:#625e57;
  font-size:13px;
}
.cd-main-quote {
  margin:48px 0 0;
  padding:30px 0 0;
  border-top:1px solid #55554f;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(29px,3.2vw,48px);
  line-height:1.5;
}
.cd-main-quote strong { color:#ff8a68; }
.cd-verification-note {
  margin-top:18px;
  color:#a9a59e;
  font-size:11px;
}

.cd-cross {
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1.2fr;
  gap:16px;
  align-items:stretch;
  margin-top:42px;
}
.cd-cross > div:not(.cross-symbol):not(.cross-equals) {
  padding:24px 20px;
  background:#fff;
  border-top:3px solid var(--ink);
}
.cd-cross span {
  display:block;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
}
.cd-cross b {
  display:block;
  margin-top:7px;
  font-size:17px;
}
.cd-cross .cross-symbol,
.cd-cross .cross-equals {
  align-self:center;
  font-size:24px;
  color:#99948b;
}
.cd-cross .result { border-top-color:var(--accent)!important; }

.cd-anonymous {
  padding:64px max(24px,calc((100vw - 880px)/2));
  background:#efeae1;
}
.cd-anonymous > div {
  padding:28px 30px;
  background:#fff;
  border-left:4px solid var(--accent);
}
.cd-anonymous h3 {
  margin:8px 0 10px;
  font-size:25px;
}
.cd-anonymous p:last-child {
  margin:0;
  line-height:1.8;
  color:var(--muted);
}

.cd-logistics-view {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:18px;
  align-items:center;
  margin-top:54px;
}
.cd-logistics-view .before,
.cd-logistics-view .after {
  padding:30px 26px;
  background:#fff;
  border-top:4px solid var(--ink);
}
.cd-logistics-view .after { border-top-color:var(--accent); }
.cd-logistics-view span {
  display:block;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.cd-logistics-view strong {
  display:block;
  margin:9px 0;
  font-size:26px;
  line-height:1.4;
}
.cd-logistics-view p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}
.cd-logistics-view .shift {
  font-size:28px;
  color:#99948b;
}
.cd-wide-photo {
  margin:38px 0 0;
  position:relative;
  aspect-ratio:16/7;
  overflow:hidden;
}
.cd-wide-photo img {
  width:100%;height:100%;object-fit:cover;
}
.cd-wide-photo figcaption {
  position:absolute;
  inset:auto 0 0 0;
  padding:45px 18px 14px;
  color:#fff;
  background:linear-gradient(0deg,rgba(20,20,19,.9),rgba(20,20,19,0));
  font-size:12px;
}

.cd-related {
  padding:96px max(24px,calc((100vw - var(--max))/2));
  background:#efeae1;
}
.cd-related h2 {
  max-width:760px;
}
.cd-related-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:42px;
}
.cd-related-grid a {
  display:flex;
  flex-direction:column;
  min-height:180px;
  padding:25px 22px;
  background:#fff;
  border-top:4px solid var(--ink);
  color:inherit;
  text-decoration:none;
}
.cd-related-grid span {
  color:var(--accent);
  font-size:11px;
  font-weight:900;
}
.cd-related-grid b {
  margin-top:auto;
  padding-top:28px;
  line-height:1.55;
}

.cd-next {
  padding:0 max(24px,calc((100vw - var(--max))/2)) 96px;
  background:#efeae1;
}
.cd-next a {
  display:block;
  padding:30px 28px;
  background:var(--dark);
  color:#fff;
  text-decoration:none;
}
.cd-next small {
  display:block;
  color:#ff8a68;
  margin-bottom:9px;
  font-weight:900;
}
.cd-next strong {
  display:block;
  font-size:clamp(19px,2vw,28px);
  line-height:1.5;
}

.ind-case-entry {
  padding:86px max(24px,calc((100vw - 900px)/2));
  background:#efeae1;
  text-align:center;
}
.ind-case-entry h2 {
  margin:8px 0 15px;
  font-size:clamp(36px,4vw,56px);
}
.ind-case-entry p {
  max-width:690px;
  margin:0 auto 24px;
  line-height:1.85;
}

/* Footer can now accommodate service/case/link or service/industry/case/link */
.site-footer .footer-grid {
  grid-template-columns:minmax(210px,1.3fr) repeat(4,minmax(135px,1fr));
}

@media(max-width:1050px){
  .site-footer .footer-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:900px){
  .cd-hero{min-height:0}
  .cd-hero-photo{position:relative;aspect-ratio:16/10}
  .cd-hero-photo::after{display:none}
  .cd-hero-copy{width:100%;padding:46px 28px 52px}
  .cd-two-col,.cd-story{grid-template-columns:1fr;gap:34px}
  .cd-start-grid,.cd-process-grid,.cd-change-cards,.cd-related-grid{grid-template-columns:1fr}
  .cd-process-grid figure{min-height:0;aspect-ratio:4/3}
  .cd-dialogue{grid-template-columns:1fr}
  .cd-cross{grid-template-columns:1fr}
  .cd-cross .cross-symbol,.cd-cross .cross-equals{transform:rotate(90deg);justify-self:center}
  .cd-logistics-view{grid-template-columns:1fr}
  .cd-logistics-view .shift{transform:rotate(90deg);justify-self:center}
  .cd-wide-photo{aspect-ratio:4/3}
}
@media(max-width:560px){
  .cd-hero{width:100%;margin-top:0}
  .cd-hero-copy h1{font-size:40px}
  .cd-section{padding-block:82px}
  .cd-section h2,.cd-related h2{font-size:37px}
  .site-footer .footer-grid{grid-template-columns:1fr}
}


/* =========================================================
   v19 ABOUT RE-BIRTH
   ========================================================= */
.ab-main { background:var(--paper);color:var(--ink); }

.ab-hero {
  position:relative;
  width:min(calc(100% - 48px),var(--max));
  min-height:680px;
  margin:28px auto 0;
  overflow:hidden;
  background:#ddd8ce;
}
.ab-hero-photo { position:absolute;inset:0; }
.ab-hero-photo img {
  width:100%;height:100%;object-fit:cover;
  object-position:center center;
}
.ab-hero-photo::after {
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(247,244,236,.99) 0%,
    rgba(247,244,236,.96) 36%,
    rgba(247,244,236,.68) 53%,
    rgba(247,244,236,.08) 75%);
}
.ab-hero-copy {
  position:relative;z-index:2;
  width:61%;
  padding:76px 0 70px 48px;
}
.ab-hero-copy h1 {
  margin:10px 0 28px;
  font-size:clamp(49px,5.3vw,80px);
  line-height:1.14;
  letter-spacing:-.05em;
}
.ab-hero-copy .lead {
  max-width:680px;
  font-size:18px;
  line-height:1.95;
}
.ab-hero-note {
  display:inline-block;
  margin-top:25px;
  padding:10px 14px;
  background:#fff;
  border-left:4px solid var(--accent);
  font-size:13px;
  font-weight:800;
}

.ab-section {
  padding:116px max(24px,calc((100vw - var(--max))/2));
}
.ab-section.white { background:#fff; }
.ab-section.soft { background:#efeae1; }
.ab-section.dark { background:var(--dark);color:#fff; }

.ab-two-col,
.ab-kyouiku,
.ab-message {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start;
}
.ab-section h2,
.ab-related h2 {
  margin:10px 0 28px;
  font-size:clamp(40px,4.4vw,66px);
  line-height:1.2;
  letter-spacing:-.045em;
}
.ab-section p { line-height:1.95; }

.ab-large-quote {
  margin:60px 0 0;
  padding:30px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(30px,3.6vw,53px);
  line-height:1.55;
}
.ab-large-quote strong { color:var(--accent); }

.ab-flow {
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;
  gap:8px;
  align-items:stretch;
  margin-top:56px;
}
.ab-flow > div:not(.arrow) {
  padding:24px 17px;
  background:#fff;
  border-top:3px solid #55a55e;
}
.ab-flow span {
  display:block;
  color:#4c9655;
  font-size:10px;
  font-weight:900;
}
.ab-flow b {
  display:block;
  margin:7px 0;
  font-size:19px;
}
.ab-flow p {
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.ab-flow .arrow {
  align-self:center;
  color:#99948b;
}

.ab-timeline {
  margin-top:64px;
}
.ab-timeline article {
  display:grid;
  grid-template-columns:110px 36px 1fr;
  min-height:170px;
}
.ab-timeline .year {
  font-size:33px;
  font-weight:900;
  color:var(--accent);
  padding-top:3px;
}
.ab-timeline .line {
  position:relative;
}
.ab-timeline .line::before {
  content:"";
  position:absolute;
  left:17px;top:0;bottom:0;
  width:1px;
  background:var(--line);
}
.ab-timeline .line::after {
  content:"";
  position:absolute;
  left:11px;top:8px;
  width:13px;height:13px;
  border-radius:50%;
  background:var(--accent);
}
.ab-timeline .body {
  padding:0 0 42px 18px;
}
.ab-timeline .label {
  margin:0 0 5px;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.ab-timeline h3 {
  margin:0 0 10px;
  font-size:26px;
}
.ab-timeline .body p:last-child {
  margin:0;
  color:var(--muted);
}

.ab-tugumi {
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:64px;
  align-items:start;
}
.ab-tugumi-copy > p { color:#d0ccc4; }
.ab-tugumi-copy blockquote {
  margin:32px 0 28px;
  padding:24px 0;
  border-top:1px solid #55554f;
  border-bottom:1px solid #55554f;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:25px;
  line-height:1.6;
}
.ab-tugumi-copy blockquote strong { color:#ff8a68; }

.ab-tugumi-gallery {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.ab-tugumi-gallery figure {
  margin:0;
  overflow:hidden;
  background:#333;
  aspect-ratio:4/3;
}
.ab-tugumi-gallery figure.large {
  grid-column:1 / -1;
  aspect-ratio:16/10;
}
.ab-tugumi-gallery img {
  width:100%;height:100%;object-fit:cover;
}

.ab-brand-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:56px;
}
.ab-brand-grid article {
  min-height:260px;
  padding:28px 24px;
  background:#fff;
  border-top:4px solid var(--ink);
}
.ab-brand-grid article.tugumi { border-top-color:#55a55e; }
.ab-brand-grid article.media { border-top-color:#2367aa; }
.ab-brand-grid span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.ab-brand-grid h3 {
  margin:9px 0 12px;
  font-size:27px;
}
.ab-brand-grid p {
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.ab-brand-key {
  margin:36px 0 0;
  text-align:center;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(24px,2.7vw,39px);
}
.ab-brand-key strong { color:var(--accent); }

.ab-kyouiku blockquote,
.ab-message blockquote {
  margin:28px 0;
  padding:24px 0;
  border-top:1px solid;
  border-bottom:1px solid;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(23px,2.5vw,36px);
  line-height:1.6;
}
.ab-kyouiku blockquote { border-color:var(--line); }
.ab-message blockquote { border-color:#55554f; }
.ab-message-body p { color:#d0ccc4; }
.ab-message-body blockquote { color:#fff; }
.ab-message-body blockquote strong { color:#ff8a68; }
.ab-message .signature {
  margin-top:34px;
  padding-top:22px;
  border-top:1px solid #55554f;
  color:#fff;
}

.ab-company {
  display:grid;
  grid-template-columns:.36fr .64fr;
  gap:70px;
}
.ab-company-table {
  margin:0;
  border-top:1px solid var(--line);
}
.ab-company-table > div {
  display:grid;
  grid-template-columns:150px 1fr;
  gap:24px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
}
.ab-company-table dt {
  color:var(--muted);
  font-size:13px;
  font-weight:800;
}
.ab-company-table dd {
  margin:0;
  line-height:1.75;
}
.ab-company-table ul {
  margin:0;
  padding-left:1.2em;
}

.ab-related {
  padding:96px max(24px,calc((100vw - var(--max))/2));
  background:#efeae1;
}
.ab-related-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:42px;
}
.ab-related-grid a {
  display:flex;
  flex-direction:column;
  min-height:170px;
  padding:24px 21px;
  background:#fff;
  border-top:4px solid var(--ink);
  color:inherit;
  text-decoration:none;
}
.ab-related-grid span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
}
.ab-related-grid b {
  margin-top:auto;
  padding-top:25px;
  line-height:1.55;
}

.ab-cta {
  padding:112px max(24px,calc((100vw - 920px)/2));
  background:var(--dark);
  color:#fff;
  text-align:center;
}
.ab-cta h2 {
  margin:0 0 26px;
  font-size:clamp(42px,4.7vw,68px);
}
.ab-cta p {
  max-width:720px;
  margin:0 auto 30px;
  color:#d0ccc4;
  line-height:1.9;
}

/* six-column footer can collapse gracefully */
.site-footer .footer-grid {
  grid-template-columns:minmax(200px,1.25fr) repeat(5,minmax(125px,1fr));
}

@media(max-width:1100px){
  .site-footer .footer-grid { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:900px){
  .ab-hero { min-height:0; }
  .ab-hero-photo { position:relative;aspect-ratio:16/10; }
  .ab-hero-photo::after { display:none; }
  .ab-hero-copy { width:100%;padding:46px 28px 52px; }
  .ab-two-col,.ab-kyouiku,.ab-message,.ab-tugumi,.ab-company { grid-template-columns:1fr;gap:34px; }
  .ab-flow { grid-template-columns:1fr; }
  .ab-flow .arrow { transform:rotate(90deg);justify-self:start;margin-left:18px; }
  .ab-brand-grid { grid-template-columns:1fr; }
  .ab-related-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px){
  .ab-hero { width:100%;margin-top:0; }
  .ab-hero-copy h1 { font-size:42px; }
  .ab-section { padding-block:82px; }
  .ab-section h2,.ab-related h2 { font-size:38px; }
  .ab-timeline article { grid-template-columns:78px 28px 1fr; }
  .ab-timeline .year { font-size:24px; }
  .ab-company-table > div { grid-template-columns:1fr;gap:6px; }
  .ab-related-grid { grid-template-columns:1fr; }
  .site-footer .footer-grid { grid-template-columns:1fr; }
}


/* =========================================================
   v20 SHIGA OSHIGOTO CHANNEL
   ========================================================= */
.oshigoto-detail-link {
  display:inline-block;
  margin-left:14px;
}

.oc-main { background:var(--paper); color:var(--ink); }

.oc-hero {
  position:relative;
  width:min(calc(100% - 48px),var(--max));
  min-height:680px;
  margin:28px auto 0;
  overflow:hidden;
  background:#ddd8ce;
}
.oc-hero-photo { position:absolute; inset:0; }
.oc-hero-photo img {
  width:100%;height:100%;object-fit:cover;
  object-position:center center;
}
.oc-hero-photo::after {
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(247,244,236,.99) 0%,
    rgba(247,244,236,.96) 36%,
    rgba(247,244,236,.68) 53%,
    rgba(247,244,236,.08) 75%);
}
.oc-hero-copy {
  position:relative;
  z-index:2;
  width:61%;
  padding:76px 0 70px 48px;
}
.oc-hero-copy h1 {
  margin:10px 0 28px;
  font-size:clamp(50px,5.5vw,82px);
  line-height:1.14;
  letter-spacing:-.05em;
}
.oc-hero-copy .lead {
  max-width:680px;
  font-size:18px;
  line-height:1.95;
}
.oc-hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}
.button.ghost.dark-text {
  color:var(--ink);
  border-color:var(--ink);
}

.oc-section {
  padding:116px max(24px,calc((100vw - var(--max))/2));
}
.oc-section.white { background:#fff; }
.oc-section.soft { background:#efeae1; }
.oc-section.dark { background:var(--dark); color:#fff; }

.oc-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start;
}
.oc-section h2,
.oc-youtube h2 {
  margin:10px 0 28px;
  font-size:clamp(40px,4.4vw,66px);
  line-height:1.2;
  letter-spacing:-.045em;
}
.oc-section p { line-height:1.95; }

.oc-big-quote {
  margin:60px 0 0;
  padding:30px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(30px,3.5vw,52px);
  line-height:1.55;
}
.oc-big-quote strong { color:var(--accent); }

.oc-principles {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:58px;
}
.oc-principles article {
  min-height:270px;
  padding:28px 24px;
  background:#fff;
  border-top:4px solid var(--ink);
}
.oc-principles span {
  color:var(--accent);
  font-size:11px;
  font-weight:900;
}
.oc-principles h3 {
  margin:10px 0 12px;
  font-size:24px;
  line-height:1.5;
}
.oc-principles p {
  margin:0;
  color:var(--muted);
  font-size:14px;
}

.oc-visit-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:58px;
}
.oc-visit-grid figure {
  position:relative;
  margin:0;
  aspect-ratio:3/4;
  overflow:hidden;
  background:#333;
}
.oc-visit-grid img {
  width:100%;height:100%;object-fit:cover;
}
.oc-visit-grid figcaption {
  position:absolute;
  inset:auto 0 0 0;
  padding:50px 15px 14px;
  background:linear-gradient(0deg,rgba(20,20,19,.92),rgba(20,20,19,0));
  color:#fff;
}
.oc-visit-grid figcaption span {
  display:block;
  color:#ff8a68;
  font-size:10px;
  font-weight:900;
}
.oc-visit-grid figcaption b {
  display:block;
  margin-top:4px;
  font-size:17px;
}
.oc-words {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:34px;
}
.oc-words span {
  padding:11px 14px;
  border:1px solid #5d5a54;
  color:#fff;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:20px;
}

.oc-archive {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:56px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.oc-archive > div {
  padding:26px 20px;
  border-right:1px solid var(--line);
}
.oc-archive > div:last-child { border-right:0; }
.oc-archive span {
  display:block;
  color:var(--accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  margin-bottom:8px;
}
.oc-archive b {
  font-size:17px;
  line-height:1.5;
}
.oc-archive-note {
  margin:32px auto 0;
  max-width:860px;
  text-align:center;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;
  font-size:clamp(20px,2vw,30px);
}

.oc-relation-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:56px;
}
.oc-relation-grid article {
  display:flex;
  flex-direction:column;
  min-height:300px;
  padding:28px 24px;
  background:#fff;
  border-top:4px solid var(--ink);
}
.oc-relation-grid article.active { border-top-color:#2367aa; }
.oc-relation-grid span {
  color:var(--accent);
  font-size:10px;
  font-weight:900;
}
.oc-relation-grid h3 {
  margin:9px 0 12px;
  font-size:28px;
}
.oc-relation-grid p {
  margin:0;
  color:var(--muted);
}
.oc-relation-grid a {
  margin-top:auto;
  padding-top:22px;
  color:var(--accent);
  font-size:12px;
  font-weight:800;
}

.oc-youtube {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  background:#efeae1;
}
.oc-youtube > div {
  padding:96px max(28px,calc((100vw - var(--max))/2));
  padding-right:60px;
}
.oc-youtube figure {
  margin:0;
  min-height:520px;
  overflow:hidden;
}
.oc-youtube figure img {
  width:100%;height:100%;object-fit:cover;
}
.oc-youtube p {
  line-height:1.9;
  color:var(--muted);
}
.oc-youtube .button { margin-top:14px; }

.oc-cta {
  padding:112px max(24px,calc((100vw - 920px)/2));
  background:var(--dark);
  color:#fff;
  text-align:center;
}
.oc-cta h2 {
  margin:0 0 26px;
  font-size:clamp(42px,4.7vw,68px);
}
.oc-cta p {
  max-width:760px;
  margin:0 auto 32px;
  color:#d0ccc4;
  line-height:1.9;
}
.oc-cta-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
}

/* footer now has media column too */
.site-footer .footer-grid {
  grid-template-columns:minmax(190px,1.2fr) repeat(6,minmax(120px,1fr));
}

@media(max-width:1150px){
  .site-footer .footer-grid { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:900px){
  .oc-hero { min-height:0; }
  .oc-hero-photo { position:relative; aspect-ratio:16/10; }
  .oc-hero-photo::after { display:none; }
  .oc-hero-copy { width:100%;padding:46px 28px 52px; }
  .oc-two-col { grid-template-columns:1fr;gap:34px; }
  .oc-principles { grid-template-columns:1fr; }
  .oc-visit-grid { grid-template-columns:1fr 1fr; }
  .oc-archive { grid-template-columns:1fr 1fr; }
  .oc-archive > div:nth-child(2) { border-right:0; }
  .oc-archive > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .oc-relation-grid { grid-template-columns:1fr; }
  .oc-youtube { grid-template-columns:1fr; }
  .oc-youtube > div { padding:82px 28px; }
  .oc-youtube figure { min-height:0; aspect-ratio:16/10; }
}
@media(max-width:560px){
  .oc-hero { width:100%;margin-top:0; }
  .oc-hero-copy h1 { font-size:42px; }
  .oc-section { padding-block:82px; }
  .oc-section h2,.oc-youtube h2 { font-size:38px; }
  .oc-visit-grid,.oc-archive { grid-template-columns:1fr; }
  .oc-visit-grid figure { aspect-ratio:4/3; }
  .oc-archive > div { border-right:0;border-bottom:1px solid var(--line); }
  .oc-archive > div:last-child { border-bottom:0; }
  .site-footer .footer-grid { grid-template-columns:1fr; }
}
