/* FOLTARK corporate site — shared styles
   Brand: deep green × gold, Shippori Mincho B1 / Noto Sans JP / Inter */

:root {
  --brand: #1E4B3A;
  --brand-dark: #102E23;
  --brand-light: #3C7A5D;
  --gold: #B9964B;
  --gold-dark: #8A6D25;
  --gold-light: #E4CE93;
  --ink: #111111;
  --sub: #5F6B62;
  --muted: #6B7280;
  --line: #E5E5E5;
  --line-soft: #D6D3CB;
  --cream: #F7F7EC;
  --bg: #ECEAE5;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
}

a { color: var(--brand); text-decoration: none; }
a:hover { color: var(--gold-dark); }

img { max-width: 100%; display: block; }

h1, h2, h3, p { margin: 0; }

/* Page shell */
.page { max-width: 1200px; margin: 0 auto; background: #fff; }

/* Rail layout: thin left rail + content column, used on most sections */
.rail-row {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
}
.rail-row--wide {
  grid-template-columns: 56px minmax(0, 1fr) clamp(240px, 34vw, 470px);
}
.rail { border-right: 1px solid var(--line); }
.rail--dark { border-right: 1px solid rgba(255, 255, 255, 0.18); }

/* Section header labels */
.eyebrow {
  margin: 0;
  font: 900 12px/1 Inter, sans-serif;
  letter-spacing: .2em;
  color: var(--brand);
}
.eyebrow--gold { color: var(--gold-light); }

.section-title {
  margin: 14px 0 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 1.5;
  color: var(--ink);
}
.section-title--light { color: #fff; }

/* Divider bar under page hero */
.divider { height: 8px; background: var(--brand); }
.divider-gold { height: 2px; background: var(--gold); }

/* Two-column content grid: label column + body column */
.kv-grid {
  display: grid;
  grid-template-columns: minmax(120px, 260px) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
}

/* Pill button */
.btn-pill {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 14px 14px 14px 30px;
  border-radius: 9999px;
  background: #fff;
  border: 1px solid var(--gold);
  color: var(--brand);
  font: 700 13px/1 Inter, sans-serif;
  letter-spacing: .12em;
  text-decoration: none;
  cursor: pointer;
}
.btn-pill__arrow {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  flex: none;
}
.btn-pill--solid {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.btn-pill--solid .btn-pill__arrow { background: var(--gold); }
.btn-pill--sm { padding: 10px 10px 10px 22px; gap: 12px; }
.btn-pill--sm .btn-pill__arrow { width: 26px; height: 26px; font-size: 12px; }
.btn-pill--block { justify-content: center; width: 100%; }

/* CTA band */
.cta-band {
  background: var(--brand);
  padding: 96px clamp(24px, 4vw, 48px);
}
.cta-band h2 {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
  font-size: clamp(26px, 3.4vw, 38px);
  line-height: 1.5;
  color: #fff;
}
.cta-band .btn-pill { margin: 36px 0 0; }

/* Key/value data row (company profile, legal notice) */
.data-row {
  display: grid;
  grid-template-columns: minmax(110px, 190px) minmax(0, 1fr);
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  align-items: baseline;
}
.data-row--wide { grid-template-columns: minmax(110px, 200px) minmax(0, 1fr); }
.data-row dt {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--brand);
}
.data-row dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  color: var(--ink);
}
.data-row dd + dd { margin-top: 6px; }

/* Image placeholder box: wrap in a sized, position:relative container,
   then this element fills it completely. Swap for a real <img> later. */
.img-box { position: relative; }
.img-ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 14px;
  background: #E5E5E5;
  color: #9CA3AF;
  font-size: 11.5px;
  letter-spacing: .08em;
  line-height: 1.7;
}
.img-ph--circle { border-radius: 50%; }
.img-box img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Site header */
.site-header { position: relative; background: #fff; border-bottom: 1px solid var(--line); }
.site-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px clamp(20px, 4vw, 40px);
}
.site-header__logo { display: flex; align-items: baseline; gap: 10px; flex: none; text-decoration: none; }
.site-header__logo-en { font: 900 20px/1 Inter, sans-serif; letter-spacing: .13em; color: var(--ink); }
.site-header__logo-jp { font-size: 10px; letter-spacing: .06em; color: var(--muted); white-space: nowrap; }

.site-header__nav { display: flex; align-items: center; gap: 26px; white-space: nowrap; }
.site-header__nav a { font-size: 12.5px; font-weight: 700; color: var(--ink); text-decoration: none; }
.site-header__nav a.is-en { font: 700 12px/1 Inter, sans-serif; letter-spacing: .1em; color: var(--ink); }
.site-header__nav a:hover { color: var(--brand); }

.site-header__burger {
  display: none;
  width: 46px;
  height: 46px;
  border: none;
  border-radius: 50%;
  background: var(--brand);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
  flex: none;
}
.site-header__burger span { display: block; width: 17px; height: 1.5px; background: #fff; }

.site-header__mobile {
  display: none;
  border-top: 1px solid var(--line);
  background: var(--cream);
  padding: 8px clamp(20px, 4vw, 40px) 24px;
}
.site-header__mobile a {
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  text-decoration: none;
  display: block;
}
.site-header__mobile .btn-pill { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 22px 0 0; padding: 14px 24px; min-height: 60px; border-bottom: none; color: #fff; line-height: 1; }
.site-header__mobile.is-open { display: grid; }

@media (max-width: 1040px) {
  .site-header__nav { display: none; }
  .site-header__burger { display: flex; }
}
@media (min-width: 1041px) {
  .site-header__mobile { display: none !important; }
}

/* Site footer */
.site-footer { background: #111; padding: 64px clamp(24px, 4vw, 48px) 40px; color: #fff; }
.site-footer__grid { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; justify-content: space-between; }
.site-footer__brand { flex: 1 1 280px; min-width: 0; }
.site-footer__brand-name { font: 900 20px/1 Inter, sans-serif; letter-spacing: .13em; color: #fff; }
.site-footer__brand p { margin: 8px 0 0; font-size: 13px; line-height: 1.9; color: rgba(255, 255, 255, .8); }
.site-footer__brand p:first-of-type { margin-top: 18px; }
.site-footer__col { flex: 0 1 auto; display: grid; gap: 14px; }
.site-footer__col a { font-size: 13px; color: #fff; text-decoration: none; }
.site-footer__col a.is-muted { color: rgba(255, 255, 255, .8); }
.site-footer__col a:hover { color: var(--gold-light); }
.site-footer__bottom {
  margin: 56px 0 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .18);
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  align-items: center;
}
.site-footer__copyright { font: 500 11px/1 Inter, sans-serif; letter-spacing: .1em; color: rgba(255, 255, 255, .65); }
.site-footer__mark { display: block; width: 40px; height: 2px; background: var(--gold); }

/* Contact form fields */
input, textarea, select {
  font-family: inherit;
  font-size: 15px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-soft);
  border-radius: 4px;
  padding: 14px 16px;
  width: 100%;
}
input:focus, textarea:focus, select:focus {
  outline: 2px solid var(--brand);
  outline-offset: 1px;
  border-color: var(--brand);
}
[hidden] { display: none !important; }

/* Approved Logo Master v1.0: preserve SVG proportions and clear space. */
.site-header__logo-image { width: 108px; height: auto; flex: none; }
.site-footer__logo { display: inline-block; }
.site-footer__logo img { width: 140px; height: auto; }
@media (max-width: 1040px) {
  .site-header__logo-image { width: 88px; }
}

/* Layout refresh: preserve the original palette and Mincho typography. */
html { scroll-behavior: smooth; }
body { line-height: 1.8; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.page { width: 100%; }
.rail-row { grid-template-columns: 32px minmax(0, 1fr); }
.rail-row > :last-child:not(.img-box) { min-width: 0; padding: 76px clamp(24px, 4vw, 48px) !important; }
.rail-row--wide { grid-template-columns: 32px minmax(0, 1fr) minmax(280px, 40%); }
.kv-grid { grid-template-columns: 190px minmax(0, 1fr); gap: clamp(32px, 4vw, 56px); }
.site-header__bar { padding-top: 10px; padding-bottom: 10px; }
.site-header__logo-image { width: 88px; }
.site-header__nav { gap: 22px; }
.site-footer__logo img { width: 112px; }
.home-hero > :nth-child(2) { padding: 76px clamp(24px, 4vw, 48px) !important; align-self: center; }
.home-hero > .img-box { min-height: 480px !important; }
.home-hero h1 { font-size: clamp(36px, 4.5vw, 56px) !important; line-height: 1.5 !important; }
.hero-link { margin-top: 32px; }
.message-identity { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); font-size: 12px; color: var(--sub); }
.message-identity .message-name { margin-top: 6px; font-size: 22px; font-weight: 700; color: var(--ink); }
.message-identity .message-en { margin-top: 8px; font: 500 10px/1.6 Inter,sans-serif; letter-spacing: .14em; }
.message-body { max-width: 720px; }
.message-body > p { font-size: 15px !important; line-height: 2.05 !important; }
.message-body > p:first-child { font-family: 'Shippori Mincho B1',serif; font-size: 28px !important; line-height: 1.6 !important; }
.service-card { grid-template-columns: minmax(160px, 36%) minmax(0, 1fr) !important; gap: 28px !important; padding-bottom: 32px; border-bottom: 1px solid var(--line-soft); }
.service-card:last-child { border-bottom: none; padding-bottom: 0; }
.service-card > .img-box { height: 180px !important; }
.service-card p { overflow-wrap: anywhere; }
.service-emblem { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; background: var(--brand); color: var(--gold-light); border: 1px solid var(--gold); }
.service-emblem span { font: 500 64px/1 'Shippori Mincho B1',serif; }
.service-emblem small { font: 500 10px/1.6 Inter,sans-serif; letter-spacing: .2em; }
.sample-note { margin-top: 18px; color: var(--sub); font-size: 12px; }
.faq-item { border-bottom: 1px solid var(--line-soft); }
.faq-item summary { position: relative; padding: 22px 32px 22px 0; cursor: pointer; list-style: none; font-size: 15px; font-weight: 700; line-height: 1.8; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; position: absolute; top: 22px; right: 4px; color: var(--brand); font: 400 22px/1.3 Inter,sans-serif; }
.faq-item[open] summary::after { content: '−'; }
.faq-item > p { padding: 0 32px 24px 0; font-size: 14px; line-height: 1.95; color: var(--sub); }
.home-cta { padding: 76px 48px 76px 80px; }
.home-cta h2 { font-size: clamp(26px, 3.2vw, 38px) !important; }
.home-cta .btn-pill { margin-top: 28px !important; }

@media (max-width: 900px) {
  .kv-grid { grid-template-columns: 150px minmax(0,1fr); gap: 28px; }
  .home-hero { grid-template-columns: 24px minmax(0,1fr) minmax(240px,38%); }
  .home-hero > :nth-child(2) { padding: 56px 28px !important; }
  .home-hero h1 { font-size: 36px !important; }
  .home-hero > .img-box { min-height: 440px !important; }
  .service-card { grid-template-columns: minmax(0,1fr) !important; }
  .service-card > .img-box { height: 220px !important; }
}
@media (max-width: 680px) {
  .rail-row { grid-template-columns: minmax(0,1fr); }
  .rail { display: none; }
  .rail-row > :last-child:not(.img-box) { padding: 48px 24px !important; }
  .kv-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .site-header__bar { padding: 8px 20px; }
  .site-header__logo-image { width: 72px; }
  .home-hero { grid-template-columns: minmax(0,1fr); }
  .home-hero > :nth-child(2) { padding: 44px 24px 40px !important; }
  .home-hero h1 { font-size: clamp(32px, 8.8vw, 40px) !important; }
  .home-hero > .img-box { min-height: 0 !important; height: 280px; }
  .home-hero > .img-box img { object-position: center 48%; }
  .home .section-title br { display: none; }
  .home .kv-grid > :last-child > p[style*="font-size:30px"],
  .home .kv-grid > :last-child > p[style*="font-size:38px"] { font-size: 26px !important; }
  .message-identity { margin-top: 20px; padding-top: 16px; }
  .message-body > p:first-child { font-size: 24px !important; }
  .service-card { gap: 22px !important; }
  .service-card > .img-box { height: 200px !important; }
  .content-grid { min-width: 0; }
  .content-grid[style*="repeat(3,1fr)"] { grid-template-columns: minmax(0,1fr) !important; }
  .content-grid[style*="repeat(3,1fr)"] > div { padding: 16px 0 !important; border-left: 0 !important; border-bottom: 1px solid var(--line); }
  .content-grid[style*="minmax(90px,120px)"] { grid-template-columns: 80px minmax(0,1fr) !important; gap: 14px !important; }
  .content-grid[style*="minmax(80px,110px)"] { grid-template-columns: minmax(0,1fr) !important; gap: 8px !important; }
  .content-flex { gap: 28px !important; }
  .flex-panel { min-width: 0 !important; flex-basis: 100% !important; }
  .data-row, .data-row--wide { grid-template-columns: minmax(0,1fr); gap: 8px; padding: 18px 0; }
  .cta-band, .home-cta { padding: 48px 24px; }
  .site-footer { padding: 40px 24px 28px; }
  .site-footer__grid { gap: 28px; }
  .site-footer__brand { flex-basis: 100%; }
  .site-footer__bottom { margin-top: 32px; }
  .btn-pill { letter-spacing: .08em; }
  .faq-item summary { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.site-header__nav a.btn-pill--solid { color: #fff; }

/* Two equal business pillars */
.business-section { background: var(--cream); }
.business-lead { margin-top: 28px; font-family: 'Shippori Mincho B1',serif; font-size: clamp(24px,3vw,32px); line-height: 1.7; }
.business-intro { margin-top: 24px; max-width: 840px; font-size: 15px; line-height: 2; }
.business-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; margin-top: 40px; }
.business-card { min-width: 0; padding: 32px; background: #fff; border-top: 3px solid var(--gold); scroll-margin-top: 24px; display: flex; flex-direction: column; }
.business-card h2, .business-card h3 { margin-top: 18px; font-size: 24px; line-height: 1.6; color: var(--brand); }
.business-card > p:not(.eyebrow) { margin-top: 20px; font-size: 14px; line-height: 2; }
.business-card h4, .business-card ul + h3, .business-card > h3:not(:first-of-type) { margin-top: 28px; font-size: 14px; color: var(--brand); }
.business-card ul { padding-left: 20px; margin: 16px 0 28px; font-size: 14px; line-height: 2.1; }
.business-card li::marker { color: var(--gold-dark); }
.business-link { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line); font-size: 14px; font-weight: 700; color: var(--brand); }
.business-closing { margin-top: 40px; font-family: 'Shippori Mincho B1',serif; font-size: clamp(22px,3vw,30px); color: var(--brand); line-height: 1.8; }
button:disabled { opacity: .6; cursor: wait; }
#contact-error { color: #9c2626; font-size: 14px; }
@media(max-width: 760px) { .business-grid { grid-template-columns: minmax(0,1fr); } .business-card { padding: 28px 24px; } }

/* Approved direction A: editorial Mincho, whitespace and outline CTA. */
.home-hero--elegant { display: grid; grid-template-columns: 52% minmax(0,1fr); background: var(--cream); }
.home-hero--elegant .hero-copy { min-width: 0; padding: 96px clamp(32px,5vw,72px); align-self: center; }
.home-hero--elegant h1 { margin: 0; font-family: 'Shippori Mincho B1',serif; font-weight: 600; font-size: clamp(32px,4.05vw,50px) !important; line-height: 1.62 !important; letter-spacing: .015em; color: var(--ink); }
.hero-accent { display: block; width: 52px; height: 1px; background: var(--gold); margin-top: 34px; }
.hero-description { margin-top: 24px; font-family: 'Shippori Mincho B1',serif; font-size: clamp(13px,1.4vw,16px); font-weight: 600; line-height: 2.2; letter-spacing: .025em; }
.hero-service-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-width: 218px; min-height: 54px; padding: 14px 24px; margin-top: 40px; border: 1px solid var(--brand); border-radius: 2px; background: transparent; color: var(--brand); font-size: 14px; font-weight: 700; letter-spacing: .06em; transition: background .2s,color .2s; }
.home .hero-service-link { color: var(--brand); }
.home .hero-service-link:hover { background: var(--brand); color: #fff; }
.hero-service-arrow { font-family: sans-serif; font-size: 25px; font-weight: 400; line-height: 1; }
.hero-photo { min-width: 0; min-height: 620px; position: relative; }
.hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home .site-header__nav { display: none; }
.home .site-header__burger { display: flex; }
.home .site-header__mobile.is-open { display: grid !important; }
@media(max-width:900px) {
  .home-hero--elegant .hero-copy { padding: 64px 32px; }
  .home-hero--elegant h1 { font-size: clamp(28px,4vw,36px) !important; }
  .hero-description { font-size: 13px; letter-spacing: 0; }
  .hero-photo { min-height: 540px; }
}
@media(max-width:680px) {
  .home-hero--elegant { grid-template-columns: minmax(0,1fr); }
  .home-hero--elegant .hero-copy { padding: 52px 28px 48px; }
  .home-hero--elegant h1 { font-size: clamp(29px,8vw,40px) !important; line-height: 1.65 !important; }
  .hero-accent { margin-top: 26px; width: 44px; }
  .hero-description { margin-top: 20px; font-size: 13px; line-height: 2.1; }
  .hero-service-link { margin-top: 28px; min-width: 210px; }
  .hero-photo { min-height: 0; height: auto; aspect-ratio: 4 / 5; }
  .hero-photo img { object-position: center; }
}
@media(prefers-reduced-motion:reduce) { .hero-service-link { transition: none; } }

/* ABOUT: approved editorial design, semantic text and subtle leaf linework. */
.about-elegant { position: relative; overflow: hidden; padding: 88px 56px 64px; background: #fff; color: var(--brand); }
.about-leaves { position: absolute; width: 340px; height: 370px; right: -30px; top: -24px; color: var(--gold-dark); opacity: .11; pointer-events: none; }
.about-layout { position: relative; display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 40px; }
.about-label > p { font-family: Georgia,serif; font-size: 14px; letter-spacing: .3em; }
.about-label > span { display: block; width: 52px; height: 1px; background: var(--gold); margin-top: 24px; }
.about-label h2 { margin-top: 24px; font-family: Georgia,'Shippori Mincho B1',serif; font-size: 31px; font-weight: 400; line-height: 1.5; }
.about-label h2 small { font-family: 'Shippori Mincho B1',serif; font-size: 26px; font-weight: 600; }
.about-headline { font-family: 'Shippori Mincho B1',serif; font-size: clamp(24px,2.6vw,32px); line-height: 1.8; font-weight: 600; letter-spacing: .02em; }
.about-body { margin-top: 30px; font-size: 14px; line-height: 2.1; color: #30343a; overflow-wrap: anywhere; }
.about-body + .about-body { margin-top: 28px; }
.about-values { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 36px 0 0; padding: 28px 0 0; border-top: 1px solid var(--gold); }
.about-values > div { padding: 0 26px; }
.about-values > div + div { border-left: 1px solid #e5d8bb; }
.about-values dt { display: flex; align-items: baseline; gap: 28px; font-family: Georgia,serif; font-size: 25px; line-height: 1.5; font-weight: 400; }
.value-initial { position: relative; color: var(--gold-dark); font-size: 27px; }
.value-initial::after { content: ''; position: absolute; width: 42px; height: 1px; left: 10px; top: 29px; background: var(--gold); transform: rotate(-45deg); }
.about-values dd { margin: 7px 0 0 48px; font-family: 'Shippori Mincho B1',serif; font-size: 18px; }
@media(max-width:900px) {
  .about-elegant { padding: 64px 32px 48px; }
  .about-layout { grid-template-columns: 150px minmax(0,1fr); gap: 28px; }
  .about-label h2 { font-size: 27px; }
  .about-values > div { padding: 0 16px; }
  .about-values dt { font-size: 21px; gap: 24px; }
  .about-values dd { margin-left: 42px; }
}
@media(max-width:680px) {
  .about-elegant { padding: 48px 28px 40px; }
  .about-layout { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .about-label > span { margin-top: 18px; }
  .about-label h2 { margin-top: 18px; font-size: 28px; }
  .about-label h2 small { font-size: 22px; }
  .about-headline { font-size: clamp(21px,5.6vw,28px); letter-spacing: 0; }
  .about-body { margin-top: 24px; font-size: 14px; }
  .about-leaves { width: 235px; height: 256px; right: -42px; opacity: .08; }
  .about-values { grid-template-columns: minmax(0,1fr); padding-top: 8px; }
  .about-values > div { padding: 20px 0; }
  .about-values > div + div { border-left: none; border-top: 1px solid #e5d8bb; }
  .about-values dt { font-size: 24px; gap: 28px; }
  .about-values dd { margin-left: 46px; }
}

/* Approved section previews, rendered as accessible text and working controls. */
.message-elegant,.business-elegant,.faq-elegant,.contact-elegant { position:relative; overflow:hidden; }
.section-leaves { position:absolute; width:300px; height:330px; right:-40px; top:0; color:var(--gold); opacity:.22; pointer-events:none; }
.message-elegant .kv-grid { position:relative; }
.message-elegant .content-flex { position:relative; }
.message-elegant .message-body { position:relative; z-index:1; }
.message-elegant .eyebrow,.business-elegant .eyebrow,.faq-elegant .eyebrow { font-family:Georgia,serif; font-weight:400; letter-spacing:.25em; }
.message-elegant .section-title,.business-elegant .section-title,.faq-elegant .section-title { color:var(--brand); font-weight:600; }
.message-elegant .message-identity { border-color:var(--gold); }
.message-elegant .message-name { font-family:'Shippori Mincho B1',serif; color:var(--brand); font-weight:600; }
.message-elegant .message-en { color:var(--gold-dark); font-family:Georgia,serif; letter-spacing:.2em; }
.message-elegant .message-body > p:first-child { color:var(--brand)!important; font-size:clamp(26px,3vw,38px)!important; font-weight:600!important; }
.message-elegant .message-body > p:not(:first-child) { line-height:2.2!important; }
.career-elegant { margin-top:56px!important; border-color:#dccba6!important; }
.career-elegant > div { position:relative; padding:28px 0!important; border-color:#dccba6!important; grid-template-columns:140px minmax(0,1fr)!important; gap:38px!important; }
.career-elegant > div::before { content:''; position:absolute; left:157px; top:0; bottom:0; width:1px; background:#c3a466; }
.career-elegant > div::after { content:''; position:absolute; left:153px; top:40px; width:9px; height:9px; border-radius:50%; background:var(--gold); }
.career-elegant > div > p:first-child { color:var(--brand)!important; font-size:25px!important; font-weight:500!important; }
.business-elegant > div:last-child { position:relative; }
.business-elegant .business-lead { font-weight:600; max-width:780px; }
.business-elegant .business-grid { position:relative; gap:28px; }
.business-elegant .business-card { border:1px solid #eadfc8; border-top:2px solid var(--gold); padding:36px 32px; }
.business-elegant .business-card h3 { font-family:'Shippori Mincho B1',serif; font-weight:600; font-size:clamp(23px,2.5vw,30px); }
.business-elegant .business-card h3::after { content:''; display:block; width:44px; height:1px; background:var(--gold); margin-top:22px; }
.business-elegant .business-card h4 { font-family:'Shippori Mincho B1',serif; font-size:18px; font-weight:600; }
.business-elegant .business-card ul { list-style:none; counter-reset:areas; padding:0; margin:20px 0 30px; }
.business-elegant .business-card li { counter-increment:areas; display:flex; align-items:center; gap:16px; padding:13px 0; border-bottom:1px dotted #d9c7a3; line-height:1.7; }
.business-elegant .business-card li:last-child { border-bottom:0; }
.business-elegant .business-card li::before { content:counter(areas,decimal-leading-zero); flex:0 0 34px; height:34px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-dark); font:16px Georgia,serif; }
.business-elegant .business-link { align-self:flex-start; border:1px solid var(--gold); border-radius:30px; padding:12px 26px; font-weight:500; letter-spacing:.1em; display:flex; gap:24px; align-items:center; }
.business-elegant .business-link:hover { background:var(--brand); color:white; }
.business-elegant .business-closing { text-align:center; margin-top:56px; font-weight:600; }
.faq-elegant .section-title { font-weight:500; }
.faq-elegant .kv-grid > div:last-child,.faq-elegant .faq-item { border-color:#cdb687!important; }
.faq-elegant .faq-item summary { font-family:'Shippori Mincho B1',serif; font-weight:600; padding-top:25px; padding-bottom:25px; }
.faq-elegant .faq-item summary::after { color:var(--gold-dark); }
.contact-elegant { padding:76px clamp(28px,6vw,80px); background:#173f33; }
.contact-elegant h2 { position:relative; font-size:clamp(25px,3.3vw,38px)!important; font-weight:500!important; }
.contact-elegant h2::before { content:''; display:block; width:76px; height:1px; background:var(--gold); margin-bottom:32px; }
.contact-elegant .section-leaves { width:380px; height:420px; opacity:.35; }
.contact-elegant .btn-pill { position:relative; border:1px solid var(--gold); border-radius:0; background:transparent; color:white; padding:14px 28px; font:16px Georgia,serif; letter-spacing:.22em; }
.contact-elegant .btn-pill__arrow { background:var(--gold-light); color:var(--brand); }
.contact-elegant .btn-pill:hover { background:#285746; }
.home .site-footer { background:#0b201a; }
@media(max-width:680px) {
 .message-elegant .section-leaves { width:180px; opacity:.12; }
 .career-elegant > div { grid-template-columns:90px minmax(0,1fr)!important; gap:26px!important; padding:24px 0!important; }
 .career-elegant > div::before { left:101px; }
 .career-elegant > div::after { left:97px; top:34px; }
 .career-elegant > div > p:first-child { font-size:20px!important; }
 .business-elegant .business-card { padding:28px 22px; }
 .business-elegant .section-leaves { width:180px; opacity:.12; }
 .business-elegant .business-closing { text-align:left; font-size:21px; }
 .contact-elegant { padding:52px 24px; }
 .contact-elegant .section-leaves { width:240px; opacity:.18; }
}

/* Three equal service areas; stack on tablets and phones. */
.business-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:1100px) { .business-grid { grid-template-columns:minmax(0,1fr); } }

/* Current business structure: two equal pillars. */
.business-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:760px) { .business-grid { grid-template-columns:minmax(0,1fr); } }


/* Keep the business suffix together on narrow screens. */
.business-title-suffix { white-space:nowrap; }

.recruit-team-photo { min-width:0; width:100%; min-height:480px; align-self:stretch; }
.recruit-team-photo img { object-position:center; }
.recruit-photo-caption { position:absolute; right:12px; bottom:12px; padding:4px 8px; background:rgba(255,255,255,.85); color:#37473e; font-size:11px; }
@media(max-width:680px) { .recruit-team-photo { min-height:0; width:100%; aspect-ratio:6 / 7; } }

/* Recruitment process: approved green/gold editorial direction. */
.recruit-process { position:relative; overflow:hidden; padding:76px clamp(24px,5vw,64px); background:var(--cream); color:var(--brand); }
.recruit-process .section-leaves { opacity:.25; width:230px; height:250px; }
.process-label { font:16px Georgia,serif; letter-spacing:.25em; color:var(--gold-dark); display:flex; align-items:center; gap:18px; }
.process-label::after { content:''; width:70px; height:1px; background:var(--gold); }
.recruit-process h2 { margin-top:16px; font-family:'Shippori Mincho B1',serif; font-size:clamp(28px,3.5vw,40px); font-weight:600; }
.process-steps { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; list-style:none; padding:0; margin:48px 0 0; }
.process-steps li { position:relative; min-width:0; text-align:center; }
.process-number { display:block; font:54px/1.2 Georgia,serif; color:var(--gold-dark); }
.process-steps li:not(:last-child)::after { content:''; position:absolute; height:1px; background:var(--gold); width:calc(100% - 55px); left:calc(50% + 42px); top:32px; }
.process-steps svg { display:block; width:76px; height:76px; margin:22px auto 18px; color:var(--gold-dark); }
.process-steps h3 { font-family:'Shippori Mincho B1',serif; font-weight:600; font-size:clamp(18px,1.9vw,24px); line-height:1.6; }
.process-steps h3::after { content:''; display:block; width:36px; height:1px; background:var(--gold); margin:18px auto; }
.process-steps p { font-size:14px; line-height:1.9; color:#4c6357; }
.recruit-entry { position:relative; overflow:hidden; padding:72px clamp(24px,5vw,64px); background:#194635; }
.recruit-entry .section-leaves { top:auto; bottom:-50px; opacity:.45; }
.recruit-entry h2 { position:relative; z-index:1; font-weight:600; font-size:clamp(26px,3.3vw,38px); line-height:1.8; }
.recruit-entry-link { position:relative; display:inline-flex; align-items:center; gap:54px; min-height:58px; padding:16px 28px; margin-top:32px; border:1px solid var(--gold); color:#fff; font:16px Georgia,serif; letter-spacing:.2em; }
.recruit-entry-link span { color:var(--gold-light); font-size:27px; line-height:1; }
.recruit-entry-link:hover { background:#2a5848; }
@media(max-width:900px) and (min-width:681px) { .process-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 28px; } .process-steps li:nth-child(2)::after { display:none; } }
@media(max-width:680px) {
 .recruit-process { padding:48px 28px; }
 .process-steps { grid-template-columns:minmax(0,1fr); gap:0; margin-top:32px; }
 .process-steps li { text-align:left; display:grid; grid-template-columns:48px minmax(0,1fr); column-gap:18px; padding:24px 0; border-bottom:1px solid #dfd1b7; }
 .process-steps li:last-child { border-bottom:0; }
 .process-steps li::after { display:none; }
 .process-number { grid-column:1; grid-row:1; font-size:35px; align-self:center; }
 .process-steps svg { grid-column:2; grid-row:1; width:58px; height:58px; margin:0 0 14px; }
 .process-steps h3 { grid-column:2; font-size:22px; }
 .process-steps h3::after { margin:14px 0; }
 .process-steps p { grid-column:2; }
 .recruit-entry { padding:48px 28px; }
 .recruit-entry .section-leaves { opacity:.2; }
}

/* Approved botanical philosophy section; text stays accessible and responsive. */
.philosophy-botanical { position:relative; display:grid; grid-template-columns:minmax(190px,.9fr) minmax(0,3fr); gap:clamp(36px,6vw,90px); padding:110px clamp(28px,6vw,80px); color:#f9f8ef; background:#123b2c url('../img/philosophy-botanical-v1.png') right top / cover no-repeat; }
.philosophy-botanical::before { content:''; position:absolute; left:24px; top:32px; bottom:32px; width:1px; background:rgba(185,150,75,.45); }
.philosophy-label,.philosophy-story { position:relative; min-width:0; }
.philosophy-label>p { margin:0; color:#e6cd8e; font:15px Georgia,serif; letter-spacing:.25em; }
.philosophy-label h2 { margin:20px 0 0; font:600 32px/1.5 'Shippori Mincho B1',serif; }
.philosophy-link { display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:240px; padding:18px 22px; margin-top:36px; border:1px solid #c6aa67; color:#f9f8ef; font:16px/1.5 Georgia,serif; letter-spacing:.09em; }
.philosophy-link small { display:block; font:14px/1.6 'Shippori Mincho B1',serif; }
.philosophy-link>span:last-child { font-size:30px; color:#dbc487; }
.philosophy-link:hover { background:rgba(255,255,255,.08); }
.philosophy-link:focus-visible { outline:2px solid #e6cd8e; outline-offset:5px; }
.philosophy-headline { margin:8px 0 0; font:600 clamp(28px,3.35vw,48px)/1.85 'Shippori Mincho B1',serif; letter-spacing:.025em; }
.philosophy-rule { display:block; width:64px; height:1px; margin:42px 0 34px; background:#d5b86e; }
.philosophy-body { max-width:790px; margin:0; font:600 15px/2.3 'Shippori Mincho B1',serif; letter-spacing:.025em; }
@media(max-width:760px) {
 .philosophy-botanical { grid-template-columns:minmax(0,1fr); gap:40px; padding:64px 28px; background-image:linear-gradient(rgba(10,44,31,.38),rgba(10,44,31,.82)),url('../img/philosophy-botanical-v1.png'); background-size:auto 100%; }
 .philosophy-botanical::before { left:12px; }
 .philosophy-label h2 { font-size:28px; }
 .philosophy-link { margin-top:24px; max-width:220px; }
 .philosophy-headline { font-size:clamp(23px,5.8vw,36px); line-height:1.8; }
 .philosophy-rule { margin:28px 0; }
 .philosophy-body { font-size:14px; line-height:2.2; }
}
