/* ==============================================================
   LiT Management — v3 Multi-Page (Refined)
   Refinements from v2:
     1. Header in 1 line (compact JP nav, wider max-width)
     2. Photography integrated (Unsplash placeholders)
     3. Subtle scroll-triggered animations
     4. Hero with image + split text animation
     5. Refined typography hierarchy, hairline details
   ============================================================== */

:root{
  /* ---- Base palette ---- */
  --white:        #FFFFFF;
  --paper:        #FBFBFA;
  --pearl:        #F4F4F2;
  --line:         #E6E6E2;
  --line-strong:  #C9C9C3;
  --gray-1:       #6E6E6A;
  --gray-2:       #9A9A95;
  --ink:          #161614;
  --ink-soft:     #2A2A28;

  /* ---- Brand accents ---- */
  --blue:         #A8C5D1;
  --blue-deep:    #6E94A3;
  --coral:        #E5A893;
  --coral-deep:   #C8826A;

  /* ---- Type ---- */
  --serif: "Noto Serif JP","ヒラギノ明朝 ProN","Hiragino Mincho ProN","游明朝",YuMincho,serif;
  --sans:  "Noto Sans JP","ヒラギノ角ゴ ProN","Hiragino Kaku Gothic ProN","游ゴシック",YuGothic,sans-serif;
  --en:    "Cormorant Garamond","Noto Serif JP",serif;

  /* ---- Layout (widened) ---- */
  --container: 1320px;
  --container-narrow: 920px;
  --container-wide: 1440px;
  --pad-x: 56px;
  --pad-sect: 140px;

  /* ---- Easing ---- */
  --ease-out: cubic-bezier(.22,.61,.36,1);
  --ease-in-out: cubic-bezier(.65,.05,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--white);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.9;
  font-size:15px;
  letter-spacing:.04em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{color:inherit;text-decoration:none;transition:color .25s var(--ease-out)}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul,ol{list-style:none}
::selection{background:var(--coral);color:var(--ink)}

.container{max-width:var(--container);margin:0 auto;padding:0 var(--pad-x)}
.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--pad-x)}
.container-wide{max-width:var(--container-wide);margin:0 auto;padding:0 var(--pad-x)}

/* ============ Preview banner ============ */
.preview-banner{
  position:fixed;top:0;left:0;right:0;z-index:300;
  background:var(--ink);color:#fff;
  padding:6px 16px;font-size:11px;text-align:center;
  letter-spacing:.1em;font-family:var(--sans);
}
.preview-banner b{color:var(--coral);font-weight:500;margin-right:6px}
body{padding-top:30px}

/* ============ Header (1-line, widened) ============ */
.header{
  position:sticky;top:30px;z-index:100;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
  transition:padding .3s var(--ease-out), background .3s var(--ease-out);
}
.header.is-scrolled{
  background:rgba(255,255,255,.96);
  border-bottom-color:var(--line-strong);
}
.header__inner{
  max-width:var(--container-wide);margin:0 auto;
  padding:18px var(--pad-x);
  display:flex;align-items:center;gap:28px;
  transition:padding .3s var(--ease-out);
}
.header.is-scrolled .header__inner{padding-top:12px;padding-bottom:12px}

.header__logo{
  display:flex;align-items:center;gap:12px;flex-shrink:0;
  text-decoration:none;
}
.header__logo img{width:38px;height:38px;display:block;flex-shrink:0}
.header__logo img.header__wordmark{width:auto;height:21px;flex-shrink:0}
.header__logo-text{
  font-family:var(--serif);font-weight:600;font-size:15.5px;letter-spacing:.1em;
  line-height:1.15;color:var(--ink);white-space:nowrap;
}
.header__logo-text small{
  display:block;font-family:var(--sans);font-weight:400;
  font-size:9.5px;color:var(--gray-1);margin-top:2px;letter-spacing:.18em;
}

.header__nav{
  display:flex;justify-content:center;gap:28px;
  flex:1;font-size:13px;letter-spacing:.08em;font-weight:500;
  white-space:nowrap;
}
.header__nav a{
  position:relative;padding:8px 0;color:var(--ink-soft);
}
.header__nav a::after{
  content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;
  background:var(--coral-deep);
  transition:left .3s var(--ease-out), right .3s var(--ease-out);
}
.header__nav a:hover{color:var(--ink)}
.header__nav a:hover::after{left:0;right:0}
.header__nav a.is-current{color:var(--ink);font-weight:600}
.header__nav a.is-current::after{left:0;right:0;background:var(--ink)}

.header__right{display:flex;align-items:center;gap:16px;flex-shrink:0}
.header__tel{
  font-family:var(--en);font-style:italic;font-size:16px;
  color:var(--ink);letter-spacing:.04em;line-height:1.1;white-space:nowrap;
}
.header__tel small{
  display:block;font-family:var(--sans);font-style:normal;font-size:9px;
  color:var(--gray-1);letter-spacing:.16em;margin-top:2px;font-weight:500;
}
.header__btn{
  background:var(--ink);color:var(--white);
  padding:12px 20px;font-size:11.5px;letter-spacing:.14em;font-weight:500;
  transition:background .25s var(--ease-out);white-space:nowrap;
}
.header__btn:hover{background:var(--coral-deep)}
.header__menu-btn{display:none;width:40px;height:40px;align-items:center;justify-content:center}
.header__menu-btn span{width:22px;height:1px;background:var(--ink);position:relative;display:block;transition:transform .3s var(--ease-out)}
.header__menu-btn span::before,.header__menu-btn span::after{content:"";position:absolute;left:0;width:22px;height:1px;background:var(--ink);transition:transform .3s var(--ease-out)}
.header__menu-btn span::before{top:-7px}.header__menu-btn span::after{top:7px}
.header__menu-btn.is-open span{background:transparent}
.header__menu-btn.is-open span::before{transform:translateY(7px) rotate(45deg)}
.header__menu-btn.is-open span::after{transform:translateY(-7px) rotate(-45deg)}

/* SP drawer */
.sp-drawer{
  position:fixed;top:64px;left:0;right:0;bottom:0;z-index:99;
  background:var(--white);padding:32px 24px 80px;
  transform:translateY(-12px);opacity:0;pointer-events:none;
  transition:transform .35s var(--ease-out), opacity .25s var(--ease-out);
  overflow-y:auto;
}
.sp-drawer.is-open{transform:translateY(0);opacity:1;pointer-events:auto}
.sp-drawer__nav{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.sp-drawer__nav a{
  padding:22px 8px;border-bottom:1px solid var(--line);
  font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:.06em;
  display:flex;justify-content:space-between;align-items:center;color:var(--ink);
}
.sp-drawer__nav a small{
  font-family:var(--en);font-style:italic;font-size:12px;color:var(--coral-deep);letter-spacing:.1em;font-weight:400;
}
.sp-drawer__cta{margin-top:32px;display:flex;flex-direction:column;gap:12px}

/* ============ Hero (with image + animation) ============ */
.hero{
  position:relative;
  padding:120px 0 140px;
  background:var(--white);
  overflow:hidden;
}
.hero::before{
  /* subtle noise / gradient */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 90% 50%, rgba(232,240,243,.4), transparent 60%);
  opacity:.7;
}
.hero__inner{
  position:relative;z-index:2;
  max-width:var(--container-wide);margin:0 auto;padding:0 var(--pad-x);
  display:grid;grid-template-columns:7fr 5fr;gap:80px;align-items:center;
}
.hero__copy{position:relative}

.hero__eyebrow{
  font-family:var(--en);font-style:italic;font-size:15px;
  color:var(--coral-deep);margin-bottom:36px;letter-spacing:.22em;
  display:flex;align-items:center;gap:14px;
  opacity:0;transform:translateY(12px);
  animation:fadeUp .9s var(--ease-out) .2s forwards;
}
.hero__eyebrow::before{
  content:"";width:48px;height:1px;background:var(--coral-deep);
  transform:scaleX(0);transform-origin:left;
  animation:scaleX 1s var(--ease-out) .35s forwards;
}
.hero__h1{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(34px,4vw,55px);line-height:1.4;letter-spacing:.05em;
  color:var(--ink);margin-bottom:48px;
}
.hero__h1 .accent{color:var(--coral-deep)}
.hero__h1 .word{
  display:inline-block;overflow:hidden;vertical-align:bottom;
}
.hero__h1 .word > span{
  display:inline-block;
  transform:translateY(110%);
  animation:textRise 1.1s var(--ease-out) forwards;
}
.hero__h1 .word--1 > span{animation-delay:.45s}
.hero__h1 .word--2 > span{animation-delay:.58s}
.hero__h1 .word--3 > span{animation-delay:.72s}
.hero__h1 .word--4 > span{animation-delay:.85s}
.hero__h1 .word--5 > span{animation-delay:.98s}

.hero__lead{
  font-family:var(--serif);font-size:15.5px;line-height:2.2;
  color:var(--ink-soft);max-width:520px;margin-bottom:56px;
  opacity:0;animation:fadeUp 1s var(--ease-out) 1.15s forwards;
}
.hero__lead strong{font-weight:600;color:var(--ink)}
.hero__quals{
  display:flex;gap:0;
  border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);
  max-width:580px;
  opacity:0;animation:fadeUp 1s var(--ease-out) 1.3s forwards;
}
.hero__qual{
  flex:1;padding:20px 14px;text-align:center;
  border-right:1px solid var(--line);font-size:12px;
  letter-spacing:.06em;color:var(--ink-soft);font-weight:500;
}
.hero__qual:last-child{border-right:none}
.hero__qual small{
  display:block;font-family:var(--en);font-style:italic;
  font-size:9.5px;color:var(--blue-deep);margin-bottom:6px;letter-spacing:.16em;font-weight:400;
}
.hero__ctas{
  margin-top:56px;display:flex;gap:14px;flex-wrap:wrap;
  opacity:0;animation:fadeUp 1s var(--ease-out) 1.45s forwards;
}

/* Hero image */
.hero__visual{
  position:relative;aspect-ratio:4/5;overflow:hidden;
  opacity:0;animation:fadeIn 1.4s var(--ease-out) .6s forwards;
}
.hero__visual img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.86) contrast(1.02) brightness(.97);
  transform:scale(1.06);
  animation:imgZoomOut 1.8s var(--ease-out) .6s forwards;
}
.hero__visual::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,0) 60%, rgba(255,255,255,.12) 100%);
}
.hero__visual-caption{
  position:absolute;left:0;bottom:0;
  background:var(--white);padding:12px 18px;
  font-family:var(--en);font-style:italic;font-size:12px;
  border-top:1px solid var(--line);color:var(--ink);
  opacity:0;animation:fadeUp .8s var(--ease-out) 1.6s forwards;
}

/* Hero scroll indicator */
.hero__scroll{
  position:absolute;left:50%;bottom:32px;transform:translateX(-50%);
  z-index:3;display:flex;flex-direction:column;align-items:center;gap:10px;
  font-family:var(--en);font-style:italic;font-size:11px;letter-spacing:.22em;color:var(--ink-soft);
  opacity:0;animation:fadeIn 1s var(--ease-out) 1.8s forwards;
}
.hero__scroll-line{
  width:1px;height:48px;background:var(--line-strong);position:relative;overflow:hidden;
}
.hero__scroll-line::after{
  content:"";position:absolute;left:0;top:-48px;width:1px;height:48px;
  background:var(--coral-deep);animation:scrollDrop 2.4s var(--ease-in-out) infinite;
}

/* ============ Keyframes ============ */
@keyframes textRise{
  0%{transform:translateY(110%)}100%{transform:translateY(0)}
}
@keyframes fadeUp{
  0%{opacity:0;transform:translateY(16px)}100%{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{
  0%{opacity:0}100%{opacity:1}
}
@keyframes imgZoomOut{
  0%{transform:scale(1.06)}100%{transform:scale(1)}
}
@keyframes scaleX{
  0%{transform:scaleX(0)}100%{transform:scaleX(1)}
}
@keyframes scrollDrop{
  0%{top:-48px}55%,100%{top:48px}
}

/* ============ Reveal (scroll-triggered) ============ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease-out), transform .9s var(--ease-out)}
.reveal.is-in{opacity:1;transform:translateY(0)}
.reveal--delay-1{transition-delay:.08s}
.reveal--delay-2{transition-delay:.16s}
.reveal--delay-3{transition-delay:.24s}
.reveal--delay-4{transition-delay:.32s}

/* parallax image */
.parallax-wrap{overflow:hidden;position:relative}
.parallax-img{
  transform:scale(1.08) translateY(0);
  transition:transform .1s linear;
  will-change:transform;
}

/* ============ Buttons ============ */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:18px 32px;font-size:13px;letter-spacing:.12em;font-weight:500;
  border:1px solid var(--ink);transition:all .3s var(--ease-out);
  font-family:var(--sans);position:relative;overflow:hidden;
}
.btn--primary{background:var(--ink);color:var(--white)}
.btn--primary:hover{background:var(--coral-deep);border-color:var(--coral-deep)}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--white)}
.btn--white{background:var(--white);color:var(--ink);border-color:var(--white)}
.btn--white:hover{background:var(--coral);border-color:var(--coral);color:var(--ink)}
.btn .arrow{display:inline-block;transition:transform .3s var(--ease-out)}
.btn:hover .arrow{transform:translateX(5px)}

/* ============ Page Hero (sub pages) ============ */
.page-hero{
  padding:140px 0 88px;border-bottom:1px solid var(--line);
  background:var(--paper);position:relative;overflow:hidden;
}
.page-hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 90% 30%, rgba(232,240,243,.45), transparent 55%);
  pointer-events:none;
}
.page-hero__inner{position:relative;z-index:1}
.page-hero__eyebrow{
  font-family:var(--en);font-style:italic;font-size:14px;
  color:var(--coral-deep);margin-bottom:18px;letter-spacing:.2em;
  display:flex;align-items:center;gap:14px;
}
.page-hero__eyebrow::before{
  content:"";width:36px;height:1px;background:var(--coral-deep);
}
.page-hero__title{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(36px,4.6vw,56px);line-height:1.4;letter-spacing:.06em;
  color:var(--ink);margin-bottom:24px;
}
.page-hero__lead{
  max-width:640px;font-family:var(--serif);font-size:15.5px;line-height:2.1;
  color:var(--ink-soft);
}
.page-hero__breadcrumb{
  margin-top:40px;font-size:11.5px;color:var(--gray-1);letter-spacing:.1em;
}
.page-hero__breadcrumb a:hover{color:var(--coral-deep)}
.page-hero__breadcrumb .sep{margin:0 10px;color:var(--line-strong)}

/* ============ Section ============ */
section{padding:var(--pad-sect) 0}
.sect--paper{background:var(--paper)}
.sect--pearl{background:var(--pearl)}
.sect--ink{background:var(--ink);color:var(--white)}

.sect-head{margin-bottom:80px}
.sect-head--center{text-align:center}
.sect-eyebrow{
  font-family:var(--en);font-style:italic;font-size:13px;
  color:var(--coral-deep);margin-bottom:16px;letter-spacing:.2em;
}
.sect-eyebrow.with-line{display:flex;align-items:center;gap:14px}
.sect-eyebrow.with-line::before{content:"";width:32px;height:1px;background:var(--coral-deep)}
.sect-head--center .sect-eyebrow{justify-content:center}
.sect-title{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(28px,3.5vw,42px);line-height:1.55;letter-spacing:.06em;
  color:var(--ink);
}
.sect--ink .sect-title{color:var(--white)}
.sect--ink .sect-eyebrow{color:var(--coral)}
.sect--ink .sect-eyebrow.with-line::before{background:var(--coral)}
.sect-lead{
  max-width:640px;margin-top:24px;
  font-family:var(--serif);font-size:14.5px;line-height:2.15;color:var(--ink-soft);
}
.sect-head--center .sect-lead{margin-left:auto;margin-right:auto}
.sect--ink .sect-lead{color:#bdbdb8}

/* ============ Index — feature with image ============ */
.feature-row{
  display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;
  margin-bottom:160px;
}
.feature-row:last-child{margin-bottom:0}
.feature-row--reverse{direction:rtl}
.feature-row--reverse > *{direction:ltr}
.feature-row__img{aspect-ratio:5/4;overflow:hidden;border:1px solid var(--line)}
.feature-row__img img{width:100%;height:100%;object-fit:cover}
.feature-row__body{padding:24px 0}
.feature-row__eyebrow{
  font-family:var(--en);font-style:italic;font-size:13px;
  color:var(--coral-deep);margin-bottom:18px;letter-spacing:.2em;
  display:flex;align-items:center;gap:14px;
}
.feature-row__eyebrow::before{content:"";width:28px;height:1px;background:var(--coral-deep)}
.feature-row__title{
  font-family:var(--serif);font-weight:500;font-size:clamp(26px,3vw,36px);
  line-height:1.55;letter-spacing:.06em;margin-bottom:28px;
}
.feature-row__desc{font-family:var(--serif);font-size:15px;line-height:2.15;color:var(--ink-soft);margin-bottom:32px}
.feature-row__link{
  font-size:12.5px;letter-spacing:.14em;color:var(--ink);font-weight:500;
  display:inline-flex;align-items:center;gap:10px;
  padding-bottom:6px;border-bottom:1px solid var(--ink);transition:.3s;
}
.feature-row__link:hover{color:var(--coral-deep);border-bottom-color:var(--coral-deep)}
.feature-row__link .arrow{transition:transform .3s var(--ease-out)}
.feature-row__link:hover .arrow{transform:translateX(4px)}

/* ============ Index — strength list ============ */
.strength-list{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.strength-list__item{
  padding:48px 32px;border-right:1px solid var(--line);
  transition:background .3s var(--ease-out);
}
.strength-list__item:last-child{border-right:none}
.strength-list__item:hover{background:var(--paper)}
.strength-list__num{
  font-family:var(--en);font-style:italic;font-size:32px;
  color:var(--coral-deep);margin-bottom:24px;letter-spacing:.04em;
}
.strength-list__title{
  font-family:var(--serif);font-weight:600;font-size:18px;
  margin-bottom:8px;letter-spacing:.06em;line-height:1.5;
}
.strength-list__sub{
  font-family:var(--en);font-style:italic;font-size:11.5px;
  color:var(--blue-deep);letter-spacing:.14em;margin-bottom:18px;
}
.strength-list__desc{font-size:13px;line-height:1.95;color:var(--gray-1)}

/* ============ Address note (v4) ============ */
.address-note{
  margin-top:14px;padding:10px 14px;background:var(--pearl);
  font-size:11.5px;line-height:1.75;color:var(--gray-1);
  border-left:2px solid var(--blue);letter-spacing:.04em;
}
.footer__brand-meta .address-note{margin-top:10px;font-size:10.5px;background:rgba(168,197,209,.08)}
.address-note strong{color:var(--ink-soft);font-weight:600}

/* ============ Hero secondary line (v4) ============ */
.hero__secondary{
  font-family:var(--en);font-style:italic;font-size:15px;
  color:var(--ink-soft);margin-top:-28px;margin-bottom:36px;
  letter-spacing:.1em;
  opacity:0;animation:fadeUp 1s var(--ease-out) 1.05s forwards;
}
.hero__secondary span{color:var(--coral-deep);font-weight:500}

/* ============ Works case cards (v4) ============ */
.works-list{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.works-case{
  background:var(--white);border:1px solid var(--line);
  padding:40px 32px 36px;transition:.4s var(--ease-out);
  display:flex;flex-direction:column;position:relative;overflow:hidden;
}
.works-case::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:var(--coral);transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease-out);
}
.works-case:hover{
  transform:translateY(-4px);
  box-shadow:0 30px 60px -30px rgba(22,22,20,.18);
  border-color:transparent;
}
.works-case:hover::before{transform:scaleX(1)}
.works-case__no{
  font-family:var(--en);font-style:italic;font-size:13px;
  color:var(--blue-deep);letter-spacing:.18em;margin-bottom:16px;
}
.works-case__category{
  display:inline-block;padding:5px 12px;
  background:var(--paper);font-size:11px;letter-spacing:.1em;
  color:var(--ink-soft);margin-bottom:24px;
}
.works-case__title{
  font-family:var(--serif);font-weight:600;font-size:18px;
  line-height:1.7;margin-bottom:28px;letter-spacing:.05em;
  flex:1;
}
.works-case__scale{
  font-family:var(--en);font-style:italic;
  color:var(--coral-deep);letter-spacing:.04em;
  padding-top:24px;border-top:1px solid var(--line);
  display:flex;align-items:baseline;gap:10px;
}
.works-case__scale .num{font-size:34px;line-height:1;font-weight:500}
.works-case__scale .unit{font-size:13px;color:var(--ink-soft);font-style:normal;font-family:var(--sans);letter-spacing:.08em}

/* ============ Signature (v4) ============ */
.message__sign-img{
  margin-top:36px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;
}
.message__sign-img img{
  max-width:200px;height:auto;
  filter:contrast(1.05);
}
.message__sign-img small{
  font-family:var(--sans);font-size:12px;color:var(--gray-1);letter-spacing:.06em;
}

@media(max-width:980px){
  .works-list{grid-template-columns:1fr;gap:20px}
}

/* ============ Index — service grid (with image) ============ */
.service-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
}
.service-card{
  background:var(--white);overflow:hidden;
  border:1px solid var(--line);transition:.4s var(--ease-out);
  display:flex;flex-direction:column;
}
.service-card:hover{
  transform:translateY(-4px);
  box-shadow:0 30px 60px -30px rgba(22,22,20,.18);
  border-color:transparent;
}
.service-card__img{aspect-ratio:4/3;overflow:hidden;position:relative}
.service-card__img img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.88) brightness(.98);
  transition:transform .8s var(--ease-out);
}
.service-card:hover .service-card__img img{transform:scale(1.05)}
.service-card__body{padding:32px 28px 36px;flex:1;display:flex;flex-direction:column}
.service-card__num{
  font-family:var(--en);font-style:italic;font-size:13px;
  color:var(--blue-deep);letter-spacing:.16em;margin-bottom:16px;
}
.service-card__title{
  font-family:var(--serif);font-weight:600;font-size:19px;
  margin-bottom:6px;letter-spacing:.06em;
}
.service-card__title-en{
  font-family:var(--en);font-style:italic;font-size:12px;
  color:var(--gray-1);letter-spacing:.1em;margin-bottom:20px;
}
.service-card__desc{font-size:13px;line-height:1.95;color:var(--gray-1);margin-bottom:24px;flex:1}
.service-card__more{
  font-size:12px;letter-spacing:.14em;color:var(--ink);
  display:inline-flex;align-items:center;gap:10px;font-weight:500;
}
.service-card__more .arrow{transition:transform .3s var(--ease-out)}
.service-card:hover .service-card__more{color:var(--coral-deep)}
.service-card:hover .service-card__more .arrow{transform:translateX(4px)}

/* ============ CTA Block ============ */
.cta-block{
  background:var(--ink);color:var(--white);
  padding:120px var(--pad-x);text-align:center;position:relative;overflow:hidden;
}
.cta-block::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 100%, rgba(229,168,147,.08), transparent 60%);
  pointer-events:none;
}
.cta-block > *{position:relative;z-index:1}
.cta-block__eyebrow{
  font-family:var(--en);font-style:italic;font-size:14px;
  color:var(--coral);letter-spacing:.2em;margin-bottom:18px;
}
.cta-block__title{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(28px,3.5vw,40px);line-height:1.55;letter-spacing:.06em;
  margin-bottom:32px;
}
.cta-block__lead{
  font-family:var(--serif);font-size:14.5px;line-height:2.1;
  color:#bdbdb8;max-width:580px;margin:0 auto 48px;
}
.cta-block__ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ============ About — message ============ */
.message-grid{display:grid;grid-template-columns:5fr 7fr;gap:80px;align-items:start}
.message__portrait{
  position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);
}
.message__portrait img{
  width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.94) contrast(1.02);
}
.message__portrait-caption{
  position:absolute;left:0;bottom:0;background:var(--white);
  padding:14px 22px;font-family:var(--en);font-style:italic;
  font-size:13px;border-top:1px solid var(--line);color:var(--ink);
}
.message__name{font-family:var(--serif);font-weight:600;font-size:28px;margin-bottom:6px;letter-spacing:.06em}
.message__role{font-family:var(--en);font-style:italic;font-size:13px;color:var(--coral-deep);margin-bottom:20px;letter-spacing:.08em}
.message__quals{
  font-size:12.5px;color:var(--ink-soft);margin-bottom:40px;
  padding:14px 20px;background:var(--paper);
  border-left:2px solid var(--blue);letter-spacing:.06em;line-height:1.9;
}
.message__body{font-family:var(--serif);font-size:15px;line-height:2.15;color:var(--ink)}
.message__body p{margin-bottom:1.4em}
.message__sign{margin-top:36px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.message__sign-img{display:block;height:62px;width:auto;opacity:.92;filter:contrast(1.05)}
.message__sign small{display:block;font-family:var(--sans);font-style:normal;font-size:12px;color:var(--gray-1);letter-spacing:.08em;padding-top:6px;border-top:1px solid var(--line);min-width:220px}

/* ============ About — company ============ */
.company__grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.company__table{width:100%;border-collapse:collapse;font-size:13.5px}
.company__table th, .company__table td{
  padding:18px 8px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;
}
.company__table th{
  width:140px;font-weight:500;font-family:var(--en);font-style:italic;
  color:var(--blue-deep);font-size:12px;letter-spacing:.1em;
}
.company__table td{color:var(--ink);line-height:1.85}
.company__table .placeholder{color:var(--gray-2);font-size:11px}
.company__map{
  aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);
}
.company__map img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) brightness(.96)}

/* ============ History ============ */
.history__list{max-width:760px;margin:0 auto;border-top:1px solid var(--line)}
.history__item{
  display:grid;grid-template-columns:160px 1fr;gap:32px;
  padding:28px 0;border-bottom:1px solid var(--line);align-items:start;
}
.history__date{
  font-family:var(--en);font-style:italic;font-size:15px;color:var(--coral-deep);
  letter-spacing:.06em;line-height:1.5;
}
.history__date small{display:block;font-family:var(--sans);font-style:normal;font-size:11px;color:var(--gray-1);letter-spacing:.1em;margin-top:2px}
.history__text{font-size:14px;line-height:2;color:var(--ink)}

/* ============ Service detail ============ */
.svc-detail{display:grid;gap:0;border-top:1px solid var(--line)}
.svc-detail__item{
  display:grid;grid-template-columns:280px 1fr;gap:56px;
  padding:72px 0;border-bottom:1px solid var(--line);align-items:start;
}
.svc-detail__visual{position:relative;aspect-ratio:5/4;overflow:hidden;border:1px solid var(--line)}
.svc-detail__visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.88)}
.svc-detail__num{
  font-family:var(--en);font-style:italic;font-size:48px;color:var(--coral-deep);
  line-height:1;letter-spacing:.04em;margin-bottom:14px;
}
.svc-detail__num small{
  display:block;font-family:var(--sans);font-style:normal;font-size:11px;
  color:var(--gray-1);letter-spacing:.16em;margin-top:14px;
}
.svc-detail__title{font-family:var(--serif);font-weight:600;font-size:24px;margin-bottom:8px;letter-spacing:.06em}
.svc-detail__title-en{font-family:var(--en);font-style:italic;font-size:13px;color:var(--blue-deep);margin-bottom:24px;letter-spacing:.12em}
.svc-detail__desc{font-size:14.5px;line-height:2.1;color:var(--ink-soft);margin-bottom:24px}
.svc-detail__features{
  display:grid;grid-template-columns:repeat(2,1fr);gap:8px 32px;
  padding:24px 0 8px;border-top:1px dashed var(--line);
}
.svc-detail__feature{
  font-size:13px;color:var(--ink);padding-left:18px;position:relative;letter-spacing:.04em;
}
.svc-detail__feature::before{
  content:"";position:absolute;left:0;top:.95em;width:10px;height:1px;background:var(--coral-deep);
}

/* ============ Concept ============ */
.concept-body{font-family:var(--serif);font-size:16px;line-height:2.3;color:var(--ink)}
.concept-body p{margin-bottom:1.8em}
.concept-body h3{
  font-family:var(--serif);font-weight:600;font-size:22px;
  margin:72px 0 24px;letter-spacing:.06em;
  padding-bottom:16px;border-bottom:1px solid var(--line);
}
.concept-body .quote{
  border-left:3px solid var(--coral);
  padding:18px 0 18px 32px;margin:48px 0;
  font-family:var(--en);font-style:italic;font-size:22px;color:var(--coral-deep);
  line-height:1.85;
}
.concept-body .quote span{display:block}
.concept-body__img{margin:64px 0;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line)}
.concept-body__img img{width:100%;height:100%;object-fit:cover;filter:saturate(.86)}

/* ============ Voice — empty ============ */
.voice-empty{
  text-align:center;padding:120px 24px;
  border:1px solid var(--line);background:var(--paper);
  max-width:760px;margin:0 auto;
}
.voice-empty__eyebrow{font-family:var(--en);font-style:italic;font-size:14px;color:var(--coral-deep);letter-spacing:.18em;margin-bottom:18px}
.voice-empty__title{font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.6;margin-bottom:24px;letter-spacing:.06em}
.voice-empty__lead{font-family:var(--serif);font-size:14.5px;line-height:2;color:var(--ink-soft);max-width:480px;margin:0 auto}
.voice__img{margin:0 auto 80px;aspect-ratio:21/9;overflow:hidden;max-width:1200px;border:1px solid var(--line)}
.voice__img img{width:100%;height:100%;object-fit:cover;filter:saturate(.82)}

/* ============ FAQ ============ */
.faq-list{max-width:920px;margin:0 auto;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item__q{
  display:flex;gap:20px;padding:30px 16px;text-align:left;width:100%;
  font-family:var(--serif);font-weight:500;font-size:16px;
  color:var(--ink);line-height:1.7;letter-spacing:.04em;transition:color .25s;
}
.faq-item__q:hover{color:var(--coral-deep)}
.faq-item__q-mark{font-family:var(--en);font-style:italic;color:var(--coral-deep);font-size:20px;flex-shrink:0;line-height:1;padding-top:3px}
.faq-item__a{padding:0 16px 30px 56px;font-size:13.5px;line-height:2;color:var(--ink-soft)}
.faq-item__a .placeholder{color:var(--gray-2);font-size:11px}

/* ============ Contact ============ */
.contact-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line);margin-bottom:80px;
}
.contact-channel{padding:48px 24px;text-align:center;border-right:1px solid var(--line)}
.contact-channel:last-child{border-right:none}
.contact-channel__eyebrow{font-family:var(--en);font-style:italic;font-size:12px;color:var(--coral-deep);letter-spacing:.18em;margin-bottom:14px}
.contact-channel__main{font-family:var(--en);font-style:italic;font-size:24px;margin-bottom:8px;color:var(--ink);letter-spacing:.04em;display:block;transition:color .25s}
.contact-channel__main--sm{font-size:17px}
.contact-channel__main:hover{color:var(--coral-deep)}
.contact-channel__sub{font-size:11.5px;color:var(--gray-1);letter-spacing:.06em}

.form{max-width:720px;margin:0 auto}
.form__row{margin-bottom:32px}
.form__label{display:block;font-size:12.5px;letter-spacing:.1em;font-weight:500;margin-bottom:12px;color:var(--ink)}
.form__label .req{color:var(--coral-deep);margin-left:6px;font-weight:400}
.form__input, .form__textarea, .form__select{
  width:100%;padding:14px 18px;
  border:1px solid var(--line-strong);background:var(--white);
  font:inherit;font-size:14px;color:var(--ink);transition:border-color .25s, box-shadow .25s;letter-spacing:.04em;
}
.form__input:focus, .form__textarea:focus, .form__select:focus{
  outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(168,197,209,.25);
}
.form__textarea{min-height:180px;resize:vertical;line-height:1.8}
.form__check{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.7;color:var(--ink-soft)}
.form__check input{margin-top:4px}
.form__check a{color:var(--coral-deep);text-decoration:underline}
.form__submit-wrap{text-align:center;margin-top:48px}

/* ============ Policy ============ */
.policy-body{font-size:14px;line-height:2.1;color:var(--ink)}
.policy-body h3{
  font-family:var(--serif);font-weight:600;font-size:18px;
  margin:48px 0 16px;letter-spacing:.06em;
  padding-bottom:10px;border-bottom:1px solid var(--line);
}
.policy-body h3:first-child{margin-top:0}
.policy-body p{margin-bottom:1em}
.policy-body ol, .policy-body ul{margin:1em 0 1em 1.8em}
.policy-body ol li, .policy-body ul li{margin-bottom:.6em}
.policy-body ul{list-style:disc}
.policy-body ol{list-style:decimal}

/* ============ Footer ============ */
.footer{background:var(--paper);color:var(--ink);padding:80px 0 28px;border-top:1px solid var(--line)}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;margin-bottom:64px}
.footer__brand img{width:44px;margin-bottom:20px}
.footer__brand-name{font-family:var(--serif);font-weight:600;font-size:17px;margin-bottom:14px;letter-spacing:.08em}
.footer__brand-meta{font-size:12px;line-height:1.95;color:var(--gray-1)}
.footer__title{font-family:var(--en);font-style:italic;font-size:12px;color:var(--coral-deep);margin-bottom:18px;letter-spacing:.16em}
.footer__list{display:flex;flex-direction:column;gap:11px;font-size:13px}
.footer__list a{color:var(--ink-soft)}
.footer__list a:hover{color:var(--coral-deep)}
.footer__list .placeholder{color:var(--gray-2);font-size:11px}
.footer__legal{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--gray-1);letter-spacing:.1em;flex-wrap:wrap;gap:16px}
.footer__legal-links{display:flex;gap:24px}
.footer__legal-links a:hover{color:var(--coral-deep)}

/* ============ Responsive ============ */
@media(max-width:1180px){
  .header__nav{gap:20px;font-size:12.5px}
  .header__tel{font-size:14px}
  .header__btn{padding:11px 16px;font-size:11px}
  :root{--pad-x:40px}
}
@media(max-width:980px){
  :root{--pad-x:24px;--pad-sect:80px}
  .header__inner{padding:14px 20px;gap:12px}
  .header__inner{justify-content:space-between}
  .header__nav{display:none}
  .header__tel{display:none}
  .header__right{margin-left:auto}
  .header__menu-btn{display:flex}
  .header__btn{display:none}

  .hero{padding:80px 0 100px}
  .hero__inner{grid-template-columns:1fr;gap:48px}
  .hero__visual{order:-1;aspect-ratio:16/10;max-height:380px}
  .hero__quals{flex-direction:column;max-width:none}
  .hero__qual{border-right:none;border-bottom:1px solid var(--line)}
  .hero__qual:last-child{border-bottom:none}
  .hero__scroll{display:none}

  .page-hero{padding:88px 0 64px}

  .feature-row{grid-template-columns:1fr;gap:32px;margin-bottom:80px}
  .feature-row--reverse{direction:ltr}

  .strength-list{grid-template-columns:1fr 1fr}
  .strength-list__item{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .strength-list__item:nth-child(2n){border-right:none}
  .strength-list__item:nth-last-child(-n+2){border-bottom:none}

  .service-grid{grid-template-columns:1fr;gap:24px}
  .svc-detail__item{grid-template-columns:1fr;gap:24px;padding:48px 0}
  .svc-detail__features{grid-template-columns:1fr}
  .message-grid, .company__grid{grid-template-columns:1fr;gap:40px}
  .message__portrait{max-width:380px;margin:0 auto}
  .contact-grid{grid-template-columns:1fr}
  .contact-channel{border-right:none;border-bottom:1px solid var(--line)}
  .contact-channel:last-child{border-bottom:none}
  .footer__grid{grid-template-columns:1fr 1fr;gap:32px}
  .footer__legal{flex-direction:column;text-align:center}
  .history__item{grid-template-columns:1fr;gap:8px}
}
@media(max-width:520px){
  .strength-list{grid-template-columns:1fr}
  .strength-list__item{border-right:none!important}
  .strength-list__item:last-child{border-bottom:none}
  .footer__grid{grid-template-columns:1fr}
  .hero__ctas{flex-direction:column;align-items:stretch}
  .hero__ctas .btn{justify-content:center}
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .hero__h1 .word > span{transform:translateY(0)}
  .reveal{opacity:1;transform:none}
}
