/* ══════════════════════════════════════════════════
   カルチャライズ — style.css
   Unified typography: body 14px, aux 12px, 3 heading levels
   ══════════════════════════════════════════════════ */

:root {
  /* Colors */
  --ink:#28241e; --muted:#6e6760; --rule:#c4bdb4; --bg:#f6f4f3; --accent:#7a6040; --hover-bg:#ebe8e5; --heading:#0f2350;

  /* Typography: font-size */
  --fs-10: 10px;
  --fs-12: 12px;
  --fs-125: 12.5px;
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-15: 15px;
  --fs-16: 16px;
  --fs-17: 17px;
  --fs-18: 18px;
  --fs-20: 20px;
  --fs-24: 24px;
  --fs-26: 26px;
  --fs-30: 30px;

  /* Typography: line-height */
  --lh-tight: 1.2;
  --lh-snug: 1.6;
  --lh-base: 1.65;
  --lh-normal: 1.7;
  --lh-relaxed: 1.8;
  --lh-loose-1: 2.1;
  --lh-loose-2: 2.2;
  --lh-display: 1.45;
  --lh-title: 1.5;

  /* Spacing */
  --space-2: 2px;
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-14: 14px;
  --space-15: 15px;
  --space-16: 16px;
  --space-18: 18px;
  --space-20: 20px;
  --space-24: 24px;
  --space-25: 25px;
  --space-28: 28px;
  --space-30: 30px;
  --space-32: 32px;
  --space-34: 34px;
  --space-36: 36px;
  --space-40: 40px;
  --space-60: 60px;
  --space-64: 64px;
  --space-80: 80px;
  --space-95: 95px;

  /* Transition */
  --t-quick: 0.15s;
  --t-base: 0.2s;
  --t-slow: 0.3s;
  --t-expand: 0.5s;

  /* Border radius */
  --radius-sm: 2px;
  --radius-md: 4px;
}

/* ─── EM dash override: render U+2014 in Cormorant Garamond (slimmer glyph) ─── */
@font-face {
  font-family: 'EmDashOverride';
  src: local('Cormorant Garamond'), local('CormorantGaramond-Regular'), local('CormorantGaramond');
  unicode-range: U+2014;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
body { font-family:'EmDashOverride','Inter','Noto Serif JP',sans-serif; background:var(--bg); color:var(--ink); font-size:var(--fs-14); line-height:var(--lh-normal); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }

/* ── NAV ── */
.site-nav { position:sticky; top:0; z-index:900; background:rgba(246,244,243,.97); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom:1px solid var(--rule); padding:0 60px; }
.nav-inner { max-width:1000px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; height:90px; }
.nav-logo-wrap { display:flex; align-items:center; gap:var(--space-20); }
.nav-logo-img { width:40px; height:auto; display:block; }
.nav-logo-text { font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--muted); letter-spacing:.02em; line-height:1; }
.nav-links { display:flex; align-items:center; gap:var(--space-20); }
.nav-links a { font-size:var(--fs-12); letter-spacing:.06em; color:var(--muted); transition:color var(--t-base); padding:4px 0; }
.nav-links a:hover { color:var(--ink); }
.nav-links a.active { color:var(--accent); border-bottom:1px solid var(--accent); }
.nav-cta { font-size:var(--fs-10)!important; letter-spacing:.08em!important; padding:6px 16px!important; border:1px solid var(--rule); color:var(--ink)!important; transition:background var(--t-base),color var(--t-base),border-color var(--t-base)!important; }
.nav-cta:hover { background:var(--ink); color:var(--bg)!important; border-color:var(--ink); }
.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:var(--space-4); }
.nav-toggle span { display:block; width:20px; height:1.5px; background:var(--ink); }
.nav-mobile { display:none; flex-direction:column; background:rgba(246,244,243,.99); border-bottom:1px solid var(--rule); padding:12px 60px 20px; }
.nav-mobile a { display:block; padding:10px 0; font-size:var(--fs-14); color:var(--muted); border-bottom:1px solid rgba(0,0,0,.04); transition:color var(--t-base); }
.nav-mobile a:last-child { border-bottom:none; }
.nav-mobile a:hover { color:var(--ink); }
.nav-mobile a.active { color:var(--accent); font-weight:500; }
.nav-mobile .nav-cta-mobile { margin-top:var(--space-8); padding-top:var(--space-12); border-top:1px solid var(--rule); color:var(--accent); font-weight:500; }
.nav-mobile.open { display:flex; }

/* ── PAGE ── */
#page { max-width:1120px; margin:0 auto; padding:60px 60px 80px; }

/* ── HEADER ── */
.doc-header { border-bottom:1px solid var(--rule); padding-top:var(--space-15); padding-bottom:47px; margin-bottom:var(--space-80); }
.name-main { font-family:'Inter','Noto Serif JP',sans-serif; font-size:var(--fs-30); letter-spacing:1.98px; text-transform:uppercase; color:#0f2350; display:block; line-height:var(--lh-normal); }
.name-sub { font-family:'Inter','Noto Serif JP',sans-serif; font-size:var(--fs-26); letter-spacing:1.98px; text-transform:uppercase; color:#0f2350; display:block; line-height:var(--lh-normal); margin-bottom:var(--space-15); }
.doc-tagline { font-family:'Cormorant Garamond',serif; font-size:var(--fs-17); font-style:normal; color:var(--muted); line-height:var(--lh-title); margin-top:var(--space-6); margin-bottom:0; }

/* Thin dash */
.td { display:inline-block; transform:scaleY(0.5); }

/* Work Sample wrapper */
.ws-wrap { margin-top:var(--space-28); }

/* ══════════════════════════════════════════════════
   SECTION LAYOUT — label (160px) | content
   ══════════════════════════════════════════════════ */
.section {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 0 var(--space-60);
  margin-bottom: var(--space-95);
  align-items: start;
}
.slabel {
  font-family: 'Libre Franklin', 'Inter', sans-serif;
  font-size: var(--fs-125);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 500;
  line-height: var(--lh-snug);
  padding-top: 2.5px; /* section-heading との視覚的整列 */
}
.section-content { min-width: 0; }
.section-content > :first-child { margin-top: 0; }

/* ─── 連続ブロックの垂直リズム ─── */
.section-body + .section-heading { margin-top: var(--space-32); }
.tagline + .steps { margin-top: var(--space-24); }
.steps + .section-body { margin-top: var(--space-32); }

/* First case in section gets top margin */
.section-content > .case:first-child { margin-top: 0; }

/* Two-col first row: align cell content with slabel */
.two-col .row:first-child .cell { padding-top: 0; }

/* Contact tagline top spacing */
.contact-left .tagline { margin-bottom:var(--space-16); }

/* ══════════════════════════════════════════════════
   UNIFIED TYPOGRAPHY
   Heading L: 20px Cormorant Garamond (section-heading, step-num)
   Heading M: 18px Cormorant Garamond (tagline)
   Heading S: 16px Cormorant Garamond (person-name, industry-link)
   Label: 12.5px Libre Franklin uppercase (slabel)
   Body: 14px Inter (all body text)
   Aux: 12px Inter (notes, labels, hints)
   ══════════════════════════════════════════════════ */

/* Heading L */
.section-heading { font-family:'Cormorant Garamond',serif; font-size:var(--fs-20); font-weight:300; margin-top:var(--space-10); margin-bottom:var(--space-16); line-height:var(--lh-snug); color:var(--heading); }

/* Heading M — tagline uses same family, slightly different weight */
.tagline { font-family:'Cormorant Garamond',serif; font-size:var(--fs-18); font-weight:300; line-height:var(--lh-display); max-width:640px; color:#0f2350; }

/* Body — unified 14px */
.section-body { font-size:var(--fs-14); color:#101010; line-height:var(--lh-relaxed); max-width:660px; }

/* Aux — unified 12px */
.industry-note { margin-top:var(--space-16); font-size:var(--fs-12); color:var(--muted); letter-spacing:.04em; }
.ba-note { font-size:var(--fs-12); color:var(--muted); font-style:normal; margin-top:var(--space-25); padding:0 4px; }
.ba-note-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-20); margin-top:var(--space-25); }
.ba-note-grid .ba-note { padding:0; margin-top:0; }
.case-label { font-size:var(--fs-14); letter-spacing:.1em; text-transform:uppercase; color:#101010; margin-bottom:var(--space-25); margin-top:0; }

/* ── TWO-COL (Services) ── */
.two-col { display:grid; grid-template-columns:160px 1fr; gap:var(--space-2) var(--space-34); }
.two-col .row { display:contents; }
.two-col .row:hover .cell { background:rgba(139,111,71,.04); }
.cell { padding:6px 8px; border-radius:var(--radius-sm); transition:background var(--t-quick); }
.cell.key { font-size:var(--fs-14); letter-spacing:.04em; color:var(--muted); font-weight:400; padding-top:7px; padding-left:0; }
.cell.value { color:#101010; font-size:var(--fs-14); max-width:500px; }
.two-col .row:hover .cell.key { margin-left:-8px; padding-left:var(--space-8); }

/* ── INDUSTRY LINKS ── */
.industry-links { display:flex; flex-wrap:wrap; align-items:center; gap:0; margin-top:var(--space-4); }
.industry-link { font-family:'Cormorant Garamond',serif; font-size:var(--fs-16); font-weight:300; letter-spacing:.02em; color:var(--heading); transition:color var(--t-base); padding:0 0 8px; text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--rule); }
.industry-link:hover { color:var(--accent); text-decoration-color:var(--accent); }
.industry-sep { margin:0 16px; font-size:var(--fs-14); user-select:none; color:transparent; }

/* ── STEPS (Process) ── */
.steps { display:flex; flex-direction:column; }
.step { display:grid; grid-template-columns:36px 1fr; gap:0 var(--space-20); padding:14px 0; border-bottom:1px solid var(--rule); align-items:start; max-width:610px; }
.step:last-child { border-bottom:none; }
.step-num { font-family:'Cormorant Garamond',serif; font-size:var(--fs-20); font-weight:500; color:var(--accent); line-height:1; padding-top:0; }
.step-title { font-size:var(--fs-15); letter-spacing:.06em; text-transform:uppercase; font-weight:500; color:var(--muted); margin-bottom:var(--space-4); }
.step-desc { font-size:var(--fs-14); color:#101010; max-width:600px; }

/* ── CREDENTIALS side-by-side ── */
.team-wrap { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-60); }
.person-block { padding:0; }
.person-name { font-family:'Cormorant Garamond',serif; font-size:var(--fs-16); font-weight:300; letter-spacing:.02em; margin-top:0; margin-bottom:var(--space-16); color:var(--heading); }
.person-bg-text { font-size:var(--fs-125); color:#101010; line-height:var(--lh-relaxed); }

/* ── BEFORE / AFTER ── */
.case { margin-bottom:var(--space-40); padding-bottom:var(--space-40); border-bottom:1px solid var(--rule); }
.case:last-child { border-bottom:none; margin-bottom:0; }
.before-after { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-20); margin-bottom:var(--space-14); }
.ba-block { padding:16px 18px; border-radius:var(--radius-md); }
.before { background:#e5e0d8; border-left:2px solid #c8c0b5; }
.after { background:#e8f0ea; border-left:2px solid #7aad8f; }
.ba-label { font-size:var(--fs-12); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:var(--space-8); font-weight:500; }
.ba-text { font-size:var(--fs-14); line-height:var(--lh-base); color:#1a1612; font-family:'Cormorant Garamond',serif; font-weight:300; }
.ba-text p { margin:0 0 1em 0; }
.ba-text p:last-child { margin-bottom:0; }
.preview-case .ba-text { display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; -webkit-line-clamp:6; transition:max-height var(--t-expand) ease-out; }

.ba-translation-hint { font-size:var(--fs-12); color:var(--accent); margin-top:var(--space-10); cursor:pointer; user-select:none; opacity:.7; transition:opacity var(--t-base); }
.ba-translation-hint:hover { opacity:1; }
.ba-translation-wrap { max-height:0; overflow:hidden; transition:max-height var(--t-expand) ease-out,opacity var(--t-slow) ease; opacity:0; }
.ba-translation { margin-top:var(--space-12); padding-top:11px; padding-bottom:var(--space-16); border-top:1px solid rgba(122,96,64,.2); font-family:'EmDashOverride','Noto Serif JP','Inter',sans-serif; font-size:var(--fs-125); line-height:var(--lh-relaxed); color:#2a2520; }
.ba-translation p { margin:0 0 1em 0; }
.ba-translation p:last-child { margin-bottom:0; }

/* ── WORK SAMPLE TABS ── */
.ws-tabs { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--rule); margin-bottom:0; }
.ws-tab { padding:14px 8px; font-size:var(--fs-12); letter-spacing:.04em; color:var(--muted); cursor:pointer; background:var(--bg); border:1px solid var(--rule); border-bottom:none; font-family:'Inter','Noto Serif JP',sans-serif; font-weight:400; text-align:center; transition:all var(--t-quick); margin-bottom:-1px; }
.ws-tab:hover { background:var(--hover-bg); color:var(--ink); }
.ws-tab.active { background:#fff; color:var(--ink); font-weight:500; border-bottom:1px solid #fff; position:relative; z-index:1; }
.ws-panel { display:none; border:1px solid var(--rule); border-top:none; background:#fff; padding:28px 28px 24px; }
.ws-panel.active { display:block; }

.preview-more { display:inline-flex; align-items:center; gap:var(--space-6); margin-top:var(--space-30); margin-bottom:var(--space-30); font-size:var(--fs-14); color:var(--accent); letter-spacing:.04em; transition:color var(--t-base); }
.preview-more:hover { color:var(--ink); }
.preview-more .arrow { font-size:var(--fs-12); transition:transform var(--t-base); }
.preview-more:hover .arrow { transform:translateX(3px); }

/* ── DELIVERABLES ── */
.deliverable-list { display:flex; flex-direction:column; }
.deliverable-item { display:grid; grid-template-columns:160px 1fr; gap:0 var(--space-24); padding:16px 0; border-bottom:1px solid var(--rule); max-width:660px; }
.deliverable-item:last-child { border-bottom:none; }
.deliverable-list .deliverable-item:first-child { padding-top:0; }
.deliverable-list .deliverable-item:first-child .d-detail { margin-top:var(--space-2); }
.d-cat { font-size:var(--fs-14); color:var(--muted); font-weight:400; padding-top:var(--space-2); }
.d-detail { font-size:var(--fs-14); color:#101010; line-height:var(--lh-normal); }

/* ── BREADCRUMB ── */
.breadcrumb { font-size:var(--fs-12); color:var(--muted); margin-bottom:var(--space-24); letter-spacing:.04em; }
.breadcrumb a { color:var(--accent); transition:color var(--t-base); }
.breadcrumb a:hover { color:var(--ink); }
.breadcrumb .sep { margin:0 8px; color:var(--rule); }

/* ── CONTACT side-by-side ── */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-60); margin-top:0; }
.contact-grid > div:last-child .form-field:first-of-type { margin-top:calc(var(--fs-18) * var(--lh-display) + var(--space-16)); }  /* aligns with .contact-left .section-body; :first-of-type skips hidden _gotcha input */
.contact-left .section-body { margin-bottom:var(--space-28); max-width:none; }
.contact-block { display:flex; flex-direction:column; gap:var(--space-6); }
.contact-item { font-size:var(--fs-15); color:#101010; letter-spacing:.04em; }
.contact-item a { color:#101010; transition:color var(--t-base); }
.contact-item a:hover { color:var(--ink); }
.contact-item.contact-service { font-size:var(--fs-13); }
.contact-item:not(.contact-email) { font-weight:500; }
.contact-item.contact-email { font-size:var(--fs-14); margin-top:var(--space-24); }  /* +6px gap = 30px total */
.contact-item.contact-email a { font-weight:300; }
.form-field input[type="email"] { font-weight:300; }

.form-field { margin-bottom:var(--space-24); }
.form-field label { display:block; font-size:var(--fs-12); letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:500; margin-top:var(--space-15); margin-bottom:var(--space-6); }
.form-field .optional { font-weight:400; letter-spacing:.06em; text-transform:none; color:#b0a89e; margin-left:var(--space-4); font-size:var(--fs-12); }
.form-field input,.form-field textarea { width:100%; padding:10px 0; border:none; border-bottom:1px solid var(--rule); border-radius:0; background:transparent; font-family:'Inter','Noto Serif JP',sans-serif; font-size:var(--fs-14); color:var(--ink); outline:none; transition:border-color var(--t-slow); }
.form-field input:focus,.form-field textarea:focus { border-bottom-color:var(--accent); }
.form-field input::placeholder,.form-field textarea::placeholder { color:#c4bdb4; font-size:var(--fs-14); }
.form-field textarea { resize:none; overflow-y:hidden; min-height:100px; line-height:var(--lh-snug); }
.form-thanks { padding:calc(var(--fs-18) * var(--lh-display) + var(--space-16)) 0 var(--space-24) 0; font-size:var(--fs-15); line-height:var(--lh-relaxed); color:var(--ink); }  /* padding-top aligns with .contact-left .section-body */
.form-thanks p { margin:0 0 var(--space-16) 0; }
.form-thanks p:last-child { margin-bottom:0; }
.form-thanks-title { font-weight:500; color:var(--heading); }
.form-submit { width:100%; padding:12px 24px; background:transparent; color:var(--ink); border:1px solid var(--rule); border-radius:0; font-family:'Inter','Noto Serif JP',sans-serif; font-size:var(--fs-12); font-weight:500; letter-spacing:.12em; cursor:pointer; transition:background var(--t-base),color var(--t-base),border-color var(--t-base); margin-top:var(--space-8); }
.form-submit:hover { background:var(--ink); color:var(--bg); border-color:var(--ink); }

/* ── FOOTER (3-column) ── */
.doc-footer { border-top:1px solid var(--rule); margin-top:var(--space-60); padding-top:var(--space-36); display:grid; grid-template-columns:40px 1fr auto; gap:0 var(--space-30); align-items:flex-end; }
.footer-logo img { width:40px; height:auto; display:block; }
.footer-center { display:flex; flex-wrap:wrap; gap:var(--space-4) var(--space-16); }
.footer-center a { font-family:'Cormorant Garamond',serif; font-size:var(--fs-12); color:var(--muted); letter-spacing:.04em; transition:color var(--t-base); }
.footer-center a:hover { color:var(--ink); }
.footer-right { font-family:'Cormorant Garamond',serif; font-size:var(--fs-14); color:var(--muted); letter-spacing:.04em; text-align:right; white-space:nowrap; }

/* ── RESPONSIVE ── */
@media(max-width:768px){
  .site-nav{padding:0 24px} .nav-inner{height:70px} .nav-logo-img{width:32px} .nav-logo-text{font-size:var(--fs-15)}
  .nav-links{display:none} .nav-toggle{display:flex} .nav-mobile{padding:12px 24px 20px}
  #page{padding:40px 24px 60px}
  .section{grid-template-columns:1fr;gap:var(--space-8) 0;margin-bottom:var(--space-64)}
  .doc-header{margin-bottom:var(--space-64)}
  .slabel{margin-bottom:var(--space-4)}
  .name-main{font-size:var(--fs-24)} .name-sub{font-size:var(--fs-20)}
  .two-col{grid-template-columns:1fr;gap:0} .cell.key{padding-bottom:0} .cell.value{padding-top:var(--space-2);padding-bottom:var(--space-12);max-width:none}
  .two-col .row:hover .cell.key{margin-left:0;padding-left:0}
  .before-after{grid-template-columns:1fr} .ba-note-grid{grid-template-columns:1fr}
  .deliverable-item{grid-template-columns:1fr;gap:var(--space-4)}
  .team-wrap{grid-template-columns:1fr;gap:var(--space-32)}
  .person-block{padding-bottom:var(--space-32);border-bottom:1px solid var(--rule)} .person-block:last-child{border-bottom:none;padding-bottom:0}
  .contact-grid{grid-template-columns:1fr;gap:var(--space-32)}
  .ws-tabs{grid-template-columns:repeat(2,1fr)}
  .industry-links{flex-direction:column;gap:0} .industry-sep{display:none}
  .industry-link{padding:8px 0;border-bottom:1px solid rgba(0,0,0,.04)}
  .br-desktop{display:none}
  .doc-footer{grid-template-columns:1fr;gap:var(--space-12)} .footer-right{text-align:left}
}
@media(max-width:480px){
  #page{padding:32px 18px 48px} .site-nav{padding:0 18px} .nav-mobile{padding:12px 18px 20px}
  .name-main{font-size:20px;letter-spacing:1.2px} .name-sub{font-size:17px;letter-spacing:1.2px}
  .section-heading{font-size:19px} .tagline{font-size:17px}
  .step{grid-template-columns:28px 1fr;gap:0 14px}
  .ws-tabs{grid-template-columns:1fr 1fr}
}
@media print{ .site-nav,.nav-mobile{display:none!important} #page{padding-top:var(--space-40)} }

/* ── ACCESSIBILITY ── */
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.form-field input:focus-visible,.form-field textarea:focus-visible { outline:none; border-bottom-color:var(--accent); }
.skip-link { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; z-index:999; font-size:var(--fs-14); padding:12px 24px; background:var(--bg); color:var(--ink); border:1px solid var(--rule); }
.skip-link:focus { position:fixed; left:16px; top:16px; width:auto; height:auto; overflow:visible; }
@media(prefers-reduced-motion:reduce){ *,*::before,*::after{transition-duration:0.01ms!important;animation-duration:0.01ms!important;} }
