/*
Theme Name:   Rally Cap 2026
Description:  Rally Cap（ラリーキャップ）リニューアルデザイン。Welcart Basic の子テーマ。
Author:       株式会社SPANA
Template:     welcart_basic
Version:      1.0.0
Requires PHP: 7.4
Text Domain:  rallycap-2026
*/

/* =========================================================
   基本
   ========================================================= */
:root{
  --bg:#0e0e0c;--bg2:#050506;--card:#141411;--line:#26251f;--line2:#3a3832;
  --ink:#ede6d8;--soft:#c9c1b3;--mute:#a39c90;--dim:#5a5348;
  --paper:#ede6d8;--paper-ink:#14130f;--paper-line:#cfc5b2;
  --ac:#12a09e;--ac-d:#0b5e5c;--warn:#f0a3a3;
  --line-c:#06c755;--ig-c:#ec4d8b;
  --gut:clamp(16px,4vw,56px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body.rc{margin:0;background:var(--bg);color:var(--ink);font-family:'Zen Kaku Gothic New','Hiragino Sans','Noto Sans JP',sans-serif;font-size:16px;line-height:1.8}
.rc-root{overflow-x:hidden;overflow-x:clip}
.rc img{max-width:100%;height:auto}
.rc a{color:var(--ink);text-decoration:none}
.rc a:hover{color:var(--ac)}
.rc h1,.rc h2,.rc h3,.rc h4{margin:0}
.rc-wrap{max-width:1440px;margin:0 auto;padding:0 var(--gut)}
.disp{font-family:'Big Shoulders Display',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.01em}
.lbl{font-family:'Big Shoulders Display',sans-serif;font-weight:700;letter-spacing:.22em;text-transform:uppercase;font-size:13px}
.min{font-family:'Shippori Mincho',serif}
.ac{color:var(--ac)}
.out{color:transparent;-webkit-text-stroke:1.5px #3a3832}
.line{display:block;overflow:hidden}
.cover{width:100%;height:100%;object-fit:cover;display:block}
.ph{background:repeating-linear-gradient(135deg,#1c1b18 0 14px,#232220 14px 28px);display:flex;align-items:center;justify-content:center;color:var(--mute);font-family:'Big Shoulders Display',sans-serif;font-weight:700;letter-spacing:.18em;font-size:13px;text-align:center;padding:16px}
.ph.lt{background:repeating-linear-gradient(135deg,#ece7dd 0 14px,#f3efe7 14px 28px);color:#7a7368}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

.ulink{position:relative;display:inline-block;padding-bottom:4px}
.ulink::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(.25);transform-origin:left;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ulink:hover::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid var(--ink);transition:background .4s,color .4s}
.rc a.btn:hover{background:var(--ink);color:var(--bg)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ac);display:inline-block}
.ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line2);border-radius:50%;transition:border-color .4s,color .4s;font-size:18px}
.ico:hover{border-color:var(--ac)}
.rc a.ico.ig:hover{border-color:var(--ig-c);color:var(--ig-c)}
.cartico{position:relative;display:inline-flex}
.cartico .cnt{position:absolute;top:-8px;right:-10px;min-width:18px;height:18px;border-radius:9px;background:var(--ac);color:#0e0e0c;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}

/* =========================================================
   ヘッダー
   ========================================================= */
.rc-hdr{position:sticky;top:0;z-index:50;background:rgba(10,10,9,.84);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.rc-hdr-in{max-width:1440px;margin:0 auto;padding:12px var(--gut);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.rc-logo{display:flex;align-items:center;gap:14px}
.rc-logo img{height:38px;width:auto;display:block}
.rc-logo-tag{font-size:11px;color:var(--mute)}
.rc-dnav{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(14px,2.2vw,32px)}
.rc-nav-yumomi{font-size:14px;font-weight:700;display:inline-flex!important;align-items:center;gap:8px}
.rc-icons{display:inline-flex;gap:8px}
.rc-mbtn{display:none;align-items:center;gap:10px;height:44px;padding:0 16px;background:rgba(10,10,9,.72);color:var(--ink);border:1px solid var(--line2);cursor:pointer;font:inherit;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.rc-mnav{display:none}
.rc-mnav a{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);font-size:28px}
.rc-mnav a>span:first-child{display:inline-flex;align-items:center;gap:12px}
.rc-mnav .rc-mnav-yumomi,.rc-mnav .rc-mnav-sub{font-size:19px;font-weight:700}
.rc-mnav .rc-accent{color:var(--ac)}
.rc-mnav-icons{display:flex;gap:12px;margin-top:24px}
@media (max-width:760px){
  .rc-hdr{position:static;height:0;border:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  .rc-hdr-in{padding:0}
  .rc-logo,.rc-dnav{display:none}
  .rc-mbtn{display:inline-flex;position:fixed;top:14px;right:16px;z-index:60}
  .rc-mnav:not([hidden]){display:block;position:fixed;inset:0;z-index:55;overflow-y:auto;background:#0a0a09;padding:80px 16px 32px}
}
@media (min-width:761px){.rc-mnav{display:none!important}}

/* =========================================================
   フッター・追従ボタン
   ========================================================= */
.rc-ftr{padding:clamp(80px,8vw,120px) 0 40px;border-top:1px solid var(--line);background:var(--bg)}
.rc-ftr-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;margin-bottom:clamp(48px,6vw,80px)}
.rc-ftr-copy{margin:0;font-size:clamp(22px,2.4vw,32px);line-height:1.7}
.rc-ftr-cols{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,72px)}
.rc-ftr-cols>div{display:flex;flex-direction:column;gap:14px;font-size:13px}
.rc-ftr-cols .lbl{font-size:11px}
.rc-ftr-cols>div>span.lbl{color:var(--mute)}
.rc-ftr-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;border-top:1px solid var(--line)}
.rc-ftr-bottom .lbl{font-size:11px;color:var(--mute)}
.rc-fabs{position:fixed;right:16px;bottom:20px;z-index:45;display:flex;flex-direction:column;align-items:center;gap:12px}
.rc-fab{position:relative;width:52px;height:52px;border-radius:50%;border:1px solid var(--line2);background:rgba(10,10,9,.8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font:inherit;transition:border-color .4s,transform .4s}
.rc-fab .lbl{font-size:9px;letter-spacing:.15em;line-height:1}
.rc-fab:hover{border-color:var(--ac);transform:translateY(-3px)}
@keyframes popin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.rc-totop:not([hidden]){animation:popin .4s ease both}

/* =========================================================
   動くボタン
   ========================================================= */
.sbtn{--c:var(--ac);position:relative;display:inline-flex;align-items:center;gap:16px;min-height:72px;padding:10px 24px 10px 10px;border:1px solid var(--line2);border-radius:999px;color:var(--ink);overflow:hidden;isolation:isolate;transition:color .55s cubic-bezier(.7,0,.2,1),border-color .55s;-webkit-tap-highlight-color:transparent;text-decoration:none}
.sbtn.sb-rsv{border-color:var(--ac)}
.sbtn.sb-more{--c:var(--ink)}
.sbtn.sb-full{display:flex;width:100%}
.sb-fill{position:absolute;inset:0;background:var(--c);transform:translateX(-101%);transition:transform .65s cubic-bezier(.7,0,.2,1);z-index:-1}
.sbtn::before{content:"";position:absolute;top:0;bottom:0;left:-40%;width:28%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.14),transparent);transform:skewX(-20deg);z-index:-1;pointer-events:none}
.sb-ico{position:relative;flex:none;width:52px;height:52px;border-radius:50%;background:var(--c);color:#0e0e0c;display:flex;align-items:center;justify-content:center;transition:background .5s,color .5s,transform .65s cubic-bezier(.7,0,.2,1)}
.sb-ico::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid var(--c);opacity:0}
.sb-txt{display:flex;flex-direction:column;gap:3px;flex:1;text-align:left;min-width:0}
.sb-sm{font-family:'Big Shoulders Display',sans-serif;font-weight:700;font-size:10px;letter-spacing:.26em;text-transform:uppercase;opacity:.72;line-height:1.4}
.sb-roll{display:block;height:1.45em;overflow:hidden;font-weight:700;font-size:17px;line-height:1.45;white-space:nowrap}
.sb-roll span{display:block;transition:transform .55s cubic-bezier(.7,0,.2,1)}
.sb-arw{position:relative;flex:none;width:22px;height:22px;overflow:hidden;margin-left:10px}
.sb-arw svg{position:absolute;inset:0;transition:transform .55s cubic-bezier(.7,0,.2,1)}
.sb-arw svg+svg{transform:translateX(-140%)}
.rc .sbtn:hover,.rc .sbtn:focus-visible{color:#0e0e0c;border-color:var(--c)}
.sbtn:hover .sb-fill,.sbtn:focus-visible .sb-fill{transform:none}
.sbtn:hover .sb-ico,.sbtn:focus-visible .sb-ico{background:#0e0e0c;color:var(--c);transform:rotate(-14deg) scale(1.06)}
.sbtn:hover .sb-roll span,.sbtn:focus-visible .sb-roll span{transform:translateY(-100%)}
.sbtn:hover .sb-arw svg:first-child,.sbtn:focus-visible .sb-arw svg:first-child{transform:translateX(140%)}
.sbtn:hover .sb-arw svg+svg,.sbtn:focus-visible .sb-arw svg+svg{transform:none}
@keyframes ring{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}
@keyframes sheen{0%,62%{left:-40%}100%{left:130%}}
.sb-ico::after{animation:ring 2.4s ease-out infinite}
.sbtn::before{animation:sheen 5s ease-in-out infinite}
.sbtn:hover .sb-ico::after{animation:none}

/* =========================================================
   アニメーション（スクロール連動。非対応ブラウザでは普通に表示）
   ========================================================= */
@keyframes rise{from{transform:translateY(105%)}to{transform:none}}
@keyframes wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes fadein{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes kenburns{from{transform:scale(1.14);opacity:0}20%{opacity:1}to{transform:scale(1);opacity:1}}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(14px);opacity:1}}
@keyframes draw{from{stroke-dashoffset:1600}to{stroke-dashoffset:0}}
@keyframes slidex{from{transform:translateX(-12%)}to{transform:translateX(4%)}}
@keyframes drift{from{transform:scale(1.12) translateY(-4%)}to{transform:scale(1.12) translateY(4%)}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(18,160,158,.55)}100%{box-shadow:0 0 0 14px rgba(18,160,158,0)}}
@keyframes tk{from{letter-spacing:.7em;opacity:0}to{opacity:1}}
@keyframes fillx{from{background-position:100% 0}to{background-position:0 0}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes popb{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes steam{0%{opacity:0;transform:translateY(6px)}40%{opacity:1}100%{opacity:0;transform:translateY(-8px)}}
@keyframes dash{to{stroke-dashoffset:-40}}
.rise{display:inline-block;animation:rise 1.2s cubic-bezier(.2,.85,.15,1) both}
.wipe{animation:wipe 1.8s cubic-bezier(.7,0,.2,1) .3s both}
.fi{animation:fadein 1.2s cubic-bezier(.2,.8,.2,1) both}
.spin{animation:spin 22s linear infinite}
.mq{animation:marquee 38s linear infinite}
.kb{animation:kenburns 4.5s cubic-bezier(.2,.8,.2,1) both}
.bob{animation:bob 2.4s ease-in-out infinite}
.dot{animation:pulse 1.8s ease-out infinite}
.tkl{animation:tk 1.8s cubic-bezier(.2,.8,.2,1) .2s both}
.stitch path{stroke-dasharray:14 12}
.ill svg *{transform-box:fill-box}
.ill-float{animation:floaty 3.2s ease-in-out infinite}
.ill-float2{animation:floaty 3.2s ease-in-out 1.2s infinite}
.ill-pop{transform-origin:center;animation:popb 2.6s ease-in-out infinite}
.ill-steam{animation:steam 2.4s ease-in-out infinite}
.ill-dash{stroke-dasharray:10 8;animation:dash 1.6s linear infinite}
.ill-spin{transform-box:view-box!important;transform-origin:192px 82px;animation:spin 6s linear infinite}
.fillt{color:transparent!important;-webkit-text-stroke:max(.7px,.008em) var(--ink);background:linear-gradient(90deg,var(--ink) 0 50%,transparent 50%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text}
.rise.fillt{animation:rise 1.2s cubic-bezier(.2,.85,.15,1) both,fillx 1.6s cubic-bezier(.7,0,.2,1) both}
.fillt .g{-webkit-text-stroke:max(.7px,.008em) var(--g);background:linear-gradient(90deg,var(--g) 0 50%,transparent 50%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;animation:fillx 1.6s cubic-bezier(.7,0,.2,1) 1.05s both}
@supports (animation-timeline: view()){
  .rv{animation:fadein linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
  .rv2{animation:fadein linear both;animation-timeline:view();animation-range:entry 10% entry 100%}
  .rvup{display:inline-block;animation:rise linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
  .px{animation:slidex linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  .pll{animation:drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  .bar{transform-origin:left;animation:grow linear both;animation-timeline:view();animation-range:entry 20% cover 45%}
  .drw{stroke-dasharray:1600;animation:draw linear both;animation-timeline:view();animation-range:entry 0% cover 60%}
  .tk{animation:tk linear both;animation-timeline:view();animation-range:entry 0% cover 25%}
  .fillx{color:transparent!important;-webkit-text-stroke:1.5px var(--fx,var(--ink));background:linear-gradient(90deg,var(--fx,var(--ink)) 0 50%,transparent 50%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:fillx linear both;animation-timeline:view();animation-range:entry 30% cover 55%}
  .fillx .out{-webkit-text-stroke-color:var(--fx,var(--ink))!important}
  .fillx.min{-webkit-text-stroke:max(.7px,.008em) var(--fx,var(--ink))!important}
  .fillx .g{-webkit-text-stroke:max(.7px,.008em) var(--g)!important;background:linear-gradient(90deg,var(--g) 0 50%,transparent 50%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;animation:fillx linear both;animation-timeline:view();animation-range:entry 30% cover 55%}
}
@media (prefers-reduced-motion: reduce){.rc *,.rc *::before,.rc *::after{animation:none!important;transition:none!important}}

/* =========================================================
   共通セクション部品
   ========================================================= */
.sec{position:relative}
.sec-pad{padding:clamp(96px,10vw,160px) 0}
.sec-dark2{background:var(--bg2)}
.sec-paper{background:var(--paper);color:var(--paper-ink)}
.sec-paper a{color:var(--paper-ink)}
.sec-line{border-top:1px solid var(--line)}
.sec-lbl{margin:0 0 20px;color:var(--ac)}
.sec-paper .sec-lbl{color:var(--ac-d)}
.h-min{font-family:'Shippori Mincho',serif;font-weight:700;font-size:clamp(30px,3.8vw,54px);line-height:1.5}
.h-disp{font-family:'Big Shoulders Display',sans-serif;font-weight:900;text-transform:uppercase;line-height:.9}
.txt{margin:0;font-size:16px;line-height:2.05;color:var(--soft)}
.sec-paper .txt{color:var(--paper-ink)}
.bg-word{position:absolute;left:0;line-height:1;white-space:nowrap;color:transparent;-webkit-text-stroke:1.5px #22211d;pointer-events:none}
.sec-paper .bg-word{-webkit-text-stroke-color:var(--paper-line)}
.hd-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px}
.marquee{padding:22px 0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.marquee>div{display:flex;width:max-content;gap:48px;white-space:nowrap}
.marquee.ac-band{background:var(--ac);color:#0e0e0c;border:0}
.card .zm{transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.card:hover .zm{transform:scale(1.06)}
.card .arw{display:inline-block;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.card:hover .arw{transform:translateX(8px)}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line2);background:transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer;transition:background .35s,color .35s,border-color .35s;text-decoration:none}
.chip:hover{border-color:var(--ac)}
.rc .chip.on{background:var(--ac);border-color:var(--ac);color:#0e0e0c;font-weight:700}
.ccount{font-family:'Big Shoulders Display',sans-serif;font-weight:700;font-size:12px;opacity:.7}
.crumb{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--mute)}
.rc .crumb a{color:var(--mute)}
.rc .crumb a:hover{color:var(--ac)}
.faq{border-bottom:1px solid var(--line2)}
.faq summary{list-style:none;display:flex;align-items:center;gap:16px;padding:24px 4px;cursor:pointer;font-size:16px;font-weight:700;line-height:1.7;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--ac)}
.fq{font-family:'Big Shoulders Display',sans-serif;font-weight:900;font-size:24px;line-height:1;color:var(--ac);flex:none;width:24px}
.fpm{position:relative;flex:none;width:16px;height:16px}
.fpm::before,.fpm::after{content:"";position:absolute;left:0;top:7px;width:16px;height:1.5px;background:currentColor;transition:transform .4s cubic-bezier(.7,0,.2,1)}
.fpm::after{transform:rotate(90deg)}
.faq[open] .fpm::after{transform:rotate(0)}
.fa{display:flex;gap:16px;padding:0 4px 26px;font-size:15px;line-height:2;color:var(--soft)}
@keyframes faqin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.faq[open] .fa{animation:faqin .45s ease both}
.dl-rows{margin:0;display:grid;grid-template-columns:minmax(0,9em) 1fr;font-size:15px}
.dl-rows dt{padding:22px 0;border-top:1px solid var(--line2);color:var(--mute)}
.dl-rows dd{margin:0;padding:22px 0;border-top:1px solid var(--line2);line-height:1.9}
.dl-rows dt:nth-last-of-type(1),.dl-rows dd:last-child{border-bottom:1px solid var(--line2)}
.telbtn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;font-size:14px;font-weight:700;cursor:pointer;border-radius:999px;text-decoration:none}
.telbtn .tnum{display:none;font-family:'Big Shoulders Display',sans-serif;font-weight:700;letter-spacing:.08em;font-size:15px;margin-left:4px}
@media (min-width:761px){.telbtn .tnum{display:inline}}

/* =========================================================
   トップページ
   ========================================================= */
.hero{position:relative;overflow:hidden;background:#050506;min-height:860px;display:flex;flex-direction:column;justify-content:space-between}
.hero picture{position:absolute;inset:0}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 50%}
.hero-badge{position:absolute;top:48px;right:clamp(16px,5vw,80px);width:150px;height:150px}
.hero-v{position:absolute;right:clamp(16px,5vw,80px);bottom:110px;writing-mode:vertical-rl;font-size:clamp(16px,1.5vw,20px);letter-spacing:.35em;line-height:2;animation-delay:1.4s}
.hero-in{position:relative;max-width:1440px;width:100%;margin:0 auto;padding:clamp(72px,10vw,150px) var(--gut) 0}
.hero h1{margin:0;max-width:min(620px,52vw,100%)}
.hero h1 img{width:clamp(260px,42vw,620px);height:auto}
.hero-copy{margin:36px 0 0;font-size:clamp(18px,2vw,26px);line-height:1.9}
.hero-scroll{position:relative;max-width:1440px;width:100%;margin:0 auto;padding:0 var(--gut) 40px}
.heroimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 50%}
.hero .badge{position:absolute;top:48px;right:clamp(16px,5vw,80px);width:150px;height:150px}
.hero .vtext{position:absolute;right:clamp(16px,5vw,80px);bottom:110px;writing-mode:vertical-rl;font-size:clamp(16px,1.5vw,20px);letter-spacing:.35em;line-height:2}
@keyframes rdot{0%{box-shadow:0 0 0 0 rgba(18,160,158,.6)}100%{box-shadow:0 0 0 12px rgba(18,160,158,0)}}
.rdot{animation:rdot 1.8s ease-out infinite}
@media (max-width:760px){
  .hero{min-height:720px}
  .hero-img{object-position:50% 100%}
  .hero-badge,.hero-v,.hero .badge,.hero .vtext{display:none}
  .heroimg{object-position:50% 100%}
  .yhero{padding-top:96px!important}
}
.resv{position:relative;overflow:hidden;overflow:clip;background:#161613;border:1px solid #2a2924;padding:clamp(28px,4vw,48px);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px}
.resv .bgw{position:absolute;right:-12px;bottom:-26px;font-size:clamp(80px,12vw,170px);line-height:1;color:transparent;-webkit-text-stroke:1px #2a2924;white-space:nowrap;pointer-events:none}
.pill{display:inline-flex;align-items:center;gap:8px;min-height:56px;padding:0 28px;border-radius:999px;border:1px solid var(--ac);color:var(--ink);font-size:15px;font-weight:700;transition:background .4s,color .4s}
.rc a.pill:hover{background:var(--ac);color:#0e0e0c}
.flow-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:clamp(24px,3vw,40px)}
.ill{background:var(--card);border:1px solid var(--line);aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;margin-top:24px}
.ill svg{width:100%;height:100%}
.sns{--c:var(--ink);position:relative;overflow:hidden;isolation:isolate;border:1px solid var(--line2);padding:clamp(28px,3.5vw,48px);min-height:280px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;transition:color .55s cubic-bezier(.7,0,.2,1),border-color .55s}
.rc .sns:hover{color:#0e0e0c;border-color:var(--c)}
.sns:hover .sb-fill{transform:none}
.sns .arw{display:inline-block;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.sns:hover .arw{transform:translateX(8px)}
.lcard{display:block;color:var(--ink)}
.limg{overflow:hidden;aspect-ratio:4/5;background:#fff;display:flex;align-items:center;justify-content:center}
.limg img{width:100%;height:100%;object-fit:contain;padding:8%}
@media (max-width:760px){.limg{aspect-ratio:4/3}}

/* =========================================================
   湯もみ型付けページ
   ========================================================= */
.y-hero{background:var(--bg2);position:relative;overflow:hidden;overflow:clip;padding:clamp(64px,8vw,120px) 0 0}
.y-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.y-tags li{border:1px solid var(--line2);padding:8px 14px;font-size:13px}
.wtag{font-size:12px;padding:4px 10px;border:1px solid var(--line2);color:var(--soft)}
.wtag.wpos{border-color:var(--ac);color:var(--ac)}
.wcard .wimgs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.wcard .wimgs>*{aspect-ratio:1/1;position:relative;overflow:hidden;background:#000}
.wcard .wimgs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wcard .wimgs .wl{position:absolute;left:8px;top:8px;z-index:1;background:rgba(10,10,9,.75);color:var(--ink);font-family:'Big Shoulders Display',sans-serif;font-weight:700;letter-spacing:.18em;font-size:10px;padding:3px 8px}
.wcard .wimgs .after .wl{background:var(--ac);color:#0e0e0c}
.wcard.noimg{border:1px solid var(--line);padding:22px}
.morebtn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:background .4s,color .4s}
.morebtn:hover{background:var(--ink);color:var(--bg)}

/* =========================================================
   商品一覧・詳細
   ========================================================= */
.pcard{display:flex;flex-direction:column;color:var(--ink)}
.pimg{position:relative;overflow:hidden;aspect-ratio:1/1;background:#f6f4ef;display:flex;align-items:center;justify-content:center}
.pimg img{width:100%;height:100%;object-fit:contain;padding:8%}
.badge-so,.badge-new{position:absolute;top:12px;z-index:2;padding:6px 10px;font-family:'Big Shoulders Display',sans-serif;font-weight:700;font-size:11px;letter-spacing:.2em;line-height:1}
.badge-so{left:12px;background:#0e0e0c;color:var(--ink)}
.badge-new{right:12px;background:var(--ac);color:#0e0e0c}
.ptag{font-size:11px;padding:3px 8px;border:1px solid var(--line2);color:var(--soft)}
.pso .pimg img{opacity:.45}
.pcard .pname{transition:color .4s}
.pcard:hover .pname{color:var(--ac)}
.sortsel{position:relative;display:inline-flex;align-items:center}
.sortsel select{appearance:none;-webkit-appearance:none;min-height:44px;padding:0 44px 0 18px;border-radius:999px;border:1px solid var(--line2);background:var(--bg);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.sortsel::after{content:"";position:absolute;right:18px;top:50%;width:7px;height:7px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.thumb{padding:0;border:1px solid var(--line2);background:#f6f4ef;cursor:pointer;aspect-ratio:1/1;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:contain}
.thumb.on{border:2px solid var(--ac)}
.item-desc{font-size:15px;line-height:2.05;color:var(--soft)}
.item-desc p{margin:0 0 1em}
.item-desc img{display:block;margin:1em 0}

/* Welcart のカートフォーム（商品詳細） */
.rc-skuform{border-top:1px solid var(--line);padding-top:20px;margin-top:4px;display:flex;flex-direction:column;gap:14px}
.rc-skuform .skuname{font-weight:700}
.rc-skuform .item-option{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 16px;align-items:center}
.rc-skuform .item-option dt{color:var(--mute);font-size:14px}
.rc-skuform .item-option dd{margin:0}
.rc-skuform select,.rc-skuform input[type=text],.rc-skuform input[type=number],.rc-skuform textarea{min-height:48px;padding:8px 14px;background:var(--card);border:1px solid var(--line2);color:var(--ink);font:inherit;font-size:16px;border-radius:0}
.rc-skuform .quantity input{width:90px;margin-left:10px;text-align:center}
.rc-skuform .zaikostatus{font-size:13px;color:var(--mute)}
.rc-skuform .field_price{font-family:'Big Shoulders Display',sans-serif;font-weight:900;font-size:clamp(40px,5vw,60px);line-height:1;letter-spacing:0}
.rc-skuform .field_price em,.rc-skuform .field_price .tax{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:400;font-size:13px;font-style:normal;color:var(--mute);margin-left:6px}
.rc-skuform .field_cprice{display:block;font-size:16px;color:var(--mute);text-decoration:line-through}
.rc-skuform .c-box{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.rc-skuform .cart-button{flex:1 1 100%}
.rc-skuform input.skubutton,.rc-skuform .skubutton{width:100%;min-height:72px;border-radius:999px;border:1px solid var(--ac);background:var(--ac);color:#0e0e0c;font:inherit;font-size:17px;font-weight:700;cursor:pointer;letter-spacing:.06em;transition:filter .3s,transform .3s}
.rc-skuform input.skubutton:hover{filter:brightness(1.1);transform:translateY(-2px)}
.rc-skuform .itemsoldout{padding:18px;border:1px solid var(--line2);text-align:center;font-weight:700;color:var(--mute)}
.rc-skuform .error_message{color:var(--warn);font-size:14px;font-weight:700}
.rc-skuform .error_message:empty{display:none}
.item-custom ul,.item-custom dl{list-style:none;margin:0;padding:0;font-size:15px}
.item-custom li,.item-custom dt,.item-custom dd{margin:0;padding:10px 0;border-top:1px solid var(--line)}
.item-custom table{width:100%;border-collapse:collapse;font-size:15px}
.item-custom th,.item-custom td{padding:12px 0;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.item-custom th{color:var(--mute);font-weight:400;width:8em}

/* =========================================================
   固定ページ・投稿（会社概要・お問い合わせなど）
   ========================================================= */
.pg-hero{border-bottom:1px solid var(--line);background:var(--bg2);position:relative;overflow:hidden}
.pg-hero .rc-wrap{padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(40px,5vw,64px)}
.pg-title{margin:20px 0 0;font-family:'Shippori Mincho',serif;font-weight:800;font-size:clamp(32px,4.6vw,64px);line-height:1.3}
.entry{max-width:900px;margin:0 auto;padding:clamp(48px,6vw,88px) var(--gut) clamp(96px,10vw,140px);font-size:16px;line-height:2;color:var(--soft)}
.entry h2{margin:2.4em 0 .8em;font-family:'Shippori Mincho',serif;font-size:clamp(22px,2.4vw,30px);color:var(--ink);line-height:1.5}
.entry h3{margin:2em 0 .6em;font-size:19px;color:var(--ink)}
.entry p{margin:0 0 1.4em}
.entry a{color:var(--ac);text-decoration:underline}
.entry table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:15px}
.entry th,.entry td{padding:14px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}
.entry th{background:var(--card);color:var(--ink);font-weight:700;width:30%}
.entry img{height:auto}
.entry input[type=text],.entry input[type=email],.entry input[type=tel],.entry input[type=url],.entry textarea,.entry select{width:100%;min-height:52px;padding:12px 16px;background:var(--card);border:1px solid var(--line2);color:var(--ink);font:inherit;font-size:16px;border-radius:0}
.entry input[type=submit],.entry button[type=submit],.entry .wpforms-submit{min-height:56px;padding:0 36px;border-radius:999px;border:1px solid var(--ac);background:var(--ac);color:#0e0e0c;font:inherit;font-weight:700;cursor:pointer}
.post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.post-list li{border-bottom:1px solid var(--line)}
.post-list a{display:flex;flex-wrap:wrap;gap:6px 24px;padding:22px 0}
.post-list time{font-family:'Big Shoulders Display',sans-serif;font-weight:700;letter-spacing:.1em;color:var(--mute)}
.pager{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px}
.pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line2);padding:0 12px}
.pager .page-numbers.current{background:var(--ac);border-color:var(--ac);color:#0e0e0c}

/* =========================================================
   カート・会員ページ（Welcart Basic のレイアウトを使い、明るい紙面で表示）
   ========================================================= */
body.rc.rc-shop-system{background:var(--bg)}
.rc-shop-system .rc-main{background:#fbf9f5;color:#262626;font-size:15px;line-height:1.7;padding:clamp(32px,5vw,64px) 0 clamp(64px,8vw,100px)}
.rc-shop-system .rc-main #primary{max-width:1100px;margin:0 auto;padding:0 16px;float:none;width:auto}
.rc-shop-system .rc-main a{color:var(--ac-d)}
.rc-shop-system .rc-main h1,.rc-shop-system .rc-main .cart_page_title,.rc-shop-system .rc-main .member_page_title{font-family:'Shippori Mincho',serif;font-weight:800;font-size:clamp(26px,3vw,36px);color:#14130f;margin:0 0 24px}
.rc-shop-system .rc-main input[type=submit],.rc-shop-system .rc-main input[type=button],.rc-shop-system .rc-main button{border-radius:999px;font-weight:700}
.rc-shop-system .rc-main .to_customerinfo_button,.rc-shop-system .rc-main .to_deliveryinfo_button,.rc-shop-system .rc-main .to_confirm_button,.rc-shop-system .rc-main #purchase_button,.rc-shop-system .rc-main .checkout_button{background:var(--ac)!important;border-color:var(--ac)!important;color:#fff!important}
.rc-shop-system .rc-ftr{margin-top:0}

/* =========================================================
   画面幅による調整
   ========================================================= */
@media (max-width:760px){
  .sb-roll{font-size:15px}
  .sbtn{gap:12px;padding-right:18px}
  .dl-rows{grid-template-columns:minmax(0,6.5em) 1fr}
}


/* 明るい背景の上の予約ボタン */
#flow .sbtn{color:#14130F;border-color:#0B5E5C}
#flow .sbtn .sb-sm{color:#5A5348}

/* 休業のお知らせ帯（spana.co.jp/oshirase.php が差し込む） */
#spana-notice .spana-notice{--spana-notice-bg:#12a09e;--spana-notice-fg:#0e0e0c;--spana-notice-accent:#0e0e0c}
#spana-notice .spana-notice-tag{color:#12a09e}
@media(max-width:760px){#spana-notice .spana-notice-row{padding:8px 150px 8px 16px;min-height:72px;gap:6px}#spana-notice .spana-notice-tag{display:none}#spana-notice .spana-notice-btn{font-size:12.5px;font-weight:700;line-height:1.55}#spana-notice .spana-notice-x{width:24px}}

/* 価格（税込） */
.rc-yen small{font-size:.72em;margin-left:1px}
.rc-tax{font-size:12px;font-weight:400;color:var(--mute);margin-left:4px}
.field_price .rc-yen{font-size:clamp(26px,2.6vw,32px);font-weight:700}
.field_cprice{text-decoration:line-through;color:var(--mute);margin-right:10px;font-size:15px}

/* メニュー（ドロップダウン） */
.rc-dd{position:relative;display:flex;align-items:center}
.rc-dd-top{display:inline-flex!important;align-items:center;gap:6px}
.rc-dnav>.ulink:not(.lbl),.rc-dd-top:not(.lbl){font-size:14px;font-weight:700}
.rc-caret{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7;transition:transform .3s}
.rc-dd:hover .rc-caret,.rc-dd:focus-within .rc-caret{transform:translateY(1px) rotate(225deg)}
.rc-dd-menu{position:absolute;top:100%;left:50%;min-width:180px;padding-top:14px;transform:translate(-50%,6px);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s;z-index:70}
.rc-dd-menu a{display:flex;align-items:center;gap:8px;padding:14px 18px;background:#141412;border:1px solid var(--line2);color:var(--ink);font-size:14px;font-weight:700;white-space:nowrap;transition:color .25s,background .25s}
.rc-dd-menu a+a{border-top:0}
.rc-dd-menu a:hover,.rc-dd-menu a:focus-visible{color:var(--ac);background:#1b1b18}
.rc-dd:hover .rc-dd-menu,.rc-dd:focus-within .rc-dd-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.rc-dd-top .cnt{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--ac);color:#0e0e0c;font-size:11px;font-weight:700;letter-spacing:0}
.rc-mnav .rc-mnav-ja{font-size:22px;font-weight:700}
.rc-mnav .rc-mnav-sub{padding-left:22px;font-size:17px;font-weight:700;color:var(--soft)}
.rc-mnav .rc-mnav-sub::before{content:"└";margin-right:10px;color:var(--ac);font-weight:400}
.rc-mnav .rc-mnav-sub{justify-content:flex-start}
.rc-mnav .rc-mnav-sub>span:last-child{margin-left:auto}

/* オーダーグラブ */
.pimg-w{background:#fff}
.pimg-w img{opacity:1!important;padding:6%}
.rc-order .thumb{background:#fff}
.rc-order-opt{display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;font-weight:700}
.rc-order-opt .tag{font-family:'Big Shoulders Display',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:3px 10px;border:1px solid var(--ac);color:var(--ac);border-radius:999px}
.rc-ospec{margin:0;display:flex;flex-wrap:wrap;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.rc-ospec>div{flex:1 1 120px;padding:14px 16px 14px 0}
.rc-ospec dt{font-size:11px;color:var(--mute);letter-spacing:.1em;margin-bottom:4px}
.rc-ospec dd{margin:0;font-size:16px;font-weight:700}
.rc-obuy{padding:24px;border:1px solid var(--line2);background:rgba(255,255,255,.02)}
.sb-line{--c:#06c755;border-color:#06c755}
.rc-oflow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:24px}
.rc-oflow li{display:flex;flex-direction:column;gap:8px;padding-top:18px;border-top:1px solid var(--line2)}
.rc-oflow .n{font-size:28px;color:var(--ac);line-height:1}
.rc-oflow strong{font-size:17px}
.rc-oflow .d{font-size:14px;line-height:1.9;color:var(--soft)}
.rc-octa{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;margin-top:clamp(48px,6vw,72px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--line2)}
.rc-ocard[hidden]{display:none}
.chip-order{border-color:var(--ac);color:var(--ac)}
.chip-order::after{content:"→";margin-left:2px}
.rc-ogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(28px,3vw,44px) clamp(20px,2.5vw,32px)}
.rc-ocode{margin:0;font-size:30px;line-height:1;letter-spacing:.04em}
@media(max-width:600px){.rc-ogrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}.rc-ocode{font-size:22px}.rc-ogrid .rc-price{font-size:15px!important}.rc-ogrid .rc-tax{font-size:10px;margin-left:2px}}
