/* ============================================================
   EDITORIAL / NARRATIVE GRID — Design Option B  (rev.2 — แก้บั๊ก)
   ใช้แทน style.css เฉพาะหน้า index-editorial.html
   พึ่ง reset.css / variables.css / typography.css / components.css
   ============================================================ */

/* ---------- พื้นหลังไปไว้ที่ html เพื่อให้ ::before ของ body ทำงานถูก ---------- */
html { background: var(--c-off-white); }
body.ed { background: transparent; }
main { transition: opacity .25s var(--ease); }

/* ---------- เส้นกริดจาง ๆ เป็นพื้นหลัง กลิ่นอายแบบก่อสร้าง ----------
   แก้บั๊ก: เดิมใช้ body.ed > * { position:relative } ซึ่งไปทับ position:fixed
   ของ modal / เมนูมือถือ / ปุ่ม back-to-top จนพังทั้งหน้า
   วิธีใหม่: ยกเลเยอร์เฉพาะ element ที่ต้องอยู่เหนือเส้นกริดเท่านั้น
   (ห้ามแตะ .header เพราะเป็น sticky และมี z-index ของตัวเองอยู่แล้ว) */
body.ed::before {
  content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image: linear-gradient(90deg, rgba(14,15,17,.035) 1px, transparent 1px);
  background-size: calc(100% / 6) 100%;
}
.ed-topbar,
body.ed > main,
.ed-footer { position: relative; z-index: 1; }
@media (max-width: 768px) { body.ed::before { display: none; } }

/* ============================================================
   1) TOP BAR + HEADER
   ============================================================ */
.ed-topbar {
  background: var(--c-off-white); border-bottom: var(--line);
  font-size: .75rem; letter-spacing: .08em; color: var(--c-grey-500);
}
.ed-topbar__inner {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 36px; gap: var(--sp-3);
}
.ed-topbar__id { text-transform: uppercase; letter-spacing: .16em; }
.ed-topbar__contact { display: flex; gap: var(--sp-3); }
.ed-topbar__contact a:hover { color: var(--c-accent); }
html[lang="th"] .ed-topbar__id, html[lang="zh"] .ed-topbar__id { text-transform: none; letter-spacing: .04em; }
@media (max-width: 768px) { .ed-topbar { display: none; } }

.ed-header.is-solid {
  background: var(--c-off-white); box-shadow: none; border-bottom-color: var(--line-color);
}
.ed-header .header__inner { min-height: 76px; }
.ed-header .nav__list { gap: var(--sp-4); }
.ed-header .nav__list a { font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase; }
.ed-quote { font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase; }
html[lang="th"] .ed-header .nav__list a, html[lang="zh"] .ed-header .nav__list a,
html[lang="th"] .ed-quote, html[lang="zh"] .ed-quote {
  text-transform: none; letter-spacing: .04em; font-size: .9375rem;
}
@media (max-width: 992px) { .ed-quote { display: none; } }

/* ============================================================
   2) HERO — ตัวอักษรใหญ่บนพื้นกระดาษ แล้วตามด้วยแถบภาพ
   ============================================================ */
.ed-hero { padding-top: clamp(48px, 7vw, 96px); }

.ed-hero__grid {
  display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--gutter);
  padding-bottom: clamp(48px, 6vw, 88px);
}
.ed-hero__meta { grid-column: 1 / 4; }
.ed-hero__head { grid-column: 4 / 13; }

.ed-rule { display: block; width: 100%; height: 1px; background: var(--c-graphite); margin-bottom: var(--sp-2); }
.ed-meta__line {
  font-size: .75rem; line-height: 1.7; letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-graphite); max-width: none;
}
.ed-meta__line--muted { color: var(--c-grey-500); }
html[lang="th"] .ed-meta__line, html[lang="zh"] .ed-meta__line {
  text-transform: none; letter-spacing: .04em; font-size: .8125rem;
}

/* แก้บั๊ก: เดิม max-width:15ch + 8.5rem ทำให้ข้อความแตกบรรทัดมั่วและล้นคอลัมน์
   คำนวณใหม่ให้พอดีกับพื้นที่ 9 คอลัมน์ */
.ed-hero__title {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(2.5rem, 6.4vw, 5.5rem);
  line-height: 1; letter-spacing: -.03em; color: var(--c-black);
  max-width: none; text-wrap: balance;
}
html[lang="th"] .ed-hero__title { font-size: clamp(2rem, 4.6vw, 3.75rem); line-height: 1.35; letter-spacing: 0; }
html[lang="zh"] .ed-hero__title { font-size: clamp(2.125rem, 5vw, 4.25rem); line-height: 1.3; letter-spacing: .01em; }

.ed-hero__foot {
  display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-4);
  margin-top: clamp(32px, 4vw, 56px); padding-top: var(--sp-3); border-top: var(--line);
}
.ed-hero__sub { font-size: 1.0625rem; color: var(--c-grey-500); max-width: 44ch; }

/* แถบภาพเต็มความกว้าง — ระบบสไลด์ใน ui.js ใช้ class เดิม */
.ed-hero__band {
  position: relative; width: 100%;
  height: clamp(320px, 56vh, 620px); overflow: hidden; background: var(--c-beige);
}
.hero__slides { position: absolute; inset: 0; }
.hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s var(--ease); }
.hero__slide.is-active { opacity: 1; }
.hero__slide img { width: 100%; height: 100%; object-fit: cover; }

/* แก้บั๊ก: ให้จุดบอกสไลด์ตรงแนว container บนจอกว้าง */
.ed-hero__indicators {
  position: absolute; bottom: 24px; z-index: 2; display: flex; gap: 8px;
  left: max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter)));
}
.ed-hero__indicators button {
  width: 40px; height: 2px; background: rgba(255,255,255,.45);
  transition: background var(--dur-2) var(--ease);
}
.ed-hero__indicators button[aria-selected="true"] { background: #fff; }

@media (max-width: 992px) {
  .ed-hero__meta, .ed-hero__head { grid-column: 1 / 13; }
  .ed-hero__meta { margin-bottom: var(--sp-3); }
  .ed-hero__foot { flex-direction: column; align-items: flex-start; gap: var(--sp-2); }
}

/* ============================================================
   3) โครงกริดอสมมาตรของทุก section
   ============================================================ */
.ed-section { padding-block: clamp(80px, 10vw, 168px); border-top: var(--line); }
.ed-section--tint { background: var(--c-beige); }

.ed-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--gutter); }

/* ป้ายหัวข้อค้างอยู่กับที่ขณะเลื่อน */
.ed-side {
  grid-column: 1 / 4;
  position: sticky; top: calc(76px + 24px); align-self: start;
}
.ed-index {
  display: block; font-size: .75rem; letter-spacing: .16em;
  color: var(--c-accent); font-variant-numeric: tabular-nums;
  padding-bottom: 8px; border-bottom: 1px solid var(--c-sand); margin-bottom: 10px;
}
.ed-side__label {
  font-family: var(--font-body); font-size: .75rem; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; color: var(--c-grey-500); line-height: 1.6;
}
html[lang="th"] .ed-side__label, html[lang="zh"] .ed-side__label {
  text-transform: none; letter-spacing: .04em; font-size: .875rem;
}

.ed-main { grid-column: 4 / 12; }

.ed-display {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.875rem, 4vw, 3.5rem);
  line-height: 1.1; letter-spacing: -.025em; color: var(--c-black); max-width: 22ch;
}
html[lang="th"] .ed-display { font-size: clamp(1.625rem, 3.2vw, 2.625rem); line-height: 1.45; letter-spacing: 0; }
html[lang="zh"] .ed-display { font-size: clamp(1.75rem, 3.4vw, 2.875rem); line-height: 1.35; letter-spacing: .01em; }

.ed-lead { margin-top: var(--sp-3); font-size: 1.0625rem; color: var(--c-grey-500); max-width: 58ch; }

.ed-sub {
  font-family: var(--font-body); font-size: .8125rem; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; color: var(--c-grey-500);
  padding-bottom: var(--sp-2); border-bottom: var(--line); margin-bottom: var(--sp-3);
}
html[lang="th"] .ed-sub, html[lang="zh"] .ed-sub { text-transform: none; letter-spacing: .06em; font-size: .9375rem; }

/* ข้อความ 2 คอลัมน์แบบนิตยสาร */
.ed-cols {
  margin-top: clamp(32px, 4vw, 56px);
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--gutter);
  padding-top: var(--sp-3); border-top: var(--line);
}
.ed-cols p { max-width: none; font-size: 1rem; }

@media (max-width: 992px) {
  .ed-side {
    grid-column: 1 / 13; position: static; margin-bottom: var(--sp-3);
    display: flex; align-items: baseline; gap: 12px;
  }
  .ed-index { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
  .ed-main { grid-column: 1 / 13; }
  .ed-cols { grid-template-columns: 1fr; gap: var(--sp-2); }
}

/* ============================================================
   4) ภาพประกอบแบบสิ่งพิมพ์ + คำบรรยายใต้ภาพ
   ============================================================ */
.ed-figure { margin-top: clamp(48px, 6vw, 88px); }
.ed-figure__media { overflow: hidden; background: var(--c-beige); aspect-ratio: 16 / 10; }
.ed-figure__media--paper { background: var(--c-white); border: var(--line); aspect-ratio: 4 / 3; }
.ed-figure__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-3) var(--ease); }
.ed-figure:hover .ed-figure__media img,
.ed-eng__media:hover .ed-figure__media img { transform: scale(1.03); }

/* แก้บั๊ก: เดิมครอบเฉพาะ .ed-figure ทำให้ figcaption ของส่วน Engineering ไม่มีสไตล์ */
.ed-figure figcaption,
.ed-eng__media figcaption {
  display: flex; gap: var(--sp-2); align-items: baseline;
  margin-top: 12px; padding-top: 10px; border-top: var(--line);
  font-size: .8125rem; color: var(--c-grey-500);
}
.ed-figure__num { color: var(--c-accent); letter-spacing: .1em; white-space: nowrap; }

/* ---------- VISION : คำคมขนาดใหญ่ ---------- */
.ed-quote-block {
  margin-top: clamp(56px, 7vw, 104px);
  padding-top: var(--sp-4); border-top: 1px solid var(--c-sand);
}
.ed-quote-block p {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.5rem, 3vw, 2.5rem); line-height: 1.24;
  color: var(--c-black); max-width: 26ch;
}
html[lang="th"] .ed-quote-block p { line-height: 1.5; font-size: clamp(1.375rem, 2.6vw, 2rem); }
html[lang="zh"] .ed-quote-block p { line-height: 1.45; }
.ed-quote-block cite {
  display: block; margin-top: 16px; font-style: normal;
  font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--c-grey-500);
}
html[lang="th"] .ed-quote-block cite, html[lang="zh"] .ed-quote-block cite {
  text-transform: none; letter-spacing: .06em; font-size: .8125rem;
}

/* ============================================================
   5) PRINCIPLES — R.J.C.E. เรียงเป็นแถวพร้อมเส้นคั่น
   ============================================================ */
.ed-values { margin-top: clamp(48px, 6vw, 80px); border-top: var(--line); }
.ed-value {
  display: grid; grid-template-columns: 2fr 10fr; gap: var(--gutter);
  align-items: start; padding-block: clamp(28px, 3.5vw, 48px);
  border-bottom: var(--line);
  transition: background var(--dur-2) var(--ease);
}
.ed-value:hover { background: rgba(255,255,255,.5); }
.ed-value__letter {
  display: block; font-family: var(--font-display);
  font-size: clamp(3rem, 5.5vw, 5.5rem); line-height: .85;
  color: transparent; -webkit-text-stroke: 1px var(--c-sand);
  transition: -webkit-text-stroke-color var(--dur-3) var(--ease);
}
.ed-value:hover .ed-value__letter { -webkit-text-stroke-color: var(--c-accent); }
.ed-value__body { display: grid; grid-template-columns: 1fr 1.6fr; gap: var(--gutter); align-items: baseline; }
.ed-value__body h4 { font-size: 1.25rem; font-weight: 400; font-family: var(--font-display); color: var(--c-black); }
.ed-value__body p { font-size: .9375rem; color: var(--c-grey-500); max-width: 52ch; }

@media (max-width: 992px) {
  .ed-value { grid-template-columns: 1fr; gap: var(--sp-2); }
  .ed-value__body { grid-template-columns: 1fr; gap: 6px; }
}

/* ============================================================
   6) SOLUTIONS — รายการความเชี่ยวชาญแบบ index list
   ============================================================ */
.ed-caps { margin-top: clamp(40px, 5vw, 72px); border-top: var(--line); }
.ed-cap {
  display: grid; grid-template-columns: 72px 1fr 1.4fr; gap: var(--gutter);
  align-items: baseline; padding-block: var(--sp-3); border-bottom: var(--line);
  transition: padding-left var(--dur-2) var(--ease);
}
.ed-cap:hover { padding-left: 12px; }
.ed-cap__num { font-size: .75rem; letter-spacing: .14em; color: var(--c-accent); font-variant-numeric: tabular-nums; }
.ed-cap h4 { font-size: 1.125rem; font-weight: 500; color: var(--c-black); }
.ed-cap p { font-size: .9375rem; color: var(--c-grey-500); max-width: none; }
@media (max-width: 768px) {
  .ed-cap { grid-template-columns: 48px 1fr; gap: 4px var(--sp-2); }
  .ed-cap p { grid-column: 2 / 3; }
}

.ed-types {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
  margin-top: clamp(40px, 5vw, 64px); padding-top: var(--sp-3); border-top: var(--line);
  font-size: 1.0625rem; color: var(--c-graphite); max-width: none;
}
.ed-slash { color: var(--c-sand); }

/* ---------- Turn-Key ---------- */
.ed-turnkey { margin-top: clamp(56px, 7vw, 96px); }
.ed-turnkey__intro { color: var(--c-grey-500); margin-bottom: var(--sp-3); max-width: 60ch; }

/* ตารางสไตล์สิ่งพิมพ์: ไม่มีกรอบนอก ไม่มีหัวสีทึบ */
.ed-table { border: 0; border-radius: 0; background: transparent; overflow: visible; }
.ed-table .ctable thead th {
  background: transparent; color: var(--c-graphite);
  border-bottom: 1px solid var(--c-graphite);
  padding: 0 24px 12px 0; font-size: .75rem;
}
.ed-table .ctable thead th.is-highlight { background: transparent; color: var(--c-accent); }
.ed-table .ctable tbody th {
  background: transparent; color: var(--c-grey-500); font-weight: 400;
  padding: 20px 24px 20px 0; width: 22%;
}
.ed-table .ctable tbody td { padding: 20px 24px 20px 0; }
.ed-table .ctable tbody td.is-highlight { background: transparent; color: var(--c-black); }
.ed-table .ctable tbody tr + tr { border-top: var(--line); }

/* ============================================================
   7) ENGINEERING — ภาพซ้าย ขั้นตอนไล่แนวตั้งขวา
   ============================================================ */
.ed-eng {
  display: grid; grid-template-columns: 7fr 5fr; gap: clamp(40px, 6vw, 96px);
  margin-top: clamp(48px, 6vw, 80px); align-items: start;
}
.ed-eng__items {
  margin-top: var(--sp-3); font-size: 1rem; line-height: 2;
  color: var(--c-graphite); max-width: 46ch;
}

/* Timeline แนวตั้ง — ต่างจาก v2.0 ที่เป็นแนวนอน */
.ed-timeline { border-top: 0; margin-top: 0; display: block; }
.ed-timeline .timeline__step {
  position: relative; display: grid; grid-template-columns: 56px 1fr; gap: var(--sp-2);
  align-items: baseline; padding: 0 0 var(--sp-3) var(--sp-3);
  border-left: 1px solid var(--c-sand); border-top: 0;
}
.ed-timeline .timeline__step::before {
  content: ''; position: absolute; top: 9px; left: -4.5px;
  width: 8px; height: 8px; border: 1px solid var(--c-accent);
  background: var(--c-beige); border-radius: 50%;
}
.ed-timeline .timeline__step:last-child { padding-bottom: 0; }
.ed-timeline .timeline__num {
  display: block; font-size: .75rem; letter-spacing: .14em;
  color: var(--c-accent); font-variant-numeric: tabular-nums; margin-bottom: 0;
}
.ed-timeline .timeline__step h4 { font-size: 1.0625rem; font-weight: 500; color: var(--c-black); }

@media (max-width: 992px) {
  .ed-eng { grid-template-columns: 1fr; }
  .ed-eng__process { margin-top: var(--sp-4); }
}

/* ============================================================
   8) PROJECTS — กริดเยื้องสลับระดับ พร้อมเลขกำกับอัตโนมัติ
   ============================================================ */
.ed-filters { margin-top: var(--sp-4); }

.ed-works {
  counter-reset: work;
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: clamp(48px, 6vw, 96px) var(--gutter);
  margin-top: clamp(48px, 6vw, 88px);
}
.ed-works .project { counter-increment: work; }
/* เยื้องคอลัมน์ขวาลงมา = จังหวะแบบสิ่งพิมพ์ */
.ed-works .project:nth-child(even) { margin-top: clamp(40px, 6vw, 112px); }

.ed-works .project__btn { display: block; width: 100%; text-align: left; }

.ed-works .project__media {
  position: relative; display: block; overflow: hidden;
  aspect-ratio: 4 / 3; background: var(--c-beige); border-radius: 0;
}
.ed-works .project__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--dur-3) var(--ease);
}
.ed-works .project__btn:hover .project__media img { transform: scale(1.04); }

.ed-works .project__count {
  position: absolute; right: 12px; bottom: 12px;
  background: rgba(14,15,17,.7); color: #fff;
  font-size: .75rem; letter-spacing: .06em; padding: 3px 9px;
}

.ed-works .project__meta {
  display: grid; grid-template-columns: auto 1fr; gap: 4px var(--sp-2);
  align-items: baseline; padding-top: 14px; margin-top: 12px; border-top: var(--line);
}
.ed-works .project__meta::before {
  content: counter(work, decimal-leading-zero);
  grid-row: 1 / 3; grid-column: 1; font-size: .75rem; letter-spacing: .12em;
  color: var(--c-accent); font-variant-numeric: tabular-nums;
}
.ed-works .project__cat {
  grid-column: 2; font-size: .75rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-grey-500);
}
.ed-works .project__title {
  grid-column: 2; font-family: var(--font-display); font-weight: 400;
  font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.2; color: var(--c-black);
  transition: color var(--dur-1) var(--ease);
}
.ed-works .project__btn:hover .project__title { color: var(--c-accent); }
html[lang="th"] .ed-works .project__cat, html[lang="zh"] .ed-works .project__cat {
  text-transform: none; letter-spacing: .04em; font-size: .8125rem;
}

.projects__empty { margin-top: var(--sp-4); color: var(--c-grey-500); text-align: center; }
.ed-works__more {
  margin-top: clamp(56px, 6vw, 88px); padding-top: var(--sp-3);
  border-top: var(--line); text-align: center;
}

@media (max-width: 768px) {
  .ed-works { grid-template-columns: 1fr; gap: var(--sp-5); }
  .ed-works .project:nth-child(even) { margin-top: 0; }
}

/* ============================================================
   9) CONTACT
   ============================================================ */
.ed-contact {
  display: grid; grid-template-columns: 7fr 5fr; gap: clamp(40px, 6vw, 96px);
  margin-top: clamp(48px, 6vw, 80px); align-items: start;
}
.ed-contact .form { max-width: none; }

/* ช่องกรอกแบบเส้นใต้เส้นเดียว ให้กลิ่นอายสิ่งพิมพ์ */
.ed-contact .field input,
.ed-contact .field select,
.ed-contact .field textarea {
  background: transparent; border: 0; border-bottom: var(--line);
  border-radius: 0; padding: 12px 0;
}
.ed-contact .field input:focus,
.ed-contact .field select:focus,
.ed-contact .field textarea:focus {
  border-bottom-color: var(--c-navy); outline-offset: 4px;
}
.ed-contact .field.has-error input,
.ed-contact .field.has-error textarea { border-bottom-color: var(--c-danger); }
.ed-contact .field label {
  font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-grey-500);
}
html[lang="th"] .ed-contact .field label, html[lang="zh"] .ed-contact .field label {
  text-transform: none; letter-spacing: .04em; font-size: .8125rem;
}
.ed-contact .btn { margin-top: var(--sp-2); }

/* รายการข้อมูลติดต่อ */
.info-list { border-top: var(--line); }
.info-list dt {
  padding-top: var(--sp-3); font-size: .75rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-grey-500);
}
.info-list dd { padding-bottom: var(--sp-3); border-bottom: var(--line); font-size: .9375rem; color: var(--c-graphite); }
.info-list a:hover { color: var(--c-accent); }
html[lang="th"] .info-list dt, html[lang="zh"] .info-list dt {
  text-transform: none; letter-spacing: .04em; font-size: .8125rem;
}

.map { margin-top: var(--sp-4); border: var(--line); overflow: hidden; }
.ed-map iframe { width: 100%; height: 300px; border: 0; filter: grayscale(1) contrast(.95); }

@media (max-width: 992px) { .ed-contact { grid-template-columns: 1fr; } }

/* ============================================================
   10) FOOTER — wordmark ขนาดใหญ่แบบปกหลังสิ่งพิมพ์
   ============================================================ */
.ed-footer {
  background: var(--c-black); color: rgba(255,255,255,.62);
  padding-top: clamp(64px, 8vw, 112px); overflow: hidden;
}
.ed-footer__top {
  display: grid; grid-template-columns: 5fr 3fr 4fr; gap: var(--gutter);
  padding-bottom: clamp(48px, 6vw, 80px);
}
.ed-footer__about { font-size: .9375rem; max-width: 44ch; }
.ed-footer h3 {
  font-family: var(--font-body); font-size: .75rem; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; color: #fff; margin-bottom: var(--sp-2);
}
html[lang="th"] .ed-footer h3, html[lang="zh"] .ed-footer h3 {
  text-transform: none; letter-spacing: .04em; font-size: .9375rem;
}
.ed-footer__nav li + li { margin-top: 10px; }
.ed-footer__nav a, .ed-footer__addr a { font-size: .9375rem; }
.ed-footer__nav a:hover, .ed-footer__addr a:hover { color: var(--c-accent); }
.ed-footer__addr p { font-size: .9375rem; }
.ed-footer__addr p + p { margin-top: 10px; }

.ed-footer__mark {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(3rem, 14vw, 13rem); line-height: .85;
  letter-spacing: -.02em; color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,.18);
  white-space: nowrap; user-select: none;
  padding-bottom: clamp(24px, 3vw, 48px);
}

.ed-footer__legal {
  display: flex; justify-content: space-between; gap: var(--sp-2); flex-wrap: wrap;
  padding-block: var(--sp-3); border-top: 1px solid rgba(255,255,255,.12);
  font-size: .8125rem;
}
.ed-footer__legal p:last-child { letter-spacing: .1em; color: rgba(255,255,255,.42); }

@media (max-width: 992px) { .ed-footer__top { grid-template-columns: 1fr 1fr; row-gap: var(--sp-4); } }
@media (max-width: 560px) { .ed-footer__top { grid-template-columns: 1fr; } }

/* ============================================================
   11) ปรับ component ร่วมให้เข้าโทนกระดาษ (มุมคม ไม่มีโค้ง)
   ============================================================ */
.ed .filter { border-radius: 0; }
.ed .filter.is-active { background: var(--c-graphite); border-color: var(--c-graphite); }
.ed .btn { border-radius: 0; }
.ed .to-top { border-radius: 0; background: var(--c-graphite); }
.ed .to-top:hover { background: var(--c-black); }
.ed .lang__btn, .ed .lang__menu { border-radius: 0; }
.ed .lang__btn { background: transparent; }
.ed .ccard { border-radius: 0; }
.ed .pm__panel { border-radius: 0; }
.ed .media-frame { border-radius: 0; }

/* ปิดอนิเมชันเมื่อผู้ใช้ตั้งค่าลดการเคลื่อนไหว */
@media (prefers-reduced-motion: reduce) {
  .ed-figure:hover .ed-figure__media img,
  .ed-eng__media:hover .ed-figure__media img,
  .ed-works .project__btn:hover .project__media img { transform: none; }
  .ed-cap:hover { padding-left: 0; }
}