/* きっちゃん(キツネ)と和のぬくもり。生成り・朱・藍・金・桜。丸みと余白で読みやすく */
:root{--bg:#fffaf1;--bg2:#fff1e0;--card:#fff;--ink:#2e2a3c;--ink2:#51506a;--mut:#645f78;--gold:#7d5a0c;--gold2:#e3a93d;--gold3:#fbeab9;--shu:#d03a2b;--red:#d03a2b;--ai:#2d4a78;--navy:#2d4a78;--line:#f1dfc6;--line2:#e5cfae;
--sakura:#fbd9dc;--sora:#d8eef7;--matcha:#e4f0d8;--yuzu:#fdf0c4;--momo:#ffe3cf;
--t:#8a6410;--i:#2b7766;--d:#2d4a78;--r:#ad5f12;--m:#7358a0;--k:#a23d89;--q:#46698a;--h:#3f7d3f;--f:#c0392b;--b:#6e6e6e;
--rad:22px;--sh:0 2px 0 rgba(160,110,60,.08),0 10px 26px rgba(150,95,50,.12);--sh2:0 3px 0 rgba(160,110,60,.1),0 18px 40px rgba(150,95,50,.18);
--serif:"Shippori Mincho B1","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;--round:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,-apple-system,sans-serif;
--wave:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='28' viewBox='0 0 56 28'%3E%3Cg fill='none' stroke='%232d4a78' stroke-opacity='.09' stroke-width='1.2'%3E%3Ccircle cx='14' cy='28' r='14'/%3E%3Ccircle cx='14' cy='28' r='9'/%3E%3Ccircle cx='14' cy='28' r='4'/%3E%3Ccircle cx='42' cy='28' r='14'/%3E%3Ccircle cx='42' cy='28' r='9'/%3E%3Ccircle cx='42' cy='28' r='4'/%3E%3Ccircle cx='0' cy='14' r='14'/%3E%3Ccircle cx='0' cy='14' r='9'/%3E%3Ccircle cx='0' cy='14' r='4'/%3E%3Ccircle cx='28' cy='14' r='14'/%3E%3Ccircle cx='28' cy='14' r='9'/%3E%3Ccircle cx='28' cy='14' r='4'/%3E%3Ccircle cx='56' cy='14' r='14'/%3E%3Ccircle cx='56' cy='14' r='9'/%3E%3Ccircle cx='56' cy='14' r='4'/%3E%3C/g%3E%3C/svg%3E");
--wave-w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='28' viewBox='0 0 56 28'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.12' stroke-width='1.2'%3E%3Ccircle cx='14' cy='28' r='14'/%3E%3Ccircle cx='14' cy='28' r='9'/%3E%3Ccircle cx='14' cy='28' r='4'/%3E%3Ccircle cx='42' cy='28' r='14'/%3E%3Ccircle cx='42' cy='28' r='9'/%3E%3Ccircle cx='42' cy='28' r='4'/%3E%3Ccircle cx='0' cy='14' r='14'/%3E%3Ccircle cx='0' cy='14' r='9'/%3E%3Ccircle cx='0' cy='14' r='4'/%3E%3Ccircle cx='28' cy='14' r='14'/%3E%3Ccircle cx='28' cy='14' r='9'/%3E%3Ccircle cx='28' cy='14' r='4'/%3E%3Ccircle cx='56' cy='14' r='14'/%3E%3Ccircle cx='56' cy='14' r='9'/%3E%3Ccircle cx='56' cy='14' r='4'/%3E%3C/g%3E%3C/svg%3E");
--squig:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='8' viewBox='0 0 40 8'%3E%3Cpath d='M1 5 Q6 0 10 4 T20 4 T30 4 T39 3' fill='none' stroke='%23d03a2b' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E")}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:12px}
a,button,input,select,textarea,summary,label{touch-action:manipulation;-webkit-tap-highlight-color:rgba(208,58,43,.15)}
.mgrid>*,.pgrid>*,.tgrid>*,.two>*,.quick>*,.ycards>*,.ptop>*{min-width:0}
body{margin:0;background:var(--bg);color:var(--ink);font:500 16px/1.9 var(--round);padding-bottom:calc(66px + env(safe-area-inset-bottom));line-break:strict;word-break:auto-phrase;overflow-wrap:break-word;overflow-x:hidden}
a{color:inherit}
.wrap{max-width:1000px;margin:0 auto;padding:0 18px}
h1,h2,.sh,.t-big,.cta h2,h3{font-family:var(--serif)}
h1{font-size:clamp(26px,6.2vw,40px);line-height:1.5;margin:10px 0 12px;letter-spacing:.04em;font-weight:700;text-wrap:balance}
h3{font-size:17px;margin:18px 0 6px;font-weight:700}
p{margin:0 0 12px;text-wrap:pretty}
.lead{font-size:17px;color:var(--ink2);max-width:40em}
.sub{color:var(--ink2);margin:-2px 0 18px}
.note,.hint{font-size:14px;color:var(--mut)}
.hint{margin:14px 0 8px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.1em;color:var(--shu);font-weight:700;margin:6px 0 0;background:#fff;border:2px solid var(--line);padding:3px 14px;border-radius:99px}
.jp{color:var(--mut);margin:0 0 8px;letter-spacing:.08em}
.fox{display:block;width:100%;height:auto;object-fit:contain;object-position:center bottom}
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.js .rv.in{opacity:1;transform:none}

/* header */
.top{position:relative;z-index:30;background:var(--bg);border-bottom:2px solid var(--line)}
.top-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding-top:10px;padding-bottom:10px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;font-size:17px;font-family:var(--serif);letter-spacing:.05em}
.logo-mark{display:block;width:40px;height:34px;flex:0 0 auto}
.logo-mark .fox{height:34px;object-position:center}
.search{position:relative;display:flex;flex:1 1 280px;min-width:0;order:3;width:100%}
.search input{flex:1;min-width:0;height:48px;padding:0 18px;border:2px solid var(--line2);border-right:0;border-radius:99px 0 0 99px;background:#fff;font:inherit;font-size:16px;color:var(--ink)}
.search input::placeholder{color:var(--mut);text-overflow:ellipsis}
.search input:focus{outline:3px solid var(--gold3);outline-offset:0;border-color:var(--gold2)}
.search button{height:48px;padding:0 20px 0 16px;border:2px solid var(--ai);border-radius:0 99px 99px 0;background:var(--ai);color:#fff;font:inherit;font-weight:700;cursor:pointer;touch-action:manipulation}
.sug{position:absolute;left:0;right:0;top:54px;background:#fff;border:2px solid var(--line2);border-radius:18px;box-shadow:var(--sh2);overflow:hidden;z-index:40}
.sug a{display:block;padding:12px 18px;text-decoration:none;border-bottom:1px solid var(--line);font-size:15px}
.sug a:last-child{border-bottom:0}.sug a:hover,.sug a:focus{background:var(--gold3)}
.gnav{display:none}
.search-big{max-width:580px;margin:16px 0}

/* buttons: ぷっくり */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:99px;font-weight:700;text-decoration:none;border:2px solid transparent;touch-action:manipulation;text-align:center;transition:transform .15s,box-shadow .15s;letter-spacing:.04em}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(2px)}
.btn-navy{background:var(--shu);color:#fff;box-shadow:0 5px 0 #a42a1d,0 10px 18px rgba(208,58,43,.25)}
.btn-line{border-color:var(--ai);color:var(--ai);background:#fff;box-shadow:0 5px 0 rgba(45,74,120,.25)}
.btn-gold{background:linear-gradient(180deg,#ffe29a,var(--gold2));color:#3a2606;border-color:#fff2c7;box-shadow:0 5px 0 #b9811c,0 12px 20px rgba(0,0,0,.2)}
.btn-lg{min-height:60px;font-size:17px;padding:0 32px}

/* hero: 空・太陽・鳥居・きっちゃん */
.hero{position:relative;padding:20px 0 70px;background:linear-gradient(180deg,#fde3c6 0%,#fff0dc 52%,var(--bg) 100%);overflow:hidden}
.hero::before{content:"";position:absolute;left:0;right:0;bottom:0;height:64px;background:var(--wave);-webkit-mask-image:linear-gradient(0deg,#000 30%,transparent);mask-image:linear-gradient(0deg,#000 30%,transparent)}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,#ffd98a 0%,#ffe9b8 45%,rgba(255,233,184,0) 70%)}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:grid;gap:4px;align-items:center}
.hero-art{position:relative;height:236px;order:-1}
.hero-art .fox-hero{position:absolute;right:-4px;bottom:0;width:224px;height:224px;z-index:2;filter:drop-shadow(0 8px 10px rgba(150,90,40,.2))}
.hero-art .torii{position:absolute;right:92px;bottom:20px;width:128px;opacity:.9;z-index:1}
.hero-art .cloud{position:absolute;opacity:.95}
.hero-art .c1{left:6%;top:6px;width:84px}.hero-art .c2{right:36%;top:50px;width:60px}
.bubble{position:absolute;left:0;top:22px;max-width:62%;background:#fff;border:2.5px solid var(--ink);border-radius:20px;padding:11px 14px;font-size:14px;line-height:1.65;font-weight:700;color:var(--ink);box-shadow:0 4px 0 rgba(46,42,60,.12);z-index:3}
.bubble::after{content:"";position:absolute;right:-13px;bottom:16px;width:22px;height:22px;background:#fff;border-right:2.5px solid var(--ink);border-top:2.5px solid var(--ink);transform:rotate(45deg) skew(10deg,10deg)}
.hero h1{font-size:clamp(30px,8vw,52px);line-height:1.5;color:var(--ink);margin:12px 0 12px;font-weight:700}
.hero h1 em{font-style:normal;color:var(--shu);background:linear-gradient(transparent 66%,rgba(227,169,61,.55) 66%);padding:0 2px}
.hero .lead{color:var(--ink2)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px}
.hero-cta .btn{flex:1 1 190px}
.hero-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.hero-stats div{display:flex;align-items:baseline;gap:6px;padding:6px 14px;border-radius:99px;background:#fff;border:2px solid var(--line2);box-shadow:0 3px 0 rgba(160,110,60,.1)}
.hero-stats b{font-family:var(--serif);font-size:22px;line-height:1;color:var(--shu)}
.hero-stats span{font-size:12.5px;color:var(--ink2)}

/* sections */
.sec{padding:40px 0}.sec-alt{background:var(--bg2) var(--wave)}
.sec-first{margin-top:-52px;padding-top:0;position:relative;z-index:2}
.sh{position:relative;font-size:22px;margin:0 0 18px;line-height:1.5;font-weight:700;letter-spacing:.05em;padding-bottom:12px}
.sh::after{content:"";position:absolute;left:0;bottom:0;width:40px;height:8px;background:var(--squig) no-repeat}
.sh[data-en]::before{content:attr(data-en);display:block;font-family:Georgia,serif;font-size:11px;letter-spacing:.3em;color:var(--shu);font-weight:400}
.sec .sh:not(:first-child){margin-top:34px}

/* today */
.today{background:var(--card);border:2px solid var(--line2);border-radius:28px;box-shadow:var(--sh2);padding:20px;position:relative;overflow:hidden}
.today::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(90deg,var(--shu) 0 18px,#fff 18px 24px,var(--gold2) 24px 42px,#fff 42px 48px)}
.t-head{display:flex;gap:14px;align-items:center;position:relative;padding-top:8px}
.leaf{flex:0 0 auto;width:90px;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 5px 0 rgba(160,110,60,.15),0 10px 18px rgba(150,95,50,.14);text-align:center;border:2px solid var(--line2)}
.leaf .lm{display:block;background:var(--shu);color:#fff;font-size:13px;font-weight:700;padding:3px 0;letter-spacing:.1em}
.leaf b{display:block;font-family:var(--serif);font-size:46px;line-height:1.15;color:var(--ink)}
.leaf .lw{display:block;font-size:12px;color:var(--mut);padding-bottom:6px}
.t-title{flex:1;min-width:0}
.t-title p{margin:0;color:var(--mut);font-size:13px}
.t-title h3{margin:2px 0 0;font-size:20px;line-height:1.5}
.ft-wrap{position:relative;flex:0 0 auto;width:92px;height:92px;margin-left:auto}.fox-today{width:92px;height:92px}.spark{position:absolute;width:16px;height:16px}.spark.s1{left:-4px;top:2px}.spark.s2{right:-2px;top:-4px;width:12px;height:12px}.zzz{position:absolute;right:-2px;top:-6px;font:700 13px/1 var(--serif);color:#6a8fb5;letter-spacing:.1em}
.t-out{margin:10px 0 0;font-size:14px;color:var(--shu);position:relative}
.tc{display:grid;gap:10px;margin:16px 0;position:relative}
.tc-item{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;padding:13px 14px;border:2px solid var(--line);border-radius:18px;background:#fffdf7}
.tc-item.caution{background:#fdf1ef;border-color:#f0c4bd}
.tc-main b{font-size:17px;font-family:var(--serif)}
.tc-main a{text-decoration:none}
.tc-item p{grid-column:1/-1;margin:2px 0 0;font-size:14.5px;color:var(--ink2)}
.tc-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.tc-tags span,.tags span{font-size:12px;padding:2px 11px;border-radius:99px;background:var(--gold3);color:#5b430c;font-weight:700}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.mixed{margin-top:12px;padding:14px 16px;border:2px dashed var(--shu);border-radius:18px;background:#fdf5f3;position:relative}
.mixed-t{font-weight:700;color:var(--shu);margin:0 0 6px}.mixed p{font-size:14.5px;margin:0 0 8px}
.t-next{margin-top:14px;padding-top:12px;border-top:2px dotted var(--line2);font-size:15px;color:var(--ink2);position:relative}
.t-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;position:relative}
.t-links .btn{flex:1 1 180px}

/* stamps / labels */
.stamp{display:inline-grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:var(--c,var(--t));color:#fff;font-family:var(--serif);font-weight:700;font-size:22px;line-height:1;transform:rotate(-7deg);box-shadow:inset 0 0 0 2px rgba(255,255,255,.6),0 3px 0 rgba(0,0,0,.14)}
.stamp.sm{width:34px;height:34px;font-size:16px}
.lb{display:inline-block;padding:1px 11px;margin:0 8px 2px 0;border-radius:99px;font-size:12.5px;font-weight:700;color:#fff;background:var(--ai);vertical-align:1px}
.lb.b-h{background:var(--h)}.lb.b-t{background:var(--t)}.lb.b-i{background:var(--i)}.lb.b-d{background:var(--d)}.lb.b-r{background:var(--r)}.lb.b-m{background:var(--m)}.lb.b-k{background:var(--k)}.lb.b-q{background:var(--q)}.lb.b-f{background:var(--f)}.lb.b-b{background:var(--b)}
.lb2{display:block;font-weight:700;font-size:14px;color:var(--shu);margin-bottom:2px}
.meta{font-size:13px;color:var(--mut);margin:12px 0 0}

/* grids + cards */
.two{display:grid;gap:14px}
.box{background:#fff;border:2px solid var(--line);border-radius:var(--rad);padding:18px;box-shadow:var(--sh)}
.box h3{margin:0 0 8px;font-size:16px}
.box ul{margin:0;padding:0;list-style:none}
.box li{display:flex;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:2px dotted var(--line);font-size:15px}
.box li:last-child{border-bottom:0}
.box .more{display:inline-block;margin-top:10px;font-weight:700;font-size:14.5px;color:var(--shu);text-decoration:none}
.quick{display:grid;gap:14px;margin-top:14px}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mgrid a{position:relative;display:flex;flex-direction:column;padding:12px 12px 10px;background:var(--tint,#fff);border:2px solid #fff;border-radius:20px;text-decoration:none;min-height:88px;overflow:hidden;transition:transform .2s,box-shadow .2s;box-shadow:var(--sh)}
.mgrid a:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.mgrid a.ss-spring{--tint:var(--sakura)}.mgrid a.ss-summer{--tint:var(--sora)}.mgrid a.ss-autumn{--tint:var(--momo)}.mgrid a.ss-winter{--tint:#e6e4f4}
.mgrid b{font-family:var(--serif);font-size:24px;line-height:1.25;color:var(--ink)}
.mgrid span{font-size:12px;color:var(--ink2)}
.mgrid i{position:absolute;right:9px;top:8px;font-style:normal;font-family:var(--serif);font-size:15px;color:var(--shu);writing-mode:vertical-rl;letter-spacing:.1em}
.pgrid,.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pcard{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--tint,#fff);border:2px solid #fff;border-radius:var(--rad);text-decoration:none;min-height:130px;transition:transform .2s,box-shadow .2s;box-shadow:var(--sh)}
.pcard:hover{transform:translateY(-3px) rotate(-.6deg);box-shadow:var(--sh2)}
.pcard .ico{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#fff;color:var(--ic,var(--ai));box-shadow:0 3px 0 rgba(0,0,0,.08)}
.pcard .ico svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pcard b{font-size:15px;line-height:1.55}
.pcard span{font-size:12.5px;color:var(--shu);font-weight:700;margin-top:auto}
.tcard{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:start;padding:16px;background:#fff;border:2px solid var(--line);border-radius:var(--rad);text-decoration:none;transition:transform .2s,box-shadow .2s;grid-column:1/-1;box-shadow:var(--sh)}
.tcard:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.tcard .stamp{grid-row:1/4}
.tcard b{font-size:18px;font-family:var(--serif)}.tcard .tk{display:block;font-size:12px;color:var(--mut)}.tcard p{margin:4px 0 0;font-size:14.5px;color:var(--ink2)}
.t-h{--c:var(--h)}.t-t{--c:var(--t)}.t-i{--c:var(--i)}.t-d{--c:var(--d)}.t-r{--c:var(--r)}.t-m{--c:var(--m)}.t-k{--c:var(--k)}.t-q{--c:var(--q)}.t-f{--c:var(--f)}.t-b{--c:var(--b)}
.best{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.best li{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#fff;border:2px solid var(--line);border-radius:var(--rad);box-shadow:var(--sh)}
.best b{font-family:var(--serif);font-size:20px}.best span{margin-left:auto;text-align:right}
.ycards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ycard{display:flex;flex-direction:column;gap:2px;padding:16px;background:#fff;border:2px solid var(--line);border-radius:var(--rad);text-decoration:none;transition:transform .2s,box-shadow .2s;box-shadow:var(--sh)}
.ycard:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.ycard b{font-size:24px;font-family:var(--serif)}.ycard span{font-size:13.5px;color:var(--ink2)}.ycard em{font-style:normal;font-size:12.5px;color:var(--shu);font-weight:700}
.ybox{padding:16px 0;border-bottom:2px dotted var(--line2)}.ybox h3{margin:0}.ybox small{color:var(--mut)}.ylist{font-size:14px;color:var(--ink2)}

/* badges */
.bd{display:inline-block;padding:2px 11px;margin:2px 4px 2px 0;border-radius:99px;font-size:13px;font-weight:700;text-decoration:none;color:#fff;line-height:1.6}
.bd.sm{font-size:12px;padding:1px 10px}
.b-h{background:var(--h)}.b-t{background:var(--t)}.b-i{background:var(--i)}.b-d{background:var(--d)}.b-r{background:var(--r)}.b-m{background:var(--m)}.b-k{background:var(--k)}.b-q{background:var(--q)}.b-f{background:var(--f)}.b-b{background:var(--b)}

/* page header band (inner pages) */
.phead{position:relative;background:linear-gradient(180deg,#ffeedb,#fff6ea);border-bottom:2px solid var(--line);padding:6px 0 24px;overflow:hidden}
.phead::before{content:"";position:absolute;left:0;right:0;bottom:0;height:46px;background:var(--wave);-webkit-mask-image:linear-gradient(0deg,#000,transparent);mask-image:linear-gradient(0deg,#000,transparent)}
.phead .wrap{position:relative;z-index:1}
.ph-fox{position:absolute;right:8px;top:30px;width:76px;height:76px;z-index:0}
.crumb{font-size:12.5px;color:var(--mut);margin-top:14px}.crumb a{text-decoration:none}
.phead h1{padding-right:70px}

/* calendar */
.mnav{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.mnav label{font-size:13px;color:var(--mut);display:flex;align-items:center;gap:6px}
.mnav select{height:46px;padding:0 14px;border:2px solid var(--line2);border-radius:99px;background:#fff;font:inherit;font-size:16px;color:var(--ink)}
.pills{display:flex;gap:7px;overflow-x:auto;padding:3px 2px 8px;flex:1 1 100%;scrollbar-width:thin}
.pills.wrapp{flex-wrap:wrap;overflow:visible}
.pill{flex:0 0 auto;padding:9px 16px;border:2px solid var(--line2);border-radius:99px;background:#fff;text-decoration:none;font-size:14px;font-weight:700;transition:background .2s}
.pill:hover{background:var(--gold3)}
.pill.on{background:var(--shu);color:#fff;border-color:var(--shu);box-shadow:0 3px 0 #a42a1d}
.cal-wrap{margin:8px 0;padding:8px;background:#fff;border:2px solid var(--line2);border-radius:26px;box-shadow:var(--sh);overflow:hidden}
.cal{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed}
.cal th{padding:8px 0;font-size:13px;color:#fff;font-weight:700;background:var(--ai);border-radius:12px}
.cal th.sun{background:var(--shu)}.cal th.sat{background:#3b7bb5}
.cal td{height:66px;padding:0;vertical-align:top;background:#fffaf1;border-radius:14px;position:relative}
.cal td.o{background:transparent}
.cal .sun .n,.cal .hol .n{color:var(--shu)}.cal .sat .n{color:#2f6da3}
.cal td.no .n{display:block;padding:7px 8px;font-size:15px;font-weight:700}
.cal td.no .rk{position:absolute;right:4px;top:8px}
.cal td a{display:block;height:100%;padding:7px 6px 4px;text-decoration:none;position:relative;border-radius:14px;transition:background .15s}
.cal td a:hover{background:#fff0c8}
.cal td.has{background:#fff6dc}
.cal td.has.s-rec{background:linear-gradient(160deg,#ffefb8,#ffd96e);box-shadow:inset 0 0 0 2px var(--gold2)}
.cal td.has.s-mixed{background:#fde9e6}
.cal td.has.s-avoid{background:#f1eee8}
.cal td.sel,.cal td a:focus-visible{outline:3px solid var(--ai);outline-offset:-2px}
.cal .n{font-size:15px;font-weight:700;line-height:1.1}
.cal .rk{position:absolute;right:4px;top:8px;font-size:10.5px;color:var(--mut);letter-spacing:-.04em;line-height:1}
.cal .hl{display:block;font-size:11px;color:var(--shu);margin-top:2px;line-height:1.1;font-weight:700}
.cal .hf{display:none}
.cal .kstar{position:absolute;right:3px;bottom:3px;width:22px;height:19px}
.dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px;max-width:72%}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;padding:0;margin:12px 0 4px;font-size:13px;color:var(--ink2)}
.legend li{display:flex;align-items:center;gap:6px}

/* details */
.dlist{display:grid;gap:10px}
.day{background:#fff;border:2px solid var(--line);border-radius:20px;overflow:hidden;transition:box-shadow .2s,border-color .2s}
.day[open]{border-color:var(--gold2);box-shadow:var(--sh)}
.day summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none;min-height:58px}
.day summary::-webkit-details-marker{display:none}
.day summary::after{content:"+";margin-left:auto;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--gold3);color:var(--shu);font-size:20px;font-weight:700;line-height:1}
.day[open] summary::after{content:"–"}
.dd{font-family:var(--serif);font-size:26px;font-weight:700;min-width:34px;line-height:1}
.dw{color:var(--mut);font-size:13px;min-width:18px}
.dn{font-size:14.5px;font-weight:700;color:var(--ink2)}
.sc{color:var(--gold);font-size:13px;white-space:nowrap}
.day.is-mixed summary .dn{color:var(--shu)}
.dbody{padding:0 16px 16px;border-top:2px dotted var(--line2)}
.dbody h4{margin:16px 0 6px;font-size:13px;color:var(--shu);letter-spacing:.1em}
.dbody ul{margin:0;padding:0;list-style:none;font-size:14.5px}.dbody li{margin:7px 0;color:var(--ink2)}
.act{font-size:14.5px;background:var(--gold3);border-radius:14px;padding:10px 14px;color:#4a350a}
.day:target{scroll-margin-top:96px}
.mt,.yt{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:2px solid var(--line2);border-radius:18px;overflow:hidden}
.mt th,.mt td,.yt th,.yt td{padding:12px 14px;border-bottom:2px dotted var(--line);text-align:left;font-size:15px}
.yt thead th{background:var(--ai);color:#fff;font-size:13px}
.ptop{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ptop a{display:flex;flex-direction:column;padding:14px;background:#fff;border:2px solid var(--line);border-radius:18px;text-decoration:none;min-height:64px;transition:transform .2s;box-shadow:var(--sh)}
.ptop a:hover{transform:translateY(-2px);border-color:var(--gold2)}
.ptop span{font-size:13px;color:var(--ink2)}
.pn{display:flex;justify-content:space-between;gap:10px;margin:22px 0}.pn a{padding:13px 20px;background:#fff;border:2px solid var(--line2);border-radius:99px;text-decoration:none;font-weight:700}

/* content */
.kbox,.cbox,.mbox{padding:16px;background:#fff;border:2px solid var(--line);border-radius:20px;margin-bottom:12px;box-shadow:var(--sh)}
.kbox h3,.cbox h3,.mbox h3{margin-top:0}.kl span{display:block;font-size:13px;color:var(--mut)}
.cw{font-size:13.5px;color:var(--shu);font-weight:700}
.bul{padding-left:20px}.bul li{margin:7px 0}
.faq details{background:#fff;border:2px solid var(--line);border-radius:20px;margin-bottom:10px;transition:box-shadow .2s}
.faq details[open]{box-shadow:var(--sh);border-color:var(--gold2)}
.faq summary{padding:16px 52px 16px 18px;cursor:pointer;font-weight:700;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";position:absolute;right:16px;top:12px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--gold3);color:var(--shu);font-size:20px;line-height:1}
.faq details[open] summary::after{content:"–"}.faq p{padding:0 18px 16px;margin:0;color:var(--ink2)}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 18px}.chips a{padding:9px 15px;border:2px solid var(--line2);border-radius:99px;background:#fff;text-decoration:none;font-size:14px}
.results a{display:block;padding:16px;margin-bottom:10px;background:#fff;border:2px solid var(--line);border-radius:20px;text-decoration:none;box-shadow:var(--sh)}
.results a b{display:block}.results a span{font-size:13px;color:var(--mut)}
.cta-one{margin:26px 0 8px}
.empty{color:var(--mut)}
.doc h2{font-size:19px;margin:30px 0 8px;padding-left:12px;border-left:5px solid var(--shu);border-radius:3px}
.doc dl{margin:0}.doc dt{font-weight:700;margin-top:12px}.doc dd{margin:2px 0 0;color:var(--ink2)}
.err{text-align:center;padding:30px 0}.err .fox{width:200px;height:200px;margin:0 auto 10px}

/* cta: きっちゃんが絵馬を持ってお願い */
.cta{position:relative;margin:30px 0;border-radius:30px;background:linear-gradient(150deg,#2a4673,#3a5a8c);color:#fff;overflow:hidden;box-shadow:var(--sh2)}
.cta::before{content:"";position:absolute;inset:0;background:var(--wave-w)}
.cta-in{position:relative;padding:30px 22px 26px;z-index:1}
.cta-fox{position:relative;width:150px;height:150px;margin:-6px auto 0;z-index:1}.cta-fox .ema{position:absolute;left:-18px;bottom:8px;width:60px;transform:rotate(-12deg);filter:drop-shadow(0 3px 0 rgba(0,0,0,.18))}
.cta-k{display:inline-block;color:#3a2606;background:var(--gold2);font-weight:700;font-size:12px;letter-spacing:.12em;margin:0 0 10px;padding:3px 14px;border-radius:99px}
.cta h2{margin:0 0 12px;font-size:clamp(21px,5.4vw,30px);line-height:1.55;font-weight:700}
.cta p{color:#e6ecf7}.cta-sub{color:#fff!important;font-weight:600}
.cta .btn{width:100%;margin-top:8px}.cta-link{display:block;text-align:center;margin-top:14px;font-size:13.5px;color:#d3def0}
.cta-note{font-size:12px;color:#cdd9ee;margin:10px 0 0;text-align:center}
.cta-mid{margin:22px 0}

/* footer + tabbar */
.foot{margin-top:70px;padding:34px 0 46px;background:#2a4673 var(--wave-w);color:#d3def0;font-size:13.5px;position:relative}
.foot-fox{position:absolute;right:16px;top:-62px;width:90px;height:90px}
.foot-name{font-family:var(--serif);font-weight:700;color:#fff;margin:0 0 6px;font-size:17px;letter-spacing:.06em}.foot a{color:#ffe29a}
.tabbar{position:fixed;z-index:35;left:0;right:0;bottom:0;display:flex;background:#fff;border-top:2px solid var(--line2);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 18px rgba(150,95,50,.12)}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:0;padding:6px 0 7px;font-size:12px;font-weight:700;text-decoration:none;color:var(--ink2);min-height:58px}
.tabbar i{font-style:normal;font-size:19px;line-height:1.2;color:var(--shu)}

@media(min-width:720px){
 html{scroll-padding-top:84px}.top{position:sticky;top:0}.cal .hs{display:none}.cal .hf{display:block}
 body{padding-bottom:0}.tabbar{display:none}
 .search{order:0;width:auto;flex:1 1 300px;max-width:380px}.gnav{display:flex;gap:2px;margin-left:auto;font-size:14px;font-weight:700}.gnav a{white-space:nowrap;text-decoration:none;padding:9px 12px;border-radius:99px;transition:background .2s}.gnav a:hover{background:var(--gold3)}
 .top-in{flex-wrap:nowrap}.logo span:last-child{white-space:nowrap}
 .hero{padding:44px 0 110px}.hero::after{right:calc(50% - 470px);top:20px;width:380px;height:380px}
 .hero-grid{grid-template-columns:1.05fr .95fr;gap:20px}.hero-art{order:0;height:400px}
 .hero-art .fox-hero{width:390px;height:390px;right:10px}.hero-art .torii{right:290px;bottom:30px;width:180px}
 .hero-art .c1{left:4%;top:30px;width:120px}.hero-art .c2{right:6%;top:20px;width:90px}
 .bubble{left:auto;right:150px;top:10px;max-width:260px;font-size:15px}.bubble::after{right:22px;bottom:-14px;transform:rotate(135deg) skew(10deg,10deg)}
 .sec-first{margin-top:-80px}
 .two{grid-template-columns:1fr 1fr}.quick{grid-template-columns:1fr 1fr 1fr}
 .mgrid{grid-template-columns:repeat(6,1fr)}.pgrid{grid-template-columns:repeat(3,1fr)}.tgrid{grid-template-columns:1fr 1fr 1fr}.tcard{grid-column:auto}
 .ycards{grid-template-columns:repeat(3,1fr)}.ptop{grid-template-columns:repeat(4,1fr)}
 .cal td{height:96px}.cal-wrap{padding:14px}.cal .n{font-size:17px}.cal .rk{font-size:11.5px;top:9px}.cal .hl{font-size:11.5px}.cal .kstar{width:28px;height:24px}
 .cta{display:grid;grid-template-columns:1fr 230px;align-items:center}.cta-in{padding:44px 20px 44px 52px}.cta-fox{width:210px;height:210px;margin:0 20px 0 0;order:2}.cta .btn{width:auto;min-width:300px}.cta-link,.cta-note{text-align:left}
 .sec{padding:56px 0}.today{padding:28px}.leaf{width:112px}.leaf b{font-size:56px}.fox-today{width:130px;height:130px}.cta-fox .ema{width:84px;left:-26px}.ph-fox{width:124px;height:124px;right:max(24px,calc(50% - 480px));top:30px}.phead h1{padding-right:150px}.foot-fox{right:60px;width:110px;height:110px;top:-80px}
}
@media(max-width:380px){.cal td{height:60px}.cal td a{padding:5px 4px 3px}.dot{width:7px;height:7px}.leaf{width:78px}.leaf b{font-size:38px}.hero-art .fox-hero{width:190px;height:190px}.hero-art{height:208px}.fox-today{width:70px;height:70px}}
@media(hover:none){.btn:hover,.mgrid a:hover,.pcard:hover,.tcard:hover,.ycard:hover,.ptop a:hover,.cal td a:hover{transform:none;box-shadow:var(--sh)}.cal td a:hover{background:transparent;box-shadow:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .rv{opacity:1;transform:none;transition:none}*{transition:none!important}}
.cal-ctrl{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}.cal-ctrl b{font-family:var(--serif);font-size:20px}.cal-ctrl button{min-height:46px;padding:0 18px;border:2px solid var(--line2);border-radius:99px;background:#fff;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;box-shadow:0 3px 0 rgba(160,110,60,.12)}.cal-ctrl button:disabled{opacity:.4;cursor:default}
