#tbx-osechi2027{
    --ink:#082449;
    --gold:#C7A55C;
    --gold-soft:#E6D9AF;
    --vermillion:#A6362B;
    --vermillion-deep:#7E291F;
    --cream:#F6F1E3;
    --cream-deep:#EEE3C6;
    --cream-line:#DCCFA4;
    --text:#2A241C;
    --text-sub:#6E6250;

    --cat-wa:#A6362B;
    --cat-wayo:#6B5B8C;
    --cat-wayochu:#8C6B3F;
    --cat-odoburu:#3F5B6B;
    --cat-set:#5B6B4F;
  }
  #tbx-osechi2027 *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  #tbx-osechi2027{
    margin:0;
    background:var(--cream);
    color:var(--text);
    font-family:"Zen Kaku Gothic New",sans-serif;
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
  }
  #tbx-osechi2027 h1, #tbx-osechi2027 h2, #tbx-osechi2027 h3, #tbx-osechi2027 .mincho{font-family:"Shippori Mincho",serif;}
  #tbx-osechi2027 a{color:inherit;}
  #tbx-osechi2027 .wrap{max-width:1100px;margin:0 auto;padding:0 24px;}

  /* ============ 和柄パターン ============ */
  #tbx-osechi2027 .asanoha-bg{
    background-image:
      linear-gradient(120deg, transparent 46%, rgba(199,165,92,.09) 46%, rgba(199,165,92,.09) 50%, transparent 50%),
      linear-gradient(60deg, transparent 46%, rgba(199,165,92,.09) 46%, rgba(199,165,92,.09) 50%, transparent 50%),
      linear-gradient(180deg, transparent 46%, rgba(199,165,92,.05) 46%, rgba(199,165,92,.05) 50%, transparent 50%);
    background-size:34px 60px;
  }

  /* ============ パンくずリスト ============ */
  #tbx-osechi2027 .breadcrumb{
    background:#fff;
    border-bottom:1px solid var(--cream-line);
  }
  #tbx-osechi2027 .breadcrumb-inner{
    max-width:1100px;margin:0 auto;padding:10px 24px;
    font-size:14px;color:var(--text-sub);
    display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  }
  #tbx-osechi2027 .breadcrumb-inner a{color:var(--text-sub);text-decoration:none;}
  #tbx-osechi2027 .breadcrumb-inner a:hover{text-decoration:underline;}
  #tbx-osechi2027 .breadcrumb-home{display:inline-flex;align-items:center;gap:4px;}
  #tbx-osechi2027 .breadcrumb-sep{color:var(--cream-line);display:inline-flex;align-items:center;}
  #tbx-osechi2027 .breadcrumb-current{color:var(--text);text-decoration:none;}
  #tbx-osechi2027 .breadcrumb-current:hover{text-decoration:underline;}
  #tbx-osechi2027 .top-line{height:5px;background:var(--vermillion);}
  @media (max-width:640px){
    #tbx-osechi2027 .breadcrumb-inner{padding:8px 16px;font-size:10.5px;}
  }

  /* ============ HERO ============ */
  #tbx-osechi2027 .hero{
    position:relative;
    background:radial-gradient(120% 140% at 15% 0%, #1c4a7a 0%, var(--ink) 55%, #05192f60 100%);
    color:var(--cream);
    overflow:hidden;
  }
  #tbx-osechi2027 .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      linear-gradient(120deg, transparent 46%, rgba(199,165,92,.06) 46%, rgba(199,165,92,.06) 50%, transparent 50%),
      linear-gradient(60deg, transparent 46%, rgba(199,165,92,.06) 46%, rgba(199,165,92,.06) 50%, transparent 50%);
    background-size:40px 70px;
    pointer-events:none;
  }
  @media (min-width:641px){
    #tbx-osechi2027 .hero{
      background-image:url('../img/header_pc.jpg') !important;
      background-size:cover;
      background-position:center;
      background-repeat:no-repeat;
      display:flex;
      align-items:center;
    }
    #tbx-osechi2027 .hero::before{display:none;}
  }
  @media (min-width:1600px){
    #tbx-osechi2027 .hero{aspect-ratio:15/4; height:auto;}
  }
  @media (min-width:641px) and (max-width:1599px){
    #tbx-osechi2027 .hero{height:427px;}
  }
  #tbx-osechi2027 .hero-inner{
    position:relative;
    display:grid;
    grid-template-columns:1fr .82fr;
    align-items:center;
    gap:20px;
    padding:56px 24px 60px;
  }
  @media (max-width:820px){
    #tbx-osechi2027 .hero-inner{grid-template-columns:1fr;padding:40px 20px 32px;}
  }
  @media (max-width:640px){
    #tbx-osechi2027 .hero{
      min-height:46vh;display:flex;align-items:center;
      background-image:url('../img/header_sp.jpg') !important;
      background-size:cover;
      background-position:center;
      background-repeat:no-repeat;
    }
    #tbx-osechi2027 .hero::before{display:none;}
    #tbx-osechi2027 .hero-inner{padding:20px 18px;gap:0;}
    #tbx-osechi2027 .hero-period{margin-left:10px;font-size:12px !important;}
    #tbx-osechi2027 .hero-year{margin-left:10px;}
    #tbx-osechi2027 .hero-cta-area{display:none !important;}
    #tbx-osechi2027 .hero h1{font-size:24px;margin-bottom:8px;letter-spacing:.02em;}
    #tbx-osechi2027 .hero-brush{margin-top:-40px !important;}
    #tbx-osechi2027 .hero .catch{margin-bottom:16px;line-height:1.6;}
    #tbx-osechi2027 .catch-line1{font-size:14px;}
    #tbx-osechi2027 .catch-line2{font-size:10.5px;}
    #tbx-osechi2027 .cta-primary{padding:10px 18px;font-size:13px;width:100%;align-items:center !important;}
  }
  #tbx-osechi2027 .hero-period{
    display:inline-block;
    align-self:flex-start;
    font-size:14px;
    letter-spacing:.1em;
    color:var(--gold-soft);
    border:1px solid rgba(199,165,92,.5);
    padding:5px 14px;
    margin-top:24px;
    margin-bottom:10px;
  }
  #tbx-osechi2027 .hero h1{
    font-size:56px;
    font-weight:700;
    margin:0 0 18px;
    letter-spacing:.04em;
    line-height:1;
    background:linear-gradient(180deg,#F4E7C4,#C7A55C 70%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  @media (max-width:600px){#tbx-osechi2027 .hero h1{font-size:40px;}}
  #tbx-osechi2027 .hero-year{
    display:block;
    font-size:0.75em;
    font-weight:700;
    letter-spacing:.15em;
    line-height:1;
    background:none;
    -webkit-background-clip:initial;
    background-clip:initial;
    -webkit-text-fill-color:#fff;
    color:#fff;
    margin-bottom:0;
  }
  #tbx-osechi2027 .hero-brush{
    font-family:"Yuji Syuku",serif;
    font-size:2.2em;
    font-weight:400;
    letter-spacing:.08em;
    line-height:1;
    display:inline-block;
    margin-top:-70px;
    background:linear-gradient(180deg,#F4E7C4,#C7A55C 70%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    -webkit-text-fill-color:transparent;
    filter:drop-shadow(0 6px 14px rgba(0,0,0,.45)) drop-shadow(0 2px 4px rgba(0,0,0,.3));
  }
  @media (max-width:600px){#tbx-osechi2027 .hero-brush{font-size:1.8em;}}
  #tbx-osechi2027 .hero .catch{
    font-size:15.5px;
    color:#fff;
    margin:0 0 30px;
    max-width:36em;
  }
  #tbx-osechi2027 .catch-line1{
    display:block;
    font-size:18px;
    padding:10px 0;
  }
  #tbx-osechi2027 .catch-line1::before, #tbx-osechi2027 .catch-line1::after{
    content:"";
    display:block;
    height:2px;
    max-width:320px;
    background:linear-gradient(90deg, transparent, var(--gold) 18%, var(--gold) 82%, transparent);
  }
  #tbx-osechi2027 .catch-line1::before{margin:0 0 10px;}
  #tbx-osechi2027 .catch-line1::after{margin:10px 0 0;}
  #tbx-osechi2027 .catch-line1-text{display:inline-block;margin-left:36px;}
  #tbx-osechi2027 .catch-line2{display:block;font-size:14px;margin-top:-30px;margin-left:20px;}
  #tbx-osechi2027 .cta-primary{
    display:inline-flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    background:var(--vermillion);
    color:#fdf6ea;
    text-decoration:none;
    font-weight:700;
    font-size:17px;
    padding:15px 30px;
    border:1px solid var(--gold);
    position:relative;
  }
  #tbx-osechi2027 .cta-primary small{font-size:14px;font-weight:400;color:#e9d3ac;}
  #tbx-osechi2027 .cta-primary:hover{background:var(--vermillion-deep);}
  #tbx-osechi2027 .cta-line{display:inline-flex;align-items:center;gap:6px;}
  #tbx-osechi2027 .tbxmodal-footer .cta-primary .pdf-arrow{vertical-align:-1px;}

  /* ---- ヒーロー イラスト（重箱・水引 SVG） ---- */
  #tbx-osechi2027 .hero-cta-area{position:relative;display:flex;align-items:center;justify-content:center;}
  #tbx-osechi2027 .hero-cta-area::before{
    content:"";
    position:absolute;
    top:50%; left:25%;
    width:180px;
    height:180px;
    transform:translate(-50%,-50%) rotate(60deg);
    background-image:url('../img/header_btn_before.png') !important;
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
    z-index:0;
    pointer-events:none;
  }
  #tbx-osechi2027 .hero-cta-area .cta-primary{position:relative;z-index:1;}
  #tbx-osechi2027 .hero-copy{display:flex;flex-direction:column;justify-content:center;transform:translateY(0px);}
  @media (max-width:640px){#tbx-osechi2027 .hero-copy{transform:none;}}
  #tbx-osechi2027 .hero-tategaki{
    writing-mode:vertical-rl;
    text-orientation:upright;
    font-family:"Shippori Mincho",serif;
    font-size:15px;
    letter-spacing:.35em;
    color:var(--gold-soft);
    position:absolute;
    left:24px; top:50%;
    transform:translateY(-50%);
    opacity:.55;
  }
  @media (max-width:820px){#tbx-osechi2027 .hero-tategaki{display:none;}}

  /* ============ フィルターナビ ============ */
  #tbx-osechi2027 .filter-nav{
    position:sticky; top:0; z-index:60;
    background:var(--cream);
    border-bottom:1px solid var(--cream-line);
    box-shadow:0 6px 14px -10px rgba(23,27,46,.35);
  }
  #tbx-osechi2027 .filter-nav-inner{
    max-width:1100px;margin:0 auto;padding:12px 24px;
    display:flex;align-items:center;gap:24px;
  }
  #tbx-osechi2027 .filter-rows{flex:1;min-width:0;}
  #tbx-osechi2027 .filter-row{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:8px;}
  #tbx-osechi2027 .filter-row:last-child{margin-bottom:0;}
  #tbx-osechi2027 .filter-row .fr-label{
    font-size:14px; color:var(--text-sub); width:74px; flex:0 0 auto; letter-spacing:.03em;
  }
  #tbx-osechi2027 .chip{
    font-size:14px;
    background:#fff;
    border:1px solid var(--cream-line);
    border-radius:999px;
    padding:6px 15px 6px 12px;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:var(--text);
  }
  #tbx-osechi2027 .chip .dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
  #tbx-osechi2027 .chip.is-active{
    background:var(--ink);
    border-color:var(--ink);
    color:#fff;
  }
  #tbx-osechi2027 .chip-reset{font-size:14px;color:var(--text-sub);text-decoration:underline;cursor:pointer;margin-left:2px;}
  #tbx-osechi2027 .nav-reserve-btn{
    flex:0 0 auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
    background:var(--vermillion);
    color:#fdf6ea;
    border:1px solid var(--gold);
    border-radius:0;
    padding:12px 28px;
    font-size:14.5px;
    font-weight:700;
    text-decoration:none;
    white-space:nowrap;
    line-height:1.4;
    opacity:0;
    pointer-events:none;
    transition:opacity .45s ease;
  }
  #tbx-osechi2027 .filter-nav.is-stuck .nav-reserve-btn{
    opacity:1;
    pointer-events:auto;
  }
  #tbx-osechi2027 .nav-reserve-btn small{font-size:14px;font-weight:400;color:#e9d3ac;}
  #tbx-osechi2027 .nav-reserve-btn:hover{background:var(--vermillion-deep);}

  @media (max-width:640px){
    #tbx-osechi2027 .filter-nav{display:none;}
  }

  /* ============ 割引 / パンフレット ============ */
  #tbx-osechi2027 .promo-block{
    max-width:1100px;margin:26px auto 0;padding:0 24px;
    display:flex;flex-direction:column;gap:16px;
  }
  #tbx-osechi2027 .promo-card{
    background:var(--ink);
    color:var(--cream);
    padding:32px 34px;
    position:relative;
    border-left:4px solid var(--gold);
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:24px 32px;
  }
  #tbx-osechi2027 .promo-card .promo-heading{
    margin:0;
    font-size:34px;
    font-weight:700;
    letter-spacing:.04em;
    line-height:1.3;
    background:linear-gradient(180deg,#F4E7C4,#C7A55C 75%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    flex:0 0 auto;
  }
  #tbx-osechi2027 .promo-card .promo-body{flex:1 1 260px;min-width:0;}
  #tbx-osechi2027 .promo-card .promo-sub{
    font-size:16px;font-weight:700;color:#fff;margin:0 0 10px;
  }
  #tbx-osechi2027 .promo-card p{font-size:14.5px;color:#e9dfc4;margin:0 0 16px;}
  #tbx-osechi2027 .promo-card .promo-highlight-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin:0 0 12px;
  }
  #tbx-osechi2027 .promo-card .promo-highlight-box{
    font-size:17px;
    font-weight:700;
    color:#fff;
    background:rgba(199,165,92,.12);
    border:1px solid var(--gold);
    padding:14px 12px;
    line-height:1.5;
    text-align:center;
  }
  #tbx-osechi2027 .promo-card .promo-num{
    font-family:"Shippori Mincho",serif;
    font-weight:700;
    font-size:1.15em;
    color:var(--gold-soft);
  }
  #tbx-osechi2027 .promo-card .promo-exclude{
    list-style:none; margin:0 0 16px; padding:0;
    font-size:14px; color:#b5a988;
    display:flex; flex-wrap:wrap; gap:4px 18px;
  }
  #tbx-osechi2027 .promo-card .promo-exclude li{margin-bottom:0;white-space:nowrap;}
  @media (max-width:640px){
    #tbx-osechi2027 .promo-card .promo-exclude{flex-direction:column; gap:3px;}
    #tbx-osechi2027 .promo-card .promo-exclude li{white-space:normal;}
  }
  #tbx-osechi2027 .promo-card .example{
    font-size:14px; color:#fff; margin:0 0 4px;
  }
  #tbx-osechi2027 .promo-card .example:last-child{margin-bottom:0;}
  #tbx-osechi2027 .mobile-break{display:none;}
  @media (max-width:640px){
    #tbx-osechi2027 .promo-card{padding:24px 22px;}
    #tbx-osechi2027 .promo-card .promo-heading{font-size:26px;text-align:center;white-space:nowrap;flex-basis:100%;}
    #tbx-osechi2027 .promo-heading-break{display:none;}
    #tbx-osechi2027 .promo-card .promo-sub{font-size:15px;}
    #tbx-osechi2027 .promo-card .promo-highlight-box{font-size:14px;padding:12px 10px;}
    #tbx-osechi2027 .mobile-break{display:block;}
    #tbx-osechi2027 .maker-mark{display:none !important;}
    #tbx-osechi2027 .maker-head h3{text-align:center;}
  }
  #tbx-osechi2027 .pamphlet-card{
    border:1px solid var(--cream-line);
    background:#fff;
    padding:24px;
    display:flex; gap:18px; align-items:center;
  }
  #tbx-osechi2027 .pamphlet-card .thumb{
    width:64px;height:88px;flex:0 0 auto;position:relative;
    background:linear-gradient(160deg,var(--ink),#1c4a7a);
    display:flex;align-items:center;justify-content:center;
    font-family:"Shippori Mincho",serif;color:var(--gold-soft);font-size:20px;
    overflow:hidden;
  }
  #tbx-osechi2027 .pamphlet-card .thumb img{width:100%;height:100%;object-fit:cover;display:block;}
  #tbx-osechi2027 .pamphlet-card .pamphlet-text{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:88px;
  }
  #tbx-osechi2027 .pamphlet-card .btn-outline{
    display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:14px;
    border-bottom:1px solid var(--text); padding-bottom:2px; text-decoration:none; color:var(--text);
  }
  #tbx-osechi2027 .btn-outline .pdf-arrow{flex:0 0 auto;}

  /* ============ おせち一覧 見出し ============ */
  #tbx-osechi2027 .heading-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
  }
  #tbx-osechi2027 .heading-icon::before, #tbx-osechi2027 .heading-icon::after{
    content:"";
    flex:0 0 auto;
    width:38px;height:38px;
    background-image:url('../img/h2_icon.png') !important;
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
  }
  #tbx-osechi2027 .heading-icon::after{transform:scaleX(-1);}
  @media (max-width:640px){
    #tbx-osechi2027 .heading-icon{gap:10px;}
    #tbx-osechi2027 .heading-icon::before, #tbx-osechi2027 .heading-icon::after{width:26px;height:26px;}
  }
  #tbx-osechi2027 .list-heading{
    text-align:center;
    margin:92px auto 0;
    padding-top:4px;
  }
  #tbx-osechi2027 .list-heading h2{
    font-size:28px;
    letter-spacing:.1em;
    margin:0 0 14px;
    color:var(--text);
  }
  #tbx-osechi2027 .list-heading .rule{
    width:56px;height:2px;background:var(--vermillion-deep);margin:0 auto;
  }
  @media (max-width:640px){
    #tbx-osechi2027 .list-heading{margin-top:60px;}
    #tbx-osechi2027 .list-heading h2{font-size:22px;}
  }

  /* ============ メーカーセクション ============ */
  #tbx-osechi2027 .maker-section{max-width:1100px;margin:64px auto 0;padding:0 24px;background:none !important;box-shadow:none !important;border:none !important;}
  @media (max-width:640px){
    #tbx-osechi2027 .maker-section{padding:0 16px;margin-top:44px;}
  }
  #tbx-osechi2027 .divider-mizuhiki{
    height:18px;
    background-image:conic-gradient(#A6362B 0deg 90deg, transparent 90deg 180deg, #A6362B 180deg 270deg, transparent 270deg 360deg);
    background-size:18px 18px;
    margin-bottom:26px;
  }
  #tbx-osechi2027 .maker-head{
    display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:start; margin-bottom:28px;
  }
  @media (max-width:640px){#tbx-osechi2027 .maker-head{grid-template-columns:1fr;}}
  #tbx-osechi2027 .maker-mark{
    width:104px;height:104px;flex:0 0 auto;
    border:1px solid var(--cream-line);
    display:flex;align-items:center;justify-content:center;
    font-family:"Shippori Mincho",serif; font-size:15px; letter-spacing:.1em;
    color:var(--text-sub); background:#fff;
  }
  #tbx-osechi2027 .maker-head h3{font-size:25px;margin:0 0 10px;letter-spacing:.03em;}
  #tbx-osechi2027 .maker-head p{font-size:14px;color:var(--text-sub);margin:0;}

  /* ============ カード ============ */
  #tbx-osechi2027 .card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:22px;}
  @media (max-width:640px){
    #tbx-osechi2027 .card-grid{
      display:flex;
      grid-template-columns:none;
      overflow-x:auto;
      gap:14px;
      padding:2px 2px 10px;
      scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
      margin:0 -16px;
      padding-left:16px;
      padding-right:16px;
      border:none !important;
      box-shadow:none !important;
    }
    #tbx-osechi2027 .card-grid::-webkit-scrollbar{display:none;}
    #tbx-osechi2027 .osechi-card{
      flex:0 0 80%;
      scroll-snap-align:center;
      scroll-snap-stop:always;
    }
    #tbx-osechi2027 .card-grid.single-card-grid{
      justify-content:center;
      overflow-x:visible;
      scroll-snap-type:none;
    }
    #tbx-osechi2027 .card-dots{
      display:flex;justify-content:center;align-items:center;gap:7px;
      margin:2px 0 0;border:none !important;border-top:none !important;box-shadow:none !important;background:none !important;outline:none !important;
    }
    #tbx-osechi2027 .card-dots span{
      width:6px;height:6px;border-radius:50%;
      background:var(--cream-line);
      transition:background .2s,transform .2s;
      flex:0 0 auto;
    }
    #tbx-osechi2027 .card-dots span.is-active{
      background:var(--vermillion);
      transform:scale(1.3);
    }
  }
  #tbx-osechi2027 .osechi-card{
    background:#fff;
    border:1px solid var(--gold-soft);
    box-shadow:0 0 0 3px #fff, 0 0 0 4px var(--cream-line);
    cursor:pointer;
    display:flex;flex-direction:column;
    transition:opacity .18s ease, transform .18s ease;
    margin:2px;
  }
  #tbx-osechi2027 .osechi-card:hover{transform:translateY(-3px);}
  #tbx-osechi2027 .osechi-card.is-dimmed{opacity:.3;filter:grayscale(55%);transform:none;}

  #tbx-osechi2027 .card-photo{
    position:relative; width:100%; aspect-ratio:16/9;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
  }
  #tbx-osechi2027 .card-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  #tbx-osechi2027 .card-photo .stamp{
    position:absolute; top:10px; left:10px;
    width:40px;height:40px;border-radius:50%;
    background:var(--stamp-color, var(--vermillion));
    color:#fdf6ea; font-size:14px; font-weight:700;
    display:flex;align-items:center;justify-content:center;text-align:center;
    line-height:1.15; letter-spacing:0; padding:2px;
    box-shadow:0 2px 6px rgba(0,0,0,.25);
  }
  #tbx-osechi2027 .card-photo .corner-note{
    position:absolute; bottom:6px; right:8px;
    font-size:14px; color:rgba(255,255,255,.55);
  }

  #tbx-osechi2027 .card-body{padding:16px 16px 18px; display:flex; flex-direction:column; flex:1;
    border-top:3px solid var(--accent,var(--vermillion));}
  #tbx-osechi2027 .card-title{font-family:"Shippori Mincho",serif; font-size:18px; font-weight:700; margin:0 0 7px;}
  #tbx-osechi2027 .card-no{
    font-family:"Shippori Mincho",serif;
    font-size:18px;
    font-weight:700;
    color:var(--text);
    margin-right:6px;
  }
  #tbx-osechi2027 .tbxmodal-content .tbxmodal-no{
    font-family:"Shippori Mincho",serif;
    font-size:18px;
    font-weight:700;
    color:var(--text);
    margin-right:8px;
  }
  #tbx-osechi2027 .card-comment{font-size:14px;color:var(--text-sub);margin:0 0 12px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  #tbx-osechi2027 .comment-highlight{font-weight:700;}
  #tbx-osechi2027 .card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
  #tbx-osechi2027 .card-tags span{
    font-size:14px; font-weight:700; background:var(--cream);
    border:1px solid var(--cream-line); color:var(--text); padding:3px 11px; border-radius:999px;
  }
  #tbx-osechi2027 .card-tags span.tag-plain{
    background:#fbfbfa; border:1px solid #b5b5b0; font-weight:400;
  }
  #tbx-osechi2027 .card-price{font-size:22px;font-weight:700;color:var(--vermillion);margin:auto 0 4px;font-family:"Shippori Mincho",serif;}
  #tbx-osechi2027 .card-price small{font-size:14px;color:var(--text-sub);font-weight:400;font-family:"Zen Kaku Gothic New",sans-serif;}
  @media (max-width:640px){
    #tbx-osechi2027 .card-price small{font-size:11px !important;}
  }
  #tbx-osechi2027 .card-cta{
    display:block;width:100%;text-align:center;background:var(--ink);color:#fff;font-size:14px;
    padding:10px 0;text-decoration:none;letter-spacing:.03em;
    border:none;font-family:inherit;cursor:pointer;
  }
  #tbx-osechi2027 .card-cta .pdf-arrow{margin-left:5px;vertical-align:0px;}
  #tbx-osechi2027 .card-cta:hover{background:var(--vermillion);}

  /* ============ モーダル ============ */
  #tbx-osechi2027 .tbxmodal-backdrop{
    position:fixed;inset:0;background:rgba(17,19,33,.7);display:none;
    align-items:flex-start;justify-content:center;padding:44px 16px;overflow-y:auto;z-index:200;
  }
  #tbx-osechi2027 .tbxmodal-backdrop.is-open{display:flex;}
  #tbx-osechi2027 .tbxmodal-box{background:#fff;max-width:780px;width:100%;position:relative;margin-bottom:40px;height:auto !important;max-height:none !important;min-height:0 !important;overflow:visible !important;}
  #tbx-osechi2027 .tbxmodal-close{
    position:absolute;top:12px;right:12px;width:34px;height:34px;
    border:1px solid var(--cream-line);background:#fff;font-size:17px;cursor:pointer;z-index:2;
  }
  #tbx-osechi2027 .tbxmodal-photo{width:100%;aspect-ratio:16/8;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
  #tbx-osechi2027 .tbxmodal-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  #tbx-osechi2027 .tbxmodal-photo.has-photo::after{content:none;}
  #tbx-osechi2027 .tbxmodal-photo::after{content:attr(data-char);font-family:"Shippori Mincho",serif;font-size:110px;color:rgba(255,255,255,.5);}
  #tbx-osechi2027 .tbxmodal-content{padding:28px 32px 32px;height:auto !important;max-height:none !important;min-height:0 !important;overflow:visible !important;}
  #tbx-osechi2027 .tbxmodal-badge-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
  #tbx-osechi2027 .tbxmodal-stamp{
    display:inline-flex;align-items:center;justify-content:center;
    width:48px;height:48px;border-radius:50%;background:var(--stamp-color, var(--vermillion));color:#fdf6ea;
    font-size:14px;font-weight:700;text-align:center;line-height:1.15;
  }
  #tbx-osechi2027 .tbxmodal-exclude-note{font-size:14px;font-weight:700;color:var(--vermillion);}
  #tbx-osechi2027 .tbxmodal-content h4{font-family:"Shippori Mincho",serif;font-size:25px;margin:0 0 6px;}
  @media (max-width:640px){
    #tbx-osechi2027 .tbxmodal-content h4{font-size:20px;}
  }
  #tbx-osechi2027 .tbxmodal-content .tbxmodal-maker-name{font-size:14px;color:#9c8f74;margin-bottom:16px;letter-spacing:.03em;}
  #tbx-osechi2027 .tbxmodal-content .tbxmodal-desc{font-size:14px;color:var(--text-sub);margin-bottom:20px;}
  #tbx-osechi2027 .tbxmodal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:22px;}
  @media (max-width:520px){#tbx-osechi2027 .tbxmodal-grid{grid-template-columns:1fr;}}
  #tbx-osechi2027 .tbxmodal-grid .tbxmodal-infobox{border:1px solid var(--cream-line);padding:10px 13px;font-size:14px;background:var(--cream);}
  #tbx-osechi2027 .tbxmodal-grid .tbxmodal-infobox b{display:block;font-size:14px;color:#9c8f74;font-weight:400;margin-bottom:3px;}
  #tbx-osechi2027 .ju-heading{
    display:flex; align-items:center; gap:10px;
    font-family:"Shippori Mincho",serif; font-size:14px; font-weight:700;
    color:var(--text); margin:4px 0 14px;
  }
  #tbx-osechi2027 .ju-heading::before, #tbx-osechi2027 .ju-heading::after{
    content:""; flex:1; height:1px; background:var(--cream-line);
  }
  #tbx-osechi2027 .ju-block{margin-bottom:16px;}
  #tbx-osechi2027 .ju-block h4{
    font-family:"Shippori Mincho",serif;font-size:14px;color:#fff;background:var(--ink);
    display:inline-block;padding:4px 12px;margin:0 0 8px;font-weight:700;
  }
  #tbx-osechi2027 .ju-block ul{margin:0;padding-left:18px;font-size:14px;color:var(--text-sub);columns:2;}
  @media (max-width:520px){#tbx-osechi2027 .ju-block ul{columns:1;}}
  #tbx-osechi2027 .ju-note{font-size:14px;color:var(--text-sub);margin:8px 0 0;font-style:italic;}
  #tbx-osechi2027 .tbxmodal-footer{
    display:flex !important;width:100%;align-items:center;justify-content:space-between !important;text-align:left;
    border-top:1px solid var(--cream-line);padding-top:18px;margin-top:8px;gap:16px;flex-wrap:wrap;
  }
  #tbx-osechi2027 .tbxmodal-footer .tbxmodal-price{margin:0;flex:0 1 auto;width:auto;text-align:left;}
  #tbx-osechi2027 .tbxmodal-footer .cta-primary{margin:0;flex:0 0 auto;width:auto !important;}
  #tbx-osechi2027 .tbxmodal-footer .tbxmodal-price{font-family:"Shippori Mincho",serif;font-size:27px;font-weight:700;color:var(--vermillion);}
  #tbx-osechi2027 .tbxmodal-footer .tbxmodal-price small{font-size:14px;color:var(--text-sub);font-weight:400;font-family:"Zen Kaku Gothic New",sans-serif;}
  @media (max-width:640px){
    #tbx-osechi2027 .tbxmodal-footer{
      flex-direction:column !important;
      justify-content:center !important;
      align-items:center !important;
      text-align:center !important;
    }
    #tbx-osechi2027 .tbxmodal-footer .tbxmodal-price{margin:0;text-align:center !important;width:100% !important;}
    #tbx-osechi2027 .tbxmodal-footer .cta-primary{width:100% !important;align-items:center !important;}
  }

  /* ============ 概要 / 注意事項 ============ */
  #tbx-osechi2027 .info-section{max-width:1100px;margin:92px auto 0;padding:0 24px;background:none !important;box-shadow:none !important;}
  #tbx-osechi2027 .info-section > h2{
    text-align:center;
    font-size:28px;
    letter-spacing:.1em;
    margin:0 0 14px;
    color:var(--text);
  }
  #tbx-osechi2027 .info-section > .rule{width:56px;height:2px;background:var(--vermillion-deep);margin:0 auto 40px;}
  @media (max-width:640px){
    #tbx-osechi2027 .info-section{margin-top:60px;padding:0 16px;}
    #tbx-osechi2027 .info-section > h2{font-size:22px;}
    #tbx-osechi2027 .info-section > .rule{margin-bottom:30px;}
    #tbx-osechi2027 .info-list{padding:14px 16px 14px 30px !important;}
    #tbx-osechi2027 .info-block .apply-cta{padding:12px 16px 12px 30px !important;}
    #tbx-osechi2027 .info-table th{width:112px !important;padding:10px 6px !important;font-size:12px;white-space:nowrap;}
    #tbx-osechi2027 .info-table td{padding:10px 10px !important;}
  }
  #tbx-osechi2027 .info-block{margin-bottom:36px;}
  #tbx-osechi2027 .info-block:last-child{margin-bottom:0;}
  #tbx-osechi2027 .info-block h3{
    font-family:"Shippori Mincho",serif;
    font-size:17px;
    margin:0 0 16px;
    padding-left:14px;
    border-left:4px solid var(--vermillion-deep);
  }
  #tbx-osechi2027 .info-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff;}
  #tbx-osechi2027 .info-table th, #tbx-osechi2027 .info-table td{border:1px solid var(--cream-line);padding:12px 14px;text-align:left;vertical-align:top;}
  #tbx-osechi2027 .info-table th{background:var(--cream-deep);width:160px;font-weight:700;}
  #tbx-osechi2027 .alert-text{color:var(--vermillion);font-weight:700;}
  #tbx-osechi2027 .underline-bold{text-decoration:underline;font-weight:700;}
  #tbx-osechi2027 .info-list{font-size:14px;color:var(--text-sub);margin:16px 0 0;padding:18px 20px 18px 34px;background:#fff;border:1px solid var(--cream-line);list-style:disc !important;}
  #tbx-osechi2027 .info-list li{display:list-item !important;list-style:disc !important;}
  #tbx-osechi2027 .info-block .apply-cta{
    background:#fff;border:1px solid var(--cream-line);padding:14px 20px 14px 34px;
  }
  #tbx-osechi2027 .info-list.plain-list{margin:0 !important;padding:0 !important;background:none;border:none;list-style:disc !important;}
  #tbx-osechi2027 .info-list a{color:var(--vermillion);text-decoration:underline;}
  #tbx-osechi2027 .info-block .pamphlet-card{margin-top:16px;}

  /* ============ 今年のポイント ============ */
  #tbx-osechi2027 .point-section{max-width:1100px;margin:70px auto 0;padding:0 24px;background:none !important;box-shadow:none !important;}
  #tbx-osechi2027 .point-inner{background:var(--ink);color:var(--cream);padding:40px;position:relative;}
  #tbx-osechi2027 .point-inner > *{position:relative;}
  #tbx-osechi2027 .point-inner h2{
    text-align:center;
    font-size:28px;
    letter-spacing:.1em;
    margin:0 0 14px;
    color:#fff;
  }
  #tbx-osechi2027 .point-inner .rule{width:56px;height:2px;background:var(--gold);margin:0 auto 18px;}
  #tbx-osechi2027 .point-inner .sub{font-size:14px;color:#cfc4a4;margin:0 0 26px;text-align:center;}
  @media (max-width:640px){
    #tbx-osechi2027 .point-inner h2{font-size:22px;}
  }
  #tbx-osechi2027 .combo-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px;}
  @media (max-width:820px){#tbx-osechi2027 .combo-list{grid-template-columns:1fr;}}
  #tbx-osechi2027 .combo-item{background:rgba(255,255,255,.04);border:1px solid rgba(199,165,92,.3);padding:0;text-align:center;overflow:hidden;}
  #tbx-osechi2027 .combo-item .combo-tag{
    display:block;width:100%;font-size:14px;letter-spacing:.05em;
    background:rgba(199,165,92,.16);color:var(--gold-soft);padding:8px 0;margin:0;box-sizing:border-box;
  }
  #tbx-osechi2027 .combo-item .combo-tag.off{background:rgba(255,255,255,.08);color:#9c9484;}
  #tbx-osechi2027 .combo-item p{font-size:14px;margin:0;font-weight:700;color:#f2ead4;line-height:1.6;text-align:center;padding:16px 18px 18px;}
  #tbx-osechi2027 .combo-label{font-weight:400;color:#cfc4a4;}
  #tbx-osechi2027 .combo-x{display:block;text-align:center;font-weight:400;color:#cfc4a4;line-height:1.6;}
  #tbx-osechi2027 .point-bottom{
    display:none;
    border-top:1px solid rgba(199,165,92,.3);padding-top:24px;
  }
  #tbx-osechi2027 .point-bottom-cta{width:100%;align-items:center;}

  #tbx-osechi2027 .footer-space{height:80px;}

  /* ============ モバイル固定バー ============ */
  #tbx-osechi2027 .sticky-cta-mobile{
    position:fixed;left:0;right:0;bottom:0;background:var(--ink);border-top:1px solid var(--gold);
    padding:10px 16px;display:none;z-index:80;
  }
  @media (max-width:640px){#tbx-osechi2027 .sticky-cta-mobile{display:block;}}
  #tbx-osechi2027 .sticky-cta-mobile a{
    display:flex;flex-direction:column;align-items:center;gap:2px;
    text-align:center;background:var(--vermillion);color:#fdf6ea;padding:10px 0;
    text-decoration:none;font-weight:700;font-size:14px;border:1px solid var(--gold);
  }
  #tbx-osechi2027 .sticky-cta-mobile a small{font-size:14px;font-weight:400;color:var(--gold-soft);}
  #tbx-osechi2027 .sticky-cta-mobile a .pdf-arrow{margin-left:5px;vertical-align:-1px;}
