/* ===========================================
   Brand Base (ONE SOURCE OF TRUTH)
   =========================================== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;700&family=Noto+Sans+JP:wght@400;500;700&display=swap');

:root{
  /* Brand tokens */
  --ink:#2C2C2C;          /* 墨（本文） */
  --paper:#FAFAF8;        /* 紙色（全ページ背景） */
  --ai:#2B3A55;           /* 藍（リンク） */
  --ai-hover:#3C4C6A;     /* 藍 hover */
  --line:#E6E6E6;         /* 罫線/枠線 */
  --ai-wash:#E8EDF3;      /* 藍淡色 */

  /* ほんのり暗い紙色（hover用） */
  --paper-dim: #E6E4E0;
  /* color-mix 対応環境ではこちらが優先 */
  --paper-dim: color-mix(in srgb, var(--paper) 80%, black);
}

/* ===========================================
   Base
   =========================================== */
html{ overflow:auto; }
body{
  margin:0; min-width:375px; overflow-x:hidden;
  font-size:14px; line-height:1.82; letter-spacing:.02em;
  color:var(--ink); background:var(--paper);
  -webkit-font-smoothing:antialiased;
  font-family:"Noto Serif JP","Yu Mincho","游明朝体","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
}
@media (max-width:767px){ body{ font-size:14px; } }

img{ max-width:100%; vertical-align:top; -webkit-backface-visibility:hidden; image-rendering:-webkit-optimize-contrast; }
ul,ol,dl{ list-style:none; margin:0; padding:0; }

a{ color:var(--ai); transition:color .25s ease; text-decoration:none; }
a:hover,a:focus{ color:var(--ai-hover); text-decoration:underline; }
::selection{ background:var(--ai-wash); color:var(--ink); }

[data-whatinput=mouse] *:focus,[data-whatinput=touch] *:focus{ outline:none; }

/* ゴシックにしたい“小UI”だけ切替 */
button,.c-btn,.c-pager-list__link,.l-header-search__input input,.c-item-list__price{
  font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic","Meiryo",sans-serif!important;
}

/* ===========================================
   Utility
   =========================================== */
.u-container{ box-sizing:border-box; position:relative; margin:0 auto; padding:0 25px; max-width:1330px; }
@media (max-width:767px){ .u-container{ padding:0 20px; } }
.u-container-fhd{ margin:0 auto; max-width:1920px; }
.u-contents{ padding:150px 0; }
@media (max-width:767px){ .u-contents{ padding:75px 0; } }
.u-contents-s{ padding:45px 0; }
.u-attention{ color:#b72424; }
.u-bold{ font-weight:bold; }
.u-red{ color:#ff0000; }
.u-text-right{ text-align:right; }
.u-strikethrough{ text-decoration:line-through; }
.u-marker{ background:linear-gradient(transparent 70%, #fff284 70%); }
.u-visually-hidden{
  position:absolute; white-space:nowrap; width:1px; height:1px;
  overflow:hidden; border:0; padding:0; clip:rect(0 0 0 0); clip-path:inset(50%); margin:-1px;
}
.u-pc-only{ display:block; } .u-pc-only-inline{ display:inline; } .u-pc-only-inlineBlock{ display:inline-block; } .u-pc-only-flex{ display:flex; }
.u-sp-only,.u-sp-only-inline,.u-sp-only-inline-block,.u-sp-only-flex{ display:none; }
@media (max-width:767px){
  .u-pc-only,.u-pc-only-inline,.u-pc-only-inlineBlock,.u-pc-only-flex{ display:none; }
  .u-sp-only{ display:block; } .u-sp-only-inline{ display:inline; } .u-sp-only-inline-block{ display:inline-block; } .u-sp-only-flex{ display:flex; }
}
.u-hidden{ overflow:hidden; }
.u-opa img{ opacity:1; transition:opacity .3s ease; }
.u-opa img:hover{ opacity:.8; }

/* 横スクロール補助 */
@media (max-width:1023px){
  .u-overflow-slide{ overflow-x:auto; white-space:nowrap; padding-bottom:20px; width:100%; }
  .u-overflow-slide.is-product-thumb{ padding-bottom:10px; }
  .u-overflow-slide.is-option-tbl{ padding-bottom:15px; }
  .u-overflow-slide::-webkit-scrollbar{ height:8px; }
  .u-overflow-slide::-webkit-scrollbar-track{ background:#f4f4f4; }
  .u-overflow-slide::-webkit-scrollbar-thumb{ border-radius:4px; background:#8f8f8f; }
}

/* 正方形画像のプレースホルダも紙色寄せ */
.u-square-img{ position:relative; }
.u-square-img:before{ display:block; padding-top:100%; content:""; background:var(--paper); }
.u-square-img a{ position:absolute; inset:0; display:block; }
.u-square-img img{
  position:absolute; inset:0; max-width:100%; max-height:100%; margin:auto;
}

/* ===========================================
   Layout
   =========================================== */
.l-main.is-top{ margin-top:0; padding-top:0; }
.l-bottom{ margin-top:60px; } @media (max-width:767px){ .l-bottom{ margin-top:30px; } }

/* ===========================================
   Components &#8211; Titles
   =========================================== */
.c-ttl-main{
  margin:0 0 40px; text-align:center;
  line-height:1.25; letter-spacing:.05em;
  font-weight:bold; font-size:26px;
}
@media (max-width:1023px){ .c-ttl-main{ margin-bottom:30px; font-size:25px; } }
@media (max-width:767px){ .c-ttl-main{ margin-bottom:20px; font-size:22px; } }
.c-ttl-main.is-mbs{ margin-bottom:45px; }
.c-ttl-main.is-mb0{ margin-bottom:0; }
.c-ttl-main.is-s{ font-size:20px; }

.c-ttl-sub{ margin:0 0 20px; line-height:1.4; font-size:24px; font-weight:bold; word-break:break-all; }
@media (max-width:767px){ .c-ttl-sub{ margin-bottom:15px; fontサイズ:18px; } }

/* ===========================================
   Components &#8211; Item List
   =========================================== */
.c-item-list{ display:flex; flex-wrap:wrap; }
.c-item-list__item{ position:relative; box-sizing:border-box; width:25%; word-break:break-all; }
@media (max-width:1023px){ .c-item-list__item{ margin-bottom:20px; width:33.3333%; } }
@media (max-width:767px){ .c-item-list__item{ width:50%; } }
.c-item-list__item.is-hidden{ display:none; }
.c-item-list__item:hover .c-item-list__txt{ opacity:1; }

.c-item-list__img{ position:relative; text-align:center; background:var(--paper); }
.c-item-list__icon{
  position:absolute; top:20px; left:20px; z-index:100;
  padding:5px 5px 3px; line-height:1.2; font-weight:bold; font-size:20px;
  background:#cccccc; color:#ffffff;
}
@media (max-width:1200px){ .c-item-list__icon{ font-size:16px; } }
@media (max-width:1023px){ .c-item-list__icon{ font-size:14px; } }
@media (max-width:767px){ .c-item-list__icon{ top:15px; left:10px; } }
.c-item-list__icon.is-soldout{ background:#000; }
.c-item-list__icon.is-off{ background:#fff; color:#000; }
.c-item-list__icon.is-s{ font-size:14px; } @media (max-width:1023px){ .c-item-list__icon.is-s{ font-size:10px; } }

.c-item-list__txt{
  display:flex; justify-content:center; flex-direction:column;
  position:absolute; inset:0; z-index:10;
  padding:20px; background:rgba(0,0,0,.6); color:#fff; opacity:0;
  transition:opacity .2s cubic-bezier(.25,.46,.45,.94);
}
@media (max-width:1023px){
  .c-item-list__txt{ position:static; padding:10px; background:transparent; opacity:1; color:#2d2d2d; }
}
.c-item-list__txt.is-ranking{ padding-left:70px; padding-right:70px; }
@media (max-width:767px){ .c-item-list__txt.is-ranking{ padding-left:10px; padding-right:10px; } }
.c-item-list__ttl{ font-size:16px; }
.c-item-list__ttl img{ vertical-align:middle; }
.c-item-list__ttl a{ color:#fff; }
@media (max-width:1023px){ .c-item-list__ttl a{ color:#2d2d2d; } }
.c-item-list__body{ margin-top:5px; font-size:14px; }
@media (max-width:1200px){ .c-item-list__body{ font-size:12px; } }
.c-item-list__price{ margin-top:15px; font-size:18px; }
@media (max-width:1200px){ .c-item-list__price{ margin-top:0; font-size:13px; } }
@media (max-width:1023px){ .c-item-list__price{ margin-top:5px; font-size:15px; } }
.c-item-list__price + .c-item-list__price{ margin-top:0; }
.c-item-list__price.is-soldout{ color:#a10000; }
.c-item-list__price.u-strikethrough{ font-size:12px; }

.c-item-list__btn{
  box-sizing:border-box; display:flex; justify-content:center; align-items:center;
  position:absolute; top:15px; right:15px; width:45px; height:45px; z-index:100;
  padding:0; border:0; border-radius:50%; background:#fff; color:#bababa;
  cursor:pointer; text-align:center; transition:all .3s cubic-bezier(.25,.46,.45,.94);
}
@media (max-width:767px){ .c-item-list__btn{ top:10px; right:10px; width:30px; height:30px; } }
.c-item-list__btn.is-ranking{ top:40px; right:30px; }
@media (max-width:1023px){ .c-item-list__btn.is-ranking{ top:20px; right:20px; } }
@media (max-width:767px){ .c-item-list__btn.is-ranking{ top:10px; right:10px; } }
.c-item-list__btn.is-added{ color:#ff0000; }
.c-item-list__btn svg{ width:20px; height:20px; fill:currentColor; }
@media (max-width:767px){ .c-item-list__btn svg{ width:15px; height:15px; } }
svg:not(:root){ overflow:hidden; }

/* ===========================================
   Components &#8211; Buttons (ブランド色は維持)
   =========================================== */
.c-btn{
  box-sizing:border-box; display:inline-block; position:relative; z-index:1;
  padding:7px 30px 3px; border:1px solid #2d2d2d; min-width:200px;
  font-size:14px; font-weight:bold; color:#2d2d2d; text-align:center;
  cursor:pointer; transition:all .3s cubic-bezier(.25,.46,.45,.94);
}
@media (max-width:767px){ .c-btn{ padding:10px 15px 8px; min-width:150px; font-size:12px; } }
.c-btn:before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:#000; transform-origin:100% 50%; transform:scaleX(0); transition:transform .3s ease;
}
.c-btn:hover{ color:#fff; text-decoration:none; }
.c-btn:hover:before{ transform-origin:0% 50%; transform:scaleX(1); }

/* カート系（オリジナル配色は保持） */
.c-btn-cart{
  box-sizing:border-box; display:flex; justify-content:center; align-items:center; position:relative;
  padding:20px; border:2px solid #199032; border-radius:35px; width:100%; line-height:1;
  height:70px; font-size:16px; font-weight:bold; background:#199032; color:#fff; text-align:center;
  cursor:pointer; transition:all .3s cubic-bezier(.25,.46,.45,.94);
}
.c-btn-cart:hover{ background:rgba(25,144,50,.8); color:#fff; text-decoration:none; }
.c-btn-cart.is-disabled,.c-btn-cart.is-soldout{ border-color:#c6c6c6; background:#c6c6c6; color:#fff; cursor:default; }
.c-btn-cart.is-disabled:hover,.c-btn-cart.is-soldout:hover{ background:#c6c6c6; }
.c-btn-cart.is-membersonly{ border-color:#275631; background:#275631; color:#fff; }
.c-btn-cart.is-membersonly:hover{ background:#275631; }
.c-btn-cart.is-member{ padding:17px; height:50px; font-size:14px; font-weight:normal; border-color:#199032; background:#199032; }
@media (max-width:767px){ .c-btn-cart.is-member{ padding:19px; } }
.c-btn-cart.is-member:hover{ background:rgba(25,144,50,.8); }
.c-btn-cart.is-member-login{ padding:17px; height:50px; font-size:14px; font-weight:normal; border-color:#199032; background:#199032; color:#fff; }
@media (max-width:767px){ .c-btn-cart.is-member-login{ padding:19px; } }
.c-btn-cart.is-member-login:hover{ background:rgba(25,144,50,.8); }
.c-btn-cart.is-favorite{ border-color:#c6c6c6; background:#fff; color:#c6c6c6; }
@media (max-width:767px){ .c-btn-cart.is-favorite{ padding:19px; } }
.c-btn-cart.is-favorite svg{ margin-right:10px; padding-bottom:3px; width:22px; }
.c-btn-cart.is-added{ color:#000; }
.c-btn-cart.is-added svg{ fill:#9b2828; }
.c-btn-cart img{ margin-right:10px; padding-bottom:5px; width:22px; }

.c-more{ text-align:center; }
.c-not-found{ margin:120px 0; text-align:center; }

/* ===========================================
   Components &#8211; Table/Breadcrumb/Pager
   =========================================== */
.c-tbl-list{ border-top:1px solid var(--ink); }
@media (max-width:767px){ .c-tbl-list{ border-top:0; } }
.c-tbl-list__tr{ display:flex; border-bottom:1px solid var(--ink); }
@media (max-width:767px){ .c-tbl-list__tr{ display:block; border-bottom:0; } }
.c-tbl-list__th{
  box-sizing:border-box; margin:0; padding:20px 20px 20px 0; width:270px; font-size:14px; font-weight:bold;
}
@media (max-width:767px){ .c-tbl-list__th{ margin-bottom:15px; padding:5px 15px; border-bottom:1px solid var(--ink); width:auto; } }
.c-tbl-list__td{ flex:1; padding:20px; }
@media (max-width:767px){ .c-tbl-list__td{ margin-bottom:30px; padding:0 15px; } }

.c-breadcrumbs{ padding-top:30px; margin-bottom:60px; }
@media (max-width:767px){ .c-breadcrumbs{ padding-top:20px; margin-bottom:25px; } }
.c-breadcrumbs-list__item{
  position:relative; display:inline-block; margin-right:25px; font-size:13px;
  font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic","Meiryo",sans-serif; word-break:break-all;
}
@media (max-width:1023px){ .c-breadcrumbs-list__item{ margin-right:15px; font-size:12px; } }
.c-breadcrumbs-list__item:before{
  content:""; position:absolute; top:50%; right:-15px; margin-top:-2px;
  width:5px; height:5px; border-right:1px solid #757575; border-bottom:1px solid #757575; transform:rotate(-45deg);
}
@media (max-width:1023px){ .c-breadcrumbs-list__item:before{ right:-12px; } }
.c-breadcrumbs-list__item:last-child:before{ content:none; }

.c-pager{ margin:60px 0; text-align:center; }
@media (max-width:767px){ .c-pager{ margin:30px 0; } }
.c-pager__total{ margin-bottom:15px; }
.c-pager-list{ display:flex; flex-wrap:wrap; justify-content:center; margin-bottom:30px; }
.c-pager-list__item{
  box-sizing:border-box; overflow:hidden; margin:0 5px; line-height:42px; background:transparent; text-align:center;
}
@media (max-width:767px){ .c-pager-list__item{ display:none; min-width:45px; line-height:36px; } }
@media (max-width:767px){ .c-pager-list__item.is-visible{ display:block; margin:0 5px; } }
@media (max-width:767px){ .c-pager-list__item.is-center{ width:120px; background:#000; } }
.c-pager-list__link{
  box-sizing:border-box; display:block; position:relative; padding:4px; line-height:42px; min-width:50px;
  font-size:20px; background:var(--paper); color:#2d2d2d; text-decoration:none; transition:all .3s cubic-bezier(.25,.46,.45,.94);
}
@media (max-width:767px){ .c-pager-list__link{ padding:4px 10px; min-width:40px; line-height:36px; } }
.c-pager-list__link:hover{ background:#000; color:#fff; text-decoration:none; }
.c-pager-list__link.is-current{ background:#000; color:#fff; }
@media (max-width:767px){ .c-pager-list__link.is-current{ border:0; } }
.c-pager-list__link.is-prev,.c-pager-list__link.is-next{ position:relative; text-indent:-99999px; background:transparent; }
.c-pager-list__link.is-prev:before,.c-pager-list__link.is-next:before{
  content:""; position:absolute; top:50%; right:17px; margin-top:-6px; width:10px; height:10px;
  border-right:1px solid #2d2d2d; border-bottom:1px solid #2d2d2d; transform:rotate(135deg);
  transition:all .3s cubic-bezier(.25,.46,.45,.94);
}
.c-pager-list__link.is-prev:hover,.c-pager-list__link.is-next:hover{ background:#000; }
.c-pager-list__link.is-prev:hover:before,.c-pager-list__link.is-next:hover:before{ border-color:#fff; }
.c-pager-list__link.is-prev.is-disabled,.c-pager-list__link.is-next.is-disabled{ background:transparent; border-color:transparent; }
.c-pager-list__link.is-prev.is-disabled:hover,.c-pager-list__link.is-next.is-disabled:hover{ cursor:inherit; background:transparent; border-color:transparent; }
.c-pager-list__link.is-prev.is-disabled:hover:before,.c-pager-list__link.is-next.is-disabled:hover:before{ border-color:#2d2d2d; }
.c-pager-list__link.is-prev:before{ transform:rotate(135deg); }
@media (max-width:767px){ .c-pager-list__link.is-prev:before{ right:14px; } }
.c-pager-list__link.is-next:before{ right:auto; left:17px; transform:rotate(-45deg); }
@media (max-width:767px){ .c-pager-list__link.is-next:before{ left:14px; } }
.c-pager-list__page{ display:none; } @media (max-width:767px){ .c-pager-list__page{ display:inline-block; font-size:14px; } }

/* ===========================================
   Header
   =========================================== */
.l-header{
  position:fixed; top:0; z-index:1000; width:100%;
  transition:all .5s ease; background:rgba(255,255,255,.7);
  box-shadow:4px 0 16px rgba(0,0,0,.05);
}
@media (max-width:767px){ .l-header{ top:0; left:0; right:0; min-width:375px; } }
.l-header.is-top{ box-shadow:none; }
.l-header.is-fixed{ box-shadow:0 3px 10px rgba(0,0,0,.05); }
@media (max-width:767px){ .l-header.is-fixed{ background:#ffffff; } }

.l-header-main{ box-sizing:border-box; margin:0 auto; padding:10px 0; height:80px; }
@media (max-width:767px){ .l-header-main{ padding:5px 0; height:auto; min-height:55px; } }
.l-header-main__in{ display:flex; justify-content:center; align-items:center; position:relative; z-index:100; }
@media (max-width:767px){ .l-header-main__in{ width:100%; } }

/* クリック領域はそのまま（必要なら調整） */
.l-menu-btn{
  position:absolute; top:-10px; left:0; z-index:10000;
  padding:0; width:80px; height:80px; border:0; background:transparent;
}
@media (max-width:767px){
  .l-menu-btn{ top:-5px; width:45px; height:55px; }
}

/* &#8212;&#8212; 線のスタイル（2本・同じ太さ・少し長め） &#8212;&#8212; */
.l-menu-btn span{
  box-sizing:border-box; position:absolute;
  left:24px;                  /* 位置：PC */
  width:32px;                 /* 長さ：PC */
  height:1px;                 /* 太さ：PC（上下とも同じ） */
  background:#000;
  transition:all .3s cubic-bezier(.25,.46,.45,.94);
}
@media (max-width:767px){
  .l-menu-btn span{
    left:12px;                /* 位置：SP */
    width:26px;               /* 長さ：SP */
    height:1px;             /* 太さ：SP */
  }
}

/* 2本にする：真ん中を非表示 */
.l-menu-btn span:nth-of-type(2){ display:none; }

/* 上下の位置 */
.l-menu-btn span:nth-of-type(1){ top:34px; }
.l-menu-btn span:nth-of-type(3){ top:46px; }
@media (max-width:767px){
  .l-menu-btn span:nth-of-type(1){ top:19px; }
  .l-menu-btn span:nth-of-type(3){ top:29px; }
}

/* 開いたときは2本で「×」を作る（色は紙色） */
.l-menu-btn.is-on span{
  top:40px;                   /* 中心ラインへ移動（PC） */
  background:var(--paper);
}
.l-menu-btn.is-on span:nth-of-type(1){ transform:rotate(-45deg); }
.l-menu-btn.is-on span:nth-of-type(3){ transform:rotate(45deg); }
@media (max-width:767px){
  .l-menu-btn.is-on span{ top:24px; }   /* 中心ライン：SP */
}


/* ===========================================
   Main Navigation (Hamburger)
   =========================================== */
.l-main-navi{ display:none; z-index:100; opacity:0; transform:scale(1.02); transition:opacity .8s ease, transform .8s ease; } /* ← 0.8s */
.l-main-navi.is-open{
  box-sizing:border-box; overflow-y:auto; display:flex; position:fixed; inset:0; z-index:9999;
  align-items:center; justify-content:center; padding:0; margin:0; width:100vw; height:100vh;
  background:var(--ink); color:var(--paper); opacity:1; transform:scale(1);
}
@media (max-width:767px){ .l-main-navi.is-open{ top:55px; height:calc(100vh - 55px); } }

.l-main-navi__wrap{ margin:0 auto; padding:0 24px; max-width:1280px; width:100%; }
@media (max-width:767px){ .l-main-navi__wrap{ padding:0; } }

.l-main-navi-list{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:24px; margin:0; padding:0;
}
@media (max-width:767px){ .l-main-navi-list{ display:block; } }

.l-main-navi-list__ttl{ display:none; }
.l-main-navi-list__item{ box-sizing:border-box; padding:0 30px; width:auto; }
@media (max-width:767px){ .l-main-navi-list__item{ padding:0; width:auto; } }

/* メニュー内リンク：紙色、hoverで少し淡く（細字） */
.l-main-navi-list__link{
  display:inline; color:var(--paper); background:none; border:0; padding:0; text-decoration:none;
  font-family:"Noto Serif JP","Yu Mincho","游明朝体","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-size:clamp(18px,1.6vw,20px); font-weight:200; letter-spacing:.06em; transition:color .25s ease;
}
.l-main-navi-list__link:hover,
.l-main-navi-list__link:focus{
  color:var(--paper-dim);
  text-decoration:none;
}

/* SPの矢印は非表示 */
@media (max-width:767px){
  .l-main-navi-list__link{ display:block; position:relative; padding:18px 0 16px; color:var(--paper); }
  .l-main-navi-list__link::before{ content:none; }
}

/* メニュー先頭（TOP）を小文字表示に */
.l-main-navi-list__item:first-child .l-main-navi-list__link{ text-transform:lowercase; }

/* 閉じる(X)は紙色で視認性UP */
.l-menu-btn.is-on span{ background-color:var(--paper)!important; }

/* ===========================================
   Search / Cart / Footer / Free page （色だけ統一）
   =========================================== */
.l-header-search__contents.is-on{ background:#ffffff; box-shadow:0 5px 5px rgba(0,0,0,.05); }
.l-header-cart-btn__count{ background:#ff0000; color:#fff; }

.l-footer{ padding-top:90px; background:var(--paper); }
@media (max-width:1023px){ .l-footer{ padding-top:60px; } }
.l-footer-qr{ background:var(--paper); }

.p-freepage a{ text-decoration:underline; } .p-freepage a:hover{ text-decoration:none; }
.p-freepage__contents{ padding-top:45px; } @media (max-width:767px){ .p-freepage__contents{ padding-top:30px; } }
.p-freepage__img img{ border:1px solid #ccc; }

/* ===========================================
   Calendar / Shopguide（背景→紙色へ）
   =========================================== */
.p-calendar{ box-sizing:border-box; flex:1; margin-top:120px; }
@media (max-width:1023px){ .p-calendar{ margin-top:30px; } }
@media (max-width:767px){ .p-calendar{ margin-top:0; padding-top:45px; } }
.p-calendar__wrap{ padding:75px 0; background:var(--paper); }
@media (max-width:1023px){ .p-calendar__wrap{ padding:30px 0; } }

.p-shopguide{ position:relative; z-index:10; margin-top:120px; }
@media (max-width:767px){ .p-shopguide{ margin-top:75px; } }
.p-shopguide__wrap{ padding:75px 0; background:var(--paper); }
@media (max-width:767px){ .p-shopguide__wrap{ padding:45px 0 30px; } }

/* ====== Aboutページのカレンダーだけ：中央寄せ & 大きめ復元 ======
   ※フリーページ（about）で出すカレンダーにだけ効かせる想定
   side_cal がラッパ、tbl_calendar が本体
*/
.p-freepage .side_cal{
  display:flex;
  justify-content:center;
}
@media (max-width:600px){
  .p-freepage .side_cal{ display:block; }
}

.p-freepage .tbl_calendar{
  margin:40px auto 30px;
  width:460px;                /* ← 大きめ */
  text-align:center;
  border-spacing:1px;
  border-collapse:separate;
}
.p-freepage .tbl_calendar caption{
  margin-bottom:20px;
  font-size:20px;
}
.p-freepage .tbl_calendar th{
  padding-bottom:15px;
  font-size:16px;
  font-weight:normal;
  border-bottom:1px solid #b3b2b2;
}
.p-freepage .tbl_calendar td{
  padding:12px 14px;
  font-size:18px;
}
@media (max-width:1023px){
  .p-freepage .tbl_calendar{ width:380px; }
}
@media (max-width:767px){
  .p-freepage .tbl_calendar{
    width:auto;
    margin-bottom:30px;
  }
  .p-freepage .tbl_calendar th,
  .p-freepage .tbl_calendar td{
    padding:6px 10px;
    font-size:14px;
  }
}

/* ===========================================
   Modal (Quick cart) &#8211; 元配色維持
   =========================================== */
.cart_in_modal,.cart_in_error_modal{
  position:fixed; inset:0; background-color:rgba(0,0,0,.7);
  z-index:20000; display:flex; overflow:auto;
}
@media (min-width:960px){ .cart_in_modal,.cart_in_error_modal{ align-items:center; } }
.cart_in_modal__bg{ background-color:rgba(0,0,0,.7); position:fixed; inset:0; z-index:20000; }
.cart_in_modal__outline{
  width:90%; margin:20px 5%; padding:20px; background:#fff; border-radius:5px;
  box-shadow:0 2px 5px rgba(0,0,0,.4); box-sizing:border-box; text-align:center; position:absolute;
}
@media (min-width:960px){ .cart_in_modal__outline{ width:900px; margin:auto; padding:20px 70px; position:relative; } }

/* ===========================================
   Desktop helper（あなたの独自運用）
   =========================================== */
@media (min-width:960px){
  .sp-br{ display:none; }
  .l-menu-btn{ position:fixed; top:20px; left:20px; z-index:10000; display:block!important; }
  .logo-custom{ position:fixed; top:20px; right:20px; z-index:10000; }
  .logo-custom a{ font-size:16px; color:white; text-decoration:none; }

  /* 既存ヘッダーを透明＆高さ0に */
  .l-header,.l-header-main{ background:transparent!important; height:0!important; overflow:visible; }
  .l-header-main__in{ display:contents; }

  /* ガイド＆フッター非表示 */
  .p-shopguide,.l-footer{ display:none!important; }

  /* 念のための背景除去 */
  .p-shopguide__wrap{ background:transparent!important; padding-top:0!important; padding-bottom:0!important; }
  .p-calendar__wrap{ background:transparent; }

  .l-bottom{ margin-top:0; }

  /* Freepage: 自動H1を隠す */
  .p-freepage .c-ttl-main,
  .p-freepage h1.c-ttl-main,
  .p-freepage .p-freepage__hd h1,
  .p-freepage h1.page-title{ display:none!important; }
  .p-checked{ display:none!important; }
}

/* ===========================================
   FINAL SAFETY OVERRIDES（最後尾）
   =========================================== */
/* 全ページの背景&文字色は最優先で紙×墨 */
html,body{ background:var(--paper)!important; color:var(--ink)!important; }

/* ハンバーガー：背景=墨、文字=紙色（SP矢印無効） */
.l-main-navi.is-open{
  background:var(--ink)!important; color:var(--paper)!important;
}
.l-main-navi.is-open .l-main-navi-list__link{
  color:var(--paper)!important; background:none!important; border:0!important; padding:0!important;
}
@media (max-width:767px){
  .l-main-navi.is-open .l-main-navi-list__link::before{ content:none!important; }
}
/* ×アイコンは紙色 */
.l-menu-btn.is-on span{ background-color:var(--paper)!important; }

/* ===== about のカレンダー調整（中央寄せ＆大きめ） ===== */
/* about 判定は .l-bottom.is-about が付く仕組みなので、ここにぶら下げる */
.l-bottom.is-about .p-calendar .p-calendar__wrap .u-container{
  display:flex;                 /* 真ん中寄せの土台にする */
  justify-content:center;
}

.l-bottom.is-about .p-calendar .side_section{
  width:100%;
  display:flex;
  justify-content:center;       /* 子(.side_cal)を中央へ */
}

.l-bottom.is-about .p-calendar .side_cal{
  float:none;                   /* もし既存で float していたら打消し */
  margin:0 auto;                /* 念のため中央寄せ */
}

/* 実体のテーブルを中央 & 大きめに */
.l-bottom.is-about .p-calendar .tbl_calendar{
  display:table;                /* margin:auto を確実に効かせる */
  margin: 24px auto 32px;       /* 上下に余白、左右は自動中央 */
  font-size:18px;               /* 文字を少し大きく */
  border-collapse:separate;
  border-spacing: 2px;
}
.l-bottom.is-about .p-calendar .tbl_calendar caption{
  margin-bottom:14px;
  font-size:20px;
}
.l-bottom.is-about .p-calendar .tbl_calendar th{
  padding:10px 12px;
  font-weight:400;
  border-bottom:1px solid #bdbdbd;
}
.l-bottom.is-about .p-calendar .tbl_calendar td{
  padding:10px 12px;
}

/* スマホは少し控えめに */
@media (max-width:767px){
  .l-bottom.is-about .p-calendar .tbl_calendar{
    margin:18px auto 24px;
    font-size:16px;
  }
  .l-bottom.is-about .p-calendar .tbl_calendar th,
  .l-bottom.is-about .p-calendar .tbl_calendar td{
    padding:6px 8px;
  }
}

/* メモ欄がある場合も中央に */
.l-bottom.is-about .p-calendar .side_cal_memo{
  text-align:center;
}

/* ヘッダーロゴのサイズ制御 */
.logo-custom img{
  height: auto;
  width: auto;
  max-width: clamp(160px, 22vw, 280px); /* 画面に応じて伸縮 */
  display: block;
}

/* ヘッダー内でロゴを右上に（必要なら） */
.l-header-main__in{
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.logo-custom{ order: 2; }         /* 右側へ */
.l-menu-btn{ order: 1; }          /* ハンバーガーは左に */

@media (max-width: 767px){
  .logo-custom img{ max-width: clamp(140px, 40vw, 200px); }
}
/* ロゴを右上に小さめに寄せる */
.logo-custom img {
  max-width: 160px;   /* 横幅を抑える（例：160px） */
  height: auto;
  display: block;
  margin: 0;
}

.logo-custom {
  position: absolute;
  top: 0px;    /* 上からの距離 */
  right: 20px;  /* 右からの距離 */
}

