/* =====================================================
   Volante Works LLC — Stylesheet v3
   見出しゴシック · 余白最適化 · 大画面対応
   ===================================================== */

:root {
  --color-navy:        #0F1B2D;
  --color-navy-deep:   #08121F;
  --color-navy-soft:   #1F2C42;
  --color-cream:       #F5F1E8;
  --color-cream-light: #FAF7F0;
  --color-cream-warm:  #EFE9DA;
  --color-sumi:        #1C1C1C;
  --color-sumi-light:  #4A4A4A;
  --color-sumi-faint:  #8A8784;
  --color-gold:        #A88B4C;
  --color-gold-soft:   #C5A978;
  --color-gold-faint:  #D9C6A0;
  --color-line:        #D8D4CA;
  --color-line-faint:  #E8E4DA;
  --color-line-dark:   rgba(245,241,232,0.18);

  /* フォント */
  --font-heading: "Noto Sans JP","Hiragino Sans","Yu Gothic","YuGothic",sans-serif; /* ← 見出し：ゴシック */
  --font-body:    "Noto Serif JP","Yu Mincho","游明朝","Hiragino Mincho ProN",serif; /* ← 本文：明朝 */
  --font-sans:    "Noto Sans JP","Hiragino Sans","Yu Gothic","YuGothic",sans-serif;
  --font-serif:   "Noto Serif JP","Yu Mincho","游明朝","Hiragino Mincho ProN",serif;
  --font-display: "Cormorant Garamond","EB Garamond",serif; /* 装飾用のみ */

  /* テキストスケール — PCで大きく、読みやすく */
  --text-xs:   clamp(12px, 0.85vw, 13px);
  --text-sm:   clamp(13px, 0.95vw, 15px);
  --text-base: clamp(16px, 1.2vw,  19px);   /* 本文 */
  --text-md:   clamp(18px, 1.4vw,  22px);
  --text-lg:   clamp(22px, 2vw,    30px);
  --text-xl:   clamp(28px, 3vw,    42px);   /* セクション見出し */
  --text-2xl:  clamp(36px, 4.2vw,  58px);   /* ページタイトル */
  --text-3xl:  clamp(44px, 5.5vw,  72px);   /* 大見出し */
  --text-hero: clamp(48px, 7.5vw, 100px);   /* ヒーロー */

  /* 余白 — PCで詰める */
  --space-section:    clamp(56px, 7vw,  96px);   /* 旧: 96→180px → 新: 56→96px */
  --space-section-sm: clamp(40px, 5vw,  68px);

  --container-max:    1280px;
  --container-narrow: 860px;
  --container-text:   720px;

  --transition-base: 0.6s cubic-bezier(0.16,1,0.3,1);
  --transition-fast: 0.3s ease;
}

/* ─ Reset ─ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-body);
  font-size:var(--text-base);
  font-weight:400;
  line-height:1.95;
  letter-spacing:0.04em;
  color:var(--color-sumi);
  background:var(--color-cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;transition:color var(--transition-fast);}
ul,ol{list-style:none;}
button{font:inherit;cursor:pointer;background:none;border:none;}

/* ─ Containers ─ */
.container{
  width:100%;
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 clamp(20px, 4vw, 56px);
}
.container--narrow{max-width:var(--container-narrow);}
.container--text{max-width:var(--container-text);}

/* ─ Eyebrow (装飾ラベル — 変更なし) ─ */
.eyebrow{
  font-family:var(--font-display);
  font-style:italic;
  font-size:var(--text-sm);
  letter-spacing:0.28em;
  color:var(--color-gold);
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:14px;
}
.eyebrow::before{
  content:'';display:inline-block;
  width:36px;height:1px;background:var(--color-gold);
}
.eyebrow--center{display:flex;justify-content:center;}

/* ═══════════════════════════════════════
   HEADER
═══════════════════════════════════════ */
.site-header{
  position:fixed;top:0;left:0;width:100%;z-index:100;
  background:rgba(245,241,232,0.85);
  backdrop-filter:blur(20px) saturate(110%);
  -webkit-backdrop-filter:blur(20px) saturate(110%);
  transition:background var(--transition-fast),border-color var(--transition-fast);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(245,241,232,0.97);
  border-bottom-color:var(--color-line-faint);
}
.site-header__inner{
  display:flex;align-items:center;justify-content:space-between;
  height:clamp(60px,5.5vw,80px);
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 clamp(20px,4vw,56px);
}
.site-header__logo{display:flex;align-items:center;gap:12px;}
.site-header__logo img{height:clamp(28px,2.4vw,36px);width:auto;}
.site-header__logo-text{
  display:flex;flex-direction:column;
  font-family:var(--font-heading);
  font-weight:700;
  font-size:clamp(14px,1.1vw,17px);
  color:var(--color-navy);
  letter-spacing:0.04em;
  line-height:1.2;
}
.site-header__logo-jp{
  font-family:var(--font-sans);
  font-size:10px;letter-spacing:0.18em;
  color:var(--color-sumi-faint);font-weight:400;margin-top:2px;
}
.site-header__nav{display:flex;align-items:center;gap:clamp(20px,3vw,48px);}
.site-header__nav a{
  font-family:var(--font-sans);
  font-size:12px;font-weight:500;
  letter-spacing:0.22em;text-transform:uppercase;
  color:var(--color-sumi);
  position:relative;padding:4px 0;
}
.site-header__nav a::after{
  content:'';
  position:absolute;left:0;bottom:-2px;
  width:0;height:1px;background:var(--color-gold);
  transition:width var(--transition-fast);
}
.site-header__nav a:hover::after,
.site-header__nav a.is-current::after{width:100%;}
.site-header__cta{
  background:var(--color-navy);color:var(--color-cream);
  padding:14px 28px;
  font-family:var(--font-sans);font-size:12px;font-weight:500;
  letter-spacing:0.22em;text-transform:uppercase;
  transition:background var(--transition-fast);
}
.site-header__cta:hover{background:var(--color-gold);}

.site-header__hamburger{
  display:none;width:44px;height:44px;
  flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;
}
.site-header__hamburger span{
  display:block;width:24px;height:1px;background:var(--color-navy);
  transition:transform var(--transition-fast),opacity var(--transition-fast);
}
.site-header__hamburger.is-open span:nth-child(1){transform:translateY(3.5px) rotate(45deg);}
.site-header__hamburger.is-open span:nth-child(2){opacity:0;}
.site-header__hamburger.is-open span:nth-child(3){transform:translateY(-3.5px) rotate(-45deg);}
@media(max-width:880px){
  .site-header__nav,.site-header__cta{display:none;}
  .site-header__hamburger{display:flex;}
}

.mobile-menu{
  position:fixed;inset:0;background:var(--color-cream);z-index:99;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  gap:36px;opacity:0;visibility:hidden;
  transition:opacity .5s,visibility .5s;padding:0 24px;
}
.mobile-menu.is-open{opacity:1;visibility:visible;}
.mobile-menu a{
  font-family:var(--font-heading);font-weight:700;
  font-size:clamp(24px,6vw,36px);
  color:var(--color-navy);text-align:center;letter-spacing:0.04em;
}
.mobile-menu .lang-jp{
  display:block;font-family:var(--font-sans);
  font-size:11px;letter-spacing:0.22em;
  color:var(--color-sumi-faint);margin-top:4px;font-weight:400;
}

main{padding-top:clamp(60px,5.5vw,80px);}

/* ═══════════════════════════════════════
   HERO
═══════════════════════════════════════ */
.hero{
  position:relative;
  min-height:clamp(520px,90vh,920px);
  display:flex;align-items:stretch;
  overflow:hidden;background:var(--color-cream);
}
.hero__layout{
  display:grid;grid-template-columns:1fr;width:100%;
}
@media(min-width:900px){.hero__layout{grid-template-columns:1.1fr 1fr;}}

.hero__content{
  /* 余白を詰める：上部をコンパクトに */
  padding:clamp(40px, 6vw, 80px) clamp(20px, 5vw, 80px) clamp(40px, 6vw, 80px);
  display:flex;flex-direction:column;justify-content:center;
  position:relative;z-index:2;
}
.hero__index{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);color:var(--color-gold);
  letter-spacing:0.3em;text-transform:uppercase;
  margin-bottom:clamp(20px, 3vw, 36px);
  display:flex;align-items:center;gap:16px;
}
.hero__index::before{
  content:'';display:inline-block;width:40px;height:1px;background:var(--color-gold);
}

/* ── ヒーロータイトル：ゴシック太字 ── */
.hero__title{
  font-family:var(--font-heading);
  font-weight:700;
  /* モバイル（1カラム）: 全幅使えるのでやや大きめ */
  font-size: clamp(40px, 10vw, 64px);
  line-height:1.18;
  letter-spacing:-0.01em;
  color:var(--color-navy);
  margin-bottom:clamp(24px, 3.5vw, 48px);
  font-feature-settings:"palt";
}
/* デスクトップ（2カラム）: コンテンツ列幅に収まるよう制御 */
@media(min-width:900px){
  .hero__title{
    font-size: clamp(44px, 5.5vw, 80px);
  }
}
.hero__title-line{
  display:block;
  overflow:hidden;
  white-space:nowrap; /* 1行ずつ確実に収める */
}
.hero__title-line span{
  display:inline-block;transform:translateY(110%);opacity:0;
  animation:heroUp 1.2s cubic-bezier(0.16,1,0.3,1) forwards;
}
.hero__title-line:nth-child(1) span{animation-delay:.25s;}
.hero__title-line:nth-child(2) span{animation-delay:.42s;}
@keyframes heroUp{to{transform:translateY(0);opacity:1;}}

.hero__quote{
  max-width:500px;
  font-family:var(--font-body);font-style:italic;
  font-size:clamp(15px,1.2vw,18px);
  line-height:2;color:var(--color-sumi-light);
  border-left:1px solid var(--color-gold);
  padding-left:clamp(18px,2vw,28px);
  margin-bottom:clamp(20px,2.5vw,32px);
  opacity:0;animation:fadeIn 1s ease .8s forwards;
}
.hero__sign{
  font-family:var(--font-body);
  font-size:clamp(15px,1.15vw,18px);
  color:var(--color-navy);letter-spacing:0.05em;font-weight:500;
  opacity:0;animation:fadeIn 1s ease 1.1s forwards;
}
@keyframes fadeIn{to{opacity:1;}}

.hero__visual{
  position:relative;min-height:280px;
  background-image:url('../img/hero-horizon.jpg');
  background-size:cover;background-position:center;overflow:hidden;
}
.hero__visual::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(105deg,var(--color-cream) 0%,transparent 26%);
}
.hero__visual::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(15,27,45,.2) 100%);
}
.hero__W{
  position:absolute;bottom:-40px;right:-20px;
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(180px,28vw,440px);
  color:var(--color-cream);opacity:.52;
  z-index:1;user-select:none;pointer-events:none;line-height:.85;mix-blend-mode:screen;
}
.hero__corner{
  position:absolute;bottom:clamp(18px,2.5vw,36px);right:clamp(18px,2.5vw,36px);
  font-family:var(--font-display);font-style:italic;
  font-size:11px;letter-spacing:.3em;color:var(--color-cream);
  z-index:3;text-transform:uppercase;
  opacity:0;animation:fadeIn 1.5s ease 1.4s forwards;
}
@media(max-width:900px){
  .hero__visual{min-height:260px;order:-1;}
  .hero__W{font-size:220px;}
}

/* ═══════════════════════════════════════
   SECTIONS
═══════════════════════════════════════ */
.section{padding:var(--space-section) 0;position:relative;}
.section--sm{padding:var(--space-section-sm) 0;}
.section--cream{background:var(--color-cream);}
.section--cream-light{background:var(--color-cream-light);}
.section--white{background:#fff;}
.section--navy{background:var(--color-navy);color:var(--color-cream);}

.section__num{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);color:var(--color-gold);
  letter-spacing:.3em;text-transform:uppercase;
  display:block;margin-bottom:20px;
}
.section__num::before{content:'— ';margin-right:4px;}

/* ─ Image bands ─ */
.img-band{width:100%;position:relative;overflow:hidden;}
.img-band img{width:100%;object-fit:cover;display:block;}
.img-band--overlay::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(15,27,45,.18) 0%,transparent 40%,transparent 60%,rgba(15,27,45,.22) 100%);
  pointer-events:none;
}

/* ─ Quote band ─ */
.quote-band{
  position:relative;
  padding:clamp(48px,6vw,96px) 0;
  background:var(--color-navy);
  background-image:url('../img/bg-question.jpg');
  background-size:cover;background-position:center;
  background-blend-mode:multiply;
  text-align:center;overflow:hidden;
}
.quote-band::before{
  content:'';position:absolute;inset:0;
  background:rgba(8,18,31,.52);pointer-events:none;
}
.quote-band__inner{position:relative;z-index:2;max-width:760px;margin:0 auto;padding:0 clamp(20px,4vw,56px);}
.quote-band__opening{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(52px,7vw,96px);color:var(--color-gold-faint);
  line-height:1;margin-bottom:-18px;font-weight:400;
}
.quote-band__text{
  font-family:var(--font-body);font-weight:500;
  font-size:clamp(17px,1.7vw,24px);
  line-height:2.05;color:var(--color-cream);letter-spacing:.05em;margin-bottom:20px;
}
.quote-band__source{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);color:var(--color-gold-soft);letter-spacing:.2em;
}

/* ═══════════════════════════════════════
   HOME: QUESTION
═══════════════════════════════════════ */
.question{
  display:grid;grid-template-columns:1fr;
  gap:clamp(36px,5vw,72px);align-items:start;
}
@media(min-width:880px){.question{grid-template-columns:1fr 1.25fr;}}
.question__heading-block{position:relative;}
@media(min-width:880px){.question__heading-block{position:sticky;top:100px;}}

/* ── セクション見出し：ゴシック ── */
.question__title{
  font-family:var(--font-heading);
  font-weight:700;
  font-size:var(--text-xl);
  line-height:1.38;letter-spacing:-0.01em;
  color:var(--color-navy);
  font-feature-settings:"palt";margin-top:16px;
}
.question__voices{
  border-left:1px solid var(--color-gold);
  padding:8px 0 8px 28px;margin:24px 0 32px;
}
.question__voices p{
  font-family:var(--font-body);font-style:italic;
  font-size:clamp(15px,1.2vw,18px);
  line-height:1.95;color:var(--color-sumi-light);margin-bottom:6px;
}
.question__body p{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2.05;color:var(--color-sumi);
}
.question__body p+p{margin-top:1.5em;}
.question__body strong{
  font-family:var(--font-heading);font-weight:700;
  color:var(--color-navy);font-size:1.04em;
}

/* ═══════════════════════════════════════
   HOME: SERVICES PREVIEW
═══════════════════════════════════════ */
.services-preview{
  display:grid;grid-template-columns:1fr;
  border-top:1px solid var(--color-line);
  margin-top:clamp(32px,4vw,56px);
}
@media(min-width:760px){.services-preview{grid-template-columns:repeat(3,1fr);}}

.service-card{
  padding:clamp(32px,3.5vw,56px) clamp(24px,2.8vw,44px);
  border-bottom:1px solid var(--color-line);
  display:flex;flex-direction:column;
  transition:background var(--transition-base);
}
@media(min-width:760px){
  .service-card{border-right:1px solid var(--color-line);}
  .service-card:last-child{border-right:none;}
}
.service-card:hover{background:var(--color-cream-light);}

.service-card__img{
  width:100%;aspect-ratio:16/9;object-fit:cover;
  margin-bottom:24px;filter:saturate(.9) contrast(1.05);
}
.service-card__num{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);color:var(--color-gold);
  letter-spacing:.22em;margin-bottom:20px;
}
/* ── サービスカード名：ゴシック ── */
.service-card__name{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(28px,2.8vw,42px);
  color:var(--color-navy);margin-bottom:6px;letter-spacing:.02em;
}
.service-card__name-jp{
  font-family:var(--font-sans);font-size:var(--text-xs);
  color:var(--color-sumi-faint);letter-spacing:.2em;
  margin-bottom:20px;display:block;
}
.service-card__lead{
  font-family:var(--font-body);
  font-size:clamp(14px,1.1vw,17px);
  line-height:1.95;color:var(--color-sumi);
  margin-bottom:28px;flex-grow:1;
}
.service-card__more{
  font-family:var(--font-sans);font-size:12px;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--color-navy);
  display:inline-flex;align-items:center;gap:10px;align-self:flex-start;
  padding-bottom:5px;border-bottom:1px solid var(--color-navy);
  transition:gap var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);
}
.service-card__more:hover{gap:16px;color:var(--color-gold);border-color:var(--color-gold);}

/* ═══════════════════════════════════════
   HOME: ABOUT LINK
═══════════════════════════════════════ */
.about-link{
  display:grid;grid-template-columns:1fr;
  gap:clamp(32px,5vw,72px);align-items:center;
}
@media(min-width:880px){.about-link{grid-template-columns:1fr 1.25fr;}}
.about-link__visual{
  position:relative;aspect-ratio:1/1.02;overflow:hidden;
}
.about-link__visual img.full{width:100%;height:100%;object-fit:cover;}
.about-link__visual-logo{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2;
}
.about-link__logo-box{
  background:rgba(255,255,255,0.78);
  padding:clamp(28px,4vw,56px);
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(160px,40%,280px);
  aspect-ratio:1/1;
}
.about-link__logo-box img{
  width:100%;
  height:auto;
  display:block;
  filter:none;
  opacity:1;
}
.about-link__visual-W{
  position:absolute;bottom:-60px;right:-30px;
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(180px,22vw,340px);
  color:rgba(255,255,255,.18);z-index:1;line-height:.85;user-select:none;
}
/* ── About見出し：ゴシック ── */
.about-link__title{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-xl);line-height:1.38;
  letter-spacing:-0.01em;color:var(--color-navy);
  margin-bottom:24px;font-feature-settings:"palt";margin-top:16px;
}
.about-link__lead{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2.05;
  color:var(--color-sumi);margin-bottom:36px;
}

/* ═══════════════════════════════════════
   HOME: PROFILE LINK
═══════════════════════════════════════ */
.profile-link{
  display:grid;grid-template-columns:1fr;
  gap:clamp(32px,5vw,72px);align-items:center;
}
@media(min-width:880px){
  .profile-link{grid-template-columns:minmax(280px,360px) 1fr;}
}
.profile-link__photo{
  aspect-ratio:4/5;overflow:hidden;
  filter:grayscale(18%) contrast(1.05);
  position:relative;background:var(--color-cream-warm);
}
.profile-link__photo img{width:100%;height:100%;object-fit:cover;}
.profile-link__photo::after{
  content:'';position:absolute;inset:0;
  border:1px solid rgba(168,139,76,.3);pointer-events:none;
}
/* ── プロフィール見出し：ゴシック ── */
.profile-link__title{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-xl);line-height:1.38;
  color:var(--color-navy);margin-bottom:24px;
  font-feature-settings:"palt";margin-top:16px;
  letter-spacing:-0.01em;
}
.profile-link__bio{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2.05;
  color:var(--color-sumi);margin-bottom:28px;
}
.profile-link__name{
  font-family:var(--font-body);
  font-size:clamp(15px,1.15vw,18px);
  margin-bottom:28px;color:var(--color-sumi);
}
.profile-link__name strong{
  font-family:var(--font-heading);font-weight:700;
  letter-spacing:.08em;color:var(--color-navy);font-size:1.08em;margin-right:12px;
}

/* ═══════════════════════════════════════
   NEWS
═══════════════════════════════════════ */
.news__list{margin-top:clamp(24px,3.5vw,48px);}
.news__item{
  display:grid;
  grid-template-columns:120px 100px 1fr;
  gap:clamp(16px,3vw,40px);
  padding:clamp(20px,2.8vw,36px) 0;
  border-bottom:1px solid var(--color-line-faint);
  align-items:baseline;
  transition:background var(--transition-fast);
}
.news__item:first-child{border-top:1px solid var(--color-line-faint);}
.news__item:hover{background:var(--color-cream-light);}
.news__date{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(14px,1.1vw,17px);
  color:var(--color-gold);letter-spacing:.1em;
}
.news__category{
  font-family:var(--font-sans);font-size:10px;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--color-sumi-faint);
  border:1px solid var(--color-line);padding:6px 12px;display:inline-block;
}
.news__title{
  font-family:var(--font-body);
  font-size:clamp(15px,1.2vw,18px);
  line-height:1.75;color:var(--color-sumi);font-weight:500;
}
.news__title a:hover{color:var(--color-gold);}
@media(max-width:720px){
  .news__item{grid-template-columns:1fr;gap:8px;padding:18px 0;}
  .news__category{width:fit-content;}
}

/* ═══════════════════════════════════════
   PAGE TITLE (サブページ共通)
═══════════════════════════════════════ */
.page-title{
  padding:clamp(40px,6vw,96px) 0 clamp(32px,5vw,64px);
  background:var(--color-cream);position:relative;overflow:hidden;
}
.page-title__inner{position:relative;z-index:2;}
.page-title__eyebrow{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);letter-spacing:.32em;
  color:var(--color-gold);text-transform:uppercase;
  margin-bottom:20px;display:inline-block;
}
/* ── ページタイトル：ゴシック ── */
.page-title__heading{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-2xl);line-height:1.28;
  color:var(--color-navy);
  font-feature-settings:"palt";letter-spacing:-0.01em;
}
.page-title__decor{
  position:absolute;right:clamp(-20px,-2vw,-5px);top:50%;
  transform:translateY(-40%);
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(130px,22vw,380px);
  color:var(--color-line-faint);line-height:.85;
  z-index:1;user-select:none;pointer-events:none;
}

/* ═══════════════════════════════════════
   ABOUT STORY
═══════════════════════════════════════ */
.about-story{max-width:var(--container-text);margin:0 auto;}
/* ── About大見出し：display体のまま（装飾的なので維持） ── */
.about-story__heading{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(40px,6.5vw,84px);
  color:var(--color-navy);
  margin-bottom:clamp(32px,5vw,64px);
  text-align:center;line-height:1.1;
}
.about-story__heading .vv-jp{
  display:block;font-family:var(--font-heading);font-style:normal;
  font-size:.33em;letter-spacing:.3em;
  color:var(--color-sumi-faint);margin-top:20px;font-weight:400;
}
.about-story__body p{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2.1;margin-bottom:1.8em;color:var(--color-sumi);
}
.about-story__body p.lead{
  font-family:var(--font-heading);font-weight:700;
  font-size:clamp(22px, 2.2vw, 32px);
  color:var(--color-navy);text-align:center;letter-spacing:.02em;line-height:2;
}
.about-story__body strong{
  font-family:var(--font-heading);font-weight:700;
  color:var(--color-navy);font-size:1.04em;
}
.about-story__divider{
  width:1px;height:56px;
  background:linear-gradient(to bottom,transparent,var(--color-gold),transparent);
  margin:56px auto;
}
.about-philosophy{text-align:center;}
.about-philosophy__logo{max-width:140px;margin:0 auto clamp(32px,4.5vw,56px);}
/* ── 哲学テキスト：ゴシック ── */
.about-philosophy__lines{
  font-family:var(--font-heading);font-weight:700;
  font-size:clamp(22px, 2.6vw, 36px);
  line-height:2.1;color:var(--color-navy);letter-spacing:.04em;
}
.about-philosophy__lines span{display:block;}

/* ═══════════════════════════════════════
   SERVICE: METHOD
═══════════════════════════════════════ */
.method__intro{text-align:center;margin-bottom:clamp(48px,6vw,88px);}
/* ── メソッド見出し：ゴシック ── */
.method__title{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-3xl);
  color:var(--color-navy);
  margin-top:16px;margin-bottom:24px;
  letter-spacing:-0.01em;font-feature-settings:"palt";line-height:1.25;
}
.method__lead{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2;
  color:var(--color-sumi);max-width:540px;margin:0 auto;
}
.method__steps{
  display:grid;grid-template-columns:1fr;
  border-top:1px solid var(--color-line);
}
@media(min-width:880px){.method__steps{grid-template-columns:repeat(3,1fr);}}
.method__step{
  padding:clamp(40px,4.5vw,72px) clamp(24px,3vw,48px);
  border-bottom:1px solid var(--color-line);
}
@media(min-width:880px){
  .method__step{border-right:1px solid var(--color-line);}
  .method__step:last-child{border-right:none;}
}
.method__step-num{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(56px,6vw,88px);color:var(--color-gold);
  line-height:1;margin-bottom:clamp(24px,3vw,40px);font-weight:400;
}
/* ── ステップ見出し：ゴシック ── */
.method__step-title{
  font-family:var(--font-heading);font-weight:700;
  font-size:clamp(26px, 2.8vw, 36px);
  color:var(--color-navy);margin-bottom:4px;letter-spacing:.02em;
}
.method__step-en{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);color:var(--color-sumi-faint);
  margin-bottom:clamp(20px,2.5vw,36px);letter-spacing:.16em;display:block;
}
.method__step-body{
  font-family:var(--font-body);
  font-size:clamp(14px,1.1vw,16px);line-height:2;color:var(--color-sumi);
}

/* ═══════════════════════════════════════
   SERVICE DETAIL
═══════════════════════════════════════ */
.service-detail{
  padding:clamp(56px,7vw,104px) 0;scroll-margin-top:80px;
}
.service-detail--alt{background:var(--color-white);}
.service-detail__layout{
  display:grid;grid-template-columns:1fr;
  gap:clamp(28px,5vw,72px);
  max-width:var(--container-narrow);margin:0 auto;
}
@media(min-width:760px){
  .service-detail__layout{grid-template-columns:1fr 1fr;}
  .service-detail__layout.img-right .service-detail__img{order:2;}
}
/* モバイル：全セクション統一して 画像→テキストの順 */
@media(max-width:759px){
  .service-detail__layout{display:flex;flex-direction:column;}
  .service-detail__img{order:1;}
  .service-detail__layout > div:not(.service-detail__img){order:2;}
}
.service-detail__img{
  aspect-ratio:4/3;overflow:hidden;position:relative;
}
.service-detail__img img{
  width:100%;height:100%;object-fit:cover;transition:transform .8s ease;
}
.service-detail__img:hover img{transform:scale(1.04);}
.service-detail__img::after{
  content:'';position:absolute;inset:0;
  border:1px solid rgba(168,139,76,.2);pointer-events:none;
}
.service-detail__meta{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(40px,4.5vw,60px);
  color:var(--color-gold);font-weight:400;line-height:1;letter-spacing:.04em;
}
.service-detail__meta-name{
  display:block;font-family:var(--font-sans);font-style:normal;
  font-size:12px;color:var(--color-sumi-faint);
  letter-spacing:.3em;text-transform:uppercase;margin-top:14px;font-weight:500;
}
/* ── サービス詳細見出し：ゴシック ── */
.service-detail__title{
  font-family:var(--font-heading);font-weight:700;
  font-size:clamp(20px,2.6vw,32px);
  line-height:1.42;color:var(--color-navy);
  margin-bottom:clamp(24px,3.5vw,44px);
  font-feature-settings:"palt";letter-spacing:-0.01em;margin-top:18px;
}
.service-detail__body p{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2.1;color:var(--color-sumi);margin-bottom:1.4em;
}

/* ═══════════════════════════════════════
   PROFILE
═══════════════════════════════════════ */
.profile-intro{
  display:grid;grid-template-columns:1fr;
  gap:clamp(32px,5vw,72px);align-items:start;
}
@media(min-width:880px){
  .profile-intro{grid-template-columns:minmax(320px,420px) 1fr;}
}
.profile-intro__photo{
  aspect-ratio:4/5;overflow:hidden;
  filter:grayscale(18%) contrast(1.05);
  position:relative;background:var(--color-cream-warm);
}
.profile-intro__photo img{width:100%;height:100%;object-fit:cover;}
.profile-intro__photo::after{
  content:'';position:absolute;inset:0;
  border:1px solid rgba(168,139,76,.3);pointer-events:none;
}
.profile-intro__name-en{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(13px,1.1vw,16px);color:var(--color-gold);
  letter-spacing:.3em;margin-bottom:14px;display:block;text-transform:uppercase;
}
/* ── プロフィール名前：ゴシック ── */
.profile-intro__name{
  font-family:var(--font-heading);font-weight:700;
  font-size:clamp(28px,4.5vw,56px);
  color:var(--color-navy);margin-bottom:10px;
  letter-spacing:.04em;line-height:1.18;
}
.profile-intro__title{
  font-family:var(--font-sans);font-size:12px;
  letter-spacing:.22em;color:var(--color-sumi-faint);
  text-transform:uppercase;margin-bottom:clamp(28px,4vw,48px);display:block;
}
.profile-intro__bio{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2.05;color:var(--color-sumi);
}
.profile-intro__bio p+p{margin-top:.9em;}

/* Career story */
.career-story{max-width:var(--container-text);margin:0 auto;}
/* ── キャリア見出し：ゴシック ── */
.career-story__heading{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-xl);line-height:1.38;
  color:var(--color-navy);
  margin-bottom:clamp(36px,5vw,64px);
  letter-spacing:-0.01em;font-feature-settings:"palt";
}
.career-story__body p{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2.1;margin-bottom:1.6em;color:var(--color-sumi);
}
.career-story__body strong{
  font-family:var(--font-heading);font-weight:700;
  color:var(--color-navy);font-size:1.04em;
}

/* Track Record */
.track-record{
  background:var(--color-navy);
  background-image:url('../img/section-lines.jpg');
  background-size:cover;background-position:center;background-blend-mode:multiply;
}
.track-record__head{text-align:center;margin-bottom:clamp(40px,5.5vw,72px);}
/* ── Track Record見出し：ゴシック ── */
.track-record__heading{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-xl);color:var(--color-cream);
  margin-top:14px;letter-spacing:.02em;
}
.track-record__sub{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);color:var(--color-gold-soft);
  letter-spacing:.32em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:14px;
}
.track-record__sub::before{
  content:'';display:inline-block;width:32px;height:1px;background:var(--color-gold-soft);
}
.track-record__grid{
  display:grid;grid-template-columns:1fr;
  border-top:1px solid var(--color-line-dark);
  border-bottom:1px solid var(--color-line-dark);
}
@media(min-width:600px){.track-record__grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:880px){.track-record__grid{grid-template-columns:repeat(4,1fr);}}
.track-record__item{
  padding:clamp(40px,5vw,72px) clamp(16px,3vw,32px);
  text-align:center;
  border-bottom:1px solid var(--color-line-dark);
  border-right:1px solid var(--color-line-dark);
}
@media(min-width:600px){
  .track-record__item:nth-child(2n){border-right:none;}
  .track-record__item:nth-child(n+3){border-bottom:none;}
}
@media(min-width:880px){
  .track-record__item{border-bottom:none;}
  .track-record__item:nth-child(2n){border-right:1px solid var(--color-line-dark);}
  .track-record__item:last-child{border-right:none;}
}
.track-record__num{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(48px,5.5vw,80px);
  color:var(--color-cream);line-height:1.05;
  margin-bottom:16px;font-weight:500;letter-spacing:.02em;
}
.track-record__num .small{font-size:.46em;margin-left:5px;}
.track-record__label{
  font-family:var(--font-body);
  font-size:clamp(12px,0.95vw,14px);
  line-height:1.8;color:var(--color-cream);opacity:.8;letter-spacing:.04em;
}

/* Water reflection */
.water-visual{
  width:100%;height:clamp(140px,12vw,220px);
  background-image:url('../img/bg-water.jpg');
  background-size:cover;background-position:center;position:relative;
}
.water-visual::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(245,241,232,.55) 0%,transparent 40%,transparent 60%,rgba(245,241,232,.55) 100%);
}

/* ═══════════════════════════════════════
   COMPANY INFO
═══════════════════════════════════════ */
.company-info{max-width:var(--container-narrow);margin:0 auto;}
/* ── 会社概要見出し：ゴシック ── */
.company-info__heading{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-xl);color:var(--color-navy);
  margin-top:8px;margin-bottom:clamp(32px,4.5vw,52px);letter-spacing:.01em;
}
.company-info__list{margin-top:clamp(28px,4vw,48px);}
.company-info__row{
  display:grid;grid-template-columns:1fr;
  gap:8px;padding:clamp(18px,2.5vw,28px) 0;
  border-bottom:1px solid var(--color-line-faint);
}
@media(min-width:700px){
  .company-info__row{grid-template-columns:200px 1fr;gap:36px;align-items:baseline;}
}
.company-info__row:first-child{border-top:1px solid var(--color-line-faint);}
.company-info__label{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);letter-spacing:.18em;
  text-transform:uppercase;color:var(--color-sumi-faint);
}
.company-info__value{
  font-family:var(--font-body);
  font-size:var(--text-base);color:var(--color-sumi);line-height:1.85;
}
.company-info__value-en{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);color:var(--color-sumi-faint);display:block;
}

/* ═══════════════════════════════════════
   CONTACT CTA
═══════════════════════════════════════ */
.contact-cta{
  text-align:center;
  padding:clamp(64px,8vw,120px) 0;
  background:var(--color-cream);position:relative;overflow:hidden;
}
.contact-cta__inner{position:relative;z-index:2;}
.contact-cta__decor{
  position:absolute;
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(180px,26vw,400px);
  color:var(--color-line-faint);
  bottom:-80px;left:50%;transform:translateX(-50%);
  z-index:1;user-select:none;pointer-events:none;line-height:.85;
}
/* ── CTA見出し：ゴシック ── */
.contact-cta__heading{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-xl);color:var(--color-navy);
  margin-top:14px;margin-bottom:clamp(20px,2.8vw,36px);
  line-height:1.4;letter-spacing:-0.01em;font-feature-settings:"palt";
}
.contact-cta__lead{
  font-family:var(--font-body);
  font-size:var(--text-base);line-height:2.05;
  color:var(--color-sumi);
  margin-bottom:clamp(32px,4.5vw,56px);
  max-width:540px;margin-left:auto;margin-right:auto;
}
.contact-cta__button{
  display:inline-flex;align-items:center;gap:18px;
  background:var(--color-navy);color:var(--color-cream);
  padding:clamp(16px,1.8vw,22px) clamp(32px,4vw,56px);
  font-family:var(--font-sans);font-size:12px;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;
  transition:background var(--transition-fast),gap var(--transition-fast);
}
.contact-cta__button:hover{background:var(--color-gold);gap:26px;}
.contact-cta__button .arrow{font-family:var(--font-display);font-style:italic;font-size:18px;}
.contact-cta__email{
  margin-top:24px;
  font-family:var(--font-display);font-style:italic;
  font-size:var(--text-sm);color:var(--color-sumi-faint);letter-spacing:.1em;
}

/* ═══════════════════════════════════════
   FOOTER
═══════════════════════════════════════ */
.site-footer{
  background:var(--color-navy);color:var(--color-cream);
  padding:clamp(52px,6.5vw,88px) 0 clamp(24px,3vw,40px);
}
.site-footer__inner{
  max-width:var(--container-max);margin:0 auto;
  padding:0 clamp(20px,4vw,56px);
  display:grid;grid-template-columns:1fr;
  gap:clamp(32px,5vw,64px);
  margin-bottom:clamp(32px,4.5vw,64px);
}
@media(min-width:760px){.site-footer__inner{grid-template-columns:1.3fr 1fr;}}
.site-footer__brand{display:flex;flex-direction:column;gap:22px;}
.site-footer__logo{display:flex;align-items:center;gap:12px;}
.site-footer__logo img{
  height:40px;
  width:auto;
  background:var(--color-cream);
  padding:5px 7px;
  border-radius:4px;
  filter:none;
  opacity:1;
}
.site-footer__logo-text{
  display:flex;flex-direction:column;
  font-family:var(--font-heading);font-size:15px;letter-spacing:.05em;font-weight:600;
}
.site-footer__logo-jp{
  font-family:var(--font-sans);font-size:11px;letter-spacing:.18em;opacity:.7;font-weight:400;margin-top:3px;
}
.site-footer__address{
  font-family:var(--font-body);font-size:14px;line-height:2;color:var(--color-cream);opacity:.78;font-style:normal;
}
.site-footer__nav{
  display:flex;flex-wrap:wrap;gap:20px clamp(20px,3vw,40px);align-content:start;
}
.site-footer__nav a{
  font-family:var(--font-sans);font-size:12px;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--color-cream);opacity:.85;
  transition:opacity var(--transition-fast),color var(--transition-fast);
}
.site-footer__nav a:hover{opacity:1;color:var(--color-gold-soft);}
.site-footer__bottom{
  border-top:1px solid var(--color-line-dark);
  padding:22px clamp(20px,4vw,56px) 0;
  max-width:var(--container-max);margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:10px;
  font-family:var(--font-display);font-style:italic;
  font-size:12px;letter-spacing:.12em;color:var(--color-cream);opacity:.6;
}

/* ═══════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════ */
.fade-in{
  transition:opacity 1s cubic-bezier(0.16,1,0.3,1),
             transform 1s cubic-bezier(0.16,1,0.3,1);
}
.js .fade-in{opacity:0;transform:translateY(28px);}
.js .fade-in.is-visible{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

.divider{
  width:1px;height:56px;
  background:linear-gradient(to bottom,transparent,var(--color-gold),transparent);
  margin:clamp(36px,5vw,64px) auto;
}
.text-center{text-align:center;}

/* ═══════════════════════════════════════
   孤立文字防止（行末1文字ぶら下がり）
   text-wrap: balance で均等分配
═══════════════════════════════════════ */
.hero__title,
.question__title,
.about-link__title,
.profile-link__title,
.about-story__body p.lead,
.about-philosophy__lines,
.method__title,
.method__step-title,
.service-detail__title,
.career-story__heading,
.track-record__heading,
.contact-cta__heading,
.page-title__heading,
.profile-link__bio,
.about-link__lead,
.question__body p,
.service-detail__body p,
.career-story__body p,
.profile-intro__bio p,
.method__step-body {
  text-wrap: balance;
}

/* ═══════════════════════════════════════
   CONTACT FORM (Formspree)
═══════════════════════════════════════ */
.contact-form-wrap{
  max-width:680px;
  margin:0 auto;
}

.contact-form-head{
  text-align:center;
  margin-bottom:clamp(48px,5vw,72px);
}

.contact-form-head__title{
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-xl);
  color:var(--color-navy);
  margin-top:18px;margin-bottom:20px;
  line-height:1.4;letter-spacing:-0.01em;
  font-feature-settings:"palt";
}

.contact-form-head__lead{
  font-family:var(--font-body);
  font-size:var(--text-base);
  line-height:2;color:var(--color-sumi);
}

.contact-form{
  display:flex;flex-direction:column;gap:clamp(28px,3.5vw,40px);
}

.contact-form__row{
  display:flex;flex-direction:column;gap:10px;
}

.contact-form__label{
  font-family:var(--font-sans);
  font-size:13px;font-weight:500;
  letter-spacing:.12em;color:var(--color-navy);
  display:flex;align-items:center;gap:10px;
}

.contact-form__required{
  font-size:11px;letter-spacing:.1em;
  color:var(--color-cream);
  background:var(--color-navy);
  padding:3px 8px;
}

.contact-form__optional{
  font-size:11px;letter-spacing:.1em;
  color:var(--color-sumi-faint);
  border:1px solid var(--color-line);
  padding:3px 8px;
}

.contact-form__input,
.contact-form__textarea{
  font-family:var(--font-body);
  font-size:var(--text-base);
  color:var(--color-sumi);
  background:var(--color-white);
  border:1px solid var(--color-line);
  padding:clamp(14px,1.5vw,18px) clamp(16px,1.8vw,22px);
  width:100%;
  outline:none;
  transition:border-color var(--transition-fast);
  -webkit-appearance:none;
  border-radius:0;
  line-height:1.8;
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder{
  color:var(--color-sumi-faint);
  font-size:.95em;
}

.contact-form__input:focus,
.contact-form__textarea:focus{
  border-color:var(--color-gold);
  box-shadow:0 0 0 3px rgba(168,139,76,.12);
}

.contact-form__textarea{
  resize:vertical;
  min-height:160px;
}

.contact-form__submit-wrap{
  display:flex;justify-content:center;
  margin-top:clamp(8px,1.5vw,16px);
}

.contact-form__submit{
  display:inline-flex;align-items:center;gap:18px;
  background:var(--color-navy);color:var(--color-cream);
  padding:clamp(18px,2vw,24px) clamp(48px,5vw,72px);
  font-family:var(--font-sans);font-size:13px;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;
  cursor:pointer;border:none;
  transition:background var(--transition-fast),gap var(--transition-fast);
}

.contact-form__submit:hover{
  background:var(--color-gold);gap:26px;
}

.contact-form__arrow{
  font-family:var(--font-display);font-style:italic;font-size:20px;
}

.contact-form__note{
  margin-top:clamp(28px,3vw,40px);
  text-align:center;
  font-family:var(--font-body);
  font-size:clamp(12px,.95vw,14px);
  color:var(--color-sumi-faint);
  line-height:1.8;
}

/* ═══════════════════════════════════════
   PROFILE PERSONAL INFO
═══════════════════════════════════════ */
.profile-personal{
  margin-top:clamp(32px,3.5vw,44px);
  border-top:1px solid var(--color-line-faint);
  display:flex;flex-direction:column;
}

.profile-personal__row{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:16px 24px;
  padding:clamp(16px,1.8vw,22px) 0;
  border-bottom:1px solid var(--color-line-faint);
  align-items:baseline;
}

@media(max-width:600px){
  .profile-personal__row{
    grid-template-columns:1fr;
    gap:6px;
  }
}

.profile-personal__label{
  font-family:var(--font-heading);
  font-size:clamp(13px, 1.1vw, 16px);
  font-weight:700;
  letter-spacing:.06em;
  color:var(--color-navy);
  white-space:nowrap;
}

.profile-personal__value{
  font-family:var(--font-body);
  font-size:clamp(14px,1.1vw,16px);
  color:var(--color-sumi);
  line-height:1.9;
}

.profile-personal__note{
  font-size:.88em;
  color:var(--color-sumi-faint);
}

.news__loading{
  padding:40px 0;
  text-align:center;
  font-family:var(--font-body);
  font-size:var(--text-sm);
  color:var(--color-sumi-faint);
}
