@charset "UTF-8";

img { width: 100%; }

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  /* ─ Backgrounds ─ */
  --bg-dark:    #1A1A1A;
  --bg-deep:    #0D0D0D;
  --bg-white:   #ffffff;
  --bg-light:   #F5F4F0;   /* light warm gray */
  --bg-lightest:#FAFAF8;

  /* ─ Text ─ */
  --text-main:  #1A1A1A;
  --text-body:  #333333;
  --text-sub:   #555555;
  --text-muted: #888888;
  --text-inv:   #E8E4DC;
  --text-inv-sub: rgba(232,228,220,0.75);

  /* ─ Gold ─ */
  --gold:       #B8960C;
  --gold-light: #C9A52E;
  --gold-pale:  rgba(184,150,12,0.15);
  --gold-border:rgba(184,150,12,0.35);

  /* ─ Border ─ */
  --border:     #E0DDD8;
  --border-dark:#2E2E2E;

  /* ─ Typography ─ */
  --font-serif: 'Noto Serif JP','Yu Mincho','YuMincho',serif;
  --font-sans:  'Noto Sans JP','Hiragino Sans',meiryo,sans-serif;
  --font-en:    'Cormorant Garamond','Playfair Display',Georgia,serif;

  /* ─ Layout ─ */
  --max-w:      1200px;
  --max-w-md:   960px;
  --max-w-sm:   780px;

  /* ─ Spacing ─ */
  --sec-py:     110px;
  --sec-py-sp:  64px;
}

/* ============================================================
   SHARED SECTION UTILITIES
   ============================================================ */
.section__in {
  width: 90%;
  max-width: var(--max-w);
  margin: 0 auto;
}
.section__in--narrow {
  width: 90%;
  max-width: var(--max-w-sm);
  margin: 0 auto;
}
.section__in--md {
  width: 90%;
  max-width: var(--max-w-md);
  margin: 0 auto;
}

/* ── Section header ── */
.section__head {
  text-align: center;
  margin-bottom: 64px;
}
@media (max-width:800px){ .section__head { margin-bottom:40px; } }

.section__label {
  display: block;
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.45em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
}

/* ── Section h2 defaults ── */
.section__head h2 {
  font-family: var(--font-serif);
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.55;
  color: var(--text-main);
}
.section__head h2.inv { color: #fff; }

/* ── Gold rule ── */
.gold-rule {
  display: block;
  width: 36px;
  height: 1px;
  background: var(--gold);
  margin: 22px auto 0;
}

/* ── Section more-link ── */
.section__more { text-align:center; margin-top:48px; }
.section__more a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.35em;
  color: var(--gold);
  text-decoration: none;
  transition: gap .3s;
}
.section__more a:hover { gap:18px; opacity:1; }
.section__more a::after { content:'→'; font-size:14px; }

/* ── Buttons ── */
.btn {
  display: inline-block;
  padding: 14px 32px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: all .3s ease;
  text-decoration: none;
  text-align: center;
  border: 1px solid transparent;
}
.btn--gold {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
}
.btn--gold:hover { background:var(--gold-light); border-color:var(--gold-light); opacity:1; color:#fff; }

.btn--outline-dark {
  background: transparent;
  color: var(--text-main);
  border-color: var(--text-main);
}
.btn--outline-dark:hover { background:var(--text-main); color:#fff; opacity:1; }

.btn--outline-gold {
  background: transparent;
  color: var(--gold);
  border-color: var(--gold);
}
.btn--outline-gold:hover { background:var(--gold); color:#fff; opacity:1; }

.btn--outline-white {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,0.55);
}
.btn--outline-white:hover { background:rgba(255,255,255,0.12); border-color:#fff; opacity:1; color:#fff; }

/* ============================================================
   SECTION 01 — HERO  ■ dark
   ============================================================ */
#section01 {
  width: 100%;
  min-height: 100vh;
  position: relative;
  background-image: url('../images/main_kv_pc.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  display: flex;
  align-items: center;
}
@media (max-width:800px){
  #section01 {
    min-height: 94vw;
    background-image: url('../images/main_kv_sp.jpg');
    background-attachment: scroll;
  }
}
#section01::before {
  content:'';
  position: absolute;
  inset: 0;
  background: linear-gradient(140deg,rgba(0,0,0,.70) 0%,rgba(0,0,0,.42) 55%,rgba(0,0,0,.25) 100%);
  z-index: 1;
}

.hero__inner {
  position: relative;
  z-index: 2;
  width: 90%;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 130px 0 90px;
}
@media (max-width:800px){ .hero__inner { padding:70px 0 55px; } }

.hero__label {
  display: block;
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.55em;
  color: var(--gold);
  margin-bottom: 22px;
}
.hero__main {
  font-family: var(--font-serif);
  font-size: 52px;
  font-weight: 400;
  color: #fff;
  line-height: 1.55;
  margin-bottom: 26px;
  letter-spacing: 0.05em;
}
@media (max-width:800px){ .hero__main { font-size:9vw; margin-bottom:16px; } }

.hero__sub {
  font-size: 15px;
  color: rgba(255,255,255,.80);
  line-height: 1.9;
  margin-bottom: 46px;
  letter-spacing: 0.05em;
  max-width: 500px;
}
@media (max-width:800px){ .hero__sub { font-size:3.7vw; margin-bottom:32px; max-width:100%; } }

.hero__cta { display:flex; gap:16px; flex-wrap:wrap; }

.hero__btn {
  display: inline-block;
  padding: 16px 38px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: all .3s ease;
  text-decoration: none;
  border: 1px solid transparent;
}
@media (max-width:800px){ .hero__btn { padding:13px 24px; font-size:3.6vw; } }

.hero__btn--primary  { background:var(--gold); color:#fff; border-color:var(--gold); }
.hero__btn--primary:hover { background:var(--gold-light); border-color:var(--gold-light); opacity:1; color:#fff; }
.hero__btn--secondary { background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.hero__btn--secondary:hover { background:rgba(255,255,255,.1); border-color:#fff; opacity:1; color:#fff; }

/* scroll indicator */
.hero__scroll {
  position:absolute; bottom:38px; left:50%; transform:translateX(-50%);
  z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px;
}
.hero__scroll span { font-family:var(--font-en); font-size:10px; letter-spacing:.4em; color:rgba(255,255,255,.45); }
.hero__scroll-line {
  width:1px; height:48px;
  background:linear-gradient(to bottom,rgba(255,255,255,.35),transparent);
  animation: heroScroll 2s ease-in-out infinite;
}
@keyframes heroScroll {
  0%   { opacity:0; transform:scaleY(0); transform-origin:top; }
  50%  { opacity:1; transform:scaleY(1); }
  100% { opacity:0; transform:scaleY(1); transform-origin:bottom; }
}
@media (max-width:800px){ .hero__scroll { display:none; } }

/* ============================================================
   SECTION 02 — BRAND STATEMENT  ■ dark
   ============================================================ */
#section02 {
  width:100%; background-color:var(--bg-dark);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section02 { padding:var(--sec-py-sp) 0; } }

#section02 .section__in { max-width:820px; text-align:center; }

#section02 h2 {
  font-family: var(--font-serif);
  font-size: 38px; font-weight:400; color:#fff;
  line-height:1.6; margin-bottom:48px; letter-spacing:.08em;
}
@media (max-width:800px){ #section02 h2 { font-size:7vw; margin-bottom:30px; } }

.statement__text {
  font-size:16px; line-height:2.1;
  color:var(--text-inv-sub); letter-spacing:.04em;
}
@media (max-width:800px){ .statement__text { font-size:3.8vw; text-align:left; } }

/* ============================================================
   SECTION 03 — STRENGTHS  □ white
   ============================================================ */
#section03 {
  width:100%; background-color:var(--bg-white);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section03 { padding:var(--sec-py-sp) 0; } }

.strength__grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--border); margin-top:0;
}
@media (max-width:1000px){ .strength__grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px)  { .strength__grid { grid-template-columns:1fr; } }

.strength__item {
  background:var(--bg-white); padding:44px 36px;
  transition: background .25s;
}
.strength__item:hover { background:var(--bg-lightest); }
@media (max-width:800px){ .strength__item { padding:30px 22px; } }

.strength__num {
  font-family:var(--font-en); font-size:12px; font-weight:400;
  letter-spacing:.2em; color:var(--gold); margin-bottom:16px;
  display:flex; align-items:center; gap:10px;
}
.strength__num::after {
  content:''; display:block; width:28px; height:1px; background:var(--gold);
}
.strength__item h3 {
  font-family:var(--font-serif); font-size:17px; font-weight:500;
  color:var(--text-main); margin-bottom:14px; line-height:1.5; letter-spacing:.04em;
}
.strength__item p {
  font-size:14px; line-height:1.9; color:var(--text-sub); letter-spacing:.02em;
}
.strength__item .spec-tags {
  margin-top:14px; display:flex; flex-wrap:wrap; gap:6px;
}
.spec-tag {
  font-size:11px; padding:3px 9px;
  border:1px solid var(--border); color:var(--text-muted);
  letter-spacing:.03em;
}

/* ============================================================
   SECTION NUMBERS  ■ dark bar
   ============================================================ */
#section_numbers {
  width:100%; background-color:var(--bg-dark);
  padding:72px 0;
  border-top:1px solid var(--border-dark); border-bottom:1px solid var(--border-dark);
}
.numbers__grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:var(--border-dark);
}
@media (max-width:800px){ .numbers__grid { grid-template-columns:repeat(2,1fr); } }

.numbers__item { background:var(--bg-dark); padding:40px 20px; text-align:center; }
.numbers__value {
  font-family:var(--font-en); font-size:44px; font-weight:300;
  color:var(--gold); line-height:1; margin-bottom:12px; letter-spacing:-.02em;
}
.numbers__unit { font-family:var(--font-en); font-size:18px; color:var(--gold); }
@media (max-width:800px){ .numbers__value { font-size:9vw; } }
.numbers__label { font-size:12px; color:rgba(232,228,220,.55); letter-spacing:.08em; line-height:1.7; }

/* ============================================================
   SECTION PRODUCTS  □ white
   ============================================================ */
#section_products {
  width:100%; background-color:var(--bg-white);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_products { padding:var(--sec-py-sp) 0; } }

/* 3 featured items */
.product__feature {
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; margin-bottom:80px; gap:0;
}
@media (max-width:800px){ .product__feature { margin-bottom:55px; } }

.product__feature--reverse { flex-direction:row-reverse; }

.product__feature__img {
  width:55%; max-width:640px; overflow:hidden;
}
@media (max-width:800px){ .product__feature__img { width:100%; margin-bottom:24px; } }
.product__feature__img img { display:block; transition:transform .7s ease; }
.product__feature__img:hover img { transform:scale(1.04); }

.product__feature__text {
  width:40%; max-width:460px;
}
@media (max-width:800px){ .product__feature__text { width:100%; } }

.product__feature__text .cat-label {
  font-family:var(--font-en); font-size:10px; letter-spacing:.45em;
  color:var(--gold); display:block; margin-bottom:14px;
}
.product__feature__text h3 {
  font-family:var(--font-serif); font-size:24px; font-weight:400;
  color:var(--text-main); line-height:1.55; margin-bottom:18px; letter-spacing:.04em;
}
@media (max-width:800px){ .product__feature__text h3 { font-size:5.5vw; } }
.product__feature__text p {
  font-size:15px; line-height:1.95; color:var(--text-sub); margin-bottom:26px;
}
.product__feature__text .tag-list { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:28px; }
.product__feature__text .tag {
  font-size:11px; padding:4px 10px;
  border:1px solid var(--border); color:var(--text-muted); letter-spacing:.04em;
}

/* Category grid */
.cat__divider { width:100%; height:1px; background:var(--border); margin:70px 0 55px; }
.cat__grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--border);
}
@media (max-width:1000px){ .cat__grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px)  { .cat__grid { grid-template-columns:repeat(2,1fr); } }

.cat__item {
  background:var(--bg-white); padding:26px 22px;
  border-top:2px solid transparent;
  transition:border-color .25s, background .25s;
  cursor:pointer; display:block; text-decoration:none;
}
.cat__item:hover { border-top-color:var(--gold); background:var(--bg-lightest); }

.cat__item .cat__num {
  font-family:var(--font-en); font-size:10px; letter-spacing:.35em;
  color:var(--gold); display:block; margin-bottom:9px;
}
.cat__item h3 {
  font-family:var(--font-serif); font-size:14px; font-weight:500;
  color:var(--text-main); line-height:1.5; margin-bottom:7px; letter-spacing:.03em;
}
.cat__item p { font-size:12px; color:var(--text-muted); line-height:1.7; }

/* ============================================================
   SECTION SCENE  ◇ light
   ============================================================ */
#section_scene {
  width:100%; background-color:var(--bg-light);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_scene { padding:var(--sec-py-sp) 0; } }

.scene__grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--border);
}
@media (max-width:900px){ .scene__grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .scene__grid { grid-template-columns:1fr; } }

.scene__item {
  background:var(--bg-white); padding:40px 30px;
  border-top:3px solid transparent;
  transition:border-top-color .25s, box-shadow .25s;
}
.scene__item:hover { border-top-color:var(--gold); box-shadow:0 4px 20px rgba(0,0,0,.06); }
@media (max-width:800px){ .scene__item { padding:28px 22px; } }

.scene__item .scene__cat {
  font-family:var(--font-en); font-size:10px; letter-spacing:.45em;
  color:var(--gold); display:block; margin-bottom:12px;
}
.scene__item h3 {
  font-family:var(--font-serif); font-size:19px; font-weight:500;
  color:var(--text-main); margin-bottom:14px; line-height:1.45; letter-spacing:.04em;
}
@media (max-width:800px){ .scene__item h3 { font-size:4.4vw; } }
.scene__item p {
  font-size:14px; line-height:1.9; color:var(--text-sub); margin-bottom:20px;
}
.scene__item .scene__tags { display:flex; flex-wrap:wrap; gap:6px; }
.scene__tags span {
  font-size:11px; padding:3px 9px;
  border:1px solid var(--border); color:var(--text-muted); letter-spacing:.03em;
}

/* ============================================================
   SECTION CAPABILITY  □ white
   ============================================================ */
#section_capability {
  width:100%; background-color:var(--bg-white);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_capability { padding:var(--sec-py-sp) 0; } }

.cap__intro {
  max-width:680px; margin:0 auto 60px; text-align:center;
  font-size:15px; line-height:1.95; color:var(--text-sub);
}
@media (max-width:800px){ .cap__intro { font-size:3.8vw; margin-bottom:36px; } }

.cap__grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--border);
}
@media (max-width:900px){ .cap__grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .cap__grid { grid-template-columns:1fr; } }

.cap__item {
  background:var(--bg-white); padding:30px 28px;
  display:flex; align-items:flex-start; gap:14px;
  transition:background .25s;
}
.cap__item:hover { background:var(--bg-lightest); }

.cap__icon {
  flex-shrink:0; width:22px; height:22px; margin-top:1px;
  border:1px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.cap__icon::after {
  content:''; width:8px; height:5px;
  border-left:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold);
  transform:rotate(-45deg) translateY(-1px);
  display:block;
}

.cap__text h4 {
  font-size:15px; font-weight:500; color:var(--text-main);
  margin-bottom:6px; line-height:1.4; letter-spacing:.03em;
}
.cap__text p { font-size:13px; line-height:1.8; color:var(--text-sub); }

/* ============================================================
   SECTION GALLERY  ◇ light
   ============================================================ */
#section_gallery {
  width:100%; background-color:var(--bg-light);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_gallery { padding:var(--sec-py-sp) 0; } }

ul.listgl {
  width:100%; margin:0; padding:0; list-style:none;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--border);
}
@media (max-width:900px){ ul.listgl { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px){ ul.listgl { grid-template-columns:repeat(2,1fr); } }

ul.listgl li { background:var(--bg-white); overflow:hidden; }
ul.listgl li a { display:block; text-decoration:none; }
ul.listgl li figure { overflow:hidden; width:100%; aspect-ratio:4/3; }
ul.listgl li figure img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .55s ease;
}
ul.listgl li a:hover figure img { transform:scale(1.06); }
ul.listgl li .ga__caption { padding:16px 16px 20px; }
ul.listgl li h3 {
  font-family:var(--font-serif); font-weight:500; font-size:13px;
  color:var(--text-main); margin-bottom:5px; line-height:1.45;
}
ul.listgl li p { font-size:11px; line-height:1.7; color:var(--text-muted); }

/* subphoto break */
.works__subphoto { width:100%; overflow:hidden; max-height:400px; }
.works__subphoto img { width:100%; height:100%; object-fit:cover; display:block; }

/* ============================================================
   SECTION SPEC  □ white
   ============================================================ */
#section_spec {
  width:100%; background-color:var(--bg-white);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_spec { padding:var(--sec-py-sp) 0; } }

.spec__intro {
  max-width:640px; margin:0 auto 56px; text-align:center;
  font-size:15px; line-height:1.95; color:var(--text-sub);
}
@media (max-width:800px){ .spec__intro { font-size:3.8vw; margin-bottom:32px; } }

.spec__wrap { overflow-x:auto; }

table.spec__table {
  width:100%; border-collapse:collapse;
  font-size:15px;
}
@media (max-width:800px){ table.spec__table { font-size:3.4vw; } }

table.spec__table th, table.spec__table td {
  padding:16px 22px; text-align:left;
  border-bottom:1px solid var(--border);
}
table.spec__table th {
  width:32%; font-weight:500; color:var(--text-main);
  background:var(--bg-light); letter-spacing:.03em;
  white-space:nowrap;
}
@media (max-width:800px){
  table.spec__table th { width:38%; padding:13px 14px; }
  table.spec__table td { padding:13px 14px; }
}
table.spec__table td { color:var(--text-body); line-height:1.8; }
table.spec__table tr:last-child th,
table.spec__table tr:last-child td { border-bottom:none; }
table.spec__table .badge-gold {
  display:inline-block; font-size:11px; padding:2px 8px;
  background:var(--gold-pale); color:var(--gold);
  border:1px solid var(--gold-border); letter-spacing:.03em;
  margin-left:6px; vertical-align:middle;
}

/* ============================================================
   SECTION FLOW  ◇ light
   ============================================================ */
#section_flow {
  width:100%; background-color:var(--bg-light);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_flow { padding:var(--sec-py-sp) 0; } }

.flow__steps {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--border);
}
@media (max-width:900px){ .flow__steps { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .flow__steps { grid-template-columns:1fr; } }

.flow__step {
  background:var(--bg-white); padding:42px 32px;
  border-top:3px solid transparent; transition:border-top-color .25s;
}
.flow__step:hover { border-top-color:var(--gold); }
@media (max-width:800px){ .flow__step { padding:28px 22px; } }

.flow__step__num {
  font-family:var(--font-en); font-size:40px; font-weight:300;
  color:var(--gold-pale); line-height:1; margin-bottom:4px;
  border-bottom:none; /* override any table leftover */
}
.flow__step__label {
  font-family:var(--font-en); font-size:10px; letter-spacing:.35em;
  color:var(--gold); display:block; margin-bottom:14px;
}
.flow__step h3 {
  font-family:var(--font-serif); font-size:17px; font-weight:500;
  color:var(--text-main); margin-bottom:12px; line-height:1.5; letter-spacing:.04em;
}
.flow__step p { font-size:14px; line-height:1.9; color:var(--text-sub); }

/* ============================================================
   SECTION FAQ  □ white  (changed from dark)
   ============================================================ */
#section_faq {
  width:100%; background-color:var(--bg-white);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_faq { padding:var(--sec-py-sp) 0; } }

#section_faq .section__in { max-width:820px; }

#section_faq dl {
  width:100%; margin:0 0 2px 0;
  border-left:3px solid var(--gold);
  background:var(--bg-lightest);
  padding:28px 32px;
  transition:background .2s;
}
#section_faq dl:hover { background:var(--bg-light); }
@media (max-width:800px){ #section_faq dl { padding:20px 18px; } }

#section_faq dl dt {
  font-family:var(--font-serif); font-weight:500;
  color:var(--text-main); font-size:16px;
  margin-bottom:12px; padding-left:2em; position:relative; line-height:1.6;
}
#section_faq dl dt::before {
  content:"Q"; font-family:var(--font-en); font-size:17px; font-weight:500;
  color:var(--gold); position:absolute; left:0; top:0; letter-spacing:0;
}
@media (max-width:800px){ #section_faq dl dt { font-size:3.8vw; } }

#section_faq dl dd {
  padding-left:2em; font-size:15px; line-height:1.95;
  color:var(--text-sub); position:relative;
}
#section_faq dl dd::before {
  content:"A"; font-family:var(--font-en); font-size:17px; font-weight:500;
  color:rgba(184,150,12,.45); position:absolute; left:0; top:0; letter-spacing:0;
}
@media (max-width:800px){ #section_faq dl dd { font-size:3.5vw; } }

/* ============================================================
   SECTION VOICE  ◇ light
   ============================================================ */
#section_voice {
  width:100%; background-color:var(--bg-light);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_voice { padding:var(--sec-py-sp) 0; } }
#section_voice .section__in { max-width:900px; }

.voice_box {
  background:var(--bg-white); margin-bottom:2px;
  display:flex; flex-wrap:wrap;
}
.voice_box figure { width:240px; flex-shrink:0; }
.voice_box figure img { width:100%; height:240px; object-fit:cover; display:block; }
@media (max-width:800px){
  .voice_box figure { width:100%; }
  .voice_box figure img { height:52vw; }
}
.voice_box .text { flex:1; padding:36px 40px; min-width:0; }
@media (max-width:800px){ .voice_box .text { padding:26px 22px; width:100%; } }

.voice_box .text .voice__meta {
  font-family:var(--font-en); font-size:10px; letter-spacing:.4em;
  color:var(--gold); display:block; margin-bottom:10px;
}
.voice_box .text h3 {
  font-family:var(--font-serif); font-weight:500; font-size:16px;
  color:var(--text-main); margin-bottom:16px; line-height:1.5; letter-spacing:.04em;
}
@media (max-width:800px){ .voice_box .text h3 { font-size:4vw; } }
.voice_box .text .intext {
  font-size:15px; line-height:2; color:var(--text-sub);
  padding-left:20px; position:relative;
}
.voice_box .text .intext::before {
  content:'"'; font-family:var(--font-en); font-size:34px; font-weight:300;
  color:var(--gold); line-height:1; position:absolute; left:0; top:-4px;
}
@media (max-width:800px){ .voice_box .text .intext { font-size:3.6vw; } }

/* ============================================================
   SECTION CONTACT CTA  ■ dark
   ============================================================ */
#section_contact {
  width:100%; background-color:var(--bg-deep);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_contact { padding:var(--sec-py-sp) 0; } }
#section_contact .section__in { max-width:780px; text-align:center; }
#section_contact .section__label { margin-bottom:16px; }

#section_contact h2 {
  font-family:var(--font-serif); font-size:38px; font-weight:400;
  color:#fff; letter-spacing:.05em; margin-bottom:26px; line-height:1.5;
}
@media (max-width:800px){ #section_contact h2 { font-size:7vw; } }

.contact__sub {
  font-size:15px; line-height:2; color:var(--text-inv-sub);
  margin-bottom:52px; letter-spacing:.04em;
}
@media (max-width:800px){ .contact__sub { font-size:3.6vw; margin-bottom:36px; text-align:left; } }

.contact__btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:52px; }

.contact__btn {
  display:inline-block; padding:18px 44px;
  font-size:15px; font-weight:500; letter-spacing:.08em;
  cursor:pointer; transition:all .3s ease; text-decoration:none; text-align:center;
}
@media (max-width:800px){ .contact__btn { padding:14px 28px; font-size:3.7vw; width:90%; max-width:320px; } }

.contact__btn--primary   { background:var(--gold); color:#fff; border:1px solid var(--gold); }
.contact__btn--primary:hover { background:var(--gold-light); border-color:var(--gold-light); opacity:1; color:#fff; }
.contact__btn--secondary { background:transparent; color:#E8E4DC; border:1px solid rgba(232,228,220,.4); }
.contact__btn--secondary:hover { background:rgba(232,228,220,.08); border-color:rgba(232,228,220,.7); opacity:1; color:#E8E4DC; }

.contact__tel .tel-img { width:100%; max-width:360px; margin:0 auto; }
.contact__tel .tel-img a img { width:100%; max-width:360px; margin:0 auto; display:block; }
.contact__notice { font-size:12px; color:rgba(232,228,220,.4); letter-spacing:.05em; line-height:1.9; margin-top:16px; }

/* ============================================================
   SECTION FORM  □ white
   ============================================================ */
#section_form {
  width:100%; background-color:var(--bg-white);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_form { padding:var(--sec-py-sp) 0; } }
#section_form .section__in { max-width:var(--max-w-sm); }

.form__lead {
  background:var(--bg-light); border-left:3px solid var(--gold);
  padding:24px 28px; margin-bottom:50px;
  font-size:15px; line-height:1.95; color:var(--text-sub);
}
@media (max-width:800px){ .form__lead { font-size:3.7vw; padding:18px 18px; margin-bottom:32px; } }

/* form layout */
.form__table { width:100%; }
.form__row {
  display:flex; align-items:flex-start;
  border-bottom:1px solid var(--border); padding:22px 0;
}
@media (max-width:800px){ .form__row { flex-direction:column; padding:18px 0; gap:8px; } }

.form__row:last-of-type { border-bottom:none; }

.form__label {
  width:220px; flex-shrink:0;
  font-size:15px; font-weight:500; color:var(--text-main);
  padding-top:3px; letter-spacing:.03em;
}
@media (max-width:800px){ .form__label { width:100%; padding-top:0; } }

.form__label .req {
  display:inline-block; font-size:11px; padding:2px 6px;
  background:var(--gold); color:#fff; letter-spacing:.05em;
  margin-left:8px; vertical-align:middle; font-weight:400;
}
.form__label .opt {
  display:inline-block; font-size:11px; padding:2px 6px;
  border:1px solid var(--border); color:var(--text-muted); letter-spacing:.05em;
  margin-left:8px; vertical-align:middle; font-weight:400;
}

.form__input { flex:1; min-width:0; }

.form__input input[type="text"],
.form__input input[type="email"],
.form__input input[type="tel"],
.form__input textarea,
.form__input select {
  width:100%; padding:11px 14px;
  font-family:var(--font-sans); font-size:15px; color:var(--text-body);
  border:1px solid var(--border); background:#fff;
  outline:none; transition:border-color .2s, box-shadow .2s;
  appearance:none; -webkit-appearance:none; border-radius:0;
}
.form__input input:focus,
.form__input textarea:focus,
.form__input select:focus {
  border-color:var(--gold);
  box-shadow:0 0 0 3px var(--gold-pale);
}
.form__input textarea { min-height:140px; resize:vertical; line-height:1.8; }
@media (max-width:800px){
  .form__input input, .form__input textarea, .form__input select { font-size:16px; }
}

/* radio / checkbox */
.form__radio-group, .form__check-group {
  display:flex; flex-wrap:wrap; gap:10px 20px;
}
.form__radio-group label, .form__check-group label {
  display:flex; align-items:center; gap:7px;
  font-size:14px; color:var(--text-body); cursor:pointer;
}
.form__radio-group input[type="radio"],
.form__check-group input[type="checkbox"] {
  width:16px; height:16px;
  accent-color:var(--gold); cursor:pointer;
  flex-shrink:0;
}

/* select wrap */
.form__select-wrap { position:relative; }
.form__select-wrap::after {
  content:''; position:absolute; right:14px; top:50%;
  transform:translateY(-50%) rotate(45deg);
  width:7px; height:7px;
  border-right:1.5px solid var(--text-muted); border-bottom:1.5px solid var(--text-muted);
  pointer-events:none;
}
.form__select-wrap select { padding-right:36px; }

/* file upload */
.form__file input[type="file"] {
  font-size:14px; color:var(--text-sub); padding:10px 0;
  border:none; background:none;
}
.form__file-note { font-size:12px; color:var(--text-muted); margin-top:6px; line-height:1.7; }

/* submit */
.form__submit { text-align:center; margin-top:48px; }
.form__btn {
  display:inline-block; padding:20px 72px;
  background:var(--gold); color:#fff;
  font-size:16px; font-weight:500; letter-spacing:.1em;
  border:none; cursor:pointer;
  transition:background .3s, transform .2s;
  font-family:var(--font-sans);
}
.form__btn:hover { background:var(--gold-light); transform:translateY(-1px); }
@media (max-width:800px){ .form__btn { padding:17px 0; width:100%; max-width:320px; font-size:4vw; } }

.form__privacy {
  margin-top:20px; font-size:13px; color:var(--text-muted);
  text-align:center; line-height:1.8;
}
.form__privacy a { color:var(--gold); text-decoration:underline; }

/* ============================================================
   SECTION COMPANY  ◇ light
   ============================================================ */
#section_company {
  width:100%; background-color:var(--bg-light);
  padding: var(--sec-py) 0;
}
@media (max-width:800px){ #section_company { padding:var(--sec-py-sp) 0; } }
#section_company .section__in { max-width:660px; }

#section_company dl.outline {
  width:100%; display:flex; justify-content:space-between; flex-wrap:wrap;
}
#section_company dl.outline dt {
  width:9em; padding:17px 0; border-bottom:1px solid var(--border);
  font-size:14px; font-weight:500; color:var(--text-main); letter-spacing:.03em;
}
@media (max-width:800px){ #section_company dl.outline dt { width:5.5em; font-size:3.5vw; padding:13px 0; } }

#section_company dl.outline dd {
  width:calc(100% - 9em); padding:17px 0 17px 16px; border-bottom:1px solid var(--border);
  font-size:14px; color:var(--text-sub); line-height:1.8;
}
@media (max-width:800px){ #section_company dl.outline dd { width:calc(100% - 5.5em); font-size:3.5vw; padding:13px 0 13px 10px; } }

.company_content .item { padding:14px 0; border-bottom:1px solid var(--border); }
.company_content .item:last-child { border-bottom:none; }
.company_content .content_title {
  font-family:var(--font-serif); font-size:15px; font-weight:500;
  color:var(--text-main); display:flex; align-items:center; gap:9px; margin-bottom:4px;
}
.company_content .content_title img { width:26px; height:auto; }
.company_content .content_link a { font-size:12px; color:var(--gold); text-decoration:underline; }
.company_content .content_text { font-size:13px; color:var(--text-sub); line-height:1.85; }

/* ============================================================
   SECTION LINK  □ white
   ============================================================ */
#section_link {
  width:100%; background-color:var(--bg-white);
  padding:72px 0 60px;
}
@media (max-width:800px){ #section_link { padding:52px 0 40px; } }

#section_link h2 {
  font-family:var(--font-serif); font-size:22px; font-weight:400;
  color:var(--text-main); text-align:center; letter-spacing:.06em; margin-bottom:36px;
}
#section_link h2 span {
  display:block; font-family:var(--font-en); font-size:10px; letter-spacing:.4em;
  color:var(--gold); margin-bottom:8px;
}
#section_link ul {
  width:100%; max-width:920px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr); gap:12px;
  list-style:none; padding:0;
}
@media (max-width:800px){ #section_link ul { grid-template-columns:repeat(2,1fr); gap:8px; } }
#section_link ul li a { display:block; transition:opacity .3s; }
#section_link ul li a:hover { opacity:.72; }
#section_link ul li img { width:100%; display:block; }

/* ============================================================
   SHARED — colorbox popup
   ============================================================ */
.contena_white { background:#fff; padding:8px; }
.contena_white img { display:block; width:100%; }
.close_close { width:40px; margin:14px auto 0; cursor:pointer; }
.close_close:hover { opacity:.6; }
