/* 葉と暮らしのアトリエ：記事・法務ページ共通スタイル */
:root{
  --paper:#F2EEE3;
  --paper-soft:#E9E2CF;
  --ink:#2A2822;
  --ink-soft:#5B564A;
  --ink-faint:rgba(42,40,34,0.45);
  --moss:#445939;
  --moss-deep:#212B16;
  --clay:#A85C32;
  --sage:#C9C6A6;
  --line:rgba(42,40,34,0.14);
  --on-moss:#F2EEE3;
  --on-accent:#F2EEE3;
  --moss-ink:#212B16;
  --moss-hover:#212B16;
  --header-bg:rgba(242,238,227,0.9);
  --theme-control-bg:rgba(242,238,227,0.64);
}
[data-theme="dark"]{
  --paper:#20251F;
  --paper-soft:#292F28;
  --ink:#E8E5DA;
  --ink-soft:#B9BDB2;
  --ink-faint:rgba(232,229,218,0.52);
  --moss:#91A989;
  --moss-deep:#161D15;
  --clay:#CF936E;
  --sage:#B9C2A6;
  --line:rgba(232,229,218,0.14);
  --on-accent:#161D15;
  --moss-ink:#B9C2A6;
  --moss-hover:#A8BFA0;
  --header-bg:rgba(22,29,21,0.9);
  --theme-control-bg:rgba(41,47,40,0.72);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Sans",sans-serif;
  line-height:1.95;
  -webkit-font-smoothing:antialiased;
  word-break:auto-phrase;
  line-break:strict;
  transition:background-color 0.25s ease,color 0.25s ease;
}
.nb{ white-space:nowrap; }
h1,h2,h3{ font-family:"Shippori Mincho",serif; letter-spacing:0.02em; }
a{ color:inherit; }
img{ max-width:100%; display:block; }

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--moss);
  outline-offset:2px;
  border-radius:2px;
}

.skip-link{
  position:absolute;
  left:-999px;
  top:auto;
  background:var(--moss);
  color:var(--on-accent);
  padding:10px 16px;
  border-radius:2px;
  z-index:200;
}
.skip-link:focus{ left:16px; top:16px; }

.eyebrow{
  font-family:"EB Garamond",serif;
  font-style:italic;
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--clay);
  display:inline-flex;
  align-items:center;
  gap:0.6em;
}
.eyebrow::before{
  content:"";
  width:26px;
  height:1px;
  background:var(--clay);
  display:inline-block;
}

/* 記事・法務ページ共通ヘッダー */
.art-head{
  border-bottom:1px solid var(--line);
  background:var(--header-bg);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  transition:background-color 0.25s ease,border-color 0.25s ease;
}
.art-head-inner{
  max-width:1120px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:6px clamp(20px,5vw,48px);
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:"Shippori Mincho",serif;
  font-size:1rem;
  font-weight:600;
  text-decoration:none;
  color:var(--ink);
}
.logo-symbol{ display:block; width:74px; height:auto; flex:none; }
.logo-symbol-mask{
  aspect-ratio:550 / 565;
  background:var(--logo-color,#5F6646);
  -webkit-mask:url("/assets/logo/logo-mark-locked-master.png") center / contain no-repeat;
  mask:url("/assets/logo/logo-mark-locked-master.png") center / contain no-repeat;
}
[data-theme="dark"] .logo-symbol-mask{ --logo-color:var(--sage); }
.logo-name{ white-space:nowrap; }
.art-head-inner > .text-link{ margin-left:auto; }
.theme-toggle{
  width:38px; height:38px; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  padding:0; border:1px solid var(--line); border-radius:50%;
  color:var(--ink); background:var(--theme-control-bg); cursor:pointer;
  transition:background-color 0.25s ease,color 0.25s ease,border-color 0.25s ease;
}
.theme-toggle:hover{ background:var(--paper-soft); }
.art-head-inner > .theme-toggle{ margin-left:12px; }
.theme-toggle svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.theme-icon-sun{ display:none; }
[data-theme="dark"] .theme-icon-sun{ display:block; }
[data-theme="dark"] .theme-icon-moon{ display:none; }
@media (max-width:680px){
  .art-head-inner{ padding-top:8px; padding-bottom:8px; }
  .logo{ gap:8px; font-size:0.91rem; letter-spacing:0.02em; }
  .logo-symbol{ width:47px; }
}
@media (max-width:390px){
  .art-head-inner{ gap:8px; padding-left:10px; padding-right:10px; }
  .logo{ gap:6px; font-size:0.82rem; letter-spacing:0; }
  .art-head-inner > .theme-toggle{ width:34px; height:34px; margin-left:4px; }
}

/* 法務ページ共通本文 */
.legal-main{ padding:clamp(56px,9vw,96px) clamp(20px,6vw,48px); }
.legal-shell{ max-width:680px; margin:0 auto; }
.legal-header h1{
  font-size:clamp(1.9rem,5vw,2.5rem);
  font-weight:600;
  line-height:1.5;
  margin:16px 0 18px;
}
.legal-lead,.disclosure-notice{ color:var(--ink-soft); margin:0 0 14px; }
.disclosure-notice{
  margin-top:22px;
  padding:16px 20px;
  background:var(--paper-soft);
  border:1px solid var(--line);
  border-radius:2px;
  font-size:0.92rem;
}
.legal-back{ margin-top:clamp(44px,7vw,60px); }
.text-link{
  text-decoration:none;
  color:var(--ink-soft);
  font-size:0.92rem;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.text-link:hover{ color:var(--ink); }
.text-link-strong{ color:var(--moss); font-weight:500; }
@media (max-width:390px){
  .text-link{ gap:4px; font-size:0.78rem; white-space:nowrap; }
}

/* 記事・法務ページ共通フッター */
.art-foot{
  background:var(--moss-deep);
  color:rgba(242,238,227,0.75);
  padding:26px clamp(20px,5vw,48px);
  font-size:0.82rem;
}
.art-foot-inner{
  max-width:1120px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
}
.art-foot a{ color:inherit; }
.art-foot a:hover{ color:var(--on-moss); }
.art-foot-left,.art-foot-right{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
