/* Black Pipette Sale | dark version. */
:root {
      --ink:#282c31; --muted:#6b6d72; --cream:#fffaf2; --paper:#fff;
      --line:#e9e5de; --red:#c92e3d; --red-d:#a51e32;
      --gold:#b58a46; --shadow:none;
      --width:1180px;
      font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
      color:var(--ink);
    }
    *,*::before,*::after {box-sizing:border-box}
    html {scroll-behavior:auto} /* Scroll animations are controlled in JavaScript. */
    body {margin:0;background:#faf8f5;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}
    button,a {font:inherit}
    button {cursor:pointer}
    a {color:inherit;text-decoration:none}
    button:focus-visible,a:focus-visible {outline:3px solid #2c76bc;outline-offset:3px}
    .container {width:min(var(--width),calc(100% - 48px));margin-inline:auto}
    .skip-link {position:absolute;top:-100px;left:20px;z-index:100;padding:10px 14px;background:#fff}
    .skip-link:focus {top:8px}
    .eyebrow {font-size:12px;letter-spacing:.16em;font-weight:800}
    /* UCHIDAS-inspired promotional hero / Option 1 */
    .hero {
      position:relative;
      overflow:hidden;
      background:linear-gradient(104deg,#ffffff 0%,#f7fbff 58%,#e6f3fe 100%);
      border-top:4px solid #1167ac;
      border-bottom:1px solid #d7e8f6;
    }
    .hero::before {
      content:"";position:absolute;top:-185px;right:-78px;width:575px;height:575px;
      border-radius:50%;background:radial-gradient(circle,#d9edfd 0%,#e9f5fd 53%,transparent 72%);
      pointer-events:none;
    }
    .hero::after {
      content:"";position:absolute;left:-120px;bottom:-180px;width:430px;height:300px;
      border-radius:50%;border:1px solid rgba(57,141,207,.10);pointer-events:none;
    }
    .hero__content {
      position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;
      gap:26px;min-height:348px;padding-block:34px;
    }
    .hero__copy {flex:1;min-width:0;position:relative;z-index:2}
    .hero__badges {display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:13px}
    .hero__topline {
      display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#1266ac;
      font-weight:900;letter-spacing:.095em;
    }
    .hero__topline::before {content:"";width:5px;height:20px;background:#1673bb;border-radius:3px}
    .hero__badge {
      display:inline-flex;align-items:center;border-radius:4px;background:#ffe06a;
      color:#644600;font-size:12px;font-weight:900;line-height:1.3;
      padding:6px 11px;box-shadow:none;
    }
    .hero h1 {margin:0;line-height:1.18;font-size:clamp(40px,4.45vw,61px);font-weight:900;letter-spacing:-.055em}
    .hero__heading-first {display:block;color:#135c9b}
    .hero h1 .strong {
      display:inline-block;color:#d6323b;
      background:linear-gradient(transparent 81%,#ffe579 81%,#ffe579 94%,transparent 94%);
      padding-right:.06em;
    }
    .hero__lead {font-size:17px;color:#1f3d5c;font-weight:850;margin:18px 0 5px;letter-spacing:.012em}
    .hero__sub {font-size:13px;color:#627487;margin:0;line-height:1.7}
    .hero__link {
      display:inline-flex;align-items:center;gap:13px;margin-top:22px;
      padding:11px 16px 11px 18px;color:#fff;background:#126bb5;border:1px solid #126bb5;
      border-radius:6px;font-size:13px;font-weight:850;
      box-shadow:none;transition:background .2s,transform .2s;
    }
    .hero__link:hover {background:#07558e;transform:translateY(-1px)}
    .hero__link svg {width:16px;height:16px;flex:none}
    .hero__art {position:relative;flex:0 0 350px;height:290px;align-self:center;isolation:isolate}
    .hero__art-halo {
      position:absolute;right:0;top:5px;width:278px;height:278px;border-radius:50%;
      background:#d5eaff;box-shadow:none;
    }
    .hero__art-halo::before {
      content:"";position:absolute;width:210px;height:210px;top:32px;left:34px;
      border:1px dashed #91c6ee;border-radius:50%;
    }
    .hero__calendar-illust {
      position:absolute;left:28px;top:9px;width:252px;height:257px;overflow:hidden;
      background:#fff;border:1px solid #c5deef;border-radius:14px;
      box-shadow:none;
      transform:rotate(-4deg);
    }
    .hero__calendar-head {
      background:#146bb3;color:#fff;display:flex;justify-content:space-between;
      align-items:center;padding:13px 16px 10px;
    }
    .hero__calendar-head span {font-size:10px;font-weight:850;letter-spacing:.13em;line-height:1.2}
    .hero__calendar-head strong {font-size:33px;font-weight:900;line-height:1;letter-spacing:-.05em}
    .hero__calendar-head strong small {font-size:12px;margin-left:2px;letter-spacing:0}
    .hero__calendar-list {padding:12px 14px;display:grid;gap:8px}
    .hero__calendar-item {
      display:flex;gap:11px;align-items:center;padding:7px 11px;border-radius:6px;
      font-size:12px;font-weight:900;line-height:1.3;background:var(--tag-bg);color:var(--tag-fg);
    }
    .hero__calendar-item b {font-size:11px;letter-spacing:.02em;min-width:38px}
    .hero__calendar-item:nth-child(1){--tag-bg:#fff1f3;--tag-fg:#173f5b;border-left:4px solid #eb8f9a}
    .hero__calendar-item:nth-child(2){--tag-bg:#fff3e6;--tag-fg:#173f5b;border-left:4px solid #ffa34a}
    .hero__calendar-item:nth-child(3){--tag-bg:#eefaf6;--tag-fg:#173f5b;border-left:4px solid #00b585}
    .hero__calendar-item:nth-child(4){--tag-bg:#eaf9ff;--tag-fg:#173f5b;border-left:4px solid #2bbaeb}
    .hero__gift-illust {position:absolute;right:-4px;bottom:-6px;width:133px;height:136px;filter:none}
    .hero__star {position:absolute;z-index:2;font-size:28px;color:#f3c94b;line-height:1}
    .hero__star--one {top:21px;right:12px}
    .hero__star--two {top:71px;left:0;font-size:18px;color:#e95557}
    .hero__star--three {bottom:10px;left:4px;font-size:18px;color:#2d98d5}
    .intro {padding:58px 0 15px}
    .section-kicker {font-size:12px;letter-spacing:.14em;color:#b78747;font-weight:850;margin:0 0 4px}
    .section-heading {font-size:clamp(25px,3vw,34px);font-weight:850;letter-spacing:.025em;margin:0}
    .section-desc {color:var(--muted);margin:11px 0 0;font-size:14px}
    .calendar-shell {background:var(--paper);border:1px solid #efeae4;border-radius:18px;box-shadow:none;display:grid;grid-template-columns:218px 1fr;margin-top:24px;overflow:hidden}
    .calendar-month {background:linear-gradient(151deg,#fff7eb,#f7e9d9);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:32px 12px;text-align:center;position:relative}
    .calendar-month::before {content:"\2726";position:absolute;font-size:26px;color:#c69b5a;left:22px;top:18px}
    .calendar-month__en {letter-spacing:.18em;font-size:12px;color:#a37744;font-weight:800}
    .calendar-month__year {font-weight:800;font-size:19px;letter-spacing:.03em;margin-top:9px}
    .calendar-month__month {line-height:1.18;font-weight:900;font-size:76px;letter-spacing:-.065em;color:#2e2c29}
    .calendar-month__month span {font-size:36px;letter-spacing:0;margin-left:2px}
    .calendar-month__note {font-size:12px;color:#796b5a;margin-top:16px;line-height:1.8;font-weight:700}
    .calendar-content {min-width:0;padding:20px 22px 18px}
    .calendar-weekdays,.calendar-grid {display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
    .calendar-weekdays {overflow:hidden;border-radius:8px 8px 0 0;background:#f7f6f4}
    .calendar-weekdays div {text-align:center;font-size:13px;font-weight:750;padding:8px 0}
    .calendar-weekdays div:first-child {background:#fff0f0;color:#be4150}
    .calendar-weekdays div:last-child {background:#edf5fc;color:#3e83b5}
    .calendar-grid {border-top:1px solid #ebe9e6;border-left:1px solid #ebe9e6}
    .calendar-cell {border:0;border-right:1px solid #ebe9e6;border-bottom:1px solid #ebe9e6;min-height:75px;background:#fff;position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:7px 9px 7px;text-align:left;transition:background .16s ease}
    button.calendar-cell:hover {background:#fbf6ed}
    .calendar-cell--blank {background:#fcfbf9}
    .calendar-cell__day {font-size:16px;font-weight:850;line-height:1.25}
    .calendar-cell--sun .calendar-cell__day {color:#ca4c55}
    .calendar-cell--sat .calendar-cell__day {color:#3a83b8}
    .calendar-cell__hint {font-size:10px;white-space:nowrap;color:#777;line-height:1.1;font-weight:650}
    .calendar-cell__bar {height:6px;border-radius:9px;width:100%;background:var(--campaign-color)}
    .calendar-cell__pill {font-size:10px;line-height:1.3;color:#fff;border-radius:3px;padding:2px 4px;background:var(--campaign-color);font-weight:800;white-space:nowrap}
    .calendar-note {display:flex;align-items:center;gap:6px;margin:10px 1px 0;font-size:11px;color:#817b72}
    .calendar-note svg {flex:none}
    .schedule-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:34px 0 12px}
    .schedule-heading :is(h2,h3) {font-size:18px;margin:0;letter-spacing:.035em}
    .schedule-heading p {font-size:12px;color:#827c75;margin:0}
    .timeline {display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
    .timeline__item {border:1px solid color-mix(in srgb,var(--campaign-color) 18%,white);background:var(--campaign-tint);border-radius:10px;padding:13px 15px;min-height:95px;display:block;transition:transform .2s,box-shadow .2s}
    .timeline__item:hover {transform:translateY(-2px);box-shadow:none}
    .timeline__date {font-size:13px;font-weight:850;color:var(--campaign-color)}
    .timeline__name {font-size:14px;font-weight:850;margin-top:4px;display:flex;align-items:center;justify-content:space-between;gap:8px}
    .timeline__name svg {flex:none;color:var(--campaign-color)}
    .section-top {display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 19px}
    .campaigns {padding:64px 0 30px}
    .campaigns__intro {margin-bottom:28px}
    .campaign-block {scroll-margin-top:24px;background:#fff;border:1px solid #eeebe7;border-radius:14px;overflow:hidden;box-shadow:none;margin-bottom:34px}
    .campaign-block__head {background:linear-gradient(103deg,var(--campaign-color),var(--campaign-color2));color:white;min-height:100px;padding:20px 27px;display:flex;align-items:center;gap:20px;position:relative;overflow:hidden}
    .campaign-block__head::after {content:"";position:absolute;right:-15px;top:-75px;border:1px solid #ffffff4d;width:255px;height:255px;border-radius:50%}
    .campaign-block__head::before {content:"";position:absolute;right:39px;top:35px;border:1px solid #ffffff45;width:130px;height:130px;border-radius:50%}
    .campaign-block__number {border:1.5px solid #ffeac0;color:#71441b;background:#f5d996;box-shadow:none;border-radius:50%;flex:none;width:66px;height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.25;font-weight:900;font-size:22px;position:relative;z-index:1}
    .campaign-block__number small {font-size:10px;letter-spacing:.07em}
    .campaign-block__title-wrap {flex:1;position:relative;z-index:1;min-width:0}
    .campaign-block__period {font-weight:750;font-size:14px;opacity:.97;letter-spacing:.045em;margin:0 0 2px}
    .campaign-block__title {font-size:clamp(23px,3vw,32px);font-weight:850;margin:0;letter-spacing:.035em;line-height:1.3}
    .campaign-block__caption {font-size:13px;font-weight:700;max-width:200px;position:relative;z-index:1;margin:0;opacity:.96}
    .campaign-block__body {padding:23px 23px 26px}
    .campaign-block__subline {display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:13px}
    .campaign-block__subline p {font-size:13px;color:#787772;margin:0}
    .campaign-block__subline span {font-size:11px;font-weight:750;color:var(--campaign-color);background:var(--campaign-tint);border-radius:30px;padding:3px 11px;white-space:nowrap}
    .product-grid {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
    .product {border:1px solid #ebe9e5;border-radius:9px;overflow:hidden;min-width:0;display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.22,.61,.36,1);background:#fff}
    .product:hover {box-shadow:none;transform:translateY(-2px)}
    .product__image {position:relative;aspect-ratio:1.05/1;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,var(--product-bg),#fff 120%);border-bottom:1px solid #f1efeb}
    .product__image::after {content:"";position:absolute;width:130px;height:130px;border:1px solid #ffffffcc;border-radius:50%;top:-30px;right:-33px}
    .product__image img {width:100%;height:100%;object-fit:contain;position:relative;z-index:1}
    .product__placeholder {display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;z-index:1;text-align:center}
    .product__placeholder-icon {font-size:54px;line-height:1.4;filter:none}
    .product__placeholder-text {font-size:10px;color:#8c7b6c;letter-spacing:.04em;font-weight:750;background:#ffffffb0;padding:1px 9px;border-radius:20px}
    .product__info {padding:11px 11px 12px;flex:1;display:flex;flex-direction:column;min-width:0}
    .product__name {font-size:13px;line-height:1.55;font-weight:750;min-height:42px;margin:0}
    .product__price {color:#c52939;font-size:18px;line-height:1.5;font-weight:900;letter-spacing:-.025em;margin:4px 0 9px}
    .product__price .yen {font-size:13px;margin-right:1px}
    .product__action {background:var(--campaign-color);border:0;border-radius:5px;color:#fff;padding:9px 6px;text-align:center;font-size:12px;display:flex;justify-content:center;align-items:center;gap:4px;font-weight:800;margin-top:auto;line-height:1.35;transition:filter .2s}
    .product__action:hover {filter:brightness(.9)}
    .product__action svg {flex:none}
    .notice {font-size:12px;color:#817b74;margin:0;padding:3px 0 20px;text-align:center}
    .footer {text-align:center;padding:28px 20px 36px;border-top:1px solid #eae4da;color:#7b7470;font-size:11px;background:#fff}
    .footer strong {font-size:17px;color:#a73338;display:block;letter-spacing:.03em;margin-bottom:7px}
    .backtop {position:fixed;right:22px;bottom:22px;z-index:20;border:1px solid #e9dfd0;border-radius:50%;background:#fff;box-shadow:none;width:48px;height:48px;display:grid;place-items:center;color:#b03642;opacity:0;pointer-events:none;transition:opacity .2s}
    .backtop.is-visible {opacity:1;pointer-events:auto}
    .toast {position:fixed;z-index:100;bottom:25px;left:50%;transform:translate(-50%,18px);background:#282b32;color:#fff;max-width:calc(100vw - 35px);padding:13px 20px;border-radius:9px;box-shadow:none;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-size:13px;line-height:1.6;text-align:center}
    .toast.is-visible {opacity:1;transform:translate(-50%,0)}
    @media(max-width:1080px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.product__image{aspect-ratio:1.45/1}.campaign-block__caption{max-width:145px}}
    @media(max-width:720px){.container{width:min(var(--width),calc(100% - 28px))} .hero__content{min-height:310px;padding-block:30px;gap:8px}.hero__art{flex-basis:230px;transform:scale(.78);transform-origin:right center;margin-left:-22px}.hero h1{font-size:clamp(38px,6.3vw,53px)}.hero__lead{font-size:15px}.hero__sub{font-size:12px}.hero__topline{font-size:10px}.hero__badge{font-size:10px}.hero__link{font-size:12px}.intro{padding-top:40px}.calendar-shell{display:block}.calendar-month{padding:17px;display:flex;flex-direction:row;justify-content:center;gap:13px;align-items:baseline}.calendar-month::before,.calendar-month__note,.calendar-month__en{display:none}.calendar-month__year{font-size:15px;margin:0}.calendar-month__month{font-size:35px}.calendar-month__month span{font-size:22px}.calendar-content{padding:12px}.calendar-cell{min-height:61px;padding:6px 4px 5px}.calendar-cell__day{font-size:13px}.calendar-cell__hint{font-size:8px}.calendar-cell__pill{font-size:8px;padding:2px}.calendar-cell__bar{height:5px}.timeline{grid-template-columns:repeat(2,1fr);gap:9px}.timeline__item{padding:10px;min-height:85px}.timeline__name{font-size:12px}.timeline__date{font-size:12px}.schedule-heading{align-items:baseline;gap:7px}.schedule-heading :is(h2,h3){font-size:16px}.schedule-heading p{font-size:10px}.campaigns{padding-top:43px}.campaign-block{margin-bottom:24px}.campaign-block__head{padding:17px 15px;min-height:95px;gap:11px}.campaign-block__number{width:52px;height:52px;font-size:18px}.campaign-block__number small{font-size:9px}.campaign-block__title{font-size:21px}.campaign-block__period{font-size:12px}.campaign-block__caption{display:none}.campaign-block__body{padding:13px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.product__image{aspect-ratio:1.18/1}.product__placeholder-icon{font-size:45px}.product__info{padding:10px}.product__name{min-height:39px;font-size:12px}.product__price{font-size:17px}.product__action{font-size:11px;padding:10px 3px}.campaign-block__subline{align-items:flex-start}.campaign-block__subline p{font-size:11px}.campaign-block__subline span{font-size:10px}.section-heading{font-size:25px}.section-desc{font-size:12px}.notice{font-size:11px}.backtop{bottom:13px;right:12px;width:41px;height:41px}}
    @media(max-width:390px){.calendar-cell__hint{display:none}.schedule-heading p{display:none}}
    @media(max-width:920px) and (min-width:721px){
      .hero__art{flex-basis:270px;transform:scale(.86);transform-origin:right center;margin-left:-30px}
      .hero h1{font-size:clamp(40px,5.2vw,50px)}
    }
    @media(max-width:720px){
      .hero__art{position:absolute;right:-92px;bottom:-75px;transform:scale(.68);transform-origin:right bottom;opacity:.22;margin:0;pointer-events:none}
      .hero__content{min-height:330px;padding-block:28px 31px}
      .hero h1{font-size:clamp(38px,9vw,52px)}
      .hero__lead{margin-top:17px;max-width:340px}
      .hero__sub{max-width:310px}
      .hero__link{margin-top:19px}
    }
    @media(max-width:430px){
      .hero__art{display:none}
      .hero__content{min-height:0;padding-block:30px 34px}
      .hero h1{font-size:clamp(36px,9.3vw,42px)}
      .hero__badges{gap:8px}
      .hero__lead{font-size:14px;line-height:1.6}
      .hero__link{width:auto}
    }

    /* ===========================================================
       UCHIDAS-inspired content styling
       White content area / blue as the primary UI color / red &
       yellow accents. Hero and campaign data/interaction unchanged.
       =========================================================== */
    :root {
      --ink:#213e59;
      --muted:#65798b;
      --line:#dfeaf3;
      --shadow:none;
    }
    body, main {background:#fff}
    .intro, .campaigns {background:#fff}
    .section-kicker {color:#1472b9;letter-spacing:.13em}
    .section-heading {color:#125c9b;letter-spacing:.015em;line-height:1.35}
    .section-heading::after {
      content:"";display:block;width:70px;height:4px;margin-top:10px;
      background:#ffd454;border-radius:99px;
    }
    .section-desc {color:#65798b}
    .calendar-shell {
      border-color:#d7e8f5;border-radius:14px;
      box-shadow:none;
    }
    .calendar-month {
      background:linear-gradient(146deg,#ebf7ff 0%,#dceeff 100%);
      border-right:1px solid #d4e6f5;
    }
    .calendar-month::before {color:#f1bf35}
    .calendar-month__en {color:#397fb2}
    .calendar-month__year,.calendar-month__month {color:#135c9c}
    .calendar-month__note {color:#476c8d}
    .calendar-content {background:#fff}
    .calendar-weekdays {background:#edf5fc}
    .calendar-weekdays div {color:#2b5e87}
    .calendar-weekdays div:first-child {background:#fff1f1;color:#cb424e}
    .calendar-weekdays div:last-child {background:#e4f2ff;color:#1c78b9}
    .calendar-grid {border-top-color:#dce7f1;border-left-color:#dce7f1}
    .calendar-cell {
      border-right-color:#dce7f1;border-bottom-color:#dce7f1;
      color:#2b475d;
    }
    button.calendar-cell:hover {background:#f0f8ff}
    .calendar-cell--blank {background:#f7fafd}
    .calendar-cell__bar {background:var(--campaign-accent,#1b79bb)}
    .calendar-cell__pill {background:#176bb1;color:#fff}
    .calendar-note {color:#6b7e8d}
    .calendar-note svg {color:#207bb9}
    .schedule-heading :is(h2,h3) {color:#125c9b}
    .schedule-heading p {color:#71869a}
    .timeline {gap:13px}
    .timeline__item {
      background:#f3f9ff;border:1px solid #d6e8f6;
      border-top:4px solid var(--campaign-accent,#f5cc54);
      border-radius:9px;box-shadow:none;
    }
    .timeline__item:hover {box-shadow:none}
    .timeline__date {color:#166bad}
    .timeline__name {color:#244763}
    .timeline__name svg {color:#1977b9}
    .campaign-block {
      border-color:#dce8f3;border-radius:13px;
      box-shadow:none;
    }
    .campaign-block__head {
      background:linear-gradient(105deg,var(--campaign-color),var(--campaign-color2));
      border-left:0;
    }
    .campaign-block__number {
      border:1px solid #ffe48b;background:#ffdc64;color:#134e81;
      box-shadow:none;
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:2px;
    }
    .campaign-block__number small {line-height:1;}
    .campaign-block__number-main {
      display:flex;align-items:flex-end;justify-content:center;gap:.02em;
      line-height:1;white-space:nowrap;
    }
    .campaign-block__number-main .jp-small {
      font-size:.62em;line-height:1;font-weight:900;
    }
    .campaign-block__number-main .jp-num {
      font-size:1em;line-height:.92;font-weight:950;letter-spacing:-.04em;
    }
    .campaign-block__body {background:#fff}
    .campaign-block__subline p {color:#658096}
    .campaign-block__subline span {color:#1567a4;background:#eaf5ff}
    .product {border-color:#deebf5;border-radius:8px}
    .product:hover {box-shadow:none}
    .product__image {
      background:linear-gradient(145deg,#eff7ff 0%,#f7fbfe 65%,#fff 100%);
      border-bottom-color:#e4edf5;
    }
    .product__placeholder-text {color:#426d8f;background:#ffffffd9}
    .product__name {color:#243e54}
    .product__price {color:#d6323b}
    .product__action {background:#146eb5;border-radius:5px}
    .product__action:hover {background:#0d5b98;filter:none}
    .notice {color:#718399}
    .footer {background:#f7fbff;border-top-color:#dceaf5;color:#6b8195}
    .footer strong {color:#1567a5}
    .backtop {border-color:#d0e5f6;color:#156daf}
    /* Weekly campaign palette: one source of truth for the calendar and content.
       Week 1 pink, Week 2 orange, Week 3 green, Week 4 blue.
       The specified hex value is used for all primary week-specific accents.
       Dark navy ink provides legibility on the light campaign colors. */
    .theme-pink {
      --campaign-color:#eb8f9a;--campaign-color2:#eb8f9a;
      --campaign-tint:#fff1f3;--campaign-accent:#eb8f9a;
      --campaign-ink:#173f5b;
    }
    .theme-orange {
      --campaign-color:#ffa34a;--campaign-color2:#ffa34a;
      --campaign-tint:#fff5eb;--campaign-accent:#ffa34a;
      --campaign-ink:#173f5b;
    }
    .theme-green {
      --campaign-color:#00b585;--campaign-color2:#00b585;
      --campaign-tint:#effaf6;--campaign-accent:#00b585;
      --campaign-ink:#173f5b;
    }
    .theme-blue {
      --campaign-color:#2bbaeb;--campaign-color2:#2bbaeb;
      --campaign-tint:#eaf9ff;--campaign-accent:#2bbaeb;
      --campaign-ink:#173f5b;
    }
    /* The calendar, week navigation and product sections are color-linked. */
    button.calendar-cell[class*="theme-"] {background:color-mix(in srgb,var(--campaign-color) 13%,#fff)}
    button.calendar-cell[class*="theme-"]:hover {background:color-mix(in srgb,var(--campaign-color) 24%,#fff)}
    .calendar-cell__bar,.calendar-cell__pill {background:var(--campaign-color)}
    .calendar-cell__pill {color:var(--campaign-ink);font-weight:900}
    .timeline__item {background:var(--campaign-tint);border-color:color-mix(in srgb,var(--campaign-color) 65%,#fff);border-top:5px solid var(--campaign-color)}
    .timeline__date {color:var(--campaign-ink)}
    .timeline__name svg {color:var(--campaign-ink)}
    .campaign-block__head {background:var(--campaign-color);color:#fff}
    .campaign-block__period,.campaign-block__title,.campaign-block__caption {color:#fff}
    .campaign-block__head::before,.campaign-block__head::after {border-color:#ffffff9a}
    .campaign-block__subline span {color:var(--campaign-ink);background:var(--campaign-tint)}
    .product__action {background:var(--campaign-color);color:#fff}
    .product__action:hover {background:color-mix(in srgb,var(--campaign-color) 80%,#fff);filter:none}
    @media(max-width:720px){
      .calendar-month {border-right:0;border-bottom:1px solid #d4e6f5}
      .section-heading::after{width:56px;margin-top:8px}
    }


    /* ===========================================================
       Hero refresh: centered and more campaign-like
       =========================================================== */
    .hero--campaign {
      /* 螟ｧ蟆上・豌ｴ邇峨ｒ髱槫ｯｾ遘ｰ繝ｻ荳崎ｦ丞援縺ｫ驟咲ｽｮ縺励※縲∽ｸｭ螟ｮ縺ｮ譁・ｭ励ｒ蠑輔″遶九※繧・*/
      background:
        radial-gradient(circle 138px at 10% 25%, rgba(43,186,235,.20) 0 65%, rgba(43,186,235,.10) 80%, transparent 100%),
        radial-gradient(circle 104px at 23% 103%, rgba(235,143,154,.20) 0 65%, rgba(235,143,154,.09) 82%, transparent 100%),
        radial-gradient(circle 91px at 92% 9%, rgba(255,163,74,.19) 0 65%, rgba(255,163,74,.09) 84%, transparent 100%),
        radial-gradient(circle 126px at 78% 89%, rgba(0,181,133,.16) 0 64%, rgba(0,181,133,.08) 81%, transparent 100%),
        radial-gradient(circle 39px at 66% -6%, rgba(255,215,91,.19) 0 63%, transparent 100%),
        radial-gradient(circle 55px at 101% 59%, rgba(43,186,235,.12) 0 62%, transparent 100%),
        linear-gradient(180deg,#fffef8 0%,#ffffff 52%,#f3f9ff 100%);
      border-top:6px solid #1267ac;
      border-bottom:1px solid #dbeaf6;
    }
    /* 蜿ｳ荳翫↓縺ゅ▲縺溽ｴｰ髟ｷ縺・･募・縺ｮ鬟ｾ繧翫ｒ蜑企勁 */
    .hero--campaign::before {content:none;display:none}
    /* 繝｡繧､繝ｳ繝薙ず繝･繧｢繝ｫ蜀・・轤ｹ邱壽棧縺ｯ髱櫁｡ｨ遉ｺ */
    .hero--campaign::after {content:none;display:none}
    .hero--campaign .hero__content {
      min-height:300px;justify-content:center;align-items:center;padding-block:42px 44px;
    }
    .hero--campaign .hero__copy {
      flex:none;max-width:900px;width:100%;text-align:center;
    }
    .hero--campaign .hero__badges {
      justify-content:center;margin-bottom:14px;
    }
    .hero--campaign .hero__topline::before {display:none}
    .hero--campaign .hero__topline {
      padding:7px 12px;border-radius:999px;background:#edf6ff;border:1px solid #cde5f7;
    }
    .hero--campaign h1 {
      font-size:clamp(48px,5.9vw,77px);line-height:1.06;letter-spacing:-.06em;
    }
    /* 縲碁ｱ譖ｿ繧上ｊ・√阪ｒ謗ｧ縺医ａ縺ｫ縲√悟ｹｴ譛ｫ縺翫ヨ繧ｯ逾ｭ縲阪ｒ荳ｻ蠖ｹ縺ｫ */
    .hero--campaign .hero__heading-first {
      display:block;color:#145d9d;font-size:.82em;line-height:1.18;
    }
    .hero--campaign h1 .strong {
      font-size:1.08em;line-height:1.08;
    }
    .hero--campaign .hero__lead {
      margin:18px auto 9px;font-size:26px;line-height:1.45;font-weight:900;color:#1b4163;
    }
    .hero--campaign .hero__sub {
      max-width:760px;margin:0 auto;font-size:15px;line-height:1.8;color:#566f85;
    }
    .hero__weeks {
      display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:26px auto 0;max-width:780px;
    }
    .hero__week-tag {
      display:inline-flex;align-items:center;justify-content:center;
      min-width:160px;padding:9px 14px;border-radius:999px;font-size:13px;font-weight:900;
      border:1px solid currentColor;background:#fff;
    }
    .hero__week-tag--pink {color:#c76372;background:#fff3f5;border-color:#f2bcc4}
    .hero__week-tag--orange {color:#cb741f;background:#fff4e7;border-color:#ffd09d}
    .hero__week-tag--green {color:#00785a;background:#ecfaf5;border-color:#8bddc8}
    .hero__week-tag--blue {color:#126ea0;background:#ecfaff;border-color:#9fdcf1}
    .hero--campaign .hero__link {
      margin:26px auto 0;padding:14px 24px;border-radius:999px;font-size:15px;font-weight:900;
      background:linear-gradient(180deg,#1c75bc 0%,#1268ac 100%);border-color:#1268ac;
    }
    .hero--campaign .hero__link:hover {background:#0b5c99;transform:translateY(-1px)}
    @media(max-width:920px){
      .hero--campaign .hero__content{min-height:300px;padding-block:38px 40px}
      .hero--campaign .hero__lead{font-size:22px}
      .hero__week-tag{min-width:145px}
    }
    @media(max-width:720px){
      .hero--campaign .hero__content{min-height:0;padding-block:34px 38px}
      .hero--campaign h1{font-size:clamp(38px,10vw,56px)}
      .hero--campaign .hero__lead{font-size:18px;margin-top:16px}
      .hero--campaign .hero__sub{font-size:13px;line-height:1.75}
      .hero__weeks{gap:8px;margin-top:22px}
      .hero__week-tag{min-width:0;width:calc(50% - 4px);padding:8px 10px;font-size:12px}
      .hero--campaign .hero__link{margin-top:22px;font-size:14px;padding:13px 20px}
    }
    @media(max-width:430px){
      .hero--campaign .hero__topline,.hero--campaign .hero__badge{font-size:10px}
      .hero__week-tag{width:100%}
    }


    /* WEEKLY CAMPAIGNS: centered editorial layout with strong typography */
    .schedule-heading {
      position:relative;
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:0;text-align:center;margin:53px auto 29px;padding:0 0 27px;
      border-bottom:0;min-height:0;
    }
    .schedule-heading::before,
    .schedule-heading::after {pointer-events:none}
    .schedule-heading::before {
      content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);
      width:min(288px,68%);height:5px;border-radius:10px;
      background:linear-gradient(90deg,#eb8f9a 0 25%,#ffa34a 25% 50%,#00b585 50% 75%,#2bbaeb 75%);
    }
    .schedule-heading::after {
      content:"\2726";position:absolute;top:4px;left:calc(50% + 166px);
      color:#efb739;font-size:24px;line-height:1;
    }
    .schedule-heading__main {display:flex;flex-direction:column;align-items:center;min-width:0;width:100%}
    .schedule-heading__eyebrow {
      margin:0 0 9px;display:flex;align-items:center;justify-content:center;gap:10px;
      color:#cf7b26;font-weight:900;letter-spacing:.14em;font-size:12px;
    }
    .schedule-heading__eyebrow > span:first-child {color:#efba3f;font-size:18px}
    .schedule-heading__eyebrow > span:last-child {color:#efba3f;font-size:18px}
    .schedule-heading :is(h2,h3) {
      display:flex;align-items:center;justify-content:center;gap:.25em;flex-wrap:wrap;
      margin:0;color:#125e9a;font-size:clamp(30px,4vw,44px);line-height:1.45;
      font-weight:900;letter-spacing:.015em;text-align:center;
    }
    .schedule-heading__title-accent {
      position:relative;z-index:0;white-space:nowrap;color:#125e9a;
    }
    .schedule-heading__title-accent::after {
      content:"";position:absolute;z-index:-1;left:-.02em;right:-.03em;bottom:.12em;height:.24em;
      background:#ffe178;transform:skewX(-10deg);
    }
    .schedule-heading > p {
      margin:10px 0 0;padding:0;border:0;border-radius:0;background:none;
      display:block;text-align:center;color:#687d8e;font-size:14px;font-weight:650;
      line-height:1.7;white-space:normal;
    }
    .timeline {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
    .timeline__item {
      --week-deep:#105b92;
      position:relative;isolation:isolate;overflow:hidden;
      display:flex;flex-direction:column;align-items:center;text-align:center;
      min-height:288px;padding:21px 18px 17px;
      border:1px solid #dce8f0;border-radius:16px;
      background:linear-gradient(180deg,var(--campaign-tint) 0%,#fff 73%);
      box-shadow:none;transform:none;
      transition:transform .5s cubic-bezier(.22,.61,.36,1),border-color .5s ease;
    }
    .timeline__item.theme-pink {--week-deep:#b2465d}
    .timeline__item.theme-orange {--week-deep:#a9570b}
    .timeline__item.theme-green {--week-deep:#007d5c}
    .timeline__item.theme-blue {--week-deep:#076d9f}
    .timeline__item::before {
      content:"";height:7px;position:absolute;inset:0 0 auto;background:var(--campaign-color);
    }
    .timeline__item::after {
      content:"";position:absolute;right:-30px;top:18px;width:122px;height:122px;z-index:-1;
      border-radius:50%;border:15px solid var(--campaign-color);opacity:.09;
      box-shadow:none;pointer-events:none;
    }
    .timeline__item:hover {border-color:var(--campaign-color);transform:translateY(-3px);box-shadow:none}
    .timeline__item:focus-visible {outline:3px solid #116ab2;outline-offset:3px}
    .timeline__top {
      position:relative;display:flex;align-items:center;justify-content:center;
      width:100%;margin:0 0 12px;min-height:79px;
    }
    .timeline__number {
      position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:1px;color:var(--week-deep);font-weight:900;line-height:1;
    }
    .timeline__week-en {font-size:11px;letter-spacing:.24em;padding-left:.24em;font-weight:900}
    .timeline__number strong {
      font-size:clamp(47px,4.5vw,63px);font-weight:950;letter-spacing:-.055em;line-height:1;
    }
    .timeline__top-decoration {position:absolute;right:13%;top:10%;color:var(--campaign-color);font-size:23px;line-height:1}
    .timeline__date {
      display:inline-flex;justify-content:center;align-items:center;gap:5px;
      padding:5px 11px;border-radius:999px;background:#fff;border:1px solid #e2e8ee;
      color:#4b687c;font-size:12px;font-weight:800;letter-spacing:0;line-height:1.55;
      white-space:nowrap;
    }
    .timeline__date svg {width:14px;height:14px;flex:none;color:var(--week-deep)}
    .timeline__name {
      display:flex;align-items:center;justify-content:center;flex:1;
      min-height:70px;width:100%;max-width:240px;
      margin:7px 0 9px;color:#173e5d;font-size:clamp(17px,1.75vw,23px);
      line-height:1.36;letter-spacing:.005em;font-weight:950;text-wrap:balance;
    }
    .timeline__bottom {
      margin:auto 0 0;padding:12px 12px 12px 17px;width:100%;
      min-height:44px;display:flex;align-items:center;justify-content:center;gap:9px;
      background:var(--week-deep);color:#fff;border:0;border-radius:999px;
      font-size:13px;font-weight:900;letter-spacing:.015em;
    }
    .timeline__arrow {
      width:18px;height:18px;display:flex;align-items:center;justify-content:center;
      border-radius:50%;color:#fff;background:transparent;flex:none;
      transition:transform .2s ease;
    }
    .timeline__arrow svg {width:18px;height:18px}
    .timeline__item:hover .timeline__arrow {transform:translateX(4px)}
    @media(max-width:1020px){
      .timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
      .timeline__item{min-height:255px}
      .timeline__number strong{font-size:58px}
      .timeline__name{font-size:22px;min-height:55px}
    }
    @media(max-width:720px){
      .schedule-heading{margin:34px auto 23px;padding-bottom:23px;align-items:center}
      .schedule-heading::after{left:calc(50% + 135px);font-size:18px}
      .schedule-heading__eyebrow{font-size:10px;gap:7px}
      .schedule-heading :is(h2,h3){font-size:clamp(28px,7vw,37px);gap:.2em}
      .schedule-heading > p{font-size:12px;margin-top:9px}
      .timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
      .timeline__item{min-height:248px;padding:17px 10px 12px;border-radius:13px}
      .timeline__top{margin-bottom:8px;min-height:60px}
      .timeline__week-en{font-size:9px}
      .timeline__number strong{font-size:44px}
      .timeline__top-decoration{font-size:18px;right:10%}
      .timeline__date{font-size:10px;padding:4px 6px;gap:3px}
      .timeline__date svg{width:12px;height:12px}
      .timeline__name{font-size:17px;line-height:1.32;min-height:59px;margin:9px 0}
      .timeline__bottom{font-size:10px;padding:10px 5px;min-height:40px;gap:3px}
      .timeline__arrow{width:15px;height:15px}
      .timeline__arrow svg{width:15px;height:15px}
    }
    @media(max-width:390px){
      .timeline{grid-template-columns:1fr;gap:12px}
      .timeline__item{min-height:0;padding:19px 20px 15px}
      .timeline__top{min-height:67px}
      .timeline__number strong{font-size:52px}
      .timeline__date{font-size:12px;padding:5px 13px}
      .timeline__name{font-size:22px;min-height:52px;margin:10px 0 14px}
      .timeline__bottom{font-size:12px;max-width:290px;min-height:44px}
    }

    /* All three section headings share the same visual language. */
    .unified-section-heading {margin:0 auto 27px}
    .intro > .calendar-shell {margin-top:0}
    .campaigns__intro {margin-bottom:0}
    .campaigns__intro .unified-section-heading {margin-bottom:28px}
    .unified-section-heading :is(h2,h3) {max-width:100%;text-wrap:balance}
    @media(max-width:720px){
      .unified-section-heading{margin:0 auto 24px}
      .campaigns__intro .unified-section-heading{margin-bottom:25px}
    }


    /* Align amounts consistently and keep the tax label smaller. */
    .product__price {text-align:right;white-space:nowrap;width:100%;}
    .product__tax {display:inline-block;margin-left:4px;font-size:11px;font-weight:600;letter-spacing:0;color:#63788b;vertical-align:baseline;}
    @media(max-width:720px){.product__tax{font-size:10px}}

    

    /* Smartphone hero: slightly taller and with smaller, more separated dots */
    @media(max-width:720px){
      .hero--campaign {
        background:
          radial-gradient(circle 108px at 11% 17%, rgba(43,186,235,.20) 0 64%, rgba(43,186,235,.10) 80%, transparent 100%),
          radial-gradient(circle 82px at 22% 91%, rgba(235,143,154,.19) 0 64%, rgba(235,143,154,.09) 82%, transparent 100%),
          radial-gradient(circle 72px at 91% 17%, rgba(255,163,74,.18) 0 64%, rgba(255,163,74,.09) 84%, transparent 100%),
          radial-gradient(circle 98px at 83% 86%, rgba(0,181,133,.15) 0 63%, rgba(0,181,133,.08) 81%, transparent 100%),
          linear-gradient(180deg,#fffef8 0%,#ffffff 52%,#f3f9ff 100%);
      }
      .hero--campaign .hero__content {
        min-height: 370px;
        padding-block: 42px 46px;
      }
      .hero--campaign .hero__copy {
        max-width: 92%;
      }
      .hero--campaign .hero__lead {
        margin-top: 18px;
      }
      .hero--campaign .hero__sub {
        max-width: 22em;
      }
    }
    @media(max-width:430px){
      .hero--campaign .hero__content {
        min-height: 390px;
        padding-block: 44px 48px;
      }
      .hero--campaign {
        background:
          radial-gradient(circle 96px at 10% 14%, rgba(43,186,235,.20) 0 64%, rgba(43,186,235,.10) 80%, transparent 100%),
          radial-gradient(circle 74px at 20% 92%, rgba(235,143,154,.18) 0 64%, rgba(235,143,154,.08) 82%, transparent 100%),
          radial-gradient(circle 62px at 92% 16%, rgba(255,163,74,.18) 0 64%, rgba(255,163,74,.08) 84%, transparent 100%),
          radial-gradient(circle 88px at 84% 84%, rgba(0,181,133,.15) 0 63%, rgba(0,181,133,.08) 81%, transparent 100%),
          linear-gradient(180deg,#fffef8 0%,#ffffff 52%,#f3f9ff 100%);
      }
      .hero--campaign h1 {font-size: clamp(36px, 10.5vw, 52px);}
      .hero--campaign .hero__lead {font-size:17px;}
      .hero--campaign .hero__sub {font-size:12.5px;line-height:1.8;}
    }
/* Unified, perceptible but restrained lift on weekly cards and product cards. */
    .timeline__item {
      transition:transform .6s cubic-bezier(.22,.61,.36,1),
                 border-color .6s ease;
    }
    .timeline__item:hover {transform:translateY(-5px)}
    /* Lighten the "蟇ｾ雎｡蝠・刀繧定ｦ九ｋ" button together with its parent card. */
    .timeline__bottom {
      transition:background-color .6s cubic-bezier(.22,.61,.36,1);
    }
    .timeline__item:hover .timeline__bottom,
    .timeline__item:focus-visible .timeline__bottom {
      background-color:color-mix(in srgb,var(--week-deep) 80%,white);
    }
    .product {
      transition:transform .6s cubic-bezier(.22,.61,.36,1);
    }
    .product:hover {transform:translateY(-4px)}

    /* Honor reduced motion with shorter, gentler effects instead of removing
       both requested interactions completely. Other decorations stay still. */
    
    /* Balanced date rows: no capsule or background. Thin colored rules give the
       dates a visual anchor without competing with the campaign titles. */
    .timeline__item {
      border:1px solid #dce1e6;
    }
    .timeline__item::before {display:none;}
    .timeline__date {
      display:flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      width:100%;
      margin:3px 0 5px;
      padding:6px 0;
      background:transparent;
      border:0;
      box-shadow:none;
      border-radius:0;
      color:#31516a;
      font-size:14px;
      font-weight:850;
      letter-spacing:.005em;
      line-height:1.4;
      white-space:nowrap;
    }
    .timeline__date::before,
    .timeline__date::after {
      content:"";
      display:block;
      flex:1 1 0;
      max-width:38px;
      height:1px;
      background:color-mix(in srgb,var(--campaign-color) 55%,#fff);
    }
    .timeline__date svg {
      width:15px;
      height:15px;
      color:var(--week-deep);
    }
    @media(max-width:720px) {
      .timeline__date {
        margin:5px 0 6px;
        padding:5px 0;
        font-size:13px;
        gap:8px;
      }
      .timeline__date::before,
      .timeline__date::after {max-width:32px}
    }

@media(prefers-reduced-motion:reduce) {
      html {scroll-behavior:auto}
      *,*::before,*::after {transition:none!important}
      .timeline__item {
        transition:transform .35s ease-out,border-color .35s ease!important;
      }
      .timeline__item:hover {transform:translateY(-2px)}
      .timeline__bottom {transition:background-color .35s ease!important}
      .product {transition:transform .35s ease-out!important}
      .product:hover {transform:translateY(-2px)}
    }

    /* Calendar: arrows extending across the full campaign date range. */
    .calendar-grid {
      grid-auto-rows:82px;
      position:relative;
    }
    .calendar-cell {
      min-height:0;
      padding:8px 10px;
      justify-content:flex-start;
      z-index:0;
    }
    .calendar-cell__day {position:relative;z-index:1}
    .calendar-range {
      display:flex;align-items:center;justify-content:center;
      align-self:end;justify-self:stretch;
      height:27px;
      margin:0 4px 11px;
      padding:0 15px;
      border:0;cursor:pointer;
      z-index:2;min-width:0;
      color:#fff;background:var(--campaign-color);
      clip-path:polygon(0 50%,11px 0,calc(100% - 11px) 0,100% 50%,calc(100% - 11px) 100%,11px 100%);
      font-size:13px;font-weight:900;letter-spacing:.01em;
      transition:filter .3s ease;
    }
    .calendar-range.theme-orange {color:#fff}
    .calendar-range:hover {filter:brightness(.91)}
    .calendar-range:focus-visible {outline:3px solid #175f9c;outline-offset:2px}
    .calendar-range__text {
      max-width:100%;overflow:hidden;text-overflow:ellipsis;
      white-space:nowrap;pointer-events:none;
    }
    /* Three active events: match the card grid to the date schedule. */
    .timeline {grid-template-columns:repeat(3,minmax(0,1fr))}
    .timeline__item {min-height:327px}
    .timeline__name {
      max-width:100%;font-size:clamp(18px,1.7vw,22px);
      line-height:1.42;overflow-wrap:anywhere;
    }
    .campaign-block__head {min-height:124px}
    .campaign-block__title {font-size:clamp(19px,2.25vw,29px);overflow-wrap:anywhere}
    @media(max-width:1020px){
      .timeline {grid-template-columns:repeat(2,minmax(0,1fr))}
      .timeline__item {min-height:307px}
    }
    @media(max-width:720px){
      .calendar-grid {grid-auto-rows:67px}
      .calendar-cell {min-height:0;padding:5px 5px}
      .calendar-range {
        height:22px;margin:0 1px 9px;padding:0 9px;
        font-size:9px;
        clip-path:polygon(0 50%,7px 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,7px 100%);
      }
      .timeline {grid-template-columns:1fr;gap:14px}
      .timeline__item {min-height:240px;padding:19px 18px 16px}
      .timeline__name {max-width:380px;min-height:0;font-size:21px;line-height:1.45;margin:12px 0 17px}
      .timeline__bottom {font-size:13px}
      .campaign-block__title {font-size:21px}
    }
    @media(max-width:390px){
      .calendar-grid {grid-auto-rows:64px}
      .calendar-range {font-size:8px;padding:0 7px}
      .timeline__item {min-height:235px}
    }
  
    /* Smartphone product photos: square area and full uncropped image. */
    @media (max-width:720px) {
      .product__image {
        aspect-ratio:1 / 1;
        height:auto;
        min-height:0;
      }
      .product__image img {
        position:absolute;
        inset:0;
        display:block;
        width:100%;
        height:100%;
        padding:6px;
        box-sizing:border-box;
        object-fit:contain;
        object-position:center;
      }
    }
  
    /* === Black Friday / Black Pipette Sale visual theme === */
    body, main {background:#fffdfd}
    .intro, .campaigns {background:#fffdfd}
    .section-kicker {color:#d0628a}
    .section-heading {color:#171717}
    .section-heading::after {background:linear-gradient(90deg,#111 0%, #e48aa6 48%, #c6a24d 100%)}
    .schedule-heading::before {background:linear-gradient(90deg,#111 0 33%,#e48aa6 33% 66%,#c6a24d 66% 100%)}
    .schedule-heading::after {color:#c6a24d}
    .schedule-heading__eyebrow {color:#d0628a}
    .schedule-heading__eyebrow > span:first-child,
    .schedule-heading__eyebrow > span:last-child {color:#c6a24d}
    .schedule-heading :is(h2,h3) {color:#171717}
    .schedule-heading__title-accent {color:#171717}
    .schedule-heading__title-accent::after {background:#f3d79a}
    .schedule-heading > p {color:#625b60}
    .hero--campaign {
      background:
        radial-gradient(circle 170px at 12% 22%, rgba(228,138,166,.22) 0 62%, rgba(228,138,166,.08) 78%, transparent 100%),
        radial-gradient(circle 120px at 18% 92%, rgba(198,162,77,.18) 0 62%, rgba(198,162,77,.06) 80%, transparent 100%),
        radial-gradient(circle 110px at 88% 18%, rgba(198,162,77,.18) 0 63%, rgba(198,162,77,.06) 82%, transparent 100%),
        radial-gradient(circle 145px at 82% 82%, rgba(255,255,255,.08) 0 55%, rgba(255,255,255,.03) 72%, transparent 100%),
        linear-gradient(135deg,#171717 0%,#0f0f10 58%,#22171d 100%);
      border-top:6px solid #c6a24d;
      border-bottom:1px solid #2d2528;
    }
    .hero--campaign .hero__heading-first {color:#f5d379}
    .hero--campaign h1 .strong {
      color:#fff;
      background:linear-gradient(transparent 81%, #d0628a 81%, #d0628a 95%, transparent 95%);
      text-shadow:0 2px 10px rgba(0,0,0,.18);
    }
    .hero--campaign .hero__lead {color:#fff3f7}
    .hero--campaign .hero__sub {color:#ead9e0}
    .hero__week-tag--pink {color:#b84d73;background:#fff4f8;border-color:#efbfd0}
    .hero__week-tag--orange {color:#7b5a12;background:#f9f2e2;border-color:#e7d2a3}
    .hero__week-tag--green {color:#fff;background:#2b2b2c;border-color:#474748}
    .hero__week-tag--blue {color:#111;background:#fff;border-color:#d9c7a1}
    .calendar-shell {border-color:#ebe2e5}
    .calendar-month {background:linear-gradient(160deg,#fff6f8 0%, #f8f0e1 100%)}
    .calendar-month__year {color:#8c5f12}
    .calendar-month__month {color:#171717}
    .calendar-content {background:#fff}
    .calendar-cell {border-color:#ece4e7}
    .calendar-cell--sun {background:#fff7f8}
    .calendar-cell--sat {background:#fcfaf5}
    .calendar-cell__day {color:#212121}
    .calendar-head {background:#fbf7f8}
    .calendar-head__day--sun {color:#d25f89}
    .calendar-head__day--sat {color:#8e6b1f}
    .timeline__item {border-color:#ddd !important}
    .timeline__item:hover {border-color:var(--campaign-color) !important}
    .theme-pink {--campaign-color:#e48aa6;--campaign-color2:#e48aa6;--campaign-tint:#fff3f7;--campaign-accent:#e48aa6;--campaign-ink:#2a1a20}
    .theme-orange {--campaign-color:#c6a24d;--campaign-color2:#c6a24d;--campaign-tint:#fbf5e8;--campaign-accent:#c6a24d;--campaign-ink:#2e2410}
    .theme-green {--campaign-color:#232323;--campaign-color2:#232323;--campaign-tint:#f6f6f6;--campaign-accent:#232323;--campaign-ink:#232323}
    .theme-blue {--campaign-color:#d0628a;--campaign-color2:#d0628a;--campaign-tint:#fff4f8;--campaign-accent:#d0628a;--campaign-ink:#2a1a20}
    .calendar-cell__pill {color:#fff}
    .theme-orange .calendar-cell__pill {color:#fff}
    .theme-pink .campaign-block__head,.theme-orange .campaign-block__head,.theme-green .campaign-block__head,.theme-blue .campaign-block__head {color:#fff}
    .campaign-block__head::before,.campaign-block__head::after {border-color:rgba(255,255,255,.26)}
    .campaign-block__number {background:#fff;color:var(--campaign-color)}
    .campaign-block__number small {color:var(--campaign-color)}
    .campaign-block__subline span {background:color-mix(in srgb,var(--campaign-color) 10%, #fff)}
    .product {border-color:#ebe3e6;background:#fff}
    .product__info {background:#fff}
    .product__name {color:#202020}
    .product__price {color:#171717}
    .product__price small {color:#6d666a}
    .product__action {border-radius:999px}
    .backtop {border-color:#e6d8bc;background:#171717;color:#fff}
    .backtop:hover {background:#d0628a;border-color:#d0628a;color:#fff}
    .footer {background:#171717;border-top-color:#30262a;color:#e7dbe0}
    .footer strong {color:#f2d17c}
    @media (max-width:720px){
      .hero--campaign {
        background:
          radial-gradient(circle 110px at 14% 18%, rgba(228,138,166,.22) 0 62%, rgba(228,138,166,.08) 78%, transparent 100%),
          radial-gradient(circle 76px at 20% 92%, rgba(198,162,77,.16) 0 62%, rgba(198,162,77,.06) 80%, transparent 100%),
          radial-gradient(circle 74px at 86% 14%, rgba(198,162,77,.16) 0 63%, rgba(198,162,77,.06) 82%, transparent 100%),
          radial-gradient(circle 96px at 82% 80%, rgba(255,255,255,.07) 0 55%, rgba(255,255,255,.03) 72%, transparent 100%),
          linear-gradient(135deg,#171717 0%,#0f0f10 58%,#22171d 100%);
      }
      .hero--campaign .hero__sub {color:#f0e2e8}
    }

  
    /* === Main visual refreshed to a Black Friday-inspired tone === */
    .hero--blackfriday {
      position:relative;
      overflow:hidden;
      background:
        radial-gradient(circle at 50% 18%, rgba(233,205,122,.18) 0, rgba(233,205,122,0) 24%),
        linear-gradient(90deg, transparent 0 12%, rgba(214,185,104,.18) 12% 22%, transparent 22% 31%, rgba(214,185,104,.15) 31% 45%, transparent 45% 55%, rgba(214,185,104,.14) 55% 69%, transparent 69% 78%, rgba(214,185,104,.18) 78% 88%, transparent 88% 100%),
        linear-gradient(180deg, #080808 0%, #020202 100%);
      border-top:6px solid #d8b65a;
      border-bottom:1px solid #2d2620;
      isolation:isolate;
    }
    .hero--blackfriday::before, .hero--blackfriday::after {
      content:"";
      position:absolute;
      inset:-5% auto auto 50%;
      width:1100px;
      height:560px;
      transform:translateX(-50%);
      pointer-events:none;
      z-index:0;
      opacity:.42;
    }
    .hero--blackfriday::before {
      background:
        linear-gradient(115deg, transparent 0 14%, rgba(241,215,134,.22) 14% 23%, transparent 23% 37%, rgba(241,215,134,.16) 37% 49%, transparent 49% 63%, rgba(241,215,134,.20) 63% 74%, transparent 74% 100%);
      filter:blur(1px);
    }
    .hero--blackfriday::after {
      background:radial-gradient(circle at 50% 0%, rgba(255,245,201,.30), rgba(255,245,201,0) 52%);
      opacity:.25;
    }
    .hero--blackfriday .hero__content {
      position:relative;
      z-index:1;
      min-height:430px;
      padding-block:54px 58px;
    }
    .hero--blackfriday .hero__copy {
      max-width:980px;
      text-align:center;
    }
    .hero__mini-label {
      display:inline-block;
      margin:0 auto 16px;
      padding:8px 18px;
      border:1px solid rgba(233,205,122,.55);
      border-radius:999px;
      color:#ecd58b;
      background:rgba(255,255,255,.05);
      letter-spacing:.18em;
      font-size:12px;
      font-weight:900;
      text-transform:uppercase;
      box-shadow:0 0 18px rgba(233,205,122,.08) inset;
    }
    .hero--blackfriday h1 {
      margin:0;
      line-height:1.02;
      letter-spacing:-.05em;
      font-size:clamp(56px,7.3vw,100px);
    }
    .hero--blackfriday .hero__heading-first {
      display:block;
      margin-bottom:8px;
      color:#e6c76a;
      font-size:.44em;
      line-height:1.15;
      letter-spacing:.02em;
      text-shadow:0 0 12px rgba(239,216,136,.25);
    }
    .hero--blackfriday h1 .strong {
      display:block;
      color:#fff8d5;
      background:none;
      text-shadow:
        0 0 8px rgba(255,243,191,.88),
        0 0 22px rgba(241,214,120,.72),
        0 0 42px rgba(241,214,120,.36),
        2px 3px 0 rgba(214,72,125,.95);
    }
    .hero--blackfriday .hero__lead {
      margin:24px auto 10px;
      max-width:820px;
      color:#fff;
      font-size:26px;
      font-weight:900;
      text-shadow:0 2px 10px rgba(0,0,0,.25);
    }
    .hero--blackfriday .hero__sub {
      max-width:860px;
      color:#f1e5dd;
      font-size:16px;
      line-height:1.9;
      text-shadow:0 1px 4px rgba(0,0,0,.24);
    }
    .hero__spark {
      position:absolute;
      z-index:1;
      color:#fff7d2;
      line-height:1;
      text-shadow:0 0 10px rgba(255,245,205,.75), 0 0 26px rgba(255,229,132,.45);
      pointer-events:none;
      opacity:.95;
    }
    .hero__spark--1 {left:7%; top:6%; font-size:56px;}
    .hero__spark--2 {left:16%; top:31%; font-size:92px;}
    .hero__spark--3 {right:11%; top:18%; font-size:62px;}
    .hero__spark--4 {right:17%; bottom:18%; font-size:82px;}
    .hero__spark--5 {left:22%; bottom:14%; font-size:50px;}
    .hero__spark--6 {right:27%; top:44%; font-size:44px;}
    @media (max-width:920px) {
      .hero--blackfriday .hero__content {min-height:390px; padding-block:48px 52px;}
      .hero--blackfriday h1 {font-size:clamp(48px,9vw,84px);}
      .hero--blackfriday .hero__lead {font-size:22px;}
      .hero__spark--2 {font-size:76px; left:12%;}
      .hero__spark--4 {font-size:66px; right:10%;}
    }
    @media (max-width:720px) {
      .hero--blackfriday .hero__content {min-height:430px; padding-block:42px 32px;}
      .hero__mini-label {font-size:11px; letter-spacing:.14em; margin-bottom:14px; padding:7px 14px;}
      .hero--blackfriday h1 {font-size:clamp(42px,12vw,64px); line-height:1.04;}
      .hero--blackfriday .hero__heading-first {font-size:.46em; margin-bottom:10px;}
      .hero--blackfriday .hero__lead {font-size:18px; line-height:1.55; margin-top:18px;}
      .hero--blackfriday .hero__sub {font-size:13px; line-height:1.8;}
      .hero__spark--1 {left:5%; top:7%; font-size:40px;}
      .hero__spark--2 {left:8%; top:27%; font-size:60px;}
      .hero__spark--3 {right:8%; top:20%; font-size:42px;}
      .hero__spark--4 {right:8%; bottom:13%; font-size:54px;}
      .hero__spark--5 {left:14%; bottom:10%; font-size:36px;}
      .hero__spark--6 {right:24%; top:46%; font-size:32px;}
    }

  
    /* Banner image: full width, original 2000:800 proportion, no cropping. */
    .hero--image {
      display:block;
      background:#050505;
      border-top:0;
      border-bottom:0;
      overflow:hidden;
      padding:0;
      line-height:0;
    }
    .hero--image::before,
    .hero--image::after {display:none !important;content:none !important}
    .hero--image .hero__banner {
      display:block;
      width:100%;
      max-width:2000px;
      height:auto;
      margin:0 auto;
      aspect-ratio:5 / 2;
      object-fit:contain;
      background:#050505;
    }
    .visually-hidden {
      position:absolute !important;
      width:1px !important;
      height:1px !important;
      padding:0 !important;
      margin:-1px !important;
      overflow:hidden !important;
      clip:rect(0,0,0,0) !important;
      white-space:nowrap !important;
      border:0 !important;
    }
    @media (max-width:720px) {
      .hero--image {background:#050505}
      .hero--image .hero__banner {width:100%;height:auto;max-width:none;aspect-ratio:auto;object-fit:contain}
    }

  


    :root {
      --shock-pink:#ff1493;
      --shock-pink-dark:#cc0075;
      --shock-pink-soft:rgba(255,20,147,.12);
      --shock-pink-soft-2:rgba(255,20,147,.2);
      --page-black:#000000;
      --surface:#101010;
      --surface-2:#171717;
      --surface-3:#1f1f1f;
      --border-dark:#2e2e2e;
      --text-white:#f8f8f8;
      --text-soft:#d0d0d0;
      --gold-accent:#d9b35a;
    }

    html, body {background:var(--page-black) !important; color:var(--text-white) !important;}
    body, main, .intro, .campaigns {background:var(--page-black) !important;}

    .section-kicker,
    .schedule-heading__eyebrow,
    .calendar-head__day--sun,
    .calendar-cell--sun .calendar-cell__day,
    .hero__week-tag--pink,
    .backtop:hover,
    .theme-pink .campaign-block__number,
    .theme-pink .campaign-block__number small {
      color:var(--shock-pink) !important;
    }

    .section-heading,
    .schedule-heading :is(h2,h3),
    .schedule-heading__title-accent,
    .product__name,
    .product__price,
    .calendar-month__month,
    .calendar-cell__day,
    .campaign-block__title,
    .campaign-block__period,
    .campaign-block__caption,
    .footer strong {
      color:var(--text-white) !important;
    }

    .section-desc,
    .schedule-heading > p,
    .notice,
    .footer,
    .calendar-note,
    .campaign-block__subline p,
    .product__price small,
    .calendar-cell__hint,
    .hero--campaign .hero__sub,
    .hero--campaign .hero__lead,
    .hero--blackfriday .hero__sub,
    .hero--blackfriday .hero__lead {
      color:var(--text-soft) !important;
    }

    .section-heading::after {
      background:linear-gradient(90deg,var(--shock-pink) 0%, var(--gold-accent) 100%) !important;
    }
    .schedule-heading::before {
      background:linear-gradient(90deg,var(--shock-pink) 0 50%, var(--gold-accent) 50% 100%) !important;
    }
    .schedule-heading::after,
    .schedule-heading__eyebrow > span:first-child,
    .schedule-heading__eyebrow > span:last-child {
      color:var(--gold-accent) !important;
    }
    .schedule-heading__title-accent::after {background:rgba(255,20,147,.28) !important;}

    .hero--campaign {
      background:
        radial-gradient(circle 170px at 12% 22%, rgba(255,20,147,.26) 0 62%, rgba(255,20,147,.08) 78%, transparent 100%),
        radial-gradient(circle 120px at 18% 92%, rgba(217,179,90,.18) 0 62%, rgba(217,179,90,.06) 80%, transparent 100%),
        radial-gradient(circle 110px at 88% 18%, rgba(217,179,90,.18) 0 63%, rgba(217,179,90,.06) 82%, transparent 100%),
        radial-gradient(circle 145px at 82% 82%, rgba(255,255,255,.07) 0 55%, rgba(255,255,255,.03) 72%, transparent 100%),
        linear-gradient(135deg,#090909 0%,#000000 58%,#1a0a12 100%) !important;
      border-top:6px solid var(--shock-pink) !important;
      border-bottom:1px solid #24131d !important;
    }
    .hero--campaign .hero__heading-first {color:var(--gold-accent) !important;}
    .hero--campaign h1 .strong {
      color:#ffffff !important;
      background:linear-gradient(transparent 81%, var(--shock-pink) 81%, var(--shock-pink) 95%, transparent 95%) !important;
    }
    .hero__week-tag--pink {
      background:rgba(255,20,147,.12) !important;
      border-color:rgba(255,20,147,.4) !important;
    }

    .hero--blackfriday {
      background:
        radial-gradient(circle at 50% 18%, rgba(217,179,90,.16) 0, rgba(217,179,90,0) 24%),
        linear-gradient(90deg, transparent 0 12%, rgba(255,20,147,.2) 12% 22%, transparent 22% 31%, rgba(217,179,90,.15) 31% 45%, transparent 45% 55%, rgba(255,20,147,.16) 55% 69%, transparent 69% 78%, rgba(217,179,90,.18) 78% 88%, transparent 88% 100%),
        linear-gradient(180deg, #080808 0%, #020202 100%) !important;
      border-top:6px solid var(--shock-pink) !important;
      border-bottom:1px solid #24131d !important;
    }

    .calendar-shell,
    .campaign-block,
    .product,
    .timeline__item,
    .calendar-content,
    .footer {
      background:var(--surface) !important;
      border-color:var(--border-dark) !important;
      box-shadow:none !important;
    }
    .calendar-month {
      background:linear-gradient(160deg,#1c0a14 0%, #141414 55%, #21180b 100%) !important;
      border-right:1px solid var(--border-dark) !important;
    }
    .calendar-month__en,
    .calendar-month__year,
    .calendar-month__note {color:var(--gold-accent) !important;}
    .calendar-weekdays {background:var(--surface-2) !important;}
    .calendar-weekdays div {color:var(--text-soft) !important;}
    .calendar-weekdays div:first-child {
      background:rgba(255,20,147,.12) !important;
      color:var(--shock-pink) !important;
    }
    .calendar-weekdays div:last-child {
      background:rgba(217,179,90,.12) !important;
      color:var(--gold-accent) !important;
    }
    .calendar-grid {border-top-color:var(--border-dark) !important;border-left-color:var(--border-dark) !important;}
    .calendar-cell {
      background:var(--surface-2) !important;
      border-right-color:var(--border-dark) !important;
      border-bottom-color:var(--border-dark) !important;
      color:var(--text-white) !important;
    }
    .calendar-cell--blank {background:#0c0c0c !important;}
    .calendar-cell--sun {background:rgba(255,20,147,.07) !important;}
    .calendar-cell--sat {background:rgba(217,179,90,.07) !important;}
    button.calendar-cell:hover {background:var(--surface-3) !important;}

    .timeline__item {
      background:linear-gradient(180deg, rgba(255,20,147,.08) 0%, #101010 80%) !important;
      color:var(--text-white) !important;
    }
    .timeline__date,
    .timeline__name,
    .timeline__name svg {color:var(--text-white) !important;}

    .product__image {
      background:linear-gradient(145deg,#210012 0%, #181818 65%, #111111 100%) !important;
      border-bottom-color:var(--border-dark) !important;
    }
    .product__placeholder-text {background:rgba(255,255,255,.08) !important;color:var(--text-soft) !important;}
    .product__info {background:var(--surface) !important;}
    .product__action,
    .calendar-cell__bar,
    .calendar-cell__pill {
      background:var(--campaign-color) !important;
      color:#fff !important;
    }

    .campaign-block__body {background:var(--surface) !important;}
    .campaign-block__subline span {
      background:color-mix(in srgb,var(--campaign-color) 18%, #111) !important;
      color:#fff !important;
    }

    .theme-pink {
      --campaign-color:var(--shock-pink) !important;
      --campaign-color2:var(--shock-pink) !important;
      --campaign-tint:rgba(255,20,147,.12) !important;
      --campaign-accent:var(--shock-pink) !important;
      --campaign-ink:#ffffff !important;
    }

    .theme-orange,
    .theme-green {
      --campaign-color:var(--shock-pink) !important;
      --campaign-color2:var(--shock-pink) !important;
      --campaign-tint:rgba(255,20,147,.12) !important;
      --campaign-accent:var(--shock-pink) !important;
      --campaign-ink:#ffffff !important;
    }

    .timeline__item.theme-pink,
    .timeline__item.theme-orange,
    .timeline__item.theme-green {
      --week-deep:var(--shock-pink) !important;
    }

    /* page-wide pink replacements */
    .hero__week-tag--pink {
      color:#ffffff !important;
    }
    .backtop {
      border-color:rgba(255,20,147,.45) !important;
      background:#111 !important;
      color:#fff !important;
    }
    .backtop:hover {
      background:var(--shock-pink) !important;
      border-color:var(--shock-pink) !important;
    }
    .footer {
      border-top-color:var(--border-dark) !important;
      color:var(--text-soft) !important;
    }
    .footer_b {
      background:#060606 !important;
    }

    /* 2026-11: additional vertical breathing room (design/palette unchanged). */
    .intro { padding-top:72px; padding-bottom:32px; }
    .schedule-heading { margin-top:60px; margin-bottom:38px; padding-bottom:30px; }
    .intro > .schedule-heading:first-child { margin-top:12px; }
    .schedule-heading__eyebrow { margin-bottom:12px; }
    .schedule-heading > p { margin-top:15px; line-height:1.85; }
    .unified-section-heading { margin-bottom:39px; }
    .timeline { gap:20px; }
    .timeline__item { min-height:365px; padding:29px 22px 25px; }
    .timeline__top { margin-bottom:17px; }
    .timeline__date { margin-top:10px; margin-bottom:11px; padding-block:9px; }
    .timeline__name { margin-top:14px; margin-bottom:22px; line-height:1.48; }
    .timeline__bottom { min-height:48px; padding-block:13px; }
    .campaigns { padding-top:85px; padding-bottom:48px; }
    .campaigns__intro .unified-section-heading { margin-bottom:40px; }
    .campaign-block { margin-bottom:47px; }
    .campaign-block__head { min-height:144px; padding:28px 30px; }
    .campaign-block__body { padding:29px 27px 32px; }
    .product-grid { gap:17px; }
    .product__info { padding:15px 12px 18px; }
    .product__name { line-height:1.65; min-height:47px; }
    .product__price { margin-top:10px; margin-bottom:14px; }
    .product__action { min-height:40px; padding-block:11px; }
    @media (max-width:1020px) and (min-width:721px) {
      .timeline__item { min-height:355px; padding:25px 20px 23px; }
      .timeline { gap:17px; }
    }
    @media (max-width:720px) {
      .intro { padding-top:48px; padding-bottom:24px; }
      .schedule-heading { margin-top:45px; margin-bottom:29px; padding-bottom:26px; }
      .intro > .schedule-heading:first-child { margin-top:8px; }
      .schedule-heading__eyebrow { margin-bottom:10px; }
      .schedule-heading > p { margin-top:11px; line-height:1.75; }
      .unified-section-heading { margin-bottom:30px; }
      .timeline { gap:18px; }
      .timeline__item { min-height:282px; padding:24px 20px 22px; }
      .timeline__top { margin-bottom:12px; }
      .timeline__date { margin-top:8px; margin-bottom:10px; padding-block:7px; }
      .timeline__name { margin-top:13px; margin-bottom:19px; line-height:1.52; }
      .timeline__bottom { min-height:45px; padding-block:12px; }
      .campaigns { padding-top:59px; padding-bottom:33px; }
      .campaigns__intro .unified-section-heading { margin-bottom:30px; }
      .campaign-block { margin-bottom:36px; }
      .campaign-block__head { min-height:123px; padding:23px 18px; }
      .campaign-block__body { padding:20px 16px 24px; }
      .product-grid { gap:12px; }
      .product__info { padding:13px 10px 16px; }
      .product__name { line-height:1.6; min-height:44px; }
      .product__price { margin-top:9px; margin-bottom:13px; }
      .product__action { min-height:39px; padding-block:11px; }
    }
    /* Increase only the gaps between campaign blocks (1->2, 2->3). */
    #campaign-sections > .campaign-block:not(:last-child) {
      margin-bottom:96px;
    }
    @media (max-width:720px) {
      #campaign-sections > .campaign-block:not(:last-child) {
        margin-bottom:74px;
      }
    }
  



/* Excel 2026 Nov-Dec integration: 6 campaign events with overlapping date ribbons. */
.campaign-calendar-pair {display:grid;grid-template-columns:1fr;gap:26px}
.campaign-calendar-pair .calendar-shell {margin-top:0}
.campaign-calendar-pair .calendar-content {padding-block:21px}
.campaign-calendar-pair .calendar-grid {position:relative;grid-auto-rows:auto}
.campaign-calendar-pair .calendar-cell {
  min-height:0;justify-content:flex-start;align-items:flex-start;
  position:relative;padding:8px 10px;z-index:0;
}
.campaign-calendar-pair .calendar-cell.is-clickable {cursor:pointer}
.campaign-calendar-pair .calendar-range {
  min-width:0;z-index:3;display:flex;align-items:center;justify-content:center;
  align-self:start;justify-self:stretch;margin-inline:3px;margin-bottom:0;
  padding:0 7px;height:24px;border:0;color:#fff !important;
  background:var(--shock-pink,#ff1493) !important;
  font-size:12px;font-weight:900;letter-spacing:.01em;
  clip-path:polygon(0 50%,9px 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,9px 100%);
  transition:filter .3s ease,transform .3s ease;
}
.campaign-calendar-pair .calendar-range:hover {filter:brightness(1.12);transform:translateY(-1px)}
.campaign-calendar-pair .calendar-range--single {clip-path:none;border-radius:5px;padding:0;font-size:10px}
.campaign-calendar-pair .calendar-cell.is-active {background:rgba(255,20,147,.09) !important}
.calendar-legend {font-size:12px;color:#a9a2ab;text-align:center;margin:0;padding:2px 0 0}
body.theme-light .calendar-legend {color:#645e65}
body.theme-dark .campaign-calendar-pair .calendar-cell.is-active {background:#2e1122 !important}
body.theme-dark .campaign-calendar-pair .calendar-cell.is-clickable:hover {background:#41182e !important}
body.theme-light .campaign-calendar-pair .calendar-cell.is-active {background:#fff0f7 !important}
body.theme-light .campaign-calendar-pair .calendar-cell.is-clickable:hover {background:#ffe2ef !important}
/* 3 columns on desktop, with two full rows of 3 events; smaller devices stack neatly. */
#timeline.timeline {grid-template-columns:repeat(3,minmax(0,1fr));gap:21px}
#timeline .timeline__item {min-height:346px;padding:25px 18px 20px}
#timeline .timeline__name {overflow-wrap:anywhere;max-width:100%;font-size:clamp(17px,1.5vw,21px)}
#timeline .timeline__date {font-size:13px;letter-spacing:0;white-space:normal;text-align:center}
#timeline .timeline__number .timeline__week-en {letter-spacing:.16em}
#campaign-sections > .campaign-block:not(:last-child) {margin-bottom:96px}
.campaign-block__title {overflow-wrap:anywhere}
.campaign-block__number small {font-size:9px;letter-spacing:.03em}
.product__name {overflow-wrap:anywhere}
.campaign-detail {min-height:155px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:13px;padding:24px 12px}
.campaign-detail__flag {display:inline-block;font-weight:900;letter-spacing:.14em;color:#ff1493;border:1px solid currentColor;border-radius:999px;padding:4px 14px;font-size:11px}
.campaign-detail__title {font-size:clamp(17px,2.7vw,24px);font-weight:900;margin:0;line-height:1.6}
.campaign-detail__text {max-width:610px;font-size:13px;line-height:1.85;margin:0;color:#ada7ab}
body.theme-light .campaign-detail__text {color:#666066}
@media(max-width:1020px) {
 #timeline.timeline {grid-template-columns:repeat(2,minmax(0,1fr))}
 #timeline .timeline__item {min-height:320px}
}
@media(max-width:720px) {
 .campaign-calendar-pair {gap:22px}
 .campaign-calendar-pair .calendar-content {padding:10px 10px 14px}
 .campaign-calendar-pair .calendar-cell {padding:6px 5px}
 .campaign-calendar-pair .calendar-cell__day {font-size:12px}
 .campaign-calendar-pair .calendar-range {height:22px;font-size:10px;margin-inline:1px;clip-path:polygon(0 50%,6px 0,calc(100% - 6px) 0,100% 50%,calc(100% - 6px) 100%,6px 100%)}
 .campaign-calendar-pair .calendar-range--single {clip-path:none;font-size:9px}
 .calendar-legend {font-size:11px;line-height:1.6;padding-inline:6px}
 #timeline.timeline {grid-template-columns:1fr;gap:16px}
 #timeline .timeline__item {min-height:248px;padding:21px 18px 19px}
 #timeline .timeline__name {font-size:21px;line-height:1.42;margin:12px 0 16px}
 #timeline .timeline__date {font-size:13px}
 #campaign-sections > .campaign-block:not(:last-child) {margin-bottom:74px}
 .campaign-detail {padding:23px 6px;min-height:150px}
}
@media(max-width:390px) {
 .campaign-calendar-pair .calendar-range {font-size:9px}
 .calendar-legend {font-size:10px}
 #timeline .timeline__date {font-size:12px}
}

/* Product grids: 3 columns as before; center groups containing 1 or 2 cards. */
/* Six tracks let each card occupy precisely one third of the available width. */
#campaign-sections .product-grid {
  grid-template-columns:repeat(6,minmax(0,1fr));
}
#campaign-sections .product-grid > .product {
  grid-column:span 2;
}
#campaign-sections .product-grid--count-2 > .product:first-child {
  grid-column:2 / span 2;
}
#campaign-sections .product-grid--count-1 > .product:only-child {
  grid-column:3 / span 2;
}
@media (max-width:720px) {
  /* Keep the original two-card mobile layout; center a single card. */
  #campaign-sections .product-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  #campaign-sections .product-grid--count-2 > .product:first-child {
    grid-column:1 / span 2;
  }
  #campaign-sections .product-grid--count-1 > .product:only-child {
    grid-column:2 / span 2;
  }
}

  
/* Continuation-aware calendar ribbons:
   only real campaign boundaries have arrow-shaped ends; week/month cuts are flat. */
.campaign-calendar-pair .calendar-range--continue-next:not(.calendar-range--continue-prev) {
  /* Starts here, continues into following week: point left, flat right. */
  clip-path:polygon(0 50%,9px 0,100% 0,100% 100%,9px 100%);
  border-radius:0;
}
.campaign-calendar-pair .calendar-range--continue-prev:not(.calendar-range--continue-next) {
  /* Continued from previous week, ends here: flat left, point right. */
  clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%);
  border-radius:0;
}
.campaign-calendar-pair .calendar-range--continue-prev.calendar-range--continue-next {
  /* Entire week is in the middle of a longer campaign: flat on both ends. */
  clip-path:none;
  border-radius:0;
}
@media(max-width:720px) {
  .campaign-calendar-pair .calendar-range--continue-next:not(.calendar-range--continue-prev) {
    clip-path:polygon(0 50%,6px 0,100% 0,100% 100%,6px 100%);
  }
  .campaign-calendar-pair .calendar-range--continue-prev:not(.calendar-range--continue-next) {
    clip-path:polygon(0 0,calc(100% - 6px) 0,100% 50%,calc(100% - 6px) 100%,0 100%);
  }
}

/* Long ribbons include a concise campaign name; short ribbons (1-2 days)
   retain the original episode-only label, including Nov 29-30. */
.campaign-calendar-pair .calendar-range--named {
  font-size:12px;
  padding-inline:12px;
  letter-spacing:0;
}
@media (max-width:720px) {
  .campaign-calendar-pair .calendar-range--named {font-size:10px;padding-inline:8px}
}
@media (max-width:390px) {
  .campaign-calendar-pair .calendar-range--named {font-size:10px;padding-inline:6px}
}
/* Calendar-only color distinction: third campaign's ribbon is a softer pink. */
.campaign-calendar-pair .calendar-range.calendar-range--third {
  background:#ec72ac !important;
  color:#fff !important;
  text-shadow:0 1px 2px rgba(70,0,32,.72);
}



    /* Product card spacing: desktop 17px x 2.5, mobile 12px x 2.5. */
    #campaign-sections .product-grid { gap:42.5px; }
    @media (max-width:720px) {
      #campaign-sections .product-grid { gap:30px; }
    }
  


    .product__action {
      font-size: 13px;
      padding-top: 11px;
      padding-bottom: 11px;
      line-height: 1.35;
    }
    /* Desktop: above the button 14px -> 28px; below 18px -> 36px. */
    #campaign-sections .product__price { margin-bottom: 28px; }
    #campaign-sections .product__info { padding-bottom: 36px; }
    @media (max-width:720px) {
      .product__action {
        font-size: 12px;
        padding-top: 11px;
        padding-bottom: 11px;
      }
      /* Mobile: above 13px -> 26px; below 16px -> 32px. */
      #campaign-sections .product__price { margin-bottom: 26px; }
      #campaign-sections .product__info { padding-bottom: 32px; }
    }
    #footer{background-color: #ffffff;}
/* 2026-11-06: Slightly enlarge the three section kicker labels. */
.schedule-heading .schedule-heading__eyebrow {
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: .10em;
}
@media (max-width: 720px) {
  .schedule-heading .schedule-heading__eyebrow {
    font-size: 12px;
    letter-spacing: .045em;
    gap: 6px;
    flex-wrap: wrap;
  }
}

/* Point campaign: readable notes and official point-service link. */
.campaign-detail__link {
  color: #ff1493;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}
.campaign-detail__link:hover,
.campaign-detail__link:focus-visible { color: #d90078; }
.campaign-detail__text--link { max-width: 720px; }


/* 2026-11-06: Readability adjustments for all six campaign overview cards.
   The full original offer text remains unchanged; only visual line breaks
   and the product/benefit emphasis have changed. */
#timeline .timeline__name {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:7px;
  text-align:center;
  overflow-wrap:anywhere;
  word-break:normal;
  min-height:100px;
  line-height:1.45;
  margin-top:10px;
  margin-bottom:15px;
}
#timeline .timeline__name-lead {
  display:block;
  font-size:.84em;
  line-height:1.5;
  font-weight:750;
}
#timeline .timeline__name-benefit {
  display:block;
  font-size:.92em;
  line-height:1.46;
  font-weight:850;
}
#timeline .timeline__name-keyword {
  font-weight:950;
  overflow-wrap:anywhere;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
@media(max-width:720px){
  #timeline .timeline__name {min-height:80px;gap:6px;margin-block:10px 16px;}
}
#timeline .timeline__name-lead {color:#e1d5dc;}
#timeline .timeline__name-benefit {color:#fff;}
#timeline .timeline__name-keyword {
  color:#ff86bf;
  background:linear-gradient(transparent 75%,rgba(255,20,147,.24) 75%);
}

/* Keep highlighted product names together wherever the card width allows. */
#timeline .timeline__name {max-width:100%;}
#timeline .timeline__name-benefit {font-size:.84em;}
#timeline .timeline__name-keyword {display:inline-block;max-width:100%;vertical-align:baseline;}


/* Bonus product photo in campaign header (events 2 through 6 only). */
.campaign-block__head:has(.campaign-block__gift) {
  min-height:168px;
  gap:20px;
  isolation:isolate;
}
.campaign-block__gift {
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:2;
  flex:0 0 138px;
  width:138px;
  height:138px;
  background:#fff;
  border:3px solid rgba(255,255,255,.95);
  border-radius:50%;
  box-shadow:0 8px 24px rgba(48,10,38,.23);
  overflow:hidden;
}
.campaign-block__gift-image {
  box-sizing:border-box;
  display:block;
  width:100%;
  height:100%;
  padding:12px;
  object-fit:contain;
  background:#fff;
}
.campaign-block__head:has(.campaign-block__gift) .campaign-block__title-wrap {
  flex:1 1 auto;
  min-width:0;
}
/* Keep text legible while retaining the three-column product layout. */
@media(max-width:900px) and (min-width:721px){
  .campaign-block__head:has(.campaign-block__gift){gap:14px;min-height:148px;}
  .campaign-block__gift{width:118px;height:118px;flex-basis:118px;}
  .campaign-block__head:has(.campaign-block__gift) .campaign-block__title{font-size:clamp(19px,2.5vw,26px);}
}
@media(max-width:720px){
  .campaign-block__head:has(.campaign-block__gift){
    position:relative;
    display:flex;
    align-items:flex-start;
    min-height:0;
    padding-bottom:100px;
    gap:11px;
  }
  .campaign-block__head:has(.campaign-block__gift) .campaign-block__title-wrap{
    flex:1;
    width:auto;
  }
  .campaign-block__gift{
    position:absolute;
    right:17px;
    bottom:11px;
    width:84px;
    height:84px;
    border-width:2px;
  }
  .campaign-block__gift-image{padding:7px;}
  .campaign-block__head:has(.campaign-block__gift) .campaign-block__title{
    font-size:19px;
    letter-spacing:0;
    line-height:1.43;
    overflow-wrap:normal;
  }
}

/* Event 2/3 disclaimer below the detailed campaign title. */
.campaign-block__title-note {
  margin: 9px 0 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .015em;
  color: #fff;
}
@media (max-width: 720px) {
  .campaign-block__title-note {
    margin-top: 7px;
    font-size: 11px;
    line-height: 1.55;
  }
}

/* Avoid breaking the word for buying across small screens. */
.campaign-block__buy-phrase {display:inline-block;white-space:nowrap;}


/* 2026-11-06 calendar revision: flat starts, accessible event badges,
   and a pink-to-violet gradient (instead of alternating two solid pinks). */
.campaign-calendar-pair .calendar-range {
  position:relative;
  overflow:visible;
  height:25px;
  margin-inline:3px;
  padding:0 8px;
  color:#fff !important;
  background:linear-gradient(95deg,#e40c88 0%,#c5219e 48%,#963bbf 100%) !important;
  /* The starting side is always flat; the final side is an arrowhead. */
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%) !important;
  text-shadow:0 1px 1px rgba(40,5,40,.32);
}
/* When a campaign continues into another calendar row, its right edge is flat. */
.campaign-calendar-pair .calendar-range--continue-next {
  clip-path:none !important;
}
/* Individual event hues gradually transition from pink into violet. */
.campaign-calendar-pair .calendar-range--event-1 {
  background:linear-gradient(95deg,#ed0b86,#cc1e9f) !important;
}
.campaign-calendar-pair .calendar-range--event-2 {
  background:linear-gradient(95deg,#df0f8e,#ba25ab) !important;
}
.campaign-calendar-pair .calendar-range--event-3 {
  background:linear-gradient(95deg,#d01996,#a22cb7) !important;
}
.campaign-calendar-pair .calendar-range--event-4 {
  background:linear-gradient(95deg,#c0239e,#9334be) !important;
}
.campaign-calendar-pair .calendar-range--event-5 {
  background:linear-gradient(95deg,#af2aa8,#8239bf) !important;
}
.campaign-calendar-pair .calendar-range--event-6 {
  background:linear-gradient(95deg,#a137b3,#7042b9) !important;
}
/* Badge is in the ribbon lane, not on top of day numbers. */
.campaign-calendar-pair .calendar-range--named {padding:0 12px 0 47px;}
.campaign-calendar-pair .calendar-range__badge {
  position:absolute;
  left:5px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  width:35px;
  height:35px;
  flex:none;
  border-radius:50%;
  color:#dc1485;
  background:#fff;
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 2px 5px rgba(40,0,30,.18);
  text-shadow:none;
  pointer-events:none;
}
.campaign-calendar-pair .calendar-range__badge-en {
  font:800 6px/1 Arial,sans-serif;
  letter-spacing:.06em;
}
.campaign-calendar-pair .calendar-range__badge-no {
  font-size:10px;
  line-height:1.07;
  font-weight:900;
  white-space:nowrap;
}
.campaign-calendar-pair .calendar-range__text {
  display:block;
  flex:1 1 auto;
  width:100%;
  text-align:center;
  font-size:11px;
  font-weight:850;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
/* 1- and 2-day fragments retain only the short event number. */
.campaign-calendar-pair .calendar-range:not(.calendar-range--named) {padding:0 3px;}
.campaign-calendar-pair .calendar-range:not(.calendar-range--named) .calendar-range__text {font-size:10px;}
@media(max-width:720px) {
  .campaign-calendar-pair .calendar-range {height:22px;margin-inline:1px;padding-inline:4px;}
  .campaign-calendar-pair .calendar-range--named {padding-left:36px;padding-right:4px;}
  .campaign-calendar-pair .calendar-range__badge {width:29px;height:29px;left:3px;}
  .campaign-calendar-pair .calendar-range__badge-en {font-size:5px;}
  .campaign-calendar-pair .calendar-range__badge-no {font-size:8px;}
  .campaign-calendar-pair .calendar-range__text {font-size:9px;}
  .campaign-calendar-pair .calendar-range:not(.calendar-range--named) .calendar-range__text {font-size:8px;}
}
@media(max-width:360px) {
  .campaign-calendar-pair .calendar-range--named {padding-left:32px;padding-right:3px;}
  .campaign-calendar-pair .calendar-range__badge {width:27px;height:27px;left:2px;}
  .campaign-calendar-pair .calendar-range__text {font-size:8px;}
}


/* Preserve the protruding round badge while only clipping the ribbon's colored layer. */
.campaign-calendar-pair .calendar-range,
.campaign-calendar-pair .calendar-range.calendar-range--single {
  clip-path:none !important;
  background:transparent !important;
  isolation:isolate;
  overflow:visible;
}
.campaign-calendar-pair .calendar-range::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--bps-ribbon-gradient,linear-gradient(95deg,#e40c88,#963bbf));
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);
}
.campaign-calendar-pair .calendar-range--continue-next::before {clip-path:none;}
.campaign-calendar-pair .calendar-range--event-1 {--bps-ribbon-gradient:linear-gradient(95deg,#ed0b86,#cc1e9f);}
.campaign-calendar-pair .calendar-range--event-2 {--bps-ribbon-gradient:linear-gradient(95deg,#df0f8e,#ba25ab);}
.campaign-calendar-pair .calendar-range--event-3 {--bps-ribbon-gradient:linear-gradient(95deg,#d01996,#a22cb7);}
.campaign-calendar-pair .calendar-range--event-4 {--bps-ribbon-gradient:linear-gradient(95deg,#c0239e,#9334be);}
.campaign-calendar-pair .calendar-range--event-5 {--bps-ribbon-gradient:linear-gradient(95deg,#af2aa8,#8239bf);}
.campaign-calendar-pair .calendar-range--event-6 {--bps-ribbon-gradient:linear-gradient(95deg,#a137b3,#7042b9);}
@media(max-width:720px) {
  .campaign-calendar-pair .calendar-range::before {
    clip-path:polygon(0 0,calc(100% - 6px) 0,100% 50%,calc(100% - 6px) 100%,0 100%);
  }
  .campaign-calendar-pair .calendar-range--continue-next::before {clip-path:none;}
}


/* Period above campaign title: larger white text, without frame or background. */
.campaign-block__period {
  display:block;
  width:auto;
  max-width:100%;
  padding:0;
  margin:0 0 8px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:#fff;
  font-size:clamp(16px,1.45vw,22px);
  font-weight:900;
  line-height:1.3;
  letter-spacing:.01em;
  white-space:normal;
}
@media (max-width: 720px) {
  .campaign-block__period {
    padding:0;
    margin-bottom:7px;
    font-size:13px;
    letter-spacing:0;
  }
}
