/* =====================================================
   洗いの森ランドリー — Design System v2
   宵藍の夜 × 石鹸白の朝 × 若葉 × 窓灯り
   8pxグリッド／流体タイポ／多層シャドウ／palt
   ===================================================== */
:root{
  /* 色階調（宵藍の夜 → 石鹸白の朝） */
  --yoi:#262D4D;         /* メイン：宵藍（夜空） */
  --yoi2:#1B2138;        /* 深夜 */
  --yoi3:#12162A;        /* 最深部 */
  --yoi-soft:#303860;    /* 宵藍・明（面の階調用） */
  --shiro:#F6F8F4;       /* 背景：石鹸白 */
  --shiro2:#ECF1E9;      /* ソフト背景 */
  --paper:#FCFDFB;       /* カード・紙面 */
  --wakaba:#3E9B68;      /* アクセント：若葉 */
  --wakaba2:#2E7A50;     /* 若葉・濃 */
  --asa:#E98A5B;         /* 朝焼けアプリコット */
  --hi:#F4C25C;          /* 窓灯りアンバー */
  --ink:#1E2236; --body-c:#3F4459; --muted:#787D93;
  --line:rgba(30,34,54,.12); --line-soft:rgba(30,34,54,.06);
  --line-w:rgba(246,248,244,.16);
  /* 角丸（ランドリーの丸窓に寄せて、やや大きめで統一） */
  --r-s:12px; --r-m:18px; --r-l:24px;
  /* モーション */
  --ease:cubic-bezier(.22,1,.36,1);
  /* 余白システム（8px基準・セクションは流体で96〜152px） */
  --sec:clamp(96px,11vw,152px);
  /* 多層の柔らかいシャドウ */
  --sh-s:0 1px 2px rgba(27,33,56,.05), 0 10px 26px -14px rgba(27,33,56,.22);
  --sh-m:0 2px 5px rgba(27,33,56,.05), 0 22px 48px -22px rgba(27,33,56,.32);
  --sh-l:0 4px 10px rgba(27,33,56,.06), 0 42px 84px -34px rgba(27,33,56,.46);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--shiro); color:var(--body-c); font-family:'Zen Kaku Gothic New',sans-serif;
  line-height:2; font-size:16px; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  font-feature-settings:"palt"; overflow-x:hidden;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
p{margin:0;}
::selection{background:var(--yoi); color:#FFFDF6;}
:focus-visible{outline:3px solid var(--hi); outline-offset:3px; border-radius:4px;}
.mono{font-family:'Space Grotesk',monospace; letter-spacing:.06em; font-variant-numeric:tabular-nums;}
.mincho{font-family:'Shippori Mincho',serif;}
h1,h2,h3{margin:0; color:var(--ink); font-family:'Shippori Mincho',serif; font-weight:700; line-height:1.4; letter-spacing:.02em;}
h1,h2,h3,.lead,.btn,summary{word-break:auto-phrase; text-wrap:balance;}
.wrap{width:min(1120px,100% - clamp(40px,7vw,64px)); margin:0 auto;}
.eyebrow{font-family:'Space Grotesk',monospace; font-size:11.5px; letter-spacing:.32em; text-transform:uppercase; color:var(--wakaba2); font-weight:700; display:inline-flex; gap:14px; align-items:center;}
.eyebrow::before{content:""; width:32px; height:2px; border-radius:2px; background:linear-gradient(90deg,var(--asa),var(--hi));}
h2.big{font-size:clamp(29px,4.4vw,50px); line-height:1.35; margin:18px 0 0;}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5em; font-weight:700; font-size:15px; min-height:56px; padding:16px 38px; border-radius:999px; border:1.5px solid transparent; transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease); cursor:pointer;}
.btn--yoi{background:var(--yoi); color:#fff; box-shadow:var(--sh-s);}
.btn--yoi:hover{transform:translateY(-2px); background:var(--wakaba2); box-shadow:var(--sh-m);}
.btn--ghost{border-color:var(--yoi); color:var(--yoi); background:transparent;}
.btn--ghost:hover{background:var(--yoi); color:#fff;}
/* シグネチャーモチーフ：泡（小さな円の点線罫） */
.awa-rule{display:flex; gap:10px; align-items:center; justify-content:center; padding:0; margin:0; list-style:none;}
.awa-rule i{width:6px; height:6px; border-radius:50%; background:var(--wakaba); opacity:.5;}
.awa-rule i:nth-child(2){width:10px; height:10px; opacity:.35;}
.awa-rule i:nth-child(3){width:4px; height:4px; opacity:.7;}

/* ==================== ZOROYA:HEADER（告知マーキー＋sticky・スクロールで縮む） ==================== */
.c-mq{background:linear-gradient(90deg,var(--yoi2),var(--yoi) 40%,var(--yoi2)); color:rgba(246,248,244,.92); overflow:hidden; position:relative;}
.c-mq__belt{display:flex; width:max-content; animation:c-mq-run 30s linear infinite;}
.c-mq:hover .c-mq__belt{animation-play-state:paused;}
.c-mq__item{display:inline-flex; align-items:center; gap:12px; padding:10px 30px; font-size:12.5px; letter-spacing:.14em; white-space:nowrap;}
.c-mq__item b{font-weight:700; color:var(--hi);}
.c-mq__dot{width:5px; height:5px; border-radius:50%; background:var(--wakaba); flex:none;}
@keyframes c-mq-run{ to{ transform:translateX(-50%);} }
.c-hd{position:sticky; top:0; z-index:90; background:rgba(246,248,244,.82); backdrop-filter:blur(14px) saturate(1.5); -webkit-backdrop-filter:blur(14px) saturate(1.5); border-bottom:1px solid var(--line-soft);}
.c-hd__in{max-width:1240px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px 28px;}
.c-hd__brand{display:block; flex:none; border-radius:8px;}
.c-hd__logo{height:46px; width:auto; display:block; transition:height .35s var(--ease);}
.c-hd__nav{display:flex; gap:8px;}
.c-hd__nav a{color:var(--ink); font-size:14px; font-weight:700; white-space:nowrap; position:relative; padding:10px 12px; border-radius:8px; transition:color .25s;}
.c-hd__nav a::after{content:""; position:absolute; left:50%; bottom:2px; width:4px; height:4px; border-radius:50%; background:var(--wakaba); transform:translateX(-50%) scale(0); transition:transform .25s var(--ease);}
.c-hd__nav a:hover::after, .c-hd__nav a[aria-current="page"]::after{transform:translateX(-50%) scale(1);}
.c-hd__nav a:hover{color:var(--wakaba2);}
.c-hd__nav a[aria-current="page"]{color:var(--wakaba2);}
.c-hd__cta{display:inline-flex; align-items:center; gap:8px; background:var(--yoi); color:var(--shiro); font-weight:700; font-size:13.5px; min-height:44px; padding:10px 22px; border-radius:999px; white-space:nowrap; box-shadow:var(--sh-s); transition:background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);}
.c-hd__cta:hover{background:var(--wakaba2); transform:translateY(-1px); box-shadow:var(--sh-m);}
.c-hd__b{font-family:'Space Grotesk',monospace; font-size:9.5px; letter-spacing:.18em; background:var(--asa); border-radius:999px; padding:2px 9px;}
@supports (animation-timeline: scroll()){
  .c-hd{animation:c-hd-shrink linear both; animation-timeline:scroll(); animation-range:0 180px;}
  .c-hd__logo{animation:c-hd-logo linear both; animation-timeline:scroll(); animation-range:0 180px;}
  @keyframes c-hd-shrink{to{background:rgba(252,253,251,.9); box-shadow:0 12px 32px -20px rgba(27,33,56,.35); border-bottom-color:var(--line);}}
  @keyframes c-hd-logo{to{height:38px;}}
}
@media(max-width:1080px){
  .c-hd__in{flex-wrap:wrap; gap:8px; padding:10px 18px 0;}
  .c-hd__logo{height:40px;}
  .c-hd__nav{order:3; width:100%; overflow-x:auto; gap:4px; padding:4px 0 10px; scrollbar-width:none;}
  .c-hd__nav::-webkit-scrollbar{display:none;}
  .c-hd__nav a{padding:10px 10px;}
  .c-hd__cta{font-size:12.5px; padding:10px 16px;}
}

/* ==================== FV（fv-88 TimeLapse：空が32秒で一巡） ==================== */
.c-fv{position:relative; width:100%; height:100svh; min-height:580px; overflow:hidden; background:#1B2138; color:#FFFDF6;}
.c-fv__sky{position:absolute; inset:0; animation:c-fv-sky 32s linear infinite;}
@keyframes c-fv-sky{
  0%   { background:linear-gradient(180deg,#f4b78a 0%,#e88a6a 45%,#8a5a6e 100%); } /* 朝焼け */
  18%  { background:linear-gradient(180deg,#9cc4e4 0%,#cfe2ee 60%,#e8e2c8 100%); } /* 昼 */
  40%  { background:linear-gradient(180deg,#7eaedd 0%,#cfe2ee 64%,#e8ddb8 100%); } /* 午後 */
  55%  { background:linear-gradient(180deg,#e8965a 0%,#d4607a 55%,#5a3a6e 100%); } /* 夕焼け */
  70%  { background:linear-gradient(180deg,#1c2440 0%,#141a30 55%,#0d1020 100%); } /* 夜 */
  88%  { background:linear-gradient(180deg,#141a30 0%,#23304e 60%,#3a3050 100%); } /* 未明 */
  100% { background:linear-gradient(180deg,#f4b78a 0%,#e88a6a 45%,#8a5a6e 100%); }
}
.c-fv__stars{position:absolute; inset:0; animation:c-fv-stars 32s linear infinite; opacity:0;
  background-image:radial-gradient(1.5px 1.5px at 12% 22%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 34% 12%, #fff 50%, transparent 51%),
    radial-gradient(2px 2px at 58% 28%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 76% 16%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 88% 34%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 46% 40%, #fff 50%, transparent 51%),
    radial-gradient(2px 2px at 22% 44%, #fff 50%, transparent 51%);}
@keyframes c-fv-stars{ 0%,58%{opacity:0;} 66%,84%{opacity:.9;} 92%,100%{opacity:0;} }
.c-fv__orbit{position:absolute; left:50%; top:108%; width:0; height:0; animation:c-fv-orb 32s linear infinite;}
@keyframes c-fv-orb{ from{ transform:rotate(-188deg);} to{ transform:rotate(172deg);} }
.c-fv__sun,.c-fv__moon{position:absolute; left:-3.5vmin; top:-3.5vmin; width:7vmin; height:7vmin; border-radius:50%;}
.c-fv__sun{transform:translateY(-74vh); background:radial-gradient(circle at 38% 32%, #fff7d8, #f6c24a 70%); box-shadow:0 0 60px rgba(246,194,74,.8);}
.c-fv__sunarm,.c-fv__moonarm{position:absolute; left:0; top:0;}
.c-fv__moonarm{transform:rotate(180deg);}
.c-fv__moon{transform:translateY(-74vh); background:radial-gradient(circle at 60% 38%, #f4f1e4, #c8c4b2 72%); box-shadow:0 0 36px rgba(244,241,228,.5);}
.c-fv__moon::after{content:""; position:absolute; left:18%; top:24%; width:26%; height:26%; border-radius:50%; background:rgba(140,136,120,.5); box-shadow:2.2vmin 1.4vmin 0 -4px rgba(140,136,120,.42);}
.c-fv__town{position:absolute; left:0; bottom:0; width:100%; height:30vh; z-index:3;}
.c-fv__town svg{width:100%; height:100%; display:block;}
.c-fv__win{fill:#0d0f16; animation:c-fv-win 32s linear infinite;}
@keyframes c-fv-win{ 0%,52%{ fill:#262a36; } 60%,86%{ fill:#ffd98a; } 94%,100%{ fill:#262a36; } }
/* 当店の窓だけ、一日じゅう灯りっぱなし（24時間営業の表現） */
.c-fv__win--ours{animation:none; fill:#ffd98a;}
.c-fv__copy{position:absolute; left:8vw; top:13vh; z-index:5; display:flex; flex-direction:column; align-items:flex-start; max-height:74vh; text-shadow:0 2px 24px rgba(10,10,20,.35);}
.c-fv__kicker{font-size:11px; letter-spacing:.5em; margin:0 0 20px; opacity:.88;}
.c-fv__title{font-size:clamp(34px,5.2vw,66px); font-weight:600; line-height:1.42; letter-spacing:.07em; margin:0; color:#FFFDF6;}
.c-fv__title span{display:block; white-space:nowrap;}
.c-fv__lead{font-size:clamp(13px,1.5vw,15.5px); line-height:2.1; letter-spacing:.1em; opacity:.92; margin:24px 0 0; max-width:30em;}
.c-fv__cta{align-self:flex-start; display:inline-flex; align-items:center; min-height:56px; margin-top:32px; padding:15px 44px; border:1.5px solid rgba(255,253,246,.9); border-radius:999px; color:#FFFDF6; font-weight:700; letter-spacing:.2em; text-decoration:none; white-space:nowrap; background:rgba(255,253,246,.07); backdrop-filter:blur(6px); transition:background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);}
.c-fv__cta:hover{background:#FFFDF6; color:var(--yoi); transform:translateY(-2px);}
.c-fv__clock{position:absolute; right:6vw; top:7vh; z-index:5; font-size:11px; letter-spacing:.4em; opacity:.8; margin:0;}
.c-fv__rise{opacity:0; animation:c-fv-rise 1.4s var(--ease) forwards;}
.c-fv__rise--1{animation-delay:.3s;} .c-fv__rise--2{animation-delay:.55s;} .c-fv__rise--3{animation-delay:.85s;}
@keyframes c-fv-rise{ from{ opacity:0; transform:translateY(24px);} to{ opacity:1; transform:translateY(0);} }
.c-fv::after{content:""; position:absolute; inset:0; z-index:7; pointer-events:none; opacity:.55;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");}
@media(max-width:680px){
  .c-fv__copy{left:20px; right:20px; top:12vh;}
  .c-fv__title{font-size:min(29px,7.8vw); letter-spacing:.05em;}
  .c-fv__clock{right:20px; top:6vh; letter-spacing:.26em;}
  .c-fv__cta{padding:14px 30px; letter-spacing:.14em;}
}
@media (prefers-reduced-motion: reduce){
  .c-fv__sky,.c-fv__stars,.c-fv__orbit,.c-fv__win{animation:none;}
  .c-fv__sky{background:linear-gradient(180deg,#e8965a 0%,#d4607a 55%,#5a3a6e 100%);}
  .c-fv__orbit{transform:rotate(-60deg);}
  .c-fv__win{fill:#ffd98a;}
  .c-fv__rise{animation:none; opacity:1;}
  .c-mq__belt{animation:none;}
}

/* ==================== intro-01：全幅写真＋オーバーレイ＋特大ステートメント ==================== */
.c-intro{position:relative; min-height:88vh; display:flex; align-items:flex-end; overflow:hidden; color:#fff;}
.c-intro__bg{position:absolute; inset:-12% 0; will-change:transform;}
.c-intro__bg img{width:100%; height:100%; object-fit:cover;}
.c-intro__overlay{position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(18,22,42,.24) 0%, rgba(18,22,42,.6) 55%, rgba(18,22,42,.9) 100%),
  linear-gradient(115deg, rgba(38,45,77,.5), rgba(62,155,104,.2) 80%);}
.c-intro__grid{position:absolute; inset:0; pointer-events:none; opacity:.12;
  background-image:linear-gradient(rgba(255,255,255,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.6) 1px,transparent 1px);
  background-size:64px 64px; -webkit-mask-image:linear-gradient(180deg,transparent,#000 40%); mask-image:linear-gradient(180deg,transparent,#000 40%);}
.c-intro__ticks{position:absolute; top:30px; left:30px; right:30px; bottom:30px; pointer-events:none;}
.c-intro__ticks i{position:absolute; width:18px; height:18px; border:2px solid var(--asa);}
.c-intro__ticks i:nth-child(1){top:0; left:0; border-right:0; border-bottom:0;}
.c-intro__ticks i:nth-child(2){top:0; right:0; border-left:0; border-bottom:0;}
.c-intro__ticks i:nth-child(3){bottom:0; left:0; border-right:0; border-top:0;}
.c-intro__ticks i:nth-child(4){bottom:0; right:0; border-left:0; border-top:0;}
.c-intro__content{position:relative; z-index:3; padding:0 7vw 12vh; max-width:1200px;}
.c-intro__eb{font-family:'Space Grotesk',monospace; font-size:12px; letter-spacing:.32em; text-transform:uppercase; color:var(--hi); display:inline-flex; gap:12px; align-items:center; margin-bottom:24px;}
.c-intro__eb::before{content:""; width:34px; height:2px; background:var(--hi);}
.c-intro__title{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(31px,5.6vw,70px); line-height:1.4; color:#fff; letter-spacing:.02em; text-shadow:0 2px 30px rgba(0,0,0,.4);}
.c-intro__title .mk{color:var(--hi);}
.c-intro__lead{margin-top:28px; max-width:32em; color:rgba(255,255,255,.86); font-size:16px; line-height:2.05;}
@media(max-width:820px){ .c-intro__content{padding:0 24px 10vh;} .c-intro{min-height:78vh;} }

/* ==================== reasons-08：三つの約束（中抜き文字が塗られる）＋ポラロイド ==================== */
.c-rsn{padding:var(--sec) 0; background:var(--shiro);}
.c-rsn__note{color:var(--muted); font-size:13px; margin:18px 0 0;}
.c-rsn__vows{margin-top:32px;}
.c-rsn__vow{display:grid; grid-template-columns:1fr 224px; gap:32px; align-items:center; padding:56px 0 48px; border-bottom:1px solid var(--line);}
.c-rsn__word{position:relative; display:inline-block; font-family:'Shippori Mincho',serif; font-weight:700;
  font-size:clamp(46px,8.5vw,108px); line-height:1.2; letter-spacing:.04em;
  color:transparent; -webkit-text-stroke:1.5px rgba(34,38,57,.4); white-space:nowrap;}
.c-rsn__word i{position:absolute; inset:0; font-style:normal; -webkit-text-stroke:0; clip-path:inset(0 100% 0 0); will-change:clip-path;}
.c-rsn__vow--1 .c-rsn__word i{color:var(--wakaba2);}
.c-rsn__vow--2 .c-rsn__word i{color:#C98A2E;}
.c-rsn__vow--3 .c-rsn__word i{color:var(--asa);}
.c-rsn__ex{display:flex; gap:22px; align-items:baseline; margin-top:20px;}
.c-rsn__no{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.26em; color:var(--muted); flex:none;}
.c-rsn__ex p{margin:0; font-size:14.5px; line-height:2.05; color:var(--body-c); max-width:40em;}
.c-rsn__pola{justify-self:end; background:#fff; padding:10px 10px 12px; border-radius:3px; box-shadow:var(--sh-m); transform:rotate(var(--pr,2deg)); width:224px; transition:transform .5s var(--ease), box-shadow .5s var(--ease);}
.c-rsn__pola:hover{transform:rotate(0deg) translateY(-6px); box-shadow:var(--sh-l);}
.c-rsn__pola img{width:100%; aspect-ratio:4/3; object-fit:cover;}
.c-rsn__pola figcaption{font-family:'Zen Kurenaido',sans-serif; font-size:12.5px; color:var(--body-c); text-align:center; padding-top:8px;}
@media(max-width:760px){
  .c-rsn__vow{grid-template-columns:1fr; gap:20px; padding:40px 0 36px;}
  .c-rsn__pola{justify-self:start; width:min(240px,80%);}
}

/* ==================== features-05：ジグザグ・オーバーラップ ==================== */
.c-feat{padding:var(--sec) 0; background:var(--shiro2); position:relative; overflow-x:clip;
  background-image:radial-gradient(rgba(62,155,104,.08) 1.4px,transparent 1.4px); background-size:26px 26px;}
.c-feat__head{margin-bottom:72px;}
.c-feat__zig{display:grid; gap:96px;}
.c-feat__blk{position:relative; display:grid; grid-template-columns:1.15fr .85fr; align-items:center;}
.c-feat__blk:nth-child(even){grid-template-columns:.85fr 1.15fr;}
.c-feat__img{position:relative; aspect-ratio:16/11; border-radius:var(--r-l); overflow:hidden; box-shadow:var(--sh-l);}
.c-feat__blk:nth-child(even) .c-feat__img{order:2;}
.c-feat__img img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease);}
.c-feat__blk:hover .c-feat__img img{transform:scale(1.04);}
.c-feat__card{position:relative; z-index:3; background:linear-gradient(165deg,#fff, var(--paper) 60%); border:1px solid var(--line-soft); border-radius:var(--r-m); padding:38px 36px; margin-left:-72px; box-shadow:var(--sh-m);}
.c-feat__blk:nth-child(even) .c-feat__card{order:1; margin-left:0; margin-right:-72px;}
.c-feat__n{position:absolute; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:clamp(80px,12vw,150px); color:transparent; -webkit-text-stroke:1.5px var(--wakaba); line-height:.8; opacity:.4; z-index:1; top:-58px;}
.c-feat__blk:nth-child(odd) .c-feat__n{right:6%;}
.c-feat__blk:nth-child(even) .c-feat__n{left:6%;}
.c-feat__card h3{font-size:clamp(20px,2.5vw,27px); line-height:1.5; margin:0 0 14px;}
.c-feat__card p{color:var(--body-c); font-size:14.5px; line-height:2.05; margin:0;}
.c-feat__tag{display:inline-block; margin-top:18px; font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.14em; color:var(--asa); border:1px solid rgba(233,138,91,.55); border-radius:99px; padding:5px 14px; background:rgba(233,138,91,.06);}
@media(max-width:820px){
  .c-feat__zig{gap:64px;}
  .c-feat__blk, .c-feat__blk:nth-child(even){grid-template-columns:1fr;}
  .c-feat__img, .c-feat__blk:nth-child(even) .c-feat__img{order:0;}
  .c-feat__card, .c-feat__blk:nth-child(even) .c-feat__card{order:0; margin:-44px 16px 0; padding:28px 24px;}
  .c-feat__n{top:-44px;}
}

/* ==================== numbers-12：特大「24」の中に店内写真 ==================== */
.c-num{padding:var(--sec) 0; background:radial-gradient(90% 60% at 50% 0%, var(--yoi-soft), transparent 70%), var(--yoi2); color:#EDF0EA; position:relative; overflow:hidden;}
.c-num::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(46% 34% at 50% 62%, rgba(244,194,92,.1), transparent 72%);}
.c-num .eyebrow{color:var(--hi);}
.c-num .eyebrow::before{background:var(--hi);}
.c-num h2.big{color:#F4F6F0;}
.c-num__head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; position:relative;}
.c-num__hn{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.24em; color:rgba(237,240,234,.5); white-space:nowrap;}
.c-num__feature{text-align:center; margin-top:36px; position:relative;}
.c-num__bignum{display:inline-block; font-family:'Space Grotesk',monospace; font-weight:700; line-height:.94; letter-spacing:-.04em; font-variant-numeric:tabular-nums;
  font-size:clamp(150px,27vw,330px);
  background-image:linear-gradient(rgba(244,194,92,.22),rgba(244,194,92,.22)),url('../../src/wash-bright.jpg');
  background-size:cover; background-position:50% 35%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  -webkit-text-stroke:1px rgba(237,240,234,.28);}
.c-num__bignum>.c-num__h{font-size:.4em; letter-spacing:0;}
.c-num__sub{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(19px,2.6vw,31px); margin:14px 0 0; letter-spacing:.12em; color:#F4F6F0;}
.c-num__ds{font-size:13.5px; line-height:2.1; color:rgba(237,240,234,.66); max-width:34em; margin:18px auto 0;}
.c-num__sides{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:80px; border-top:1px solid var(--line-w); position:relative;}
.c-num__side{padding:34px 18px 8px; text-align:center; border-right:1px solid var(--line-w);}
.c-num__side:last-child{border-right:none;}
.c-num__v{font-family:'Space Grotesk',monospace; font-weight:700; font-size:clamp(54px,6vw,86px); line-height:1; color:#F4F6F0; font-variant-numeric:tabular-nums;}
.c-num__v>small{font-family:'Shippori Mincho',serif; font-size:.34em; color:var(--hi); margin-left:4px;}
.c-num__k{font-size:12px; color:rgba(237,240,234,.62); display:block; margin-top:12px; letter-spacing:.12em;}
.c-num__note{margin-top:32px; font-size:10.5px; color:rgba(237,240,234,.45); text-align:right; letter-spacing:.12em; position:relative;}
@media(max-width:680px){
  .c-num__head{flex-direction:column; align-items:flex-start;}
  .c-num__sides{grid-template-columns:1fr; margin-top:56px;}
  .c-num__side{border-right:none; border-bottom:1px solid var(--line-w); padding:26px 10px;}
  .c-num__side:last-child{border-bottom:none;}
}

/* ==================== services-04：フリップボード（全台稼働中） ==================== */
.c-svc{padding:var(--sec) 0; background:linear-gradient(180deg,var(--yoi) 0%, #232948 100%); color:#EDF0EA; position:relative;}
.c-svc .eyebrow{color:var(--hi);}
.c-svc .eyebrow::before{background:var(--asa);}
.c-svc h2.big{color:#F4F6F0;}
.c-svc__head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:44px;}
.c-svc__hn{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.24em; color:rgba(237,240,234,.5); white-space:nowrap;}
.c-svc__board{background:linear-gradient(175deg,#222855,#1D234A 70%); border:1px solid rgba(246,248,244,.12); border-radius:var(--r-m); padding:clamp(18px,3.4vw,40px); box-shadow:inset 0 1px 0 rgba(246,248,244,.08), var(--sh-l);}
.c-svc__bh{display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid rgba(246,248,244,.14); padding-bottom:14px; margin-bottom:8px;
  font-family:'Space Grotesk',monospace; font-size:10.5px; letter-spacing:.3em; color:rgba(237,240,234,.55); text-transform:uppercase;}
.c-svc__live{color:var(--wakaba); animation:c-svc-blink 1.6s steps(1) infinite;}
@keyframes c-svc-blink{50%{opacity:.25;}}
.c-svc__row{display:flex; align-items:center; gap:clamp(10px,2vw,22px); padding:clamp(14px,1.8vw,20px) 0; border-bottom:1px dashed rgba(138,142,158,.28);}
.c-svc__row:last-of-type{border-bottom:none;}
.c-svc__no{font-family:'Space Grotesk',monospace; font-size:clamp(12px,1.5vw,15px); letter-spacing:.18em; color:var(--hi); width:2.6em; flex:none;}
.c-svc__flap{display:flex; gap:4px; flex:1; min-width:0; flex-wrap:wrap;}
.c-svc__ch{position:relative; width:clamp(26px,3.2vw,38px); height:clamp(36px,4.4vw,52px); background:linear-gradient(180deg,#333A6E, #2B3260 52%, #262C58); border-radius:5px; color:#F4F6F0;
  font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(16px,2.2vw,25px); display:flex; align-items:center; justify-content:center; overflow:hidden;
  box-shadow:inset 0 -2px 4px rgba(0,0,0,.4), 0 2px 3px rgba(0,0,0,.3);}
.c-svc__ch::after{content:''; position:absolute; left:0; top:50%; width:100%; height:1.5px; background:rgba(0,0,0,.5);}
.c-svc__st{flex:none; text-align:right;}
.c-svc__lb{font-family:'Space Grotesk',monospace; font-size:clamp(9.5px,1.1vw,11px); letter-spacing:.2em; color:var(--wakaba); display:block;}
.c-svc__ds{font-size:clamp(10px,1.2vw,12px); color:rgba(237,240,234,.58); display:block; letter-spacing:.06em;}
.c-svc__foot{display:flex; justify-content:space-between; align-items:center; margin-top:18px; font-family:'Space Grotesk',monospace; font-size:10px; letter-spacing:.24em; color:rgba(237,240,234,.5); flex-wrap:wrap; gap:8px;}
.c-svc__foot b{color:var(--hi); font-weight:500;}
.c-svc__lead2{margin-top:30px; font-size:13.5px; color:rgba(237,240,234,.72); text-align:right;}
.c-svc__lead2 b{color:#F4F6F0; font-weight:700;}
@media(max-width:680px){
  .c-svc__head{flex-direction:column; align-items:flex-start;}
  .c-svc__row{flex-wrap:wrap;}
  .c-svc__st{text-align:left; width:100%; padding-left:3.4em;}
}

/* ==================== message-07：店主の見回りメモ（手書き） ==================== */
.c-memo{padding:var(--sec) 0; background:var(--shiro2); position:relative; overflow:hidden;}
.c-memo__center{text-align:center;}
.c-memo__paper{width:min(680px,calc(100% - 48px)); margin:64px auto 0; background:
    repeating-linear-gradient(180deg, transparent 0 35px, #DCE6EF 35px 36px),
    var(--paper);
  padding:58px 44px 46px; position:relative; transform:rotate(-.6deg); border-radius:2px;
  box-shadow:var(--sh-l);}
.c-memo__tape{position:absolute; top:-14px; left:50%; width:150px; height:30px; transform:translateX(-50%) rotate(1.6deg);
  background:rgba(62,155,104,.3); box-shadow:0 2px 6px rgba(0,0,0,.08);}
.c-memo__date{font-family:'Zen Kurenaido',sans-serif; font-size:15px; color:var(--muted); margin:0 0 8px;}
.c-memo__paper h3{font-family:'Zen Kurenaido',sans-serif; font-size:clamp(22px,3vw,30px); font-weight:400; margin:0 0 24px; color:var(--ink);
  display:inline-block; border-bottom:3px double var(--asa); padding-bottom:4px;}
.c-memo__paper p{font-family:'Zen Kurenaido',sans-serif; font-size:clamp(16.5px,2vw,20px); line-height:36px; margin:0 0 36px; color:#2B4A8B;}
.c-memo__paper p.c-memo__k{color:var(--ink);}
.c-memo__maru{position:relative; white-space:nowrap;}
.c-memo__maru svg{position:absolute; left:-6%; top:-22%; width:112%; height:150%; pointer-events:none;}
.c-memo__maru svg ellipse{fill:none; stroke:var(--asa); stroke-width:2.4; opacity:.85;}
.c-memo__fusen{position:absolute; right:-18px; bottom:54px; width:150px; padding:14px 14px 18px; background:#FFE98F; transform:rotate(3.4deg);
  font-family:'Zen Kurenaido',sans-serif; font-size:13.5px; line-height:1.7; color:#5A4A14; box-shadow:0 8px 18px rgba(0,0,0,.12);}
.c-memo__sign{text-align:right; font-family:'Zen Kurenaido',sans-serif; font-size:18px; margin-top:6px;}
.c-memo__ps{text-align:center; margin-top:42px; font-size:11px; letter-spacing:.3em; color:var(--muted); font-family:'Space Grotesk',monospace;}
@media(max-width:680px){ .c-memo__fusen{right:-8px; width:120px;} .c-memo__paper{padding:50px 24px 40px;} }

/* ==================== voice-01：横スクロールの帯（大判写真） ==================== */
.c-vc{background:var(--shiro); position:relative;}
.c-vc__head{padding:var(--sec) 0 0;}
.c-vc__pin{height:100vh; display:flex; align-items:center; overflow:hidden;}
.c-vc__track{display:flex; gap:36px; padding:0 6vw; will-change:transform;}
.c-vc__card{flex:0 0 min(420px,82vw); background:var(--paper); border:1px solid var(--line-soft); border-radius:var(--r-l); overflow:hidden; box-shadow:var(--sh-m); transition:box-shadow .5s var(--ease), transform .5s var(--ease);}
.c-vc__card:hover{box-shadow:var(--sh-l); transform:translateY(-4px);}
.c-vc__photo{position:relative; aspect-ratio:5/4; overflow:hidden; background:var(--shiro2);}
.c-vc__photo img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease);}
.c-vc__card:hover .c-vc__photo img{transform:scale(1.04);}
.c-vc__vno{position:absolute; top:14px; left:14px; font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.1em; color:#fff; background:var(--wakaba2); padding:6px 12px; border-radius:99px;}
.c-vc__body{padding:30px 32px 34px;}
.c-vc__q{font-family:'Shippori Mincho',serif; font-size:clamp(19px,2.2vw,24px); font-weight:600; line-height:1.65; margin:0 0 22px; color:var(--ink);}
.c-vc__q::before{content:"“"; color:var(--asa);}
.c-vc__who{display:flex; align-items:center; gap:10px; font-size:13px; color:var(--muted); border-top:1px solid var(--line); padding-top:16px;}
.c-vc__who b{color:var(--ink); font-family:'Shippori Mincho',serif; font-size:15px;}
@media(max-width:820px){
  .c-vc__pin{height:auto; display:block; padding:32px 0 64px;}
  .c-vc__track{flex-direction:column; padding:0 20px; gap:24px;}
  .c-vc__card{flex:none;}
}

/* ==================== process-06：左sticky大番号（はじめての使い方） ==================== */
.c-flow{padding:var(--sec) 0; background:var(--shiro2); position:relative;}
.c-flow__layout{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start;}
.c-flow__side{position:sticky; top:120px;}
.c-flow__side h2{font-size:clamp(23px,2.6vw,31px); margin:16px 0 26px;}
.c-flow__bignum{font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(110px,15vw,190px); line-height:.8; color:var(--wakaba2); position:relative;}
.c-flow__of{font-size:.22em; color:var(--muted);}
.c-flow__hint{font-size:13px; line-height:2; color:var(--muted); margin-top:24px; max-width:22em;}
.c-flow__steps{display:flex; flex-direction:column; gap:20px;}
.c-flow__step{border:1px solid var(--line-soft); border-radius:var(--r-m); padding:30px 32px; background:var(--paper); box-shadow:var(--sh-s); transition:background .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease), transform .45s var(--ease);}
.c-flow__step.is-active{background:linear-gradient(160deg,var(--yoi-soft),var(--yoi) 60%); border-color:rgba(244,194,92,.6); box-shadow:var(--sh-m); transform:translateX(4px);}
.c-flow__step.is-active h3{color:#F4F6F0;}
.c-flow__step.is-active p{color:rgba(237,240,234,.78);}
.c-flow__ph{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.16em; color:var(--asa);}
.c-flow__step h3{font-size:20px; line-height:1.5; margin:8px 0 10px;}
.c-flow__step p{color:var(--body-c); font-size:14px; line-height:2; margin:0;}
@media(max-width:780px){
  .c-flow__layout{grid-template-columns:1fr; gap:28px;}
  .c-flow__side{position:static;}
  .c-flow__bignum{font-size:90px;}
  .c-flow__step{padding:24px 22px;}
  .c-flow__step.is-active{transform:none;}
}

/* ==================== pricing-08：ぶら下がり値札 ==================== */
.c-price{padding:var(--sec) 0; background:var(--shiro); position:relative; overflow-x:clip;}
.c-price__head{text-align:center; margin-bottom:30px;}
.c-price__head .eyebrow{justify-content:center;}
.c-price__head p{font-size:13.5px; line-height:2.1; color:var(--muted); max-width:32em; margin:16px auto 0;}
.c-price__rail{position:relative; height:18px; margin:44px auto 0; width:min(920px,100%);}
.c-price__rail::before{content:''; position:absolute; left:0; right:0; top:7px; height:5px; border-radius:3px; background:linear-gradient(180deg,#3A4163,var(--yoi2)); box-shadow:0 2px 6px rgba(27,33,56,.3);}
.c-price__tags{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,3vw,40px); width:min(920px,100%); margin:0 auto;}
.c-price__tag{position:relative; padding-top:54px; transform-origin:50% 0;}
.c-price__string{position:absolute; left:50%; top:-6px; width:1.5px; height:60px; background:#9BA0B5; transform:translateX(-50%);}
.c-price__card{position:relative; background:var(--paper); border:1px solid var(--line-soft); box-shadow:var(--sh-m); padding:56px 26px 32px; text-align:center; border-radius:var(--r-s); transition:box-shadow .5s var(--ease), transform .5s var(--ease);}
.c-price__card:hover{box-shadow:var(--sh-l); transform:translateY(-4px);}
.c-price__tag--k .c-price__card{background:linear-gradient(168deg,#EAF4E7,#CFE5D2); border-color:#A9CDB2;}
.c-price__tag--d .c-price__card{background:linear-gradient(168deg,#232A4A,var(--yoi2) 70%); border-color:var(--yoi2); color:#EDF0EA;}
.c-price__hole{position:absolute; left:50%; top:18px; transform:translateX(-50%); width:18px; height:18px; border-radius:50%; background:var(--shiro);
  box-shadow:inset 0 1px 3px rgba(27,33,56,.4), 0 0 0 5px rgba(27,33,56,.08);}
.c-price__tag--d .c-price__hole{background:#3A4163;}
.c-price__pn{font-family:'Space Grotesk',monospace; font-size:10px; letter-spacing:.3em; color:var(--asa); text-transform:uppercase; display:block;}
.c-price__tag--k .c-price__pn{color:var(--wakaba2);}
.c-price__tag--d .c-price__pn{color:var(--hi);}
.c-price__nm{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(18px,2.2vw,23px); letter-spacing:.14em; margin:10px 0 16px; color:inherit;}
.c-price__tag--d .c-price__nm{color:#F4F6F0;}
.c-price__pr{font-family:'Space Grotesk',monospace; font-weight:700; font-size:clamp(40px,4.8vw,54px); line-height:1; letter-spacing:-.02em; color:var(--ink); font-variant-numeric:tabular-nums;}
.c-price__tag--d .c-price__pr{color:#F4F6F0;}
.c-price__pr>small{font-family:'Shippori Mincho',serif; font-size:.36em; font-weight:700; margin-left:3px;}
.c-price__fr{font-size:.36em; font-weight:500; color:var(--muted); margin-right:3px;}
.c-price__tag--d .c-price__fr{color:rgba(237,240,234,.6);}
.c-price__ls{list-style:none; margin:20px 0 0; padding:16px 0 0; border-top:1px dashed rgba(34,38,57,.25); font-size:12.5px; line-height:1.9; text-align:left;}
.c-price__tag--d .c-price__ls{border-top-color:rgba(237,240,234,.25);}
.c-price__ls li{padding:4px 0 4px 20px; position:relative;}
.c-price__ls li::before{content:'—'; position:absolute; left:2px; color:var(--wakaba);}
.c-price__tag--d .c-price__ls li::before{color:var(--hi);}
.c-price__osusume{position:absolute; right:-10px; top:40px; background:var(--asa); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.18em;
  padding:6px 14px; border-radius:999px; transform:rotate(6deg); box-shadow:0 8px 18px -8px rgba(233,138,91,.7); z-index:2;}
.c-price__foot{text-align:center; margin-top:44px; font-size:13px; color:var(--muted);}
.c-price__foot b{color:var(--ink); font-weight:700;}
.c-price__note{display:block; margin-top:6px; font-size:11px; letter-spacing:.1em;}
@media(max-width:760px){
  .c-price__tags{grid-template-columns:1fr; gap:36px;}
  .c-price__rail{display:none;}
  .c-price__tag{padding-top:0;}
  .c-price__string{display:none;}
}

/* ==================== faq-03：左sticky×番号アコーディオン ==================== */
.c-faq{padding:var(--sec) 0; background:var(--shiro2); position:relative;}
.c-faq__layout{display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:start;}
.c-faq__side{position:sticky; top:120px;}
.c-faq__side p{color:var(--muted); font-size:14px; line-height:2.05;}
.c-faq__more{display:inline-flex; align-items:center; gap:8px; margin-top:20px; min-height:44px; font-weight:700; font-size:13.5px; color:var(--wakaba2); transition:gap .3s var(--ease);}
.c-faq__more::after{content:"→";}
.c-faq__more:hover{gap:14px;}
.c-faq__acc{border-top:1px solid var(--line);}
.c-faq__item{border-bottom:1px solid var(--line); transition:background .3s var(--ease);}
.c-faq__q{display:grid; grid-template-columns:48px 1fr 30px; align-items:center; gap:14px; padding:26px 6px; min-height:44px; cursor:pointer; width:100%; background:none; border:none; text-align:left; font-family:inherit; color:inherit;}
.c-faq__no{font-family:'Space Grotesk',monospace; font-size:13px; color:var(--wakaba2);}
.c-faq__tx{font-weight:700; font-size:16px; line-height:1.8; color:var(--ink); transition:color .3s;}
.c-faq__q:hover .c-faq__tx{color:var(--wakaba2);}
.c-faq__ic{position:relative; width:18px; height:18px; justify-self:end;}
.c-faq__ic::before,.c-faq__ic::after{content:""; position:absolute; background:var(--wakaba2); transition:.3s var(--ease);}
.c-faq__ic::before{top:8px; left:0; width:18px; height:2px;}
.c-faq__ic::after{top:0; left:8px; width:2px; height:18px;}
.c-faq__item.is-open .c-faq__ic::after{transform:rotate(90deg); opacity:0;}
.c-faq__a{overflow:hidden;}
.c-faq__a>div{padding:0 6px 28px 62px; color:var(--body-c); font-size:14.5px; line-height:2.05;}
/* JSオフ時は全回答が見える。JSオン（html.j）でアコーディオン化 */
.j .c-faq__a{max-height:0; transition:max-height .5s var(--ease);}
.j .c-faq__item.is-open .c-faq__a{max-height:340px;}
@media(max-width:760px){
  .c-faq__layout{grid-template-columns:1fr; gap:30px;}
  .c-faq__side{position:static;}
  .c-faq__a>div{padding-left:6px;}
}

/* ==================== news-08：封筒の開封（森の緑） ==================== */
.c-news{padding:var(--sec) 0 calc(var(--sec) + 24px); background:var(--shiro); position:relative;}
.c-news__head{text-align:center; margin-bottom:32px;}
.c-news__head .eyebrow{justify-content:center;}
.c-news__head p{font-size:13.5px; line-height:2.1; color:var(--muted); max-width:32em; margin:16px auto 0;}
.c-news__stage{position:relative; width:min(620px,100%); margin:130px auto 0; perspective:1200px;}
.c-news__env{position:relative; width:100%; aspect-ratio:620/400;}
.c-news__letter{position:absolute; left:5.5%; bottom:14px; width:89%; z-index:2; background:var(--paper); border:1px solid var(--line-soft); border-radius:3px;
  box-shadow:var(--sh-m); padding:clamp(20px,3.6vw,34px) clamp(18px,3.4vw,32px);}
.c-news__lt{display:flex; justify-content:space-between; align-items:baseline; gap:10px; border-bottom:2px solid var(--ink); padding-bottom:10px; margin-bottom:8px; flex-wrap:wrap;}
.c-news__lt .t{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(15px,2vw,19px); letter-spacing:.2em; color:var(--ink);}
.c-news__lt .d{font-family:'Space Grotesk',monospace; font-size:9.5px; letter-spacing:.2em; color:var(--muted);}
.c-news__letter ul{list-style:none; margin:0; padding:0;}
.c-news__letter li{display:flex; gap:14px; align-items:baseline; padding:10px 2px; border-bottom:1px dotted var(--line);}
.c-news__letter li:last-child{border-bottom:none;}
.c-news__d2{font-family:'Space Grotesk',monospace; font-size:9.5px; letter-spacing:.14em; color:var(--wakaba2); white-space:nowrap;}
.c-news__x{font-size:clamp(12px,1.7vw,13.5px); font-weight:500; color:var(--ink);}
.c-news__x small{display:block; font-size:10.5px; color:var(--muted); font-weight:400;}
.c-news__back{position:absolute; inset:0; background:#9FBCA4; border-radius:8px; z-index:1; box-shadow:var(--sh-l);}
.c-news__front{position:absolute; inset:0; z-index:3; border-radius:0 0 8px 8px;
  background:linear-gradient(173deg,#B4CDB6 0%,#9FBCA4 55%,#8BAC92 100%);
  clip-path:polygon(0 0, 50% 42%, 100% 0, 100% 100%, 0 100%);
  filter:drop-shadow(0 -2px 4px rgba(27,33,56,.12));}
.c-news__addr{position:absolute; left:50%; top:62%; transform:translateX(-50%); text-align:center; width:80%;}
.c-news__to{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(16px,2.4vw,21px); letter-spacing:.26em; color:#23402C;}
.c-news__sm{font-family:'Space Grotesk',monospace; font-size:9px; letter-spacing:.3em; color:#4A6B52; display:block; margin-top:4px;}
.c-news__stamp{position:absolute; right:5%; top:55%; width:54px; height:64px; background:var(--paper); border:1px solid var(--line); z-index:4;
  display:flex; align-items:center; justify-content:center; font-family:'Shippori Mincho',serif; font-weight:700; color:var(--wakaba2); font-size:19px;
  box-shadow:0 4px 10px -4px rgba(27,33,56,.3);}
.c-news__stamp::before{content:''; position:absolute; inset:4px; border:1px dashed var(--wakaba);}
.c-news__flap{position:absolute; left:0; top:0; width:100%; height:46%; z-index:5; transform-origin:top center; transform-style:preserve-3d;}
.c-news__face{position:absolute; inset:0; backface-visibility:hidden; background:linear-gradient(180deg,#7EA386,#638A6E);
  clip-path:polygon(0 0, 100% 0, 50% 100%);}
.c-news__face--in{transform:rotateX(180deg); background:#5B7F64;}
.c-news__seal{position:absolute; left:50%; top:84%; transform:translate(-50%,-50%); width:46px; height:46px; border-radius:50%; z-index:6;
  background:radial-gradient(circle at 36% 30%,#57B47E,var(--wakaba2) 60%,#1F5A3A); display:flex; align-items:center; justify-content:center;
  color:#F4F6F0; font-family:'Shippori Mincho',serif; font-weight:700; font-size:15px; box-shadow:0 6px 14px -5px rgba(27,33,56,.5);}
.c-news__hint{text-align:center; font-size:11px; color:var(--muted); letter-spacing:.2em; margin-top:24px;}
@media(max-width:680px){ .c-news__stage{margin-top:96px;} }

/* ==================== blog-07：縦書きJOURNAL ==================== */
.c-blog{padding:var(--sec) 0; background:var(--shiro2); position:relative;}
.c-blog__layout{display:grid; grid-template-columns:.5fr 1.5fr; gap:56px; align-items:start;}
.c-blog__side{position:sticky; top:120px; border-right:1px solid var(--line); padding-right:40px;}
.c-blog__vt{writing-mode:vertical-rl; font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(38px,5.4vw,68px); letter-spacing:.2em; color:var(--yoi); line-height:1;}
.c-blog__eb{writing-mode:vertical-rl; font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.3em; color:var(--muted); margin-top:14px;}
.c-blog__list{display:flex; flex-direction:column;}
.c-blog__row{display:grid; grid-template-columns:132px 1fr; gap:22px; align-items:center; padding:26px 0; border-bottom:1px solid var(--line); transition:.35s var(--ease);}
.c-blog__row:first-child{padding-top:0;}
.c-blog__row:hover{color:var(--wakaba2);}
.c-blog__row:hover h3{color:var(--wakaba2);}
.c-blog__row picture{display:block; border-radius:var(--r-s); overflow:hidden; width:132px;}
.c-blog__row img{width:132px; aspect-ratio:13/9; object-fit:cover; border-radius:var(--r-s); transition:transform .8s var(--ease);}
.c-blog__row:hover img{transform:scale(1.05);}
.c-blog__d{font-family:'Space Grotesk',monospace; font-size:11px; color:var(--wakaba2);}
.c-blog__row h3{font-size:clamp(16px,2vw,21px); line-height:1.6; margin:6px 0 0; transition:.35s;}
.c-blog__ps{margin-top:24px; font-size:11.5px; color:var(--muted);}
@media(max-width:760px){
  .c-blog__layout{grid-template-columns:1fr; gap:26px;}
  .c-blog__side{position:static; border-right:none; border-bottom:1px solid var(--line); padding:0 0 18px; display:flex; gap:18px; align-items:center;}
  .c-blog__vt,.c-blog__eb{writing-mode:horizontal-tb;}
  .c-blog__row{grid-template-columns:104px 1fr; gap:16px;}
  .c-blog__row picture,.c-blog__row img{width:104px;}
}

/* ==================== links-06：オーバーラップ・スタック ==================== */
.c-links{padding:var(--sec) 0; background:var(--shiro); position:relative;
  background-image:radial-gradient(rgba(38,45,77,.06) 1.4px,transparent 1.4px); background-size:26px 26px;}
.c-links__head{text-align:center; margin-bottom:56px;}
.c-links__head .eyebrow{justify-content:center;}
.c-links__stack{display:flex; justify-content:center;}
.c-links__card{flex:0 0 300px; background:var(--paper); border:1px solid var(--line-soft); border-radius:var(--r-m); overflow:hidden; color:inherit; box-shadow:var(--sh-m); transition:transform .45s var(--ease), box-shadow .45s var(--ease);}
.c-links__card:nth-child(1){transform:rotate(-4deg);}
.c-links__card:nth-child(2){margin:0 -34px; z-index:3; transform:translateY(-10px);}
.c-links__card:nth-child(3){transform:rotate(4deg);}
.c-links__card:hover{transform:translateY(-16px) rotate(0)!important; z-index:5; box-shadow:var(--sh-l);}
.c-links__card picture{display:block; overflow:hidden;}
.c-links__card img{width:100%; height:200px; object-fit:cover; transition:transform .9s var(--ease);}
.c-links__card:hover img{transform:scale(1.05);}
.c-links__bd{padding:24px 26px 28px;}
.c-links__en{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.16em; color:var(--wakaba2);}
.c-links__card h3{font-size:19px; line-height:1.5; margin:8px 0 8px;}
.c-links__card p{color:var(--muted); font-size:13px; line-height:1.9; margin:0;}
@media(max-width:780px){
  .c-links__stack{flex-direction:column; align-items:center; gap:20px;}
  .c-links__card{flex-basis:auto; width:min(340px,100%); margin:0!important; transform:none!important;}
}

/* ==================== cta-01：全幅・背景写真＋動く光（1画面級） ==================== */
.c-cta{position:relative; min-height:96svh; display:flex; align-items:center; justify-content:center; overflow:hidden; text-align:center; background:var(--yoi2); color:#F4F6F0;}
.c-cta__bg{position:absolute; inset:0; will-change:transform;}
.c-cta__bg img{width:100%; height:100%; object-fit:cover; filter:saturate(.92);}
.c-cta__overlay{position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,22,42,.78),rgba(27,33,56,.56) 50%,rgba(18,22,42,.9));}
.c-cta__glow{position:absolute; width:60vw; height:60vw; border-radius:50%; filter:blur(90px); mix-blend-mode:screen; opacity:.45; background:radial-gradient(circle,var(--wakaba),transparent 65%); left:10%; top:10%; pointer-events:none;}
.c-cta__glow--2{background:radial-gradient(circle,var(--asa),transparent 65%); right:8%; bottom:6%; left:auto; top:auto;}
.c-cta__inner{position:relative; z-index:3; width:min(820px,calc(100% - 48px)); padding:100px 0;}
.c-cta__eb{font-family:'Space Grotesk',monospace; font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--hi); display:inline-flex; gap:12px; align-items:center; justify-content:center;}
.c-cta__eb::before,.c-cta__eb::after{content:""; width:30px; height:2px; background:var(--hi);}
.c-cta__title{font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(31px,5.6vw,70px); line-height:1.42; margin:28px 0 0; color:#fff; text-shadow:0 4px 40px rgba(0,0,0,.5);}
.c-cta__title .mk{color:var(--hi);}
.c-cta__lead{color:rgba(244,246,240,.86); font-size:16.5px; line-height:2.1; margin:28px auto 0; max-width:30em;}
.c-cta__btns{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:48px;}
.c-cta__btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:60px; font-weight:700; font-size:16px; padding:18px 42px; border-radius:99px; text-decoration:none; transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);}
.c-cta__btn--primary{background:linear-gradient(160deg,var(--wakaba),var(--wakaba2) 70%); color:#fff; box-shadow:0 18px 40px -14px rgba(62,155,104,.65);}
.c-cta__btn--primary:hover{transform:translateY(-3px); box-shadow:0 24px 48px -14px rgba(62,155,104,.75);}
.c-cta__btn--ghost{border:1.5px solid rgba(255,255,255,.6); color:#fff; backdrop-filter:blur(4px);}
.c-cta__btn--ghost:hover{background:rgba(255,255,255,.14);}
.c-cta__sub{margin-top:30px; font-family:'Space Grotesk',monospace; font-size:12px; letter-spacing:.1em; color:rgba(244,246,240,.6);}
@media (prefers-reduced-motion: reduce){ .c-cta__glow{display:none;} }

/* ==================== ZOROYA:FOOTER（地図一体型＋NAP） ==================== */
.c-ft{background:var(--shiro2); border-top:1px solid var(--line);}
.c-ft__grid{display:grid; grid-template-columns:1.1fr 1fr; min-height:440px;}
.c-ft__map{position:relative; background:#DDE8DC; overflow:hidden;}
.c-ft__rd{position:absolute; background:#fff;}
.c-ft__rd--h1{left:0; right:0; top:34%; height:26px;}
.c-ft__rd--h2{left:0; right:0; top:68%; height:14px; transform:rotate(-3deg);}
.c-ft__rd--v1{top:0; bottom:0; left:28%; width:18px; transform:rotate(2deg);}
.c-ft__rd--v2{top:0; bottom:0; left:64%; width:30px;}
.c-ft__blk{position:absolute; background:#CBDCC8; border-radius:6px;}
.c-ft__blk--1{left:6%; top:8%; width:16%; height:20%;}
.c-ft__blk--2{left:36%; top:10%; width:22%; height:17%;}
.c-ft__blk--3{left:8%; top:46%; width:14%; height:16%;}
.c-ft__blk--4{left:38%; top:44%; width:20%; height:18%;}
.c-ft__blk--5{left:74%; top:46%; width:18%; height:34%;}
.c-ft__blk--6{left:74%; top:8%; width:18%; height:22%;}
.c-ft__rv{position:absolute; left:-5%; bottom:-12%; width:115%; height:26%; background:#C5D8E2; border-radius:50% 40% 0 0/100% 100% 0 0; transform:rotate(-2deg);}
.c-ft__pin{position:absolute; left:50%; top:38%; transform:translate(-50%,-100%); text-align:center;}
.c-ft__pd{width:34px; height:34px; margin:0 auto; background:var(--wakaba2); border-radius:50% 50% 50% 0; transform:rotate(-45deg); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 22px -8px rgba(46,122,80,.6); animation:c-ft-bob 2.6s ease-in-out infinite;}
.c-ft__pd::after{content:""; width:11px; height:11px; border-radius:50%; background:#fff;}
.c-ft__tag{display:inline-block; margin-top:10px; background:var(--yoi); color:var(--shiro); font-size:11.5px; font-weight:700; letter-spacing:.06em; padding:6px 13px; border-radius:999px; white-space:nowrap; box-shadow:var(--sh-s);}
@keyframes c-ft-bob{ 0%,100%{transform:rotate(-45deg) translate(0,0);} 50%{transform:rotate(-45deg) translate(-4px,4px);} }
.c-ft__openmap{position:absolute; right:16px; bottom:16px; display:inline-flex; align-items:center; min-height:44px; background:#fff; border:1px solid var(--line-soft); border-radius:999px; padding:10px 20px; font-family:'Space Grotesk',monospace; font-size:10px; letter-spacing:.18em; color:var(--ink); box-shadow:var(--sh-s); transition:background .3s var(--ease), color .3s var(--ease);}
.c-ft__openmap:hover{background:var(--yoi); color:var(--shiro);}
.c-ft__nap{padding:clamp(40px,5vw,60px) clamp(24px,5vw,60px) clamp(36px,4vw,48px); display:flex; flex-direction:column;}
.c-ft__lb{font-family:'Space Grotesk',monospace; font-size:10px; letter-spacing:.3em; color:var(--asa);}
.c-ft__name{font-family:'Shippori Mincho',serif; font-size:clamp(24px,2.6vw,30px); letter-spacing:.1em; margin:12px 0 4px; color:var(--ink); font-weight:700;}
.c-ft__yomi{font-family:'Space Grotesk',monospace; font-size:9.5px; letter-spacing:.26em; color:var(--muted);}
.c-ft__dl{margin:28px 0 0; display:grid; grid-template-columns:auto 1fr; gap:0 24px;}
.c-ft__dl dt{font-family:'Space Grotesk',monospace; font-size:9.5px; letter-spacing:.2em; color:var(--wakaba2); padding:14px 0; border-bottom:1px solid var(--line); font-weight:700; align-content:center;}
.c-ft__dl dd{margin:0; font-size:14px; padding:14px 0; border-bottom:1px solid var(--line); line-height:1.9; color:var(--body-c);}
.c-ft__tel{font-family:'Space Grotesk',monospace; font-size:23px; font-weight:700; color:var(--ink); letter-spacing:.02em; font-variant-numeric:tabular-nums;}
.c-ft__dl dd small{color:var(--muted); font-size:11.5px; display:block;}
.c-ft__acts{display:flex; gap:12px; margin-top:32px;}
.c-ft__acts a{flex:1; display:flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:15px 10px; border-radius:var(--r-s); font-weight:900; font-size:14px; letter-spacing:.06em; transition:transform .3s var(--ease), box-shadow .3s var(--ease), filter .3s;}
.c-ft__acts .rt{background:linear-gradient(160deg,var(--wakaba),var(--wakaba2) 70%); color:#fff; box-shadow:0 12px 24px -12px rgba(46,122,80,.7);}
.c-ft__acts .ln{border:1.5px solid var(--yoi); color:var(--yoi);}
.c-ft__acts a:hover{filter:brightness(1.06); transform:translateY(-2px);}
.c-ft__low{border-top:1px solid var(--line);}
.c-ft__lowin{max-width:1240px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 28px; flex-wrap:wrap;}
.c-ft__lownav{display:flex; gap:8px; flex-wrap:wrap;}
.c-ft__lownav a{color:var(--muted); font-size:12px; padding:10px 8px; border-radius:6px; transition:color .25s;}
.c-ft__lownav a:hover{color:var(--ink);}
.c-ft__cp{font-family:'Space Grotesk',monospace; font-size:10px; letter-spacing:.14em; color:var(--muted);}
@media(max-width:980px){ .c-ft__grid{grid-template-columns:1fr;} .c-ft__map{min-height:300px;} }
@media (prefers-reduced-motion: reduce){ .c-ft__pd{animation:none;} }

/* =====================================================
   サブページ共通 v2（page-hero／本文セクション／フォーム／CTA帯）
   宵藍の夜空ヒーロー＋窓灯りの一線。トップと同じ設計言語。
   ===================================================== */
.c-pg-hero{position:relative; background-color:var(--yoi2); background-image:linear-gradient(100deg,rgba(18,22,42,.96) 0%,rgba(27,33,56,.86) 48%,rgba(18,22,42,.48) 100%),var(--pg-hero-image,linear-gradient(176deg,var(--yoi) 0%,var(--yoi2) 58%,var(--yoi3) 100%)); background-size:cover,cover; background-position:center,var(--pg-hero-position,center); color:var(--shiro); padding:clamp(88px,13vw,152px) 0 clamp(64px,9vw,112px); overflow:hidden;}
.c-pg-hero--about{--pg-hero-image:url("../../src/interior-night.jpg"); --pg-hero-position:center 56%;}
.c-pg-hero--service{--pg-hero-image:url("../../src/machines.jpg"); --pg-hero-position:center 52%;}
.c-pg-hero--faq{--pg-hero-image:url("../../src/lounge.jpg"); --pg-hero-position:center 50%;}
.c-pg-hero--contact{--pg-hero-image:url("../../src/cta-bg.jpg"); --pg-hero-position:center 48%;}
.c-pg-hero--privacy{--pg-hero-image:url("../../src/fv.jpg"); --pg-hero-position:center 52%;}
.c-pg-hero--news{--pg-hero-image:url("../../src/blanket.jpg"); --pg-hero-position:center 54%;}
.c-pg-hero::before{content:""; position:absolute; inset:0; pointer-events:none; opacity:.7;
  background:
    radial-gradient(circle at 84% 52%, transparent 0 108px, rgba(246,248,244,.18) 109px 111px, transparent 112px 148px, rgba(62,155,104,.24) 149px 151px, transparent 152px 190px, rgba(244,194,92,.14) 191px 193px, transparent 194px),
    radial-gradient(circle at 71% 30%, rgba(246,248,244,.2) 0 5px, transparent 6px),
    radial-gradient(circle at 76% 72%, rgba(62,155,104,.28) 0 9px, transparent 10px),
    radial-gradient(circle at 94% 24%, rgba(244,194,92,.22) 0 4px, transparent 5px),
    radial-gradient(1.5px 1.5px at 14% 24%, rgba(255,255,255,.9) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 38% 12%, rgba(255,255,255,.75) 50%, transparent 51%),
    radial-gradient(2px 2px at 62% 30%, rgba(255,255,255,.85) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 80% 16%, rgba(255,255,255,.7) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 92% 38%, rgba(255,255,255,.6) 50%, transparent 51%),
    radial-gradient(640px 320px at 88% -10%, rgba(62,155,104,.3), transparent 70%),
    radial-gradient(520px 300px at 4% 110%, rgba(233,138,91,.22), transparent 70%);}
.c-pg-hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:4px;
  background:linear-gradient(90deg, var(--wakaba), var(--hi) 55%, var(--asa));
  box-shadow:0 -6px 24px rgba(244,194,92,.35);}
.c-pg-hero .wrap{position:relative; z-index:1;}
.c-pg-hero .eyebrow{color:var(--hi);} .c-pg-hero .eyebrow::before{background:var(--hi);}
.c-pg-hero h1{font-family:'Shippori Mincho',serif; font-size:clamp(33px,5.6vw,58px); font-weight:700; line-height:1.35; letter-spacing:.05em; color:#FFFDF6; margin:18px 0 0; word-break:auto-phrase; text-wrap:balance; position:relative; width:fit-content; max-width:min(72%,16em);}
.c-pg-hero h1::after{content:""; display:block; width:clamp(76px,10vw,128px); height:3px; margin-top:20px; border-radius:99px; background:linear-gradient(90deg,var(--wakaba),var(--hi),var(--asa)); box-shadow:16px 0 0 -1px rgba(244,194,92,.48),28px 0 0 -1px rgba(62,155,104,.42);}
.c-pg-hero p{color:rgba(246,248,244,.8); font-size:15.5px; line-height:2.05; margin:20px 0 0; max-width:38em;}
.c-pg-hero .eyebrow,.c-pg-hero h1,.c-pg-hero p{opacity:0; animation:c-pg-rise 1.1s var(--ease) forwards;}
.c-pg-hero h1{animation-delay:.12s;}
.c-pg-hero p{animation-delay:.26s;}
@keyframes c-pg-rise{from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);}}
@media(max-width:680px){
  .c-pg-hero::before{background:
    radial-gradient(circle at 112% 48%,transparent 0 92px,rgba(246,248,244,.16) 93px 95px,transparent 96px 126px,rgba(62,155,104,.2) 127px 129px,transparent 130px),
    radial-gradient(420px 240px at 4% 110%,rgba(233,138,91,.2),transparent 70%);}
  .c-pg-hero h1{max-width:90%;}
}

.c-pg-sec{padding:var(--sec) 0;}
.c-pg-sec--tint{background:var(--shiro2);}
.c-pg-sec .lead{font-size:16.5px; line-height:2.1; color:var(--body-c); max-width:42em; margin-top:22px;}
.wrap--narrow{width:min(860px,100% - clamp(40px,7vw,64px)); margin:0 auto;}

/* 設備写真ギャラリー */
.c-machine-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:42px;}
.c-machine-gallery figure{position:relative;margin:0;overflow:hidden;border-radius:var(--r-m);background:var(--yoi2);box-shadow:var(--sh-m);}
.c-machine-gallery__wide{grid-column:1/-1;}
.c-machine-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s var(--ease);}
.c-machine-gallery__wide img{aspect-ratio:16/7;object-position:center 48%;}
.c-machine-gallery figure:hover img{transform:scale(1.025);}
.c-machine-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:42px 22px 18px;color:#fff;background:linear-gradient(180deg,transparent,rgba(8,20,37,.9));text-shadow:0 2px 8px rgba(0,0,0,.45);}
.c-machine-gallery figcaption b{display:block;font-family:'Shippori Mincho',serif;font-size:clamp(17px,2.2vw,22px);letter-spacing:.04em;}
.c-machine-gallery figcaption span{display:block;margin-top:4px;font-size:11.5px;line-height:1.7;color:rgba(255,255,255,.82);}
@media(max-width:640px){.c-machine-gallery{grid-template-columns:1fr;gap:14px;margin-top:32px}.c-machine-gallery__wide{grid-column:auto}.c-machine-gallery__wide img,.c-machine-gallery img{aspect-ratio:4/3}.c-machine-gallery figcaption{padding:38px 17px 15px}}

/* 細罫インデックス表（料金・概要）— 数字は等幅・先出しで大きく */
.c-pg-index{width:100%; border-collapse:collapse; margin-top:40px;}
.c-pg-index th,.c-pg-index td{border-bottom:1px solid var(--line); padding:22px 12px; text-align:left; vertical-align:top; font-size:15px; line-height:2;}
.c-pg-index tr{transition:background .3s var(--ease);}
.c-pg-index tr:hover{background:rgba(62,155,104,.045);}
.c-pg-index th{width:11em; color:var(--yoi); font-family:'Shippori Mincho',serif; font-weight:700; letter-spacing:.04em; white-space:nowrap;}
.c-pg-index td b{color:var(--ink);}
.c-pg-index .c-pg-yen{font-family:'Space Grotesk',monospace; font-weight:700; font-size:clamp(21px,2.6vw,26px); color:var(--yoi); white-space:nowrap; font-variant-numeric:tabular-nums;}
.c-pg-index small{display:block; color:var(--muted); font-size:12.5px; line-height:1.9; margin-top:4px;}
@media(max-width:680px){ .c-pg-index th{width:8em; font-size:13.5px;} }
@media(max-width:480px){
  .c-pg-index,.c-pg-index tbody,.c-pg-index tr,.c-pg-index th,.c-pg-index td{display:block; width:100%;}
  .c-pg-index tr{padding:18px 2px 20px; border-bottom:1px solid var(--line);}
  .c-pg-index th{border-bottom:none; padding:0 0 2px; font-size:13px; color:var(--wakaba2); white-space:normal;}
  .c-pg-index td{border-bottom:none; padding:0;}
  .c-pg-index .c-pg-yen{font-size:22px;}
}

/* 写真＋本文の2カラム */
.c-pg-duo{display:grid; grid-template-columns:5fr 6fr; gap:48px; align-items:center; margin-top:48px;}
.c-pg-duo--rev{grid-template-columns:6fr 5fr;}
.c-pg-duo figure{margin:0; border-radius:var(--r-l); overflow:hidden; box-shadow:var(--sh-m);}
.c-pg-duo img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform 1s var(--ease);}
.c-pg-duo figure:hover img{transform:scale(1.04);}
.c-pg-duo h3{font-family:'Shippori Mincho',serif; font-size:clamp(20px,2.6vw,25px); line-height:1.55; color:var(--ink); margin:0 0 14px; word-break:auto-phrase;}
.c-pg-duo p{font-size:15px; line-height:2.05; color:var(--body-c); margin:0 0 12px;}
@media(max-width:820px){ .c-pg-duo,.c-pg-duo--rev{grid-template-columns:1fr; gap:24px;} }

/* details/summary FAQ（サブページ用） */
.c-pg-faq{margin-top:44px; border-top:1px solid var(--line);}
.c-pg-faq details{border-bottom:1px solid var(--line); transition:background .3s var(--ease);}
.c-pg-faq summary{cursor:pointer; list-style:none; display:flex; gap:18px; align-items:center; padding:26px 10px; min-height:44px; font-weight:700; font-size:16px; line-height:1.8; color:var(--ink); word-break:auto-phrase; transition:color .3s;}
.c-pg-faq summary:hover{color:var(--wakaba2);}
.c-pg-faq summary::-webkit-details-marker{display:none;}
.c-pg-faq summary .q{font-family:'Space Grotesk',monospace; color:var(--wakaba2); font-size:13px; letter-spacing:.12em; flex:none;}
.c-pg-faq summary::after{content:"＋"; margin-left:auto; flex:none; width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--wakaba2); font-weight:400; transition:background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);}
.c-pg-faq details[open] summary::after{content:"−"; background:var(--wakaba2); border-color:var(--wakaba2); color:#fff;}
.c-pg-faq .a{padding:0 10px 28px 0; font-size:15px; line-height:2.05; color:var(--body-c); max-width:46em;}
.c-pg-faq .a p{margin:0 0 10px;}

/* フォーム */
.c-pg-form{display:grid; gap:24px; margin-top:44px;}
.c-pg-form label{display:block; font-weight:700; font-size:14px; color:var(--ink); margin-bottom:10px;}
.c-pg-form .opt{font-size:10px; color:var(--muted); border:1px solid var(--line); border-radius:4px; padding:2px 8px; margin-left:8px; letter-spacing:.08em; font-weight:400;}
.c-pg-form .req{font-size:10px; color:#fff; background:var(--asa); border-radius:4px; padding:2px 8px; margin-left:8px; letter-spacing:.08em; font-weight:700;}
.c-pg-form input[type="text"],.c-pg-form input[type="email"],.c-pg-form input[type="tel"],.c-pg-form select,.c-pg-form textarea{
  width:100%; font:inherit; font-size:15px; color:var(--ink); background:#fff; border:1px solid var(--line); padding:15px 16px; min-height:52px; border-radius:var(--r-s); box-shadow:inset 0 1px 2px rgba(27,33,56,.04); transition:border-color .25s var(--ease), box-shadow .25s var(--ease);}
.c-pg-form input:hover,.c-pg-form select:hover,.c-pg-form textarea:hover{border-color:rgba(62,155,104,.5);}
.c-pg-form input:focus,.c-pg-form select:focus,.c-pg-form textarea:focus{outline:2px solid transparent; border-color:var(--wakaba2); box-shadow:0 0 0 4px rgba(62,155,104,.16);}
.c-pg-form textarea{min-height:160px; resize:vertical;}
.c-pg-form button{justify-self:start; font:inherit; font-weight:700; font-size:15.5px; color:var(--shiro); background:var(--yoi); border:0; border-radius:999px; min-height:56px; padding:16px 46px; cursor:pointer; box-shadow:var(--sh-s); transition:background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);}
.c-pg-form button:hover{background:var(--wakaba2); transform:translateY(-2px); box-shadow:var(--sh-m);}
.c-pg-formnote{font-size:12.5px; color:var(--muted); line-height:1.9; margin-top:8px;}
@media(max-width:480px){ .c-pg-form button{justify-self:stretch; width:100%;} }

/* 固定ページ末尾CTA帯（夜空＋窓灯り） */
.c-pg-cta{position:relative; overflow:hidden; background:linear-gradient(180deg,var(--yoi2),var(--yoi3)); color:var(--shiro); text-align:center; padding:clamp(96px,16vw,176px) 0;}
.c-pg-cta::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(1.5px 1.5px at 18% 28%, rgba(255,255,255,.8) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 44% 14%, rgba(255,255,255,.65) 50%, transparent 51%),
    radial-gradient(2px 2px at 70% 24%, rgba(255,255,255,.8) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 88% 40%, rgba(255,255,255,.55) 50%, transparent 51%),
    radial-gradient(56% 44% at 50% 108%, rgba(244,194,92,.16), transparent 72%),
    radial-gradient(40% 34% at 12% 0%, rgba(62,155,104,.22), transparent 70%);}
.c-pg-cta .wrap{position:relative; z-index:1;}
.c-pg-cta h2{font-family:'Shippori Mincho',serif; font-size:clamp(25px,4.6vw,42px); line-height:1.45; color:#FFFDF6; margin:0; word-break:auto-phrase; text-wrap:balance;}
.c-pg-cta p{color:rgba(246,248,244,.8); font-size:15px; line-height:2.05; margin:20px auto 0; max-width:34em;}
.c-pg-cta .btns{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:40px;}
.c-pg-cta .bt{display:inline-flex; align-items:center; justify-content:center; min-height:56px; font-weight:700; font-size:15px; border-radius:999px; padding:16px 40px; transition:background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);}
.c-pg-cta .bt--p{background:linear-gradient(160deg,#F8CE74,var(--hi) 60%); color:var(--yoi2); box-shadow:0 18px 40px -16px rgba(244,194,92,.55);}
.c-pg-cta .bt--p:hover{background:#fff; transform:translateY(-3px);}
.c-pg-cta .bt--g{border:1.5px solid rgba(246,248,244,.55); color:var(--shiro); backdrop-filter:blur(4px);}
.c-pg-cta .bt--g:hover{background:rgba(246,248,244,.14);}

/* 地図プレース（contact） */
.c-pg-map{margin-top:40px; border-radius:var(--r-l); overflow:hidden; border:1px solid var(--line-soft); background:var(--shiro2); box-shadow:var(--sh-s); aspect-ratio:21/9; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:13px; letter-spacing:.08em;}
@media(max-width:680px){ .c-pg-map{aspect-ratio:4/3;} }

/* スクロール連動リビール（対応ブラウザのみ・軽量 transform+opacity） */
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    .c-pg-sec .wrap--narrow > *, .c-pg-sec .wrap > *{
      animation:c-pg-view linear both;
      animation-timeline:view();
      animation-range:entry 0% entry 36%;}
  }
}
@keyframes c-pg-view{from{opacity:0; transform:translateY(26px);} to{opacity:1; transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){
  .c-pg-hero .eyebrow,.c-pg-hero h1,.c-pg-hero p{animation:none; opacity:1;}
}


/* ZOROYA:BLOG — static preview / WordPress-ready archive and single */
.p-news{padding-block:clamp(48px,7vw,96px)}.p-newsgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,3vw,36px)}
.p-card{display:block;color:inherit;text-decoration:none;background:var(--paper,#fff);border:1px solid rgba(80,80,80,.16);border-radius:18px;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}.p-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(0,0,0,.1)}
.p-card__ph{aspect-ratio:16/10;overflow:hidden;background:#eee}.p-card__ph img{width:100%;height:100%;object-fit:cover}.p-card__bd{padding:22px}.p-card__meta{display:flex;gap:12px;align-items:center;font-size:12px}.p-card__cat,.post-hero__cat{padding:4px 10px;border-radius:99px;background:var(--accent,#555);color:#fff}.p-card__ttl{font-size:clamp(19px,2vw,25px);line-height:1.55}.p-card__ex{line-height:1.8}.p-card__more{font-size:12px;letter-spacing:.12em}.p-newsnote{margin-top:28px;font-size:12px;color:#666}
.post-hero{position:relative;min-height:420px;padding:clamp(110px,13vw,170px) 24px 70px;color:#fff;display:flex;align-items:flex-end}.post-hero__bg{position:absolute;inset:0}.post-hero__bg img{width:100%;height:100%;object-fit:cover}.post-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(5,13,28,.9) 0%,rgba(5,13,28,.76) 42%,rgba(5,13,28,.34) 76%,rgba(5,13,28,.2) 100%),linear-gradient(180deg,rgba(5,13,28,.08),rgba(5,13,28,.46))}.post-hero .wrap{position:relative;z-index:1;width:min(100%,1100px);margin:auto}.post-hero h1{max-width:900px;font-size:clamp(28px,4vw,52px);font-weight:800;line-height:1.45;color:#fff!important;text-shadow:0 3px 10px rgba(0,0,0,.72),0 12px 34px rgba(0,0,0,.46)}.post-hero__meta{display:flex;gap:12px;align-items:center;color:#fff}.post-hero .crumb{color:rgba(255,255,255,.9);text-shadow:0 2px 8px rgba(0,0,0,.7)}.post-hero .crumb a{color:inherit}
.post-wrap{width:min(calc(100% - 40px),1160px);margin:auto;padding:clamp(50px,7vw,90px) 0;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,5vw,64px)}.post-figure{margin:0 0 36px}.post-figure img{width:100%;max-height:540px;object-fit:cover;border-radius:18px}.post-body{font-size:16px;line-height:2}.post-body h2{margin:2.2em 0 .8em;font-size:clamp(24px,3vw,34px)}.post-body h3{margin:1.8em 0 .6em}.post-lead{font-size:1.1em}.post-foot__bar{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-top:48px;padding-top:24px;border-top:1px solid #ddd}.post-foot a,.w-cta a{color:inherit}.post-side{position:sticky;top:100px}.widget{padding:22px 0;border-bottom:1px solid #ddd}.widget__ttl{font-size:17px}.w-recent a{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:10px 0;color:inherit;text-decoration:none}.w-recent img{width:72px;height:56px;object-fit:cover}.w-recent b,.w-recent span{display:block;font-size:12px}.w-list{list-style:none;padding:0}.w-list a{display:flex;justify-content:space-between;padding:8px 0;color:inherit;text-decoration:none}.w-search{display:flex}.w-search input{min-width:0;flex:1;padding:10px}.w-search button{padding:10px}
@media(max-width:800px){.p-newsgrid{grid-template-columns:1fr}.post-wrap{grid-template-columns:1fr}.post-side{position:static}.post-hero{min-height:360px}.p-card__bd{padding:18px}}

