:root{
  --cream:#FBF8F2;
  --cream-2:#F7F1E6;
  --cream-3:#FDFBF7;
  --paper:#fff;
  --ink:#463A2C;
  --ink-strong:#2F2519;
  --ink-mute:#7C6E5D;
  --gold:#A8874C;
  --gold-deep:#8A6B33;
  --gold-soft:#C7AC77;
  --gold-pale:#E8DBC0;
  --line:#E9DFCB;
  --line-soft:#F0E8D9;
  --brown:#4B3B25;
  --shadow-s:0 2px 10px rgba(90,70,40,.05);
  --shadow-m:0 6px 26px rgba(90,70,40,.08);
  --shadow-l:0 16px 46px rgba(90,70,40,.13);
  --mincho:"Zen Old Mincho","Noto Serif JP",YuMincho,"Yu Mincho","Hiragino Mincho ProN",serif;
  --serif-jp:"Noto Serif JP",YuMincho,"Yu Mincho","Hiragino Mincho ProN",serif;
  --sans:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --en:"Cormorant Garamond","Zen Old Mincho",serif;
  --wrap:1360px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
/* 横方向のはみ出しを切る（sticky を維持するため clip を使用） */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--sans);font-size:15px;font-weight:400;
  line-height:1.95;letter-spacing:.045em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
.wrap{width:min(100% - 40px,var(--wrap));margin-inline:auto}
body::after{content:"";position:fixed;inset:0;z-index:300;pointer-events:none;opacity:.032;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.82%22%20numOctaves%3D%224%22%20stitchTiles%3D%22stitch%22%2F%3E%3CfeColorMatrix%20type%3D%22saturate%22%20values%3D%220%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22180%22%20height%3D%22180%22%20filter%3D%22url%28%23n%29%22%20opacity%3D%221%22%2F%3E%3C%2Fsvg%3E");background-size:180px 180px}

/* ============ ヘッダー ============ */
/* ============ ヘッダー ============ */
/* スクロールで浮遊型のバーに切り替わる */
.hd{
  position:sticky;top:0;z-index:100;padding:14px 0;
  transition:padding .45s var(--ease)
}
.hd::before{
  content:"";position:absolute;inset:0;opacity:0;
  background:rgba(253,251,247,.72);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(233,223,203,0);
  transition:opacity .45s var(--ease)
}
.hd .wrap{
  display:flex;align-items:center;gap:20px;position:relative;
  padding:6px 0;border:1px solid transparent;border-radius:20px;
  transition:background .45s var(--ease),box-shadow .45s var(--ease),
             border-color .45s var(--ease),padding .45s var(--ease),max-width .45s var(--ease)
}
.hd.is-stuck{padding:10px 0}
.hd.is-stuck .wrap{
  max-width:min(100% - 32px,1240px);
  background:rgba(253,251,247,.82);
  backdrop-filter:blur(20px) saturate(1.35);
  -webkit-backdrop-filter:blur(20px) saturate(1.35);
  border-color:rgba(200,170,110,.26);
  box-shadow:0 10px 34px rgba(74,58,37,.13),inset 0 1px 0 rgba(255,255,255,.7);
  padding:7px 10px 7px 22px
}
@supports not (backdrop-filter: blur(1px)){
  .hd.is-stuck .wrap{background:rgba(253,251,247,.97)}
}

.logo{display:flex;align-items:center;gap:11px;flex-shrink:0}
.logo .logo-mark{width:auto;height:38px;flex:none;transition:transform .5s var(--ease)}
.logo:hover .logo-mark{transform:translateY(-2px) scale(1.03)}
.logo b{
  font-family:var(--mincho);font-size:23px;font-weight:600;
  letter-spacing:.06em;color:var(--ink-strong);white-space:nowrap;line-height:1
}
/* PRESS だけ金の箔押し風に。左上から光が当たったような向きで */
.logo b i{
  font-family:var(--en);font-style:normal;font-size:25px;letter-spacing:.11em;margin-left:3px;
  background:linear-gradient(112deg,#6E5124 0%,#A8874C 26%,#E0C88E 46%,#B9974F 62%,#8A6B33 82%,#6E5124 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  padding-right:.04em
}
.ft-brand .logo .logo-mark{height:42px}
.ft-brand .logo b{font-size:25px}
.ft-brand .logo b i{font-size:27px}
.nav{display:flex;gap:26px;margin-left:auto}
.nav a{
  position:relative;font-size:13.5px;letter-spacing:.09em;color:var(--ink-strong);
  padding:4px 0;white-space:nowrap;transition:color .3s
}
.nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);
  transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)
}
.nav a:hover{color:var(--gold-deep)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.hd-ico{display:flex;align-items:center;gap:12px}
.ico-btn{position:relative;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--ink-strong);transition:color .3s,transform .3s}
.ico-btn::before{
  content:"";position:absolute;inset:-5px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,170,110,.2),transparent 70%);
  opacity:0;transform:scale(.7);transition:opacity .35s,transform .35s var(--ease)
}
.ico-btn:hover::before{opacity:1;transform:scale(1)}
.ico-btn:hover{color:var(--gold);transform:translateY(-1px)}
.ico-line{
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;position:relative;overflow:hidden;
  background:linear-gradient(150deg,#3FD97B,#06C755 46%,#04A445);
  box-shadow:0 2px 8px rgba(5,150,65,.3),inset 0 1px 0 rgba(255,255,255,.45);
  transition:transform .3s var(--ease),box-shadow .3s
}
.ico-line::after{
  content:"";position:absolute;left:-40%;top:-60%;width:80%;height:120%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);
  transform:rotate(18deg);transition:left .6s var(--ease)
}
.ico-line:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(6,199,85,.35)}
.ico-line:hover::after{left:110%}
.hd-cta{
  display:inline-flex;align-items:center;gap:9px;flex:none;margin-left:6px;
  padding:12px 20px;border-radius:99px;font-size:12.5px;letter-spacing:.05em;color:#fff;
  background:linear-gradient(135deg,#B18F51,#8C6C34);
  box-shadow:0 4px 14px rgba(138,107,51,.26);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),gap .35s var(--ease)
}
.hd-cta svg{opacity:.85}
.hd-cta:hover{transform:translateY(-2px);gap:13px;box-shadow:0 9px 22px rgba(138,107,51,.34)}

.burger{display:none}

/* ============ ヒーロー ============ */
.hero{position:relative;padding:184px 0 86px;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
/* 3枚のクロスフェード */
.hslide{
  position:absolute;inset:0;opacity:0;
  animation:hFade 33s var(--d) infinite;
  animation-timing-function:cubic-bezier(.45,0,.55,1);
  will-change:opacity;backface-visibility:hidden
}
.hslide img{
  width:100%;height:100%;object-fit:cover;object-position:72% 42%;
  animation:hZoom 33s var(--d) infinite linear;
  will-change:transform;transform:translateZ(0);backface-visibility:hidden
}
/* 退場側は不透明のまま下に残し、入場側が完全に覆いきってから消える。
   両方が半透明になる瞬間を作らないので、切り替わりで背景が透けて明るくなる「抜け」が出ない */
@keyframes hFade{
  0%{opacity:0;z-index:3}
  4.5%{opacity:1;z-index:3}
  4.6%{opacity:1;z-index:2}
  37.8%{opacity:1;z-index:2}
  37.9%{opacity:0;z-index:1}
  100%{opacity:0;z-index:1}
}
@keyframes hZoom{
  0%{transform:translateZ(0) scale(1.035)}
  37.9%{transform:translateZ(0) scale(1.125)}
  38%{transform:translateZ(0) scale(1.035)}
  100%{transform:translateZ(0) scale(1.035)}
}
/* 画像の下端を実際に透過させて地の色になじませる。
   クリーム色を被せる方式だと、ゴールドやピンクのスライドで色が濁るため、
   マスクで抜いて背景そのものを透けさせている。
   段階を細かく刻んでいるのは、大きな面でのバンディング（縞）を避けるため */
.hero-bg{
  --fade:linear-gradient(to bottom,
    #000 0%, #000 48%,
    rgba(0,0,0,.93) 60%,
    rgba(0,0,0,.80) 69%,
    rgba(0,0,0,.62) 76%,
    rgba(0,0,0,.42) 83%,
    rgba(0,0,0,.24) 89%,
    rgba(0,0,0,.10) 94%,
    rgba(0,0,0,.03) 97%,
    transparent 99%);
  -webkit-mask-image:var(--fade);mask-image:var(--fade);
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat
}
.bokeh{position:absolute;inset:0;z-index:-1;pointer-events:none}
.bokeh i{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(255,252,240,.95),rgba(233,207,152,.28) 55%,transparent 72%);
  animation:float 14s ease-in-out infinite
}
@keyframes float{0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.45}50%{transform:translate3d(-14px,-26px,0) scale(1.14);opacity:.85}}
@keyframes sway{0%,100%{transform:rotate(0) translateY(0)}50%{transform:rotate(2.5deg) translateY(-10px)}}
/* 左カラムの内側余白 */
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 500px;gap:60px;align-items:center}
.hero-grid > :first-child{padding-left:clamp(0px,4.5vw,86px)}
.hero-eyebrow{
  display:flex;align-items:center;gap:12px;margin:0 0 24px;
  font-family:var(--en);font-size:13px;font-weight:600;letter-spacing:.3em;color:#7A5A25;
  text-shadow:0 1px 2px rgba(255,252,246,.98),0 0 9px rgba(255,252,246,.95);
  opacity:0;animation:fadeUp .9s var(--ease) .35s forwards
}
.hero-eyebrow::before{content:"";width:36px;height:1px;flex:none;background:linear-gradient(90deg,rgba(138,107,51,.15),#9C7A34)}
.h1{
  font-family:var(--mincho);font-weight:600;
  font-size:clamp(33px,4.7vw,66px);line-height:1.5;letter-spacing:.015em;margin:0 0 22px;
  /* 光彩は輪郭を甘くするので最小限に。近距離の白ハローだけで写真から起こす */
  filter:drop-shadow(0 1px 2px rgba(255,252,246,.98)) drop-shadow(0 0 10px rgba(255,251,243,.85))
}
.h1 span{display:block;overflow:hidden}
.h1 span i{display:block;font-style:normal;transform:translateY(105%);animation:riseIn 1.1s var(--ease) forwards}
.h1 span:nth-child(2) i{animation-delay:.16s}
@keyframes riseIn{to{transform:translateY(0)}}
.h1 span i{
  
  background:linear-gradient(104deg,#3B2716 0%,#472F1A 28%,#583A1F 60%,#674624 86%,#725029 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  padding-right:.06em
}
.hero-lead{
  font-family:var(--serif-jp);font-weight:400;
  font-size:14px;line-height:1.95;letter-spacing:.02em;color:#4A3A26;
  margin:0 0 34px;max-width:33em;
  text-shadow:0 1px 2px rgba(255,252,246,.98),0 0 10px rgba(255,252,246,.9);
  opacity:0;animation:fadeUp .9s var(--ease) .58s forwards
}
.hero-btns{display:flex;flex-wrap:wrap;gap:14px;opacity:0;animation:fadeUp .9s var(--ease) .74s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ボタン */
.btn{
  display:inline-flex;align-items:center;gap:14px;font-size:13.5px;letter-spacing:.1em;
  padding:14px 26px;border-radius:3px;position:relative;overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),color .35s,border-color .35s
}
.btn svg{flex:none;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn::after{
  content:"";position:absolute;top:0;left:-120%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transition:left .75s var(--ease)
}
.btn:hover::after{left:135%}
.btn > *{position:relative;z-index:1}
.btn--fill{color:#fff;background:linear-gradient(135deg,#B18F51,#8C6C34);box-shadow:0 6px 20px rgba(138,107,51,.26)}
.btn--fill:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(138,107,51,.34)}
.btn--out{color:var(--gold-deep);border:1px solid var(--gold-soft);background:rgba(255,255,255,.72)}
.btn--out:hover{transform:translateY(-3px);border-color:var(--gold);background:#fff;box-shadow:var(--shadow-m)}
.btn--ghost{color:var(--gold-deep);border:1px solid var(--line);background:#fff}
.btn--ghost:hover{transform:translateY(-3px);border-color:var(--gold-soft);box-shadow:var(--shadow-m)}

/* ヒーロー内 注目インタビューカード */
.pick{
  position:relative;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.85);border-radius:8px;padding:20px;
  box-shadow:var(--shadow-l);display:grid;grid-template-columns:minmax(0,52%) minmax(0,1fr);gap:16px;align-items:start;
  opacity:0;animation:fadeUp 1s var(--ease) .85s forwards
}
.pick-tag{
  position:absolute;top:-13px;left:20px;background:linear-gradient(135deg,#B18F51,#8C6C34);color:#fff;
  font-size:10.5px;letter-spacing:.14em;padding:5px 13px;border-radius:2px;box-shadow:0 3px 10px rgba(138,107,51,.28)
}
.pick figure{margin:0;border-radius:5px;overflow:hidden;aspect-ratio:16/9;background:var(--cream-2);align-self:start;width:100%}
.pick figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.pick:hover figure img{transform:scale(1.05)}
.pick h3,.pick .pick-title{
  font-family:var(--serif-jp);font-weight:500;font-size:15px;line-height:1.75;
  color:var(--ink-strong);margin:0 0 10px;letter-spacing:.04em
}
.pick p{font-size:10px;line-height:1.7;color:var(--ink-mute);margin:0;letter-spacing:.06em}
.pick-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:11px;border-top:1px solid var(--line-soft)}
.pick-foot time{font-family:var(--sans);font-size:11px;color:var(--ink-mute);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.rd{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--gold-deep);letter-spacing:.08em;transition:gap .35s var(--ease)}
.rd:hover{gap:12px}

/* ============ ゴールドバナー ============ */
.gband{margin-top:70px;position:relative}
.gband-in{
  position:relative;border-radius:8px;overflow:hidden;min-height:230px;
  display:flex;align-items:center;box-shadow:0 14px 40px rgba(74,58,37,.22)
}
.gband-in img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;z-index:0;transition:transform 1.4s var(--ease)}
.gband-in:hover img{transform:scale(1.04)}
.gband-in::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(92deg,rgba(58,44,26,.96) 0%,rgba(72,55,32,.9) 32%,rgba(96,74,42,.5) 56%,rgba(120,94,54,.1) 76%,transparent 100%)
}
.gband-body{position:relative;z-index:2;padding:38px 52px;display:flex;align-items:center;gap:30px;width:100%;flex-wrap:wrap}
.gband-txt{flex:1 1 420px;min-width:0}
.gband-txt .eyebrow{font-size:12px;letter-spacing:.14em;color:#EEE1C6;margin:0 0 10px}
.gband-txt h2{
  font-family:var(--mincho);font-weight:500;color:#fff;font-size:clamp(24px,2.7vw,33px);
  letter-spacing:.06em;line-height:1.4;margin:0 0 12px;text-shadow:0 2px 16px rgba(30,20,8,.35)
}
.gband-txt .sub{font-size:13px;letter-spacing:.09em;color:#E7D8B8;margin:0 0 20px;padding-bottom:16px;border-bottom:1px solid rgba(232,219,192,.22)}
.gfeats{display:flex;gap:28px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.gfeats li{display:flex;align-items:center;gap:10px;font-size:11px;line-height:1.6;color:#F0E5D0;letter-spacing:.05em}
.gfeats span{width:31px;height:31px;border:1px solid rgba(226,207,164,.5);border-radius:50%;display:grid;place-items:center;color:#E2CFA4;flex:none}
.gband .btn--fill{background:linear-gradient(135deg,#C4A363,#9B7B41);box-shadow:0 8px 24px rgba(20,12,4,.35);padding:16px 28px}

/* 暗い背景のヒーロー用 */
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .logo b{color:#F3E9D4}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .logo svg{color:#D9C295}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .nav a{color:#EADFC7}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .nav a:hover{color:#fff}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .nav a::after{background:#E3D0A6}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .hd-txt{color:#EADFC7}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .hd-txt svg{color:#E3D0A6}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .hd-txt:hover{background:rgba(255,255,255,.12);color:#fff}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .burger span{background:#EADFC7}
@media(max-width:1080px){
  body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck)::before{background:linear-gradient(180deg,rgba(30,22,10,.5),rgba(30,22,10,0))}
}

/* ============ モバイルヘッダー & ドロワー ============ */
.burger{
  position:relative;width:44px;height:44px;display:none;place-items:center;
  border-radius:50%;transition:background .35s var(--ease)
}
.burger span{
  position:absolute;left:13px;height:1.5px;border-radius:2px;background:var(--ink-strong);
  transition:transform .45s var(--ease),width .45s var(--ease),opacity .25s
}
.burger span:nth-child(1){top:16px;width:18px}
.burger span:nth-child(2){top:21.5px;width:12px}
.burger span:nth-child(3){top:27px;width:18px}
.burger:hover span:nth-child(2){width:18px}
body.nav-open .burger span:nth-child(1){transform:translateY(5.5px) rotate(45deg);width:19px}
body.nav-open .burger span:nth-child(2){opacity:0;width:0}
body.nav-open .burger span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);width:19px}

.drawer{
  position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none;
  background:linear-gradient(165deg,#FDFBF6 0%,#F8F1E4 58%,#F3EAD8 100%);
  opacity:0;transition:opacity .5s var(--ease),visibility .5s
}
body.nav-open .drawer{visibility:visible;pointer-events:auto;opacity:1}
.drawer-inner{
  position:relative;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
  padding:104px 26px 44px;display:flex;flex-direction:column
}
/* タブレット幅でも間延びしないよう、内容の横幅は上限を設けて中央に置く */
.drawer-inner > :not(.orn){width:100%;max-width:600px;margin-inline:auto}
.drawer-eyebrow{
  font-family:var(--en);font-size:12px;letter-spacing:.34em;color:var(--gold-deep);
  margin:0 0 14px;opacity:0;transform:translateY(10px);
  transition:opacity .5s var(--ease) .12s,transform .5s var(--ease) .12s
}
body.nav-open .drawer-eyebrow{opacity:1;transform:none}
.drawer-nav{display:flex;flex-direction:column;position:relative;z-index:1}
.drawer-nav a{
  display:flex;align-items:baseline;gap:12px;padding:19px 4px;
  border-bottom:1px solid rgba(200,170,110,.26);
  opacity:0;transform:translateY(14px);
  transition:opacity .55s var(--ease),transform .55s var(--ease),padding-left .35s var(--ease)
}
.drawer-nav a:first-child{border-top:1px solid rgba(200,170,110,.26)}
.drawer-nav a:active{padding-left:10px}
body.nav-open .drawer-nav a{opacity:1;transform:none}
body.nav-open .drawer-nav a:nth-child(1){transition-delay:.16s}
body.nav-open .drawer-nav a:nth-child(2){transition-delay:.23s}
body.nav-open .drawer-nav a:nth-child(3){transition-delay:.30s}
body.nav-open .drawer-nav a:nth-child(4){transition-delay:.37s}
.drawer-nav .jp{
  font-family:var(--mincho);font-size:20px;letter-spacing:.07em;line-height:1.3;color:#33261A
}
.drawer-nav .en{font-size:10.5px;letter-spacing:.13em;color:var(--ink-mute);white-space:nowrap}
.drawer-nav svg{margin-left:auto;color:var(--gold);align-self:center;flex:none}
.drawer-cta{
  display:flex;flex-direction:column;gap:11px;margin-top:34px;position:relative;z-index:1;
  opacity:0;transform:translateY(14px);
  transition:opacity .55s var(--ease) .44s,transform .55s var(--ease) .44s
}
body.nav-open .drawer-cta{opacity:1;transform:none}
.drawer-cta .btn{justify-content:center;padding:16px 20px}
.drawer-foot{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:30px;position:relative;z-index:1;
  opacity:0;transition:opacity .5s var(--ease) .54s
}
.drawer-foot .ft-line,.drawer-foot .ft-contact{font-size:12.5px;padding:12px 17px}
body.nav-open .drawer-foot{opacity:1}
body.nav-open{overflow:hidden}
/* ドロワー表示中は画面上端に固定する */
body.nav-open .hd{position:fixed;top:0;left:0;right:0;padding:10px 0}
/* ドロワーを開いている間は、どのページでもヘッダーを地の色に戻す。
   暗いヒーロー用の白抜きのままだと、クリーム地の上で閉じるボタンが見えなくなる */
/* ドロワー表示中はヘッダーに地色を敷く */
body.nav-open .hd::before{
  opacity:1;inset:0;backdrop-filter:none;border-bottom:0;
  background:#FDFBF6;
  box-shadow:0 10px 16px -12px rgba(90,70,40,.22)
}
body.nav-open .hd .wrap{background:none;box-shadow:none;border-color:transparent;backdrop-filter:none;max-width:min(100% - 20px,1240px)}
body.nav-open .logo b{color:var(--ink-strong)}
body.nav-open .burger span{background:var(--ink-strong)}
/* 閉じるボタンだと分かるよう、開いている間は面を付ける */
body.nav-open .burger{background:rgba(200,170,110,.16)}
body.nav-open .burger:hover{background:rgba(200,170,110,.26)}
body.nav-open .hd-cta{opacity:0;pointer-events:none;transition:opacity .3s}

/* ============ 記事タグ ============ */
.tags{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:13px}
.tags span{
  font-size:11px;line-height:1.6;letter-spacing:.02em;color:#9A8869;
  transition:color .3s
}
.tags span::before{content:"#";margin-right:1.5px;color:var(--gold-soft)}
.card:hover .tags span{color:var(--gold-deep)}
.hero-sub-link{margin:20px 0 0;opacity:0;animation:fadeUp .9s var(--ease) .86s forwards}
.hero-sub-link a{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;letter-spacing:.06em;
  color:#5E4720;padding-bottom:3px;border-bottom:1px solid rgba(168,135,76,.45);
  text-shadow:0 1px 8px rgba(255,252,246,.9);transition:gap .35s var(--ease),color .3s,border-color .3s}
.hero-sub-link a:hover{gap:15px;color:var(--gold-deep);border-color:var(--gold)}
@media(prefers-reduced-motion:reduce){.hero-sub-link{opacity:1}}

/* ============ 胡蝶蘭の装飾モチーフ ============ */
/* 線画をアルファ1chのマスクとして持ち、色は background-color 側で与える。
   ファイルが軽く、配置ごとに濃さと色味を個別に調整できる */
.orn{
  position:absolute;pointer-events:none;z-index:0;
  background-color:#BC9C60;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-image:var(--u);mask-image:var(--u)
}
.orn--corner {--u:url(../img/ornament/orn-corner.webp); aspect-ratio:560/517}
.orn--sprig  {--u:url(../img/ornament/orn-sprig.webp);  aspect-ratio:380/345}
.orn--garland{--u:url(../img/ornament/orn-garland.webp);aspect-ratio:760/293}
.orn--bloom  {--u:url(../img/ornament/orn-bloom.webp);  aspect-ratio:440/326}
.orn--diag   {--u:url(../img/ornament/orn-diag.webp);   aspect-ratio:560/575}
.orn--vine   {--u:url(../img/ornament/orn-vine.webp);   aspect-ratio:220/931}
.orn--wingL  {--u:url(../img/ornament/orn-wing-l.webp); aspect-ratio:440/427}
.orn--wingR  {--u:url(../img/ornament/orn-wing-r.webp); aspect-ratio:440/427}
.orn--drift{animation:drift 19s ease-in-out infinite}
.orn--drift2{animation:drift 24s ease-in-out infinite reverse}
@keyframes drift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-7px,-13px,0)}}
.sec,.hero,.ft{position:relative}
.panel{position:relative;overflow:hidden}
.panel > *:not(.orn):not(.about-photo){position:relative;z-index:1}
/* 本文幅1360pxの外側に残る余白に置く装飾。
   余白が十分に取れる画面幅でのみ表示し、幅に応じて3段階で大きくする */
.orn--edge{display:none}
/* 本文(1360px)に被らない幅が確保できる画面でのみ出す。
   必要な余白 = 装飾幅 + 端からの距離 + 逃げ8px */
.orn--edge{--ew:88px}
@media(min-width:1600px){.orn--edge{display:block;width:var(--ew)}}
@media(min-width:1760px){.orn--edge{--ew:126px}}
@media(min-width:1980px){.orn--edge{--ew:172px}}
/* 装飾をコンテンツ幅の外へ配置するヘルパー */
.orn--outL{left:calc(-1 * (var(--ew) + 20px))!important;right:auto!important}
.orn--outR{right:calc(-1 * (var(--ew) + 20px))!important;left:auto!important}
@media(max-width:720px){
  .orn--hide-sp{display:none}
  /* スマホは横幅が狭く、そのままだと大半が画面外に出てしまうので縮めて配置し直す */
  .hero .orn--diag{width:270px!important;left:-58px!important;bottom:auto!important;top:46%!important;opacity:.42!important}
}
/* ============ セクション共通 ============ */
.sec{padding:74px 0 0}
.sec--tight{padding-top:52px}
.stories-lead{padding-top:0;margin-top:-30px;z-index:2}
.sec--loose{padding-top:104px}
.panel{
  background:linear-gradient(180deg,#FEFCF8,#FBF7EF);
  border:1px solid var(--line);border-radius:10px;padding:42px 44px 46px;box-shadow:var(--shadow-s)
}
.panel--plain{background:#FEFCF9;border-color:var(--line-soft)}
/* ヒーローに重なるパネル。枠線が写真の上で1本の横線として目立つので、
   輪郭は影だけで見せる */
.panel--lead{background:rgba(255,254,251,.96);backdrop-filter:blur(6px);border-color:transparent;box-shadow:var(--shadow-l)}
.stitle{display:flex;align-items:center;gap:16px;margin:0 0 28px;position:relative}
/* セクション見出し */
.stitle h2{
  font-family:var(--mincho);font-weight:500;font-size:24px;letter-spacing:.1em;
  margin:0;white-space:nowrap;color:#33261A
}
.stitle .en{font-family:var(--en);font-size:27px;letter-spacing:.05em;font-weight:500}
.stitle .desc{font-size:11.5px;color:var(--ink-mute);letter-spacing:.07em;white-space:nowrap}
.stitle .more{margin-left:auto;white-space:nowrap}
/* セクションのバッジ */
.stitle .badge{
  position:relative;width:30px;height:30px;border-radius:50%;background:none;
  box-shadow:none;border:1px solid rgba(196,166,108,.55);
  display:grid;place-items:center;color:var(--gold-deep);flex:none
}
.leaf{color:var(--gold-soft);flex:none}

/* ============ 注目のストーリー ============ */
.stories{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:22px;align-items:start}
.story-lg{
  background:var(--paper);border:1px solid var(--line-soft);border-radius:8px;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,54%) minmax(0,1fr);align-items:start;box-shadow:var(--shadow-s);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);position:relative
}
.story-lg:hover{transform:translateY(-5px);box-shadow:var(--shadow-l)}
.story-lg figure{margin:0;position:relative;overflow:hidden;background:var(--cream-2);align-self:start;width:100%;aspect-ratio:16/9}
.story-lg figure img,.story-lg figure svg{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 1.1s var(--ease)}
.story-lg:hover figure img{transform:scale(1.06)}
.story-tag{
  position:absolute;top:14px;left:14px;z-index:2;background:linear-gradient(135deg,#B18F51,#8C6C34);color:#fff;
  font-size:10px;letter-spacing:.13em;padding:5px 12px;border-radius:2px
}
.story-lg .body{padding:16px 22px 14px;display:flex;flex-direction:column;justify-content:center}
.story-lg h3{
  font-family:var(--mincho);font-weight:500;font-size:18px;line-height:1.5;letter-spacing:.035em;
  color:var(--ink-strong);margin:0 0 9px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.story-lg .who{font-size:10.5px;color:var(--ink-mute);letter-spacing:.05em;padding-bottom:8px;border-bottom:1px solid var(--line-soft);margin:0 0 8px}
.story-lg .ex{font-size:11.5px;line-height:1.85;color:#6B5D4C;margin:0 0 auto;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.story-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.story-foot time{font-family:var(--sans);font-size:11px;letter-spacing:.06em;color:var(--ink-mute);font-variant-numeric:tabular-nums}
.mini-btn{
  display:inline-flex;align-items:center;gap:10px;font-size:11.5px;letter-spacing:.08em;color:var(--gold-deep);
  border:1px solid var(--line);background:#fff;padding:8px 16px;border-radius:3px;transition:all .4s var(--ease)
}
.story-lg:hover .mini-btn{border-color:var(--gold-soft);background:#FDFAF4}
.story-side{display:flex;flex-direction:column;gap:22px}
.story-sm{
  background:var(--paper);border:1px solid var(--line-soft);border-radius:8px;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,53%) minmax(0,1fr);align-items:start;flex:0 0 auto;box-shadow:var(--shadow-s);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)
}
.story-sm:hover{transform:translateY(-4px);box-shadow:var(--shadow-m)}
.story-sm figure{margin:0;overflow:hidden;background:var(--cream-2);align-self:start;width:100%;aspect-ratio:16/9}
.story-sm figure img,.story-sm figure svg{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.story-sm:hover figure img{transform:scale(1.07)}
.story-sm .body{padding:16px 18px;display:flex;flex-direction:column}
.chip{
  display:inline-block;font-size:9.5px;letter-spacing:.1em;padding:3px 9px;border-radius:2px;
  background:#F3ECDD;color:var(--gold-deep);margin-bottom:9px;align-self:flex-start
}
.chip--i{background:#F1EDE4;color:#7B6A50}
.chip--m{background:#EDEFF3;color:#5F6C80}
.chip--k{background:#F7EEF1;color:#8E6474}
.story-sm h3{
  font-family:var(--serif-jp);font-weight:500;font-size:14px;line-height:1.75;letter-spacing:.04em;
  color:var(--ink-strong);margin:0 0 auto
}
.story-sm .story-foot{margin-top:12px}
.story-sm .story-foot time{font-size:10.5px}

/* ============ 最新記事 ============ */
.tabs{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.tab{
  font-size:12px;letter-spacing:.09em;padding:8px 22px;border-radius:99px;color:var(--ink-mute);
  transition:all .4s var(--ease);white-space:nowrap
}
.tab:hover{color:var(--gold-deep)}
.tab.on{background:linear-gradient(135deg,#B18F51,#8C6C34);color:#fff;box-shadow:0 4px 14px rgba(138,107,51,.24)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.card{
  background:var(--paper);border:1px solid var(--line-soft);border-radius:8px;overflow:hidden;
  box-shadow:var(--shadow-s);display:flex;flex-direction:column;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),opacity .4s
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-m)}
.card figure{margin:0;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--cream-2)}
.card figure img,.card figure svg{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.card:hover figure img{transform:scale(1.07)}
.card figure .chip{position:absolute;top:11px;left:11px;margin:0;background:rgba(255,255,255,.93);box-shadow:0 2px 8px rgba(80,60,30,.12)}
.card .body{padding:18px 19px 19px;display:flex;flex-direction:column;flex:1}
.card h3{
  font-family:var(--serif-jp);font-weight:500;font-size:15.5px;line-height:1.72;letter-spacing:.035em;
  color:var(--ink-strong);margin:0 0 11px
}
.card p{font-size:11.5px;line-height:1.9;color:var(--ink-mute);margin:0 0 auto}
.card time{font-family:var(--sans);font-size:11.5px;letter-spacing:.06em;color:#9C8F7E;margin-top:14px;font-variant-numeric:tabular-nums}
.center{display:flex;justify-content:center;margin-top:30px}
.hidden{display:none}
[hidden]{display:none!important}

/* ============ 胡蝶蘭PRESSとは ============ */
.about{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:56px;position:relative}
.about-deco{position:absolute;right:-46px;top:-96px;width:250px;color:#E3D2AE;opacity:.7;pointer-events:none;z-index:0}
.about-lead{font-size:13px;line-height:2.1;color:#57493A;margin:0 0 26px}
.feat{display:flex;gap:15px;margin-bottom:20px}
.feat .ic{
  width:41px;height:41px;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--gold-deep);
  background:linear-gradient(140deg,#F7EEDC,#EADDBE);box-shadow:inset 0 0 0 1px rgba(200,175,125,.35)
}
.feat h3{font-family:var(--serif-jp);font-weight:500;font-size:13.5px;letter-spacing:.05em;color:var(--ink-strong);margin:2px 0 5px}
.feat p{font-size:11px;line-height:1.85;color:var(--ink-mute);margin:0}
.flow-h{font-family:var(--mincho);font-weight:500;font-size:18px;letter-spacing:.08em;color:var(--ink-strong);margin:0 0 20px}
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:stretch}
.step{
  background:#fff;border:1px solid var(--line);border-radius:6px;padding:14px 10px 16px;text-align:center;
  position:relative;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s
}
.step:hover{transform:translateY(-4px);border-color:var(--gold-soft);box-shadow:var(--shadow-m)}
.step:not(:last-child)::after{
  content:"";position:absolute;right:-8px;top:50%;width:8px;height:8px;border-top:1px solid var(--gold-soft);
  border-right:1px solid var(--gold-soft);transform:translateY(-50%) rotate(45deg);z-index:2
}
.step .no{font-family:var(--sans);font-weight:500;font-variant-numeric:tabular-nums;font-size:17px;color:var(--gold-soft);letter-spacing:.06em;display:block;text-align:left;padding-left:4px;line-height:1}
.step .gl{height:44px;display:grid;place-items:center;color:var(--gold);margin:6px 0 8px}
.step p{font-size:10.5px;line-height:1.65;color:var(--ink);margin:0;letter-spacing:.03em}

/* ============ 胡蝶蘭PRESSとは（要のセクション） ============ */
.panel--about{
  background:linear-gradient(180deg,#FDFAF4,#FAF5EB);
  border-color:rgba(196,166,108,.34);
  padding:46px 52px 50px;overflow:hidden
}
.about-photo{
  position:absolute;right:0;top:0;width:25%;max-width:330px;z-index:0;pointer-events:none;opacity:.9;
  --m:radial-gradient(105% 108% at 100% 0%,#000 22%,rgba(0,0,0,.8) 42%,rgba(0,0,0,.42) 60%,rgba(0,0,0,.14) 76%,transparent 88%);
  -webkit-mask-image:var(--m);mask-image:var(--m)
}
.about-photo img{width:100%;height:auto;display:block}
.panel--about > *:not(.about-photo){position:relative;z-index:1}

.about-lead{
  font-family:var(--serif-jp);font-weight:500;
  font-size:14.5px;line-height:2.1;letter-spacing:.05em;color:#4A3D2C;
  margin:0 0 6px;max-width:34em
}
.about-lead em{font-style:normal;color:var(--gold-deep)}

.about4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:38px 0 0}
.a4{text-align:center}
.a4 .ic{
  position:relative;width:84px;height:84px;border-radius:50%;margin:0 auto 20px;
  display:grid;place-items:center;color:#A8874C;
  background:linear-gradient(160deg,#fff,#FEFBF5);
  box-shadow:0 4px 16px rgba(140,110,55,.13),inset 0 1px 0 #fff;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),color .5s
}
.a4 .ic::after{
  content:"";position:absolute;inset:-5px;border-radius:50%;
  border:1px solid rgba(196,166,108,.34);opacity:0;transform:scale(.9);
  transition:opacity .5s,transform .5s var(--ease)
}
.a4:hover .ic{transform:translateY(-4px);box-shadow:0 10px 24px rgba(140,110,55,.2),inset 0 1px 0 #fff;color:#8A6B33}
.a4:hover .ic::after{opacity:1;transform:scale(1)}
.a4 h3{
  font-family:var(--serif-jp);font-weight:600;font-size:13.5px;letter-spacing:.05em;
  color:var(--ink-strong);margin:0 0 9px;line-height:1.6
}
.a4 p{font-size:11.5px;line-height:1.9;color:#7A6C5B;margin:0}

.about-foot{display:flex;justify-content:center;margin-top:40px}
.about-foot .btn{padding:15px 40px}
/* ============ 記事セクション（3本） ============ */
.list-sec .cards{gap:20px}
.list-sec .card figure{aspect-ratio:16/9}
.list-sec .card .body{padding:16px 17px 17px}
.list-sec .card h3{font-size:14.5px;margin-bottom:9px}

/* ============ 下部CTA ============ */

/* ============ 下部CTA（バナー） ============ */
.wrap--wide{width:min(100% - 40px,1560px);margin-inline:auto}
.fcta{
  margin-top:104px;position:relative;border-radius:10px;overflow:hidden;
  border:1px solid rgba(196,166,108,.42);box-shadow:0 10px 34px rgba(140,110,55,.14);
  min-height:250px;display:flex;align-items:center
}
.fcta img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:14% 52%;z-index:0;
  transition:transform 1.6s var(--ease)
}
.fcta:hover img{transform:scale(1.03)}
.fcta::before{
  content:"";position:absolute;inset:12px;border-radius:6px;z-index:2;pointer-events:none;
  border:1px solid rgba(255,255,255,.55);
  box-shadow:inset 0 0 0 1px rgba(196,166,108,.18)
}
.fcta-in{
  position:relative;z-index:3;padding:46px 56px 46px 286px;
  display:flex;align-items:center;gap:36px;flex-wrap:wrap;width:100%
}
.fcta-txt{flex:1 1 500px}
.fcta .eyebrow{
  display:inline-flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.16em;
  color:#8A6B33;margin:0 0 12px
}
.fcta .eyebrow::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,rgba(168,135,76,0),#A8874C)}
.fcta h2{
  font-family:var(--mincho);font-weight:600;font-size:clamp(21px,2.3vw,29px);letter-spacing:.06em;
  color:#33291B;margin:0 0 14px;line-height:1.52;
  text-shadow:0 1px 16px rgba(255,253,248,.9),0 1px 3px rgba(255,253,248,.85)
}
.fcta p{
  font-size:12.5px;line-height:1.95;color:#544737;margin:0;
  text-shadow:0 1px 12px rgba(255,253,248,.9)
}
.fcta-btns{display:flex;gap:15px;flex-wrap:wrap}
.fcta .btn--out{background:rgba(255,255,255,.9);backdrop-filter:blur(4px)}
/* ============ フッター ============ */
.ft{overflow:hidden;margin-top:70px;background:linear-gradient(180deg,#FDFBF7,#F7F1E5);border-top:1px solid var(--line);padding:46px 0 0}
.ft-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:38px}
.ft-brand p{font-size:11px;line-height:1.95;color:var(--ink-mute);margin:16px 0 22px;max-width:23em}
.ft-sns{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ft-line,.ft-contact{
  display:inline-flex;align-items:center;gap:9px;padding:11px 16px;border-radius:99px;
  font-size:12px;letter-spacing:.04em;white-space:nowrap;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s
}
/* LINEロゴはブランドガイドラインに沿って白地に配置 */
.ft-line{color:#04A445;background:#fff;border:1px solid rgba(6,199,85,.45);box-shadow:0 2px 8px rgba(5,150,65,.1)}
.ft-line .line-mark{width:20px;height:auto}
.ft-line:hover{transform:translateY(-2px);border-color:#06C755;box-shadow:0 7px 18px rgba(5,150,65,.2)}
.ft-contact{color:var(--gold-deep);background:#fff;border:1px solid var(--line)}
.ft-contact svg{color:var(--gold)}
.ft-contact:hover{transform:translateY(-2px);border-color:var(--gold-soft);box-shadow:var(--shadow-s)}
.ft-mail{margin:16px 0 0;font-size:12px;letter-spacing:.03em}
.ft-mail a{display:inline-flex;align-items:center;gap:8px;color:var(--gold-deep);
  padding-bottom:2px;border-bottom:1px solid rgba(168,135,76,.35);transition:border-color .3s,color .3s}
.ft-mail a::before{content:"";width:5px;height:5px;border-top:1px solid var(--gold-soft);
  border-right:1px solid var(--gold-soft);transform:rotate(45deg)}
.ft-mail a:hover{color:var(--ink-strong);border-color:var(--gold)}
.ft-sns b{font-size:10.5px;letter-spacing:.1em;color:var(--ink-mute);font-weight:400;margin-right:4px}
.sns{
  position:relative;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(160deg,#fff,#FBF6EC);border:1px solid var(--line);
  box-shadow:0 1px 4px rgba(140,110,55,.08),inset 0 1px 0 #fff;
  transition:all .4s var(--ease)
}
.sns::after{content:"";position:absolute;inset:3px;border-radius:50%;border:1px solid rgba(200,170,110,.3);opacity:0;transition:opacity .4s}
.sns:hover::after{opacity:1}
.sns--line{
  background:linear-gradient(150deg,#3FD97B,#06C755 46%,#04A445);border-color:#04A445;
  box-shadow:0 3px 10px rgba(5,150,65,.28),inset 0 1px 0 rgba(255,255,255,.4)
}
.sns--line::after{border-color:rgba(255,255,255,.45)}
.sns:hover{transform:translateY(-3px);border-color:var(--gold-soft);box-shadow:var(--shadow-m)}
.ft-col h3{font-family:var(--serif-jp);font-weight:500;font-size:13px;letter-spacing:.09em;color:var(--ink-strong);margin:0 0 16px}
.ft-col ul{list-style:none;margin:0;padding:0}
.ft-col li{margin-bottom:11px}
.ft-col a{font-size:11.5px;color:var(--ink-mute);letter-spacing:.05em;transition:color .3s,padding-left .3s var(--ease)}
.ft-col a:hover{color:var(--gold-deep);padding-left:4px}
.ft-btm{margin-top:40px;border-top:1px solid var(--line);padding:16px 0 18px;text-align:center}
.ft-btm small{font-size:10.5px;letter-spacing:.08em;color:#9C8F7E}

/* ============ スクロール演出 ============ */
/* transform の有無にかかわらず絶対配置の基準にする */
.rv{position:relative;opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-s{position:relative}
.rv-s > *{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv-s.in > *{opacity:1;transform:none}
.rv-s.in > *:nth-child(1){transition-delay:.05s}
.rv-s.in > *:nth-child(2){transition-delay:.14s}
.rv-s.in > *:nth-child(3){transition-delay:.23s}
.rv-s.in > *:nth-child(4){transition-delay:.32s}

/* ============ プレースホルダ画像 ============ */
.ph{width:100%;height:100%;display:block}

/* ============ レスポンシブ ============ */
@media(max-width:1080px){
  .nav{display:none}
  .burger{display:grid;margin-left:0}
  .hd .wrap{gap:12px}
  .hd-ico{gap:4px;margin-left:auto}
  .hero-grid{grid-template-columns:1fr;gap:34px}
  .hero-grid > :first-child{padding-left:0}
  .pick{max-width:560px}
  .cards{grid-template-columns:1fr 1fr}
  .about4{grid-template-columns:1fr 1fr;gap:30px 20px}
  .about-photo{width:34%;opacity:.8}
  .stories{grid-template-columns:1fr}
  .fcta-in{padding:34px 34px 34px 200px}
}
@media(max-width:720px){
  body{font-size:14px}
  .hero-lead br,.fcta p br,.about-lead br,.a4 p br{display:none}
  .hero-lead{word-break:auto-phrase;line-break:strict;font-size:13.5px;max-width:26em}
  .hero-eyebrow{font-size:11px;letter-spacing:.26em;margin-bottom:18px}
  .h1{line-height:1.48;margin-bottom:18px}
  .a4 h3{word-break:auto-phrase;line-break:strict}
  .a4 p{word-break:auto-phrase}
  .hd{padding:8px 0}
  .hd.is-stuck{padding:6px 0}
  .hd.is-stuck .wrap{max-width:min(100% - 20px,1240px);border-radius:16px;padding:6px 8px 6px 14px}
  /* 透過状態のベール。backdrop-filter は要素の境界でぼかしが切れて
     直線の継ぎ目に見えるため、ここでは使わない。
     さらに下へ46px はみ出させて、完全な透明まで落としきってから終わらせる */
  .hd::before{
    inset:0 0 -46px;opacity:1;backdrop-filter:none;border-bottom:0;
    background:linear-gradient(180deg,
      rgba(253,251,247,.9) 0%,rgba(253,251,247,.78) 38%,rgba(253,251,247,.5) 62%,
      rgba(253,251,247,.22) 82%,rgba(253,251,247,.06) 93%,rgba(253,251,247,0) 100%)
  }
  .hd.is-stuck::before{
    inset:0;background:rgba(253,251,247,.95);backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line)
  }
  .hd-cta{display:none}
  .logo .logo-mark{height:32px}
  .logo b{font-size:20px}
  .logo b i{font-size:21px}
  .ft-brand .logo .logo-mark{height:36px}
  .ft-brand .logo b{font-size:22px}
  .ft-brand .logo b i{font-size:23px}
  .hero{padding:132px 0 70px}
  .hero-bg img{object-position:78% 40%}
  .h1{font-size:32px}
  .pick{grid-template-columns:112px minmax(0,1fr);padding:16px;gap:14px}
  .cards{grid-template-columns:1fr;gap:16px}
  /* スマホでは改行を解除して横幅を使う */
  .card h3 br,.story-lg h3 br,.story-sm h3 br,.pk-sm h3 br,.prod h3 br{display:none}
  .card h3,.list-sec .card h3{font-size:15.5px;line-height:1.62;letter-spacing:.02em}
  .card p{font-size:12px;line-height:1.85}
  .tags span{font-size:11px}
  .card time{font-size:11.5px}
  .panel{padding:26px 18px 28px}
  .stitle{flex-wrap:wrap;gap:10px}
  /* 長い見出しは折り返さないと画面からはみ出す */
  .stitle h2{white-space:normal;word-break:auto-phrase;line-break:strict;font-size:20px;line-height:1.5}
  .stitle .more{margin-left:0}
  .tabs{margin-left:0;width:100%}
  .tab{padding:7px 15px;font-size:11px}
  .story-lg{grid-template-columns:1fr}
  .story-lg figure{aspect-ratio:16/9}
  /* 縦積みに切り替える */
  .story-sm{grid-template-columns:1fr}
  .story-sm figure{aspect-ratio:16/9}
  .story-sm .body{padding:16px 17px 17px}
  .story-sm h3{font-size:14px;line-height:1.7}
  .story-sm .story-foot{margin-top:14px}
  .pk-sm{grid-template-columns:1fr;padding:0;overflow:hidden}
  .pk-sm figure{aspect-ratio:16/9;border-radius:0}
  .pk-sm > span{padding:15px 17px 17px;display:block}
  .pk-sm h3{margin-top:9px;font-size:14px}
  /* スマホでは3件まで表示 */
  .list-sec .cards > .card:nth-child(n+4){display:none}
  .story-lg .body{padding:20px}
  .story-lg h3{font-size:17px}
  .about4{grid-template-columns:1fr 1fr;gap:26px 14px}
  .panel--about{padding:26px 18px 30px}
  .a4 .ic{width:68px;height:68px;margin-bottom:14px}
  .a4 h3{font-size:12.5px}
  .a4 p{font-size:11px}
  .about-photo{width:46%;opacity:.6}
  .gband-body{padding:26px 22px}
  .gfeats{gap:14px}
  .fcta{min-height:0}
  .fcta img{object-position:30% 50%}
  .fcta::before{inset:8px}
  .fcta-in{padding:28px 22px}
  .fcta h2{font-size:19px}
  .ft-grid{grid-template-columns:1fr 1fr;gap:26px}
  .ft-brand{grid-column:1/-1}
}
@media(max-width:430px){
  .cards{grid-template-columns:1fr}
  .step::after{display:none!important}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important}
  .hslide{opacity:0}
  .hslide:first-child{opacity:1}
  .hslide img{transform:none!important}
  .rv,.rv-s > *{opacity:1;transform:none}
  .h1 span i{transform:none}
  .hero-lead,.hero-btns,.pick,.hero-eyebrow{opacity:1}
}

/* ==========================================================
   改善：動線と反復の解消
   ========================================================== */
/* 角丸のスケール（面=10 / 部品=8 / 小要素=4） */
:root{--r-lg:10px;--r-md:8px;--r-sm:4px;--hd-h:90px}
@media(max-width:1080px){:root{--hd-h:87px}}
@media(max-width:720px){:root{--hd-h:74px}}
.card,.prod,.pk-sm,.inread-card,.nextup,.pn a,.rank figure,.toc,.inread,.more-fields,.tag-sample,
.cbox,.plan,.scene,.vbanner,.gbanner,.inbanner,.ah-hero,.mission-fig,.tag-fig,.prod figure{border-radius:var(--r-md)}
.panel,.fcta,.stats,.pk-lg,.gband-in{border-radius:var(--r-lg)}
.chip,.badge-p,.btn,.field input,.field select,.field textarea,.searchbox input,.searchbox button{border-radius:var(--r-sm)}

.tags span::before{color:#BCAF99}
.toc a::before,.rank a::before{color:#B5A88F}
.prose h2::after{display:none}

/* ホバーの反応 */
.card{transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.card:hover{transform:translateY(-3px)}
.card:hover figure img{transform:scale(1.09)}
.pk-sm:hover{transform:none;border-color:var(--gold-soft);box-shadow:var(--shadow-m)}
.prod:hover{transform:translateY(-6px)}
.scene:hover{transform:none}
.scene:hover img{transform:scale(1.09)}

/* 記事冒頭の回遊帯 */
.quicklinks{display:flex;align-items:center;gap:16px;margin:22px 0 0;padding:16px 0 0;
  border-top:1px solid var(--line-soft);flex-wrap:wrap}
.quicklinks .lb{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.1em;color:var(--gold-deep);flex:none}
.quicklinks .lb::before{content:"";width:20px;height:1px;background:var(--gold-soft)}
.quicklinks ul{display:flex;gap:8px 22px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.quicklinks a{display:flex;align-items:center;gap:7px;font-family:var(--serif-jp);font-size:12px;
  line-height:1.6;color:#5A4B39;transition:color .3s,gap .3s var(--ease)}
.quicklinks a::before{content:"";width:5px;height:5px;flex:none;border-top:1px solid var(--gold-soft);
  border-right:1px solid var(--gold-soft);transform:rotate(45deg)}
.quicklinks a:hover{color:var(--gold-deep);gap:11px}

/* 読了後の追従カード（PC） */
.readnext{
  position:fixed;right:24px;bottom:24px;z-index:70;width:320px;display:none;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-l);
  overflow:hidden;opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.readnext.on{display:block}
.readnext.show{opacity:1;transform:none}
.readnext a{display:grid;grid-template-columns:88px minmax(0,1fr);gap:13px;align-items:center;padding:11px}
.readnext figure{margin:0;aspect-ratio:16/9;border-radius:var(--r-sm);overflow:hidden;background:var(--cream-2)}
.readnext figure img{width:100%;height:100%;object-fit:cover}
.readnext .lb{display:block;font-size:9.5px;letter-spacing:.14em;color:var(--gold-deep);margin-bottom:5px}
.readnext b{font-family:var(--serif-jp);font-weight:500;font-size:12px;line-height:1.6;color:var(--ink-strong)}
.readnext .cls{position:absolute;top:6px;right:8px;width:24px;height:24px;display:grid;place-items:center;
  color:var(--ink-mute);font-size:15px;line-height:1;z-index:2}
.readnext .cls:hover{color:var(--ink-strong)}
@media(max-width:1080px){.readnext{display:none!important}}

/* 電話の導線 */
.tel-cta{display:inline-flex;align-items:center;gap:13px;padding:12px 22px;border-radius:99px;
  border:1px solid var(--line);background:rgba(255,253,248,.9);backdrop-filter:blur(4px);
  box-shadow:0 3px 14px rgba(120,95,55,.12);color:var(--ink-strong);
  transition:background .35s,border-color .35s,transform .35s var(--ease),box-shadow .35s}
.tel-cta:hover{background:#fff;border-color:var(--gold-soft);transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(120,95,55,.18)}
.tel-cta b{font-family:var(--sans);font-weight:600;font-size:19px;letter-spacing:.04em;
  font-variant-numeric:tabular-nums;line-height:1;color:var(--gold-deep);display:block}
.tel-cta span{display:block}
.tel-cta span span{font-size:10px;letter-spacing:.06em;color:var(--ink-mute);display:block;margin-top:4px}
.tel-cta .ttl{font-size:10.5px;letter-spacing:.14em;color:var(--gold-deep);flex:none}

/* お問い合わせの出口 */
.exit-read{margin-top:66px;padding-top:34px;border-top:1px solid var(--line)}
.exit-read .h{display:flex;align-items:baseline;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.exit-read .h b{font-family:var(--serif-jp);font-weight:600;font-size:13.5px;letter-spacing:.05em;color:var(--ink-strong)}
.exit-read .h span{font-size:11px;color:var(--ink-mute)}

/* ==========================================================
   ヘッダー・フッターの再構成
   ========================================================== */
/* 文字ラベルのボタン（検索・LINE） */
.hd-ico{display:flex;align-items:center;gap:6px;margin-left:8px}
.hd-txt{
  display:inline-flex;align-items:center;gap:7px;flex:none;
  font-size:12.5px;letter-spacing:.05em;color:var(--ink-strong);
  padding:10px 14px;border-radius:99px;white-space:nowrap;
  transition:background .35s var(--ease),color .3s
}
.hd-txt svg{color:var(--gold-deep);transition:color .3s}
.hd-txt:hover{background:rgba(200,170,110,.14);color:var(--gold-deep)}
/* LINEアイコン */
.hd-txt--line .li{display:grid;place-items:center;flex:none;transition:transform .3s var(--ease)}
.hd-txt--line .li .line-mark{width:22px;height:auto;display:block}
.hd-txt--line:hover{background:rgba(6,199,85,.1);color:#04863A}
.hd-txt--line:hover .li{transform:translateY(-1px) scale(1.06)}

/* ドロップダウン付きのナビ */
.nav-item{position:relative;display:flex;align-items:center}
.nav-item > a,.nav-item > button{
  position:relative;display:flex;align-items:center;gap:7px;
  font-size:13.5px;letter-spacing:.07em;color:var(--ink-strong);
  padding:11px 15px;border-radius:99px;white-space:nowrap;
  transition:background .35s var(--ease),color .3s
}
.nav-item:hover > a,.nav-item:hover > button,
.nav-item > a:focus-visible,.nav-item > button:focus-visible{
  background:rgba(200,170,110,.14);color:var(--gold-deep)
}
.nav-item .caret{width:6px;height:6px;border-right:1.3px solid currentColor;border-bottom:1.3px solid currentColor;
  transform:translateY(-2px) rotate(45deg);transition:transform .35s var(--ease)}
.nav-item:hover .caret{transform:translateY(1px) rotate(225deg)}
.mega{
  position:absolute;left:50%;top:100%;transform:translate(-50%,10px);width:min(92vw,620px);
  background:rgba(253,251,247,.98);backdrop-filter:blur(14px);
  border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-l);
  padding:22px;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}
.nav-item:hover .mega,.nav-item:focus-within .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mega a{display:flex;gap:13px;align-items:flex-start;padding:13px 14px;border-radius:var(--r-md);
  transition:background .3s}
.mega a:hover{background:rgba(200,170,110,.1)}
.mega .ic{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;
  color:var(--gold-deep);border:1px solid rgba(196,166,108,.5)}
.mega b{display:block;font-family:var(--serif-jp);font-weight:600;font-size:12.5px;color:var(--ink-strong);margin-bottom:4px}
.mega span{display:block;font-size:10.5px;line-height:1.7;color:var(--ink-mute)}
.mega-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;
  padding-top:14px;border-top:1px solid var(--line-soft)}
.mega-foot .all{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--gold-deep);transition:gap .35s var(--ease)}
.mega-foot .all:hover{gap:14px}
.mega-foot .cnt{font-size:10.5px;color:var(--ink-mute);font-variant-numeric:tabular-nums}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .nav-item > a,
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .nav-item > button{color:#EADFC7}
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .nav-item:hover > a,
body[data-hero="dark"]:not(.nav-open) .hd:not(.is-stuck) .nav-item:hover > button{color:#fff}

/* --- ヘッダーの可変（ヘッダー定義より後に置くこと） --- */
@media(max-width:1280px){
  /* 幅が足りなくなったら、まず文字ラベルを畳んでアイコンだけにする */
  .hd-txt span:not(.li){display:none}
  .hd-txt{padding:10px 11px}
  .hd-txt > svg{width:18px;height:18px}
  .hd-txt--line{padding:8px 10px}
  .hd-txt--line .li .line-mark{width:24px}
}
@media(max-width:1160px){
  .hd-cta{padding:11px 16px;font-size:12px}
  .nav-item > a,.nav-item > button{padding:11px 12px;font-size:13px}
}
@media(max-width:1080px){
  .hd-txt{display:none}
  .hd-ico{gap:6px;margin-left:auto}
}
@media(max-width:720px){
  .hd-cta{display:none}
}

/* ドロワーの見出し区切り */
.drawer-sec{display:flex;align-items:center;gap:11px;margin:26px 0 10px;
  font-family:var(--en);font-size:11px;letter-spacing:.28em;color:var(--gold-deep)}
.drawer-sec::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(200,170,110,.45),rgba(200,170,110,0))}
.drawer-sec:first-of-type{margin-top:0}
.drawer-nav a .jp small{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.05em;
  color:var(--ink-mute);margin-top:5px;font-weight:400;-webkit-text-fill-color:currentColor}

/* フッター */
.ft-grid{grid-template-columns:1.5fr 1fr 1fr 1fr}
.ft-col li{margin-bottom:10px}
.ft-legal{display:flex;align-items:center;justify-content:center;gap:8px 22px;flex-wrap:wrap;
  padding:18px 0 0;margin-top:38px;border-top:1px solid var(--line)}
.ft-legal a{font-size:11px;color:var(--ink-mute);letter-spacing:.05em;transition:color .3s}
.ft-legal a:hover{color:var(--gold-deep)}
.ft-legal .sep{width:1px;height:11px;background:var(--line)}
.ft-btm{margin-top:14px;border-top:0;padding:0 0 22px}
@media(max-width:1080px){
  .ft-grid{grid-template-columns:1fr 1fr;gap:30px}
  .ft-brand{grid-column:1/-1}
}
@media(max-width:720px){
  .ft-legal{gap:6px 14px}
  .ft-legal .sep{display:none}
}

/* ==========================================================
   複数ページで使う部品（分割時にページ側へ残らないよう共通へ集約）
   ========================================================== */

/* --- article.css から共通へ移動 --- */
.crumbs{padding:104px 0 0;font-size:11px;color:var(--ink-mute);letter-spacing:.04em}

.crumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;align-items:center}

.crumbs li{display:flex;align-items:center;gap:8px}

.crumbs li+li::before{content:"";width:4px;height:4px;border-top:1px solid var(--gold-soft);
  border-right:1px solid var(--gold-soft);transform:rotate(45deg)}

.crumbs a{color:var(--ink-mute);transition:color .3s}

.crumbs a:hover{color:var(--gold-deep)}

.crumbs [aria-current]{color:var(--ink-strong)}
.nextup{
  display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:center;
  margin:38px 0;padding:14px;border-radius:9px;background:#fff;
  border:1px solid rgba(200,170,110,.34);box-shadow:var(--shadow-s);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)
}

.nextup:hover{transform:translateY(-3px);box-shadow:var(--shadow-m)}

.nextup figure{margin:0;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:var(--cream-2)}

.nextup figure img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}

.nextup:hover figure img{transform:scale(1.06)}

.nextup .lb{font-size:10px;letter-spacing:.14em;color:var(--gold-deep);display:block;margin-bottom:7px}

.nextup b,.nextup .nextup-t{font-family:var(--serif-jp);font-weight:600;font-size:14px;line-height:1.7;
  color:var(--ink-strong);display:block;margin-bottom:8px}

.nextup p{margin:0;font-size:11px;line-height:1.8;color:var(--ink-mute)}
.dense{display:grid;grid-template-columns:1fr 1fr;gap:0 34px}

.dense a{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;
  padding:16px 0;border-bottom:1px solid var(--line-soft);transition:padding-left .35s var(--ease)}

.dense a:hover{padding-left:6px}

.dense figure{margin:0;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:var(--cream-2)}

.dense figure img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}

.dense a:hover figure img{transform:scale(1.07)}

.dense b{font-family:var(--serif-jp);font-weight:500;font-size:13.5px;line-height:1.7;
  color:var(--ink-strong);display:block;margin-bottom:6px}

.dense span{font-size:10.5px;color:var(--ink-mute)}
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:80;display:none;gap:10px;padding:10px 14px;
  background:rgba(253,251,247,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);
  transform:translateY(110%);transition:transform .45s var(--ease)
}

.sticky-cta.on{transform:none}

.sticky-cta .btn{flex:1;justify-content:center;padding:13px 10px;font-size:12px}

@media(max-width:1080px){
  .dense{grid-template-columns:1fr}}

@media(max-width:720px){
  .crumbs{padding-top:84px;font-size:10px}
  .nextup{grid-template-columns:110px minmax(0,1fr);gap:13px}
  .sticky-cta{display:flex}}

/* --- list.css から共通へ移動 --- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:34px}
#pickup[hidden] + .grid3{margin-top:30px}

.grid3 .gb{grid-column:1/-1}
.gbanner{
  position:relative;display:block;border-radius:10px;overflow:hidden;min-height:180px;
  box-shadow:0 10px 28px rgba(74,58,37,.2)
}

.gbanner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:74% 50%;
  z-index:0;transition:transform 1.5s var(--ease)}

.gbanner:hover img{transform:scale(1.04)}

.gbanner::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(92deg,rgba(58,44,26,.95) 0%,rgba(74,57,33,.86) 40%,rgba(100,77,44,.4) 66%,transparent 94%)}

.gbanner-in{position:relative;z-index:2;padding:28px 34px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}

.gbanner .eyebrow{font-size:10.5px;letter-spacing:.15em;color:#EEE1C6;margin:0 0 9px}

.gbanner .ttl{display:block;font-family:var(--mincho);font-weight:500;font-size:24px;line-height:1.45;color:#fff;margin:0 0 9px}

.gbanner p{margin:0;font-size:11.5px;color:#E2D3B4;line-height:1.8}

.gbanner .btn{flex:none;margin-left:auto}
.tagcloud{display:flex;flex-wrap:wrap;gap:9px}

.tagcloud a{
  font-size:11.5px;color:var(--gold-deep);background:#fff;border:1px solid var(--line);
  border-radius:99px;padding:8px 16px;transition:all .35s var(--ease)
}

.tagcloud a:hover{background:var(--gold);color:#fff;border-color:var(--gold);transform:translateY(-2px)}

.tagcloud a b{font-weight:400;color:var(--ink-mute);margin-left:5px;font-size:10px;font-variant-numeric:tabular-nums}

.tagcloud a:hover b{color:rgba(255,255,255,.8)}
.pager{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:44px;flex-wrap:wrap}

.pager a,.pager span{
  min-width:40px;height:40px;display:grid;place-items:center;border-radius:6px;font-size:12.5px;
  color:var(--ink-mute);border:1px solid transparent;font-variant-numeric:tabular-nums;
  transition:all .35s var(--ease)
}

.pager a:hover{background:#fff;border-color:var(--line);color:var(--gold-deep)}

.pager .on{background:linear-gradient(135deg,#B18F51,#8C6C34);color:#fff;box-shadow:0 4px 14px rgba(138,107,51,.24)}

.pager .nx{padding:0 16px;border-color:var(--line);background:#fff;color:var(--gold-deep);gap:9px;display:flex;align-items:center}

.pager .dots{min-width:20px}

@media(max-width:720px){
  .grid3{grid-template-columns:1fr 1fr;gap:14px}
  .gbanner::after{background:linear-gradient(180deg,rgba(52,40,22,.92),rgba(48,36,20,.8))}
  .gbanner-in{padding:22px 20px}
  .gbanner .ttl{display:block;font-size:19px}
  .gbanner .btn{margin-left:0;width:100%;justify-content:center}}
@media(max-width:860px){.grid3{grid-template-columns:1fr 1fr}}

@media(max-width:430px){.grid3{grid-template-columns:1fr}}

/* --- about.css から共通へ移動 --- */
.mission{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:56px;align-items:stretch}
.mission-fig{position:relative;border-radius:10px;overflow:hidden;height:100%;min-height:340px;
  box-shadow:var(--shadow-m);margin:-64px 0 0}
.mission-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% 46%}

.mission .lead-l{font-family:var(--mincho);font-weight:500;font-size:clamp(19px,2.1vw,26px);
  line-height:1.85;letter-spacing:.04em;color:var(--ink-strong);margin:0 0 24px}

.mission p{font-size:13.5px;line-height:2.1;color:#5A4B39;margin:0 0 18px}
.faq{border-top:1px solid var(--line-soft)}

.faq details{border-bottom:1px solid var(--line-soft)}

.faq summary{
  display:flex;align-items:flex-start;gap:14px;padding:20px 44px 20px 0;cursor:pointer;position:relative;
  font-family:var(--serif-jp);font-weight:500;font-size:13.5px;line-height:1.75;color:var(--ink-strong);
  list-style:none;transition:color .3s}

.faq summary::-webkit-details-marker{display:none}

.faq summary:hover{color:var(--gold-deep)}

.faq summary::before{content:"Q";font-family:var(--en);font-size:16px;color:var(--gold);flex:none;line-height:1.4}

.faq summary::after{
  content:"";position:absolute;right:8px;top:26px;width:9px;height:9px;
  border-right:1.5px solid var(--gold-soft);border-bottom:1.5px solid var(--gold-soft);
  transform:rotate(45deg);transition:transform .4s var(--ease)}

.faq details[open] summary::after{transform:rotate(-135deg)}

.faq .ans{display:flex;gap:14px;padding:0 44px 22px 0;font-size:12.5px;line-height:2;color:var(--ink-mute)}

.faq .ans::before{content:"A";font-family:var(--en);font-size:16px;color:var(--gold-soft);flex:none;line-height:1.5}
.corp{width:100%;border-collapse:collapse;font-size:12.5px}

.corp th,.corp td{text-align:left;padding:16px 4px;border-bottom:1px solid var(--line-soft);vertical-align:top}

.corp th{width:180px;font-family:var(--serif-jp);font-weight:600;color:var(--ink-strong);letter-spacing:.05em}

.corp td{color:#5A4B39;line-height:1.9}

@media(max-width:1080px){
  .mission{grid-template-columns:1fr;gap:34px}
  .mission-fig{height:auto;aspect-ratio:16/10;min-height:0;margin:0;order:-1}}

@media(max-width:720px){
  .corp th{width:auto;display:block;border:0;padding-bottom:4px}
  .corp td{display:block;padding-top:0}}

/* --- contact.css から共通へ移動 --- */
.chead{padding:28px 0 0;position:relative}

.chead .kicker{display:flex;align-items:center;gap:11px;font-family:var(--en);font-size:12.5px;
  font-weight:600;letter-spacing:.3em;color:#7A5A25;margin:0 0 14px}

.chead .kicker::before{content:"";width:34px;height:1px;flex:none;background:linear-gradient(90deg,rgba(138,107,51,.15),#9C7A34)}

.chead h1{font-family:var(--mincho);font-weight:600;font-size:clamp(27px,3.3vw,42px);letter-spacing:.05em;
  line-height:1.45;margin:0 0 16px;
  background:linear-gradient(104deg,#231A0D,#3C2C12 46%,#5E4720 82%,#6B5124);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.chead p{font-family:var(--serif-jp);font-size:13.5px;line-height:2;color:#5A4B39;margin:0;max-width:44em}

/* --- doc.css から共通へ移動 --- */
.corp--law th{width:220px}

@media(max-width:720px){
  .corp--law th{width:auto}}

/* --- orchid.css から共通へ移動 --- */

.ohero .crumbs a,.ohero .crumbs [aria-current]{color:#D8C8AC}

.ohero .crumbs li+li::before{border-color:#B79E76}

@media(max-width:720px){
  /* 見出しと補足を2段にする */
  .exit-read .h{display:block}
  .exit-read .h b{display:block;font-size:14px;margin-bottom:5px}
  .exit-read .h span{display:block;font-size:11.5px}
  .exit-read{margin-top:46px;padding-top:26px}
}

/* ==========================================================
   スキップリンク / 印刷
   ========================================================== */
.skip-link{
  position:fixed;left:12px;top:-60px;z-index:400;
  background:#fff;border:1px solid var(--gold);border-radius:var(--r-sm);
  padding:11px 18px;font-size:13px;color:var(--gold-deep);box-shadow:var(--shadow-m);
  transition:top .25s var(--ease)}
.skip-link:focus{top:12px}

@media print{
  /* 画面用の演出・追従要素・導線は印刷しない */
  .hd,.drawer,.sticky-cta,.readnext,.progress,.orn,.bokeh,.hero-bg,.ahero-bg,.ohero-bg,
  .ft-sns,.ft-mini,.ft-legal,.fcta,.gbanner,.inbanner,.vbanner,.gband,.keep,.pager,
  .fbar,.share,.pn,.skip-link,.tagcloud,.exit-read,.about-photo,.mission-fig{display:none!important}
  html,body{background:#fff!important;color:#000!important;font-size:10.5pt}
  body::after{display:none}
  .wrap,.wrap--wide{width:auto;max-width:none;margin:0;padding:0}
  .panel,.card,.prod,.plan,.corp,.stats{border-color:#ccc!important;box-shadow:none!important;background:#fff!important}
  .h1,.ah h1,.lhead h1,.ahero h1,.chead h1,.thanks h1,.stitle h2,.logo b i,.stat b,.nf .code,.doc-body h2{
    -webkit-text-fill-color:#000!important;color:#000!important;background:none!important;filter:none!important}
  .prose,.doc-body{font-size:10.5pt;line-height:1.8}
  .prose a::after,.doc-body a::after{content:" (" attr(href) ")";font-size:8.5pt;color:#555}
  .art{display:block}
  .side,.cside,.doc-toc{display:none!important}
  a{text-decoration:none;color:#000}
  section,.sec{padding:0;page-break-inside:avoid}
  h1,h2,h3{page-break-after:avoid}
  img{max-width:100%!important;page-break-inside:avoid}
}
