/*
Theme Name:  Sampling Club
Theme URI:   https://samplingclub.net/
Description: Street culture EC theme with full parallax animations. WooCommerce ready. All hero text, concept copy, and section headings are editable via the WordPress Customizer.
Author:      Sampling Club
Version:     1.0.0
Requires at least: 6.0
Tested up to: 6.5
WC requires at least: 7.0
WC tested up to: 8.9
License:     GNU General Public License v2 or later
Text Domain: sampling-club
Tags: woocommerce, e-commerce, custom-colors, custom-logo, parallax, street
*/

/* =====================================================
   CSS CUSTOM PROPERTIES
   ===================================================== */
:root {
  --sc-bg:       #f5f2ed;
  --sc-bg2:      #ece9e3;
  --sc-black:    #0e0e0e;
  --sc-accent:   #e8002d;
  --sc-mid:      #d0cdc8;
  --sc-dim:      #9a9590;
  --sc-border:   #dedad4;
  --sc-white:    #ffffff;
  --sc-font-display: 'Bebas Neue', sans-serif;
  --sc-font-display-jp: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  --sc-font-body:    'Barlow Condensed', 'Noto Sans JP', sans-serif;
  --sc-transition:   cubic-bezier(.22,1,.36,1);
}

/* =====================================================
   RESET & BASE
   ===================================================== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  background: var(--sc-bg);
  color: var(--sc-black);
  font-family: var(--sc-font-body);
  overflow-x: hidden;
  cursor: none;
  line-height: 1.6;
}
img { max-width:100%; height:auto; display:block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

/* =====================================================
   CUSTOM CURSOR
   ===================================================== */
.sc-cursor {
  position:fixed; width:10px; height:10px;
  background:var(--sc-accent); border-radius:50%;
  pointer-events:none; z-index:99999;
  transform:translate(-50%,-50%);
  transition: width .3s, height .3s, opacity .3s;
  mix-blend-mode:multiply;
}
.sc-cursor-ring {
  position:fixed; width:36px; height:36px;
  border:1px solid var(--sc-black); border-radius:50%;
  pointer-events:none; z-index:99998;
  transform:translate(-50%,-50%);
  transition: width .3s, height .3s;
  opacity:.3;
}
.sc-cursor.is-hover { width:20px; height:20px; }
.sc-cursor-ring.is-hover { width:60px; height:60px; }

/* =====================================================
   LOADER
   ===================================================== */
#sc-loader {
  position:fixed; inset:0;
  background:var(--sc-bg); z-index:99997;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:32px;
}
.sc-loader-logo {
  font-family:var(--sc-font-display);
  font-size:clamp(32px,7vw,88px);
  letter-spacing:.18em; color:var(--sc-black);
  overflow:hidden;
}
.sc-loader-logo span {
  display:inline-block;
  transform:translateY(120%);
  animation: scLUp .55s var(--sc-transition) forwards;
}
.sc-loader-logo span:nth-child(1)  { animation-delay:.04s }
.sc-loader-logo span:nth-child(2)  { animation-delay:.08s }
.sc-loader-logo span:nth-child(3)  { animation-delay:.12s }
.sc-loader-logo span:nth-child(4)  { animation-delay:.16s }
.sc-loader-logo span:nth-child(5)  { animation-delay:.20s }
.sc-loader-logo span:nth-child(6)  { animation-delay:.24s }
.sc-loader-logo span:nth-child(7)  { animation-delay:.28s }
.sc-loader-logo span:nth-child(8)  { animation-delay:.32s }
.sc-loader-logo span:nth-child(9)  { animation-delay:.36s }
.sc-loader-logo span:nth-child(10) { animation-delay:.40s }
.sc-loader-logo span:nth-child(11) { animation-delay:.44s }
.sc-loader-logo span:nth-child(12) { animation-delay:.48s }
@keyframes scLUp { to { transform:translateY(0) } }

.sc-loader-bar-wrap {
  width:200px; height:1px;
  background:var(--sc-mid); overflow:hidden;
}
.sc-loader-bar {
  height:100%; width:0%;
  background:var(--sc-accent);
  animation: scLBar 1.8s ease forwards .6s;
}
@keyframes scLBar { to { width:100% } }

.sc-loader-sub {
  font-size:10px; letter-spacing:.4em;
  color:var(--sc-dim); text-transform:uppercase;
  animation: scBlink 1.2s ease infinite;
}
@keyframes scBlink { 0%,100%{opacity:1} 50%{opacity:.15} }
#sc-loader.is-hidden { animation: scLOut .7s var(--sc-transition) forwards; }
@keyframes scLOut { to { transform:translateY(-100%) } }

/* =====================================================
   HEADER
   ===================================================== */
#sc-header {
  position:fixed; top:0; left:0; right:0; z-index:9000;
  padding:20px 44px;
  display:flex; align-items:center; justify-content:space-between;
  transition: background .4s, border-color .4s, backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
#sc-header.is-scrolled {
  background:rgba(245,242,237,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-color:var(--sc-border);
}
.sc-header-logo {
  display:flex; align-items:center; flex-shrink:0;
}
.sc-header-logo img,
.sc-header-logo .custom-logo {
  height:var(--sc-logo-h, 32px) !important; width:auto !important;
  max-height:none;
  filter:none;
  transition:height .3s var(--sc-transition);
}
#sc-header.is-scrolled .sc-header-logo img,
#sc-header.is-scrolled .sc-header-logo .custom-logo {
  height:var(--sc-logo-h-scroll, 26px) !important;
}
.sc-header-logo .sc-logo-text {
  font-family:var(--sc-font-display);
  font-size:var(--sc-logo-h, 32px); letter-spacing:.22em; color:var(--sc-black);
  transition:font-size .3s var(--sc-transition);
  white-space:nowrap;
}
#sc-header.is-scrolled .sc-header-logo .sc-logo-text {
  font-size:var(--sc-logo-h-scroll, 26px);
}
.sc-nav {
  display:flex; gap:30px; align-items:center;
}
.sc-nav a {
  font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  position:relative; display:inline-block;
}
.sc-nav a::after {
  content:''; position:absolute; bottom:-2px; left:0;
  width:100%; height:1px; background:var(--sc-accent);
  transform:scaleX(0); transform-origin:left;
  transition:transform .3s var(--sc-transition);
}
.sc-nav a:hover::after { transform:scaleX(1); }

/* Desktop Submenu Dropdown */
.sc-nav-item {
  position:relative; display:flex; align-items:center; gap:4px;
}
.sc-nav-item > a {
  font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  position:relative; display:inline-block;
}
.sc-nav .sc-sub-toggle {
  display:flex; align-items:center; justify-content:center;
  background:none; border:none; padding:2px; cursor:pointer;
  color:var(--sc-black); transition:transform .3s;
}
.sc-sub-menu {
  list-style:none; margin:0; padding:12px 0;
  position:absolute; top:100%; left:0;
  min-width:180px;
  background:var(--sc-bg);
  border:1px solid var(--sc-border);
  opacity:0; visibility:hidden;
  transform:translateY(8px);
  transition:opacity .25s, visibility .25s, transform .25s;
  z-index:9200;
}
.sc-nav-item.has-sub:hover > .sc-sub-menu,
.sc-nav-item.has-sub.is-open > .sc-sub-menu {
  opacity:1; visibility:visible; transform:translateY(0);
}
.sc-nav-item.has-sub:hover > .sc-sub-toggle,
.sc-nav-item.has-sub.is-open > .sc-sub-toggle {
  transform:rotate(180deg);
}
.sc-sub-menu li a {
  display:block; padding:8px 20px;
  font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--sc-dim); white-space:nowrap;
  transition:color .2s, background .2s;
}
.sc-sub-menu li a::after { display:none; }
.sc-sub-menu li a:hover {
  color:var(--sc-black); background:rgba(0,0,0,.03);
}

/* Header actions (cart + hamburger) */
.sc-header-actions {
  display:flex; align-items:center; gap:12px;
}

/* WooCommerce カートリンク */
.sc-cart-link {
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px;
  border:1px solid var(--sc-black);
  position:relative;
  transition:background .3s, color .3s;
}
.sc-cart-link svg { width:16px; height:16px; }
.sc-cart-link:hover { background:var(--sc-black); color:var(--sc-bg); }
.sc-cart-count {
  position:absolute; top:-6px; right:-6px;
  background:var(--sc-accent); color:#fff;
  width:18px; height:18px; border-radius:50%;
  font-size:10px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  line-height:1;
}

/* =====================================================
   HAMBURGER
   ===================================================== */
.sc-hamburger {
  display:none; /* PC では非表示 */
  width:38px; height:38px;
  border:1px solid var(--sc-black);
  background:transparent;
  flex-direction:column; align-items:center; justify-content:center;
  gap:5px; padding:0; cursor:pointer;
  position:relative; z-index:9100;
  transition:background .3s;
}
.sc-hamburger span {
  display:block; width:16px; height:1.5px;
  background:var(--sc-black);
  transition:transform .3s var(--sc-transition), opacity .2s;
}
.sc-hamburger.is-active { background:var(--sc-black); }
.sc-hamburger.is-active span { background:var(--sc-bg); }
.sc-hamburger.is-active span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.sc-hamburger.is-active span:nth-child(2) { opacity:0; }
.sc-hamburger.is-active span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* =====================================================
   MOBILE NAV OVERLAY
   ===================================================== */
.sc-mobile-nav {
  position:fixed; inset:0; z-index:9050;
  background:var(--sc-bg);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .4s var(--sc-transition), visibility .4s;
}
.sc-mobile-nav.is-open { opacity:1; visibility:visible; }
.sc-mobile-nav-inner { text-align:center; }
.sc-mobile-nav-links {
  display:flex; flex-direction:column; gap:8px;
}
.sc-mobile-nav-links a {
  font-family:var(--sc-font-display);
  font-size:clamp(36px,10vw,64px);
  letter-spacing:.06em; line-height:1.2;
  color:var(--sc-black);
  transition:color .3s;
}
.sc-mobile-nav-links a:hover { color:var(--sc-accent); }

/* Mobile Submenu Accordion */
.sc-mobile-nav-links .sc-nav-item {
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
}
.sc-mobile-nav-links .sc-nav-item > a {
  font-family:var(--sc-font-display);
  font-size:clamp(36px,10vw,64px);
  letter-spacing:.06em; line-height:1.2;
  color:var(--sc-black);
  transition:color .3s;
}
.sc-mobile-nav-links .sc-nav-item > a:hover { color:var(--sc-accent); }
.sc-mobile-nav-links .sc-sub-toggle {
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; margin-left:8px;
  background:none; border:1px solid var(--sc-border);
  cursor:pointer; color:var(--sc-black);
  transition:transform .3s, background .3s;
}
.sc-mobile-nav-links .sc-sub-toggle.is-open {
  transform:rotate(180deg); background:var(--sc-black); color:var(--sc-bg);
  border-color:var(--sc-black);
}
.sc-mobile-nav-links .sc-sub-menu {
  list-style:none; margin:0; padding:0;
  width:100%;
  max-height:0; overflow:hidden;
  transition:max-height .4s ease, padding .3s;
  position:static; opacity:1; visibility:visible;
  transform:none; border:none; min-width:0;
  background:transparent;
}
.sc-mobile-nav-links .sc-sub-menu.is-open {
  max-height:400px; padding:8px 0 16px;
}
.sc-mobile-nav-links .sc-sub-menu li a {
  display:block; padding:8px 0;
  font-size:16px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--sc-dim); text-align:center; white-space:normal;
  transition:color .3s;
}
.sc-mobile-nav-links .sc-sub-menu li a:hover { color:var(--sc-accent); }
.sc-mobile-nav-cart {
  display:inline-flex; align-items:center; gap:10px;
  margin-top:32px;
  font-size:13px; letter-spacing:.25em;
  text-transform:uppercase; color:var(--sc-dim);
  border:1px solid var(--sc-border);
  padding:12px 24px;
  transition:color .3s, border-color .3s;
}
.sc-mobile-nav-cart svg { width:16px; height:16px; }
.sc-mobile-nav-cart:hover { color:var(--sc-accent); border-color:var(--sc-accent); }

/* =====================================================
   MARQUEE
   ===================================================== */
.sc-marquee {
  overflow:hidden; padding:13px 0;
  position:relative; z-index:1;
}
.sc-marquee--dark  { background:var(--sc-black); }
.sc-marquee--light { background:var(--sc-bg2); border-top:1px solid var(--sc-border); border-bottom:1px solid var(--sc-border); }
.sc-marquee--accent { background:var(--sc-accent); }

.sc-marquee-track {
  display:flex; gap:0; width:max-content;
  animation: scMarquee 24s linear infinite;
}
.sc-marquee--light .sc-marquee-track { animation-direction:reverse; }
.sc-marquee:hover .sc-marquee-track { animation-play-state:paused; }

@keyframes scMarquee {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}
.sc-marquee-item {
  font-family:var(--sc-font-display);
  font-size:18px; letter-spacing:.12em;
  white-space:nowrap; padding:0 20px;
  display:flex; align-items:center; gap:20px;
}
.sc-marquee-item::after { content:'✦'; font-size:10px; }

.sc-marquee--dark   .sc-marquee-item { color:var(--sc-bg); }
.sc-marquee--dark   .sc-marquee-item::after { color:var(--sc-accent); }
.sc-marquee--light  .sc-marquee-item { color:var(--sc-dim); font-size:14px; }
.sc-marquee--light  .sc-marquee-item::after { color:var(--sc-mid); }
.sc-marquee--accent .sc-marquee-item { color:#fff; }
.sc-marquee--accent .sc-marquee-item::after { color:rgba(255,255,255,.4); }

/* =====================================================
   NEWS TICKER
   ===================================================== */
.sc-ticker {
  overflow:hidden; height:46px;
  display:flex; align-items:center;
  background:var(--sc-bg2);
  border-top:1px solid var(--sc-border);
  border-bottom:1px solid var(--sc-border);
}
.sc-ticker-label {
  flex-shrink:0; background:var(--sc-accent); color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.25em;
  padding:0 18px; height:100%;
  display:flex; align-items:center; text-transform:uppercase;
}
.sc-ticker-wrap { overflow:hidden; flex:1; height:100%; display:flex; align-items:center; }
.sc-ticker-track {
  display:flex; gap:0; width:max-content;
  animation: scMarquee 30s linear infinite;
}
.sc-ticker-item {
  font-size:12px; letter-spacing:.15em;
  color:var(--sc-dim); white-space:nowrap;
  padding:0 28px; text-transform:uppercase;
}
.sc-ticker-item::before { content:'— '; color:var(--sc-accent); }

/* =====================================================
   VERTICAL TEXT ELEMENTS
   ===================================================== */
.sc-side-label {
  position:absolute; left:0; top:0; bottom:0; width:40px;
  display:flex; align-items:center; justify-content:center;
  pointer-events:none;
}
.sc-side-label span {
  font-family:var(--sc-font-display);
  font-size:11px; letter-spacing:.45em; color:var(--sc-mid);
  text-transform:uppercase;
  writing-mode:vertical-rl; transform:rotate(180deg);
  white-space:nowrap;
}
.sc-bg-text {
  position:absolute; right:-8px; top:50%;
  transform:translateY(-50%) rotate(90deg);
  font-family:var(--sc-font-display);
  font-size:clamp(80px,12vw,160px);
  color:rgba(14,14,14,.03);
  letter-spacing:.05em; white-space:nowrap;
  pointer-events:none; user-select:none; z-index:0;
  will-change:transform;
}
.sc-vertical-section-title {
  position:absolute; right:44px; top:100px;
  font-family:var(--sc-font-display);
  font-size:clamp(60px,9vw,130px);
  line-height:1; color:rgba(14,14,14,.04);
  writing-mode:vertical-rl;
  user-select:none; pointer-events:none;
  will-change:transform;
}

/* =====================================================
   SECTION COMMON
   ===================================================== */
.sc-section {
  padding:120px 44px; position:relative;
}
.sc-section--gray { background:var(--sc-bg2); }
.sc-section--padleft { padding-left:80px; }

.sc-section-label {
  font-size:11px; letter-spacing:.42em;
  color:var(--sc-accent); text-transform:uppercase;
  margin-bottom:16px;
  display:flex; align-items:center; gap:12px;
}
.sc-section-label::before {
  content:''; width:26px; height:1px; background:var(--sc-accent);
}
.sc-section-title {
  font-family:var(--sc-font-display);
  font-size:clamp(44px,7vw,96px);
  line-height:.9; letter-spacing:.02em;
  margin-bottom:52px;
}

/* =====================================================
   日本語タイトル用（JS が自動付与する .sc-title-jp）
   Bebas Neue は英字のみ → 日本語は Zen Kaku Gothic New
   ===================================================== */
.sc-title-jp {
  font-family:var(--sc-font-display-jp) !important;
  font-weight:900 !important;
  letter-spacing:.06em !important;
}
/* セクションタイトル */
.sc-section-title.sc-title-jp {
  font-size:clamp(28px,5vw,60px);
  line-height:1.15;
}
/* ヒーロータイトル */
.sc-hero-title.sc-title-jp {
  font-size:clamp(40px,8vw,100px);
  line-height:1;
}
/* アーカイブタイトル */
.sc-archive-title.sc-title-jp {
  font-size:clamp(32px,6vw,72px);
  line-height:1.1;
}
/* カテゴリ名 */
.sc-cat-name.sc-title-jp {
  font-size:clamp(18px,2.5vw,32px);
  line-height:1.2;
}
/* 商品タイトル */
.woocommerce div.product .product_title.sc-title-jp {
  font-size:clamp(24px,4vw,48px) !important;
  line-height:1.15;
}

/* =====================================================
   HERO
   ===================================================== */
#sc-hero {
  height:100vh; position:relative;
  display:flex; align-items:flex-end;
  overflow:hidden; background:var(--sc-bg);
}

/* YouTube 背景動画 */
.sc-hero-video-wrap {
  position:absolute; inset:0; z-index:0;
  pointer-events:none; overflow:hidden;
}
.sc-hero-video-wrap iframe {
  position:absolute;
  top:50%; left:50%;
  width:177.78vh;   /* 16:9 → 100vh × 16/9 */
  height:100vh;
  min-width:100vw;
  min-height:56.25vw; /* 16:9 → 100vw × 9/16 */
  transform:translate(-50%,-50%);
  border:0;
}
.sc-hero-video-overlay {
  position:absolute; inset:0; z-index:1;
  background:rgba(245,242,237,.72);
  pointer-events:none;
}

.sc-hero-texture {
  position:absolute; inset:0; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  opacity:.7;
}
.sc-hero-grid {
  position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(var(--sc-border) 1px, transparent 1px),
    linear-gradient(90deg, var(--sc-border) 1px, transparent 1px);
  background-size:80px 80px; opacity:.5;
}
.sc-hero-big-text {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--sc-font-display);
  font-size:clamp(120px,22vw,320px);
  color:rgba(14,14,14,.04); letter-spacing:-.03em;
  white-space:nowrap; pointer-events:none; z-index:1;
  will-change:transform;
}
.sc-hero-deco {
  position:absolute; top:80px; right:80px;
  width:110px; height:110px;
  border:1px solid var(--sc-border);
  opacity:0; animation:scFadeUp .8s ease forwards 3s;
  will-change:transform;
}
.sc-hero-deco::before {
  content:''; position:absolute; inset:10px;
  border:1px solid var(--sc-mid); transform:rotate(-8deg);
}
.sc-hero-side-label {
  position:absolute; left:40px; top:50%;
  transform:translateY(-50%) rotate(-90deg);
  transform-origin:center center;
  font-family:var(--sc-font-display);
  font-size:11px; letter-spacing:.5em;
  color:var(--sc-dim); text-transform:uppercase;
  white-space:nowrap; z-index:3;
  opacity:0; animation:scFadeUp .8s ease forwards 3.1s;
  display:flex; align-items:center; gap:14px;
  will-change:transform;
}
.sc-hero-side-label::before {
  content:''; width:34px; height:1px;
  background:var(--sc-dim); display:inline-block;
}
.sc-hero-right-tag {
  position:absolute; right:44px; top:50%;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  transform:translateY(-50%); z-index:3;
  opacity:0; animation:scFadeUp .8s ease forwards 3.2s;
  will-change:transform;
}
.sc-hero-right-tag-text {
  font-family:var(--sc-font-display);
  font-size:11px; letter-spacing:.5em; color:var(--sc-dim);
  writing-mode:vertical-rl; text-transform:uppercase;
}
.sc-hero-right-tag-line { width:1px; height:70px; background:var(--sc-mid); }

.sc-hero-content {
  position:relative; z-index:2;
  padding:0 100px 80px 100px; width:100%;
}
.sc-hero-eyebrow {
  font-size:11px; letter-spacing:.45em;
  color:var(--sc-accent); text-transform:uppercase; margin-bottom:16px;
  opacity:0; transform:translateY(14px);
  animation:scFadeUp .8s ease forwards 2.2s;
}
.sc-hero-title {
  font-family:var(--sc-font-display);
  font-size:clamp(80px,15vw,210px);
  line-height:.85; letter-spacing:-.01em;
}
.sc-hero-title .line { display:block; overflow:hidden; }
.sc-hero-title .line span {
  display:block; transform:translateY(112%);
  animation: scLUp 1s var(--sc-transition) forwards;
}
.sc-hero-title .line:nth-child(1) span { animation-delay:1.9s }
.sc-hero-title .line:nth-child(2) span { animation-delay:2.05s }
.sc-hero-title .line:nth-child(3) span { animation-delay:2.18s }

.sc-hero-sub {
  display:flex; align-items:center; gap:40px; margin-top:26px;
  opacity:0; transform:translateY(14px);
  animation:scFadeUp .8s ease forwards 2.6s;
}
.sc-hero-desc {
  font-size:13px; letter-spacing:.05em;
  color:var(--sc-dim); line-height:1.85; max-width:260px;
}
.sc-btn {
  display:inline-flex; align-items:center; gap:12px;
  background:var(--sc-black); color:var(--sc-bg);
  padding:14px 28px;
  font-family:var(--sc-font-body);
  font-size:12px; font-weight:700; letter-spacing:.22em;
  text-transform:uppercase; cursor:none;
  transition:background .3s, transform .3s, box-shadow .3s;
  border:none;
}
.sc-btn:hover {
  background:var(--sc-accent); color:#fff;
  transform:translate(-2px,-2px);
  box-shadow:3px 3px 0 rgba(232,0,45,.2);
}
.sc-btn--outline {
  background:transparent; color:var(--sc-black);
  border:1px solid var(--sc-black);
}
.sc-btn--outline:hover {
  background:var(--sc-black); color:var(--sc-bg);
  transform:translate(-2px,-2px);
}
.sc-btn svg { width:14px; height:14px; flex-shrink:0; }

.sc-hero-scroll {
  position:absolute; right:44px; bottom:56px;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  opacity:0; animation:scFadeUp .8s ease forwards 3.3s;
}
.sc-hero-scroll span {
  font-size:10px; letter-spacing:.3em; color:var(--sc-dim);
  writing-mode:vertical-rl; text-transform:uppercase;
}
.sc-scroll-line {
  width:1px; height:56px;
  background:linear-gradient(to bottom, var(--sc-black), transparent);
  animation: scScrollPulse 2s ease infinite;
}

@keyframes scFadeUp { to { opacity:1; transform:translateY(0) translate(var(--tx,0),var(--ty,0)) } }
@keyframes scScrollPulse {
  0%   { transform:scaleY(0); transform-origin:top }
  50%  { transform:scaleY(1); transform-origin:top }
  51%  { transform:scaleY(1); transform-origin:bottom }
  100% { transform:scaleY(0); transform-origin:bottom }
}

/* =====================================================
   FEATURED PRODUCTS
   ===================================================== */
.sc-products-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
  position:relative; z-index:1;
}
.sc-product-card {
  position:relative; overflow:hidden;
  background:var(--sc-bg2); aspect-ratio:3/4; cursor:none;
  border:1px solid var(--sc-border);
  will-change:transform;
}
.sc-product-card:hover .sc-product-thumb { transform:scale(1.07); filter:grayscale(0%); }
.sc-product-thumb {
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--sc-transition), filter .5s;
  filter:grayscale(10%);
}
.sc-product-thumb-placeholder {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--sc-font-display);
  font-size:clamp(28px,4vw,56px);
  color:rgba(14,14,14,.07); letter-spacing:.1em;
  background:var(--sc-bg2);
}
.sc-product-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(14,14,14,.88) 0%, transparent 55%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:20px;
}
.sc-product-num {
  position:absolute; top:14px; left:14px;
  font-size:10px; letter-spacing:.22em; color:var(--sc-dim);
}
.sc-product-badge {
  position:absolute; top:14px; right:14px;
  background:var(--sc-accent); color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.2em;
  padding:3px 9px; text-transform:uppercase;
  opacity:0; transform:translateY(-6px);
  transition:opacity .3s, transform .3s;
}
.sc-product-card:hover .sc-product-badge { opacity:1; transform:translateY(0); }
.sc-product-name {
  font-family:var(--sc-font-display);
  font-size:24px; letter-spacing:.04em; line-height:1;
  margin-bottom:5px; color:var(--sc-bg);
}
.sc-product-price { font-size:13px; letter-spacing:.1em; color:var(--sc-accent); }

/* =====================================================
   CONCEPT SECTION
   ===================================================== */
.sc-concept-inner {
  display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;
  position:relative; z-index:1;
}
.sc-concept-visual {
  position:relative; aspect-ratio:1;
  border:1px solid var(--sc-border); overflow:hidden;
  background:var(--sc-bg2);
}
.sc-concept-visual::before {
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(
    45deg, transparent, transparent 24px,
    rgba(14,14,14,.025) 24px, rgba(14,14,14,.025) 25px
  );
}
.sc-concept-visual-img {
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  z-index:1;
}
.sc-concept-visual-text {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--sc-font-display);
  font-size:110px; color:rgba(14,14,14,.05); letter-spacing:-.05em;
  will-change:transform; z-index:2;
}
.sc-concept-deco {
  position:absolute; bottom:-16px; right:-16px;
  width:180px; height:180px;
  border:1px solid var(--sc-border); transform:rotate(8deg);
  will-change:transform;
}
.sc-concept-vert {
  position:absolute; left:0; top:50%; transform:translateY(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  pointer-events:none;
}
.sc-concept-vert span {
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:10px; letter-spacing:.5em;
  color:var(--sc-mid); text-transform:uppercase;
}
.sc-concept-vert::before, .sc-concept-vert::after {
  content:''; width:1px; height:44px; background:var(--sc-mid); display:block;
}
.sc-concept-body {
  font-size:15px; line-height:2; color:var(--sc-dim);
  margin-bottom:28px; letter-spacing:.04em;
}
.sc-stats {
  display:flex; gap:40px; margin-top:36px; padding-top:36px;
  border-top:1px solid var(--sc-border);
}
.sc-stat-num {
  font-family:var(--sc-font-display);
  font-size:52px; line-height:1; color:var(--sc-black); letter-spacing:.02em;
}
.sc-stat-label {
  font-size:10px; letter-spacing:.3em; color:var(--sc-dim);
  text-transform:uppercase; margin-top:4px;
}

/* =====================================================
   CATEGORY GRID
   ===================================================== */
.sc-cat-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:auto auto;
  gap:2px; position:relative; z-index:1;
}
.sc-cat-item {
  position:relative; overflow:hidden;
  background:var(--sc-bg); display:flex; align-items:flex-end;
  padding:28px; min-height:200px;
  border:1px solid var(--sc-border);
  transition:border-color .3s;
}
.sc-cat-item:hover { border-color:var(--sc-black); }
.sc-cat-item:nth-child(1) { grid-row:span 2; min-height:400px; }
.sc-cat-item:hover .sc-cat-bg { transform:scale(1.04); }
.sc-cat-bg {
  position:absolute; inset:0;
  transition:transform .8s var(--sc-transition);
}
.sc-cat-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(14,14,14,.08) 0%,transparent 60%);
}
.sc-cat-ghost {
  position:absolute; font-family:var(--sc-font-display);
  font-size:110px; color:rgba(14,14,14,.035);
  top:50%; right:0; transform:translateY(-50%);
  letter-spacing:-.05em; pointer-events:none;
  will-change:transform;
}
.sc-cat-content { position:relative; z-index:1; }
.sc-cat-label {
  font-size:10px; letter-spacing:.35em;
  color:var(--sc-accent); text-transform:uppercase; margin-bottom:6px;
}
.sc-cat-name {
  font-family:var(--sc-font-display);
  font-size:clamp(26px,3vw,46px); letter-spacing:.04em; line-height:1;
}
.sc-cat-arrow {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:10px; font-size:11px; letter-spacing:.2em;
  color:var(--sc-dim); text-transform:uppercase;
  transition:color .3s, gap .3s;
}
.sc-cat-item:hover .sc-cat-arrow { color:var(--sc-accent); gap:14px; }

/* =====================================================
   SCROLL REVEAL
   ===================================================== */
.sc-reveal {
  opacity:0; transform:translateY(36px);
  transition:opacity .8s var(--sc-transition), transform .8s var(--sc-transition);
}
.sc-reveal.is-visible { opacity:1; transform:translateY(0); }
.sc-reveal--d1 { transition-delay:.1s }
.sc-reveal--d2 { transition-delay:.2s }
.sc-reveal--d3 { transition-delay:.3s }
.sc-reveal--d4 { transition-delay:.4s }

/* GPU hints */
[data-parallax],[data-parallax-x],[data-parallax-rotate],[data-parallax-scale] {
  will-change:transform;
}

/* =====================================================
   FOOTER
   ===================================================== */
#sc-footer {
  background:var(--sc-black); color:var(--sc-bg);
  padding:64px 44px 40px;
}
.sc-footer-top {
  display:flex; align-items:flex-start; justify-content:space-between;
  margin-bottom:56px; padding-bottom:56px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.sc-footer-logo {
  font-family:var(--sc-font-display);
  font-size:var(--sc-footer-logo-size,42px); letter-spacing:.1em; line-height:1;
}
.sc-footer-tagline {
  font-size:11px; letter-spacing:.28em;
  color:rgba(255,255,255,.28); margin-top:8px; text-transform:uppercase;
}
.sc-footer-cols { display:flex; gap:56px; }
.sc-footer-col h4 {
  font-size:10px; letter-spacing:.35em;
  color:var(--sc-accent); text-transform:uppercase; margin-bottom:16px;
}
.sc-footer-col a {
  display:block; font-size:13px; letter-spacing:.1em;
  color:rgba(255,255,255,.32); margin-bottom:10px;
  text-transform:uppercase; transition:color .3s;
}
.sc-footer-col a:hover { color:var(--sc-bg); }
.sc-footer-bottom {
  display:flex; align-items:center; justify-content:space-between;
}
.sc-footer-copy {
  font-size:11px; letter-spacing:.2em;
  color:rgba(255,255,255,.2); text-transform:uppercase;
}

/* =====================================================
   FORMS — SELECT / INPUT / TEXTAREA
   ===================================================== */
select,
.woocommerce .orderby,
.woocommerce .variations select {
  appearance:none; -webkit-appearance:none;
  background:var(--sc-bg);
  border:1px solid var(--sc-border);
  padding:10px 38px 10px 14px;
  font-family:var(--sc-font-body);
  font-size:13px; letter-spacing:.08em;
  color:var(--sc-black);
  border-radius:0; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%230e0e0e' stroke-width='1.5'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:12px 8px;
  transition:border-color .3s, box-shadow .3s;
}
select:hover, select:focus,
.woocommerce .orderby:hover, .woocommerce .orderby:focus,
.woocommerce .variations select:hover, .woocommerce .variations select:focus {
  border-color:var(--sc-black);
  outline:none;
  box-shadow:0 0 0 1px var(--sc-black);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="number"],
input[type="search"],
textarea {
  appearance:none; -webkit-appearance:none;
  background:var(--sc-bg);
  border:1px solid var(--sc-border);
  padding:10px 14px;
  font-family:var(--sc-font-body);
  font-size:13px; letter-spacing:.04em;
  color:var(--sc-black);
  border-radius:0; width:100%;
  transition:border-color .3s, box-shadow .3s;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
textarea:focus {
  border-color:var(--sc-black);
  outline:none;
  box-shadow:0 0 0 1px var(--sc-black);
}
textarea { min-height:120px; resize:vertical; }

/* =====================================================
   WOOCOMMERCE — SHOP / ARCHIVE
   ===================================================== */

/* 全 WooCommerce ページ + ブログ/アーカイブ/検索ページのヘッダー分余白 */
.woocommerce-page #sc-main,
.post-type-archive-product #sc-main,
.woocommerce-cart #sc-main,
.woocommerce-checkout #sc-main,
.woocommerce-account #sc-main,
.blog #sc-main,
.archive #sc-main,
.search #sc-main,
.single-post #sc-main,
.page #sc-main {
  padding-top:100px;
}

/* =====================================================
   ARCHIVE / CATEGORY — テーマ独自テンプレート
   ===================================================== */
.sc-archive-wrap {
  padding:0 44px 80px;
}
.sc-archive-header {
  padding:48px 0 36px;
  border-bottom:1px solid var(--sc-border);
}
.sc-archive-title {
  font-family:var(--sc-font-display);
  font-size:clamp(52px,9vw,110px);
  line-height:.85; letter-spacing:.02em;
}
.sc-archive-toolbar {
  padding:20px 0;
  border-bottom:1px solid var(--sc-border);
  margin-bottom:2px;
}
.sc-archive-toolbar-bar {
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
}
/* result-count / ordering */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  margin:0; float:none !important;
}
.woocommerce .woocommerce-result-count {
  font-size:11px; letter-spacing:.2em;
  color:var(--sc-dim); text-transform:uppercase;
  line-height:42px;
}
.woocommerce .woocommerce-ordering select {
  min-width:200px;
}

/* パンくずリスト */
.woocommerce .woocommerce-breadcrumb {
  padding:16px 24px;
  font-size:11px; letter-spacing:.2em;
  color:var(--sc-dim); text-transform:uppercase;
  border-bottom:1px solid var(--sc-border);
}
.woocommerce .woocommerce-breadcrumb a {
  color:var(--sc-dim);
  transition:color .3s;
}
.woocommerce .woocommerce-breadcrumb a:hover {
  color:var(--sc-accent);
}

/* WooCommerce clearfix overrides */
.woocommerce::before,
.woocommerce::after {
  display:none !important;
}

/* 商品グリッド */
.woocommerce ul.products {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; list-style:none; padding:0; margin:0;
}
.woocommerce ul.products li.product {
  position:relative; overflow:hidden;
  background:var(--sc-bg2); border:1px solid var(--sc-border);
  margin:0 !important;
}
.woocommerce ul.products li.product a img {
  width:100%; height:300px; object-fit:cover;
  transition:transform .7s var(--sc-transition), filter .4s;
  filter:grayscale(10%);
}
.woocommerce ul.products li.product:hover a img {
  transform:scale(1.05); filter:grayscale(0%);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family:var(--sc-font-display);
  font-size:22px; letter-spacing:.04em; padding:16px 16px 4px;
  margin:0;
}
.woocommerce ul.products li.product .price {
  padding:0 16px 8px; color:var(--sc-accent);
  font-size:14px; letter-spacing:.1em;
}
/* 商品カード内ボタンエリア */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .product_type_variable,
.woocommerce ul.products li.product .product_type_grouped {
  display:block; margin:0 16px 8px;
  background:var(--sc-black); color:var(--sc-bg) !important;
  font-family:var(--sc-font-body);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  padding:10px 16px; text-align:center;
  transition:background .3s, transform .3s, box-shadow .3s;
  border:none; border-radius:0;
  text-decoration:none; cursor:pointer;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover {
  background:var(--sc-accent); color:#fff !important;
  transform:translate(-1px,-1px);
  box-shadow:2px 2px 0 rgba(232,0,45,.12);
}

/* Compare / Wishlist / Quick View — プラグインボタン共通 */
.woocommerce ul.products li.product .compare,
.woocommerce ul.products li.product .compare.button,
.woocommerce ul.products li.product .yith-wcwl-add-to-wishlist a,
.woocommerce ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-add-button a,
.woocommerce ul.products li.product .tinvwl_add_to_wishlist_button,
.woocommerce ul.products li.product .yith-wcqv-button,
.woocommerce ul.products li.product .woosw-btn,
.woocommerce ul.products li.product .woosc-btn {
  display:block !important; margin:0 16px 8px !important;
  background:transparent !important; color:var(--sc-black) !important;
  border:1px solid var(--sc-border) !important;
  font-family:var(--sc-font-body) !important;
  font-size:10px !important; letter-spacing:.2em !important;
  text-transform:uppercase !important;
  padding:8px 16px !important; text-align:center !important;
  transition:background .3s, color .3s, border-color .3s !important;
  border-radius:0 !important;
  text-decoration:none !important; cursor:pointer !important;
  width:calc(100% - 32px) !important; box-sizing:border-box !important;
  line-height:1.6 !important;
}
.woocommerce ul.products li.product .compare:hover,
.woocommerce ul.products li.product .compare.button:hover,
.woocommerce ul.products li.product .yith-wcwl-add-to-wishlist a:hover,
.woocommerce ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-add-button a:hover,
.woocommerce ul.products li.product .tinvwl_add_to_wishlist_button:hover,
.woocommerce ul.products li.product .yith-wcqv-button:hover,
.woocommerce ul.products li.product .woosw-btn:hover,
.woocommerce ul.products li.product .woosc-btn:hover {
  background:var(--sc-black) !important; color:var(--sc-bg) !important;
  border-color:var(--sc-black) !important;
}

/* 商品カード下部のボタン群をまとめる余白 */
.woocommerce ul.products li.product {
  padding-bottom:16px;
}

/* 単品ページのプラグインボタン */
.woocommerce div.product .compare.button,
.woocommerce div.product .yith-wcwl-add-to-wishlist a,
.woocommerce div.product .yith-wcwl-add-to-wishlist .yith-wcwl-add-button a,
.woocommerce div.product .tinvwl_add_to_wishlist_button,
.woocommerce div.product .yith-wcqv-button,
.woocommerce div.product .woosw-btn,
.woocommerce div.product .woosc-btn {
  display:inline-flex !important; align-items:center !important; gap:8px;
  background:transparent !important; color:var(--sc-black) !important;
  border:1px solid var(--sc-black) !important;
  font-family:var(--sc-font-body) !important;
  font-size:11px !important; letter-spacing:.2em !important;
  text-transform:uppercase !important;
  padding:12px 24px !important;
  transition:background .3s, color .3s !important;
  border-radius:0 !important;
  text-decoration:none !important; cursor:pointer !important;
  margin-top:8px !important;
}
.woocommerce div.product .compare.button:hover,
.woocommerce div.product .yith-wcwl-add-to-wishlist a:hover,
.woocommerce div.product .tinvwl_add_to_wishlist_button:hover,
.woocommerce div.product .woosw-btn:hover,
.woocommerce div.product .woosc-btn:hover {
  background:var(--sc-black) !important; color:var(--sc-bg) !important;
}

/* セール / NEW バッジ */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
  background:var(--sc-accent); color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.2em;
  padding:4px 10px; text-transform:uppercase;
  border-radius:0; line-height:1.4;
  top:14px; right:14px; left:auto;
  min-height:auto; min-width:auto;
}

/* ページネーション */
.woocommerce nav.woocommerce-pagination {
  margin:40px 0; text-align:center;
}
.woocommerce nav.woocommerce-pagination ul {
  display:flex; justify-content:center; gap:4px;
  border:none;
}
.woocommerce nav.woocommerce-pagination ul li {
  border:none;
  margin:0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span.current {
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px;
  font-family:var(--sc-font-display);
  font-size:16px; letter-spacing:.05em;
  border:1px solid var(--sc-border);
  color:var(--sc-black); background:var(--sc-bg);
  transition:background .3s, color .3s, border-color .3s;
  text-decoration:none;
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background:var(--sc-black); color:var(--sc-bg);
  border-color:var(--sc-black);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  background:var(--sc-black); color:var(--sc-bg);
  border-color:var(--sc-black);
}

/* WP 標準ページネーション（index.php 用） */
.nav-links {
  display:flex; justify-content:center; gap:4px;
  margin-top:40px;
}
.nav-links .page-numbers {
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px;
  font-family:var(--sc-font-display);
  font-size:16px; letter-spacing:.05em;
  border:1px solid var(--sc-border);
  color:var(--sc-black); background:var(--sc-bg);
  transition:background .3s, color .3s, border-color .3s;
}
.nav-links .page-numbers:hover,
.nav-links .page-numbers.current {
  background:var(--sc-black); color:var(--sc-bg);
  border-color:var(--sc-black);
}

/* WooCommerce 通知 */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
  padding:14px 20px;
  font-size:13px; letter-spacing:.06em;
  border-top:none;
  border-left:3px solid var(--sc-accent);
  background:var(--sc-bg2);
  color:var(--sc-black);
  margin:16px 44px;
  line-height:1.7;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before {
  color:var(--sc-accent);
}
.woocommerce .woocommerce-error {
  border-left-color:#c00;
}
.woocommerce .woocommerce-error::before {
  color:#c00;
}

/* SINGLE PRODUCT */
.woocommerce div.product {
  padding:100px 44px 80px;
  display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start;
}
.woocommerce div.product .woocommerce-product-gallery {
  width:100% !important;
}
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
  display:none !important;
}
.woocommerce div.product .woocommerce-product-gallery__image img {
  width:100%; height:auto; border:1px solid var(--sc-border);
}
/* Gallery Thumbnails */
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs {
  display:flex; gap:8px; margin-top:12px;
  list-style:none; padding:0;
  overflow-x:auto; -webkit-overflow-scrolling:touch;
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li {
  flex:0 0 72px; width:72px; height:90px;
  overflow:hidden; cursor:pointer;
  border:1px solid var(--sc-border);
  position:relative;
  transition:border-color .3s;
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li::after {
  content:''; position:absolute; inset:0;
  background:rgba(14,14,14,.35);
  transition:opacity .3s;
  pointer-events:none;
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li:hover::after,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li .flex-active::after {
  opacity:0;
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li:hover,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li:has(.flex-active) {
  border-color:var(--sc-black);
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img {
  width:100%; height:100%; object-fit:cover;
  display:block; opacity:1 !important;
  transition:transform .4s var(--sc-transition);
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li:hover img {
  transform:scale(1.08);
}
.woocommerce div.product .product_title {
  font-family:var(--sc-font-display);
  font-size:clamp(40px,6vw,80px); line-height:.9; letter-spacing:.02em;
  margin-bottom:16px;
}
.woocommerce div.product .price {
  font-size:22px; letter-spacing:.1em; color:var(--sc-accent); margin-bottom:24px;
}
.woocommerce div.product .woocommerce-product-details__short-description {
  font-size:14px; line-height:1.85; color:var(--sc-dim);
  margin-bottom:24px; letter-spacing:.04em;
}
.woocommerce div.product form.cart {
  display:flex; align-items:center; gap:12px;
  margin-bottom:24px;
}
.woocommerce div.product form.cart .qty {
  width:60px; border:1px solid var(--sc-border); padding:10px 8px;
  font-size:14px; text-align:center;
  border-radius:0;
}
/* =====================================================
   GLOBAL BUTTON STYLES
   ===================================================== */
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce a.button.alt,
.woocommerce button.button,
.woocommerce button.button.alt,
.woocommerce input.button,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .coupon .button,
.woocommerce table.cart td.actions .button,
.woocommerce .woocommerce-message .button,
.woocommerce .return-to-shop .button,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #place_order,
.woocommerce .woocommerce-form-login .button,
.woocommerce .woocommerce-form-register .button,
.woocommerce .widget_price_filter .button,
.wp-block-button__link,
button[type="submit"],
input[type="submit"] {
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--sc-black); color:var(--sc-bg) !important;
  font-family:var(--sc-font-body);
  font-size:11px; font-weight:700; letter-spacing:.25em; text-transform:uppercase;
  padding:14px 28px; border:none; cursor:pointer;
  transition:background .3s, transform .3s, box-shadow .3s, color .3s;
  border-radius:0; line-height:1.4;
  text-decoration:none;
  gap:8px;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce .coupon .button:hover,
.woocommerce table.cart td.actions .button:hover,
.woocommerce .woocommerce-message .button:hover,
.woocommerce .return-to-shop .button:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce .woocommerce-form-login .button:hover,
.woocommerce .woocommerce-form-register .button:hover,
.wp-block-button__link:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  background:var(--sc-accent); color:#fff !important;
  transform:translate(-2px,-2px);
  box-shadow:4px 4px 0 rgba(232,0,45,.15);
}

/* Disabled ボタン */
.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled {
  opacity:.4; cursor:not-allowed;
  transform:none !important; box-shadow:none !important;
}

/* アウトライン系ボタン */
.woocommerce .woocommerce-message .button,
.woocommerce .return-to-shop .button {
  background:transparent; color:var(--sc-black) !important;
  border:1px solid var(--sc-black);
}
.woocommerce .woocommerce-message .button:hover,
.woocommerce .return-to-shop .button:hover {
  background:var(--sc-black); color:var(--sc-bg) !important;
  border-color:var(--sc-black);
}

/* バリエーション */
.woocommerce div.product .variations {
  width:100%; margin-bottom:16px;
  border-collapse:collapse;
}
.woocommerce div.product .variations td,
.woocommerce div.product .variations th {
  border:none; padding:8px 0;
  vertical-align:middle;
}
.woocommerce div.product .variations .label label {
  font-size:11px; letter-spacing:.25em;
  text-transform:uppercase; color:var(--sc-dim);
  font-weight:400;
}
.woocommerce div.product .variations select {
  width:100%; max-width:280px;
}

/* タブ */
.woocommerce div.product .woocommerce-tabs {
  grid-column:1 / -1;
  margin-top:20px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
  display:flex; gap:0; padding:0; margin:0 0 24px;
  border-bottom:1px solid var(--sc-border);
  list-style:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  display:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin:0; padding:0; border:none;
  background:none; border-radius:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display:block; padding:12px 24px;
  font-size:11px; letter-spacing:.25em;
  text-transform:uppercase; color:var(--sc-dim);
  transition:color .3s;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color:var(--sc-black);
  border-bottom-color:var(--sc-accent);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color:var(--sc-black);
}
.woocommerce div.product .woocommerce-tabs .panel {
  font-size:14px; line-height:1.85;
  color:var(--sc-dim); letter-spacing:.04em;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-family:var(--sc-font-display);
  font-size:28px; letter-spacing:.04em;
  margin-bottom:16px; color:var(--sc-black);
}

/* 関連商品 / アップセル */
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells.upsells.products {
  grid-column:1 / -1;
  margin-top:40px; padding-top:40px;
  border-top:1px solid var(--sc-border);
}
.woocommerce div.product .related.products > h2,
.woocommerce div.product .up-sells.upsells.products > h2 {
  font-family:var(--sc-font-display);
  font-size:clamp(28px,4vw,48px); letter-spacing:.04em;
  margin-bottom:24px; color:var(--sc-black);
}
.woocommerce div.product .related.products ul.products,
.woocommerce div.product .up-sells.upsells.products ul.products {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:2px; list-style:none; padding:0; margin:0;
}

/* =====================================================
   SINGLE POST — ブログ詳細
   ===================================================== */
.sc-single-thumbnail {
  margin-top:40px;
}
.sc-single-thumbnail img {
  width:100%; height:auto; max-height:520px;
  object-fit:cover; display:block;
  border:1px solid var(--sc-border);
}
.sc-single-body {
  max-width:720px;
  margin-top:48px;
  font-size:15px; line-height:2;
  color:var(--sc-dim); letter-spacing:.04em;
}
.sc-single-body h2 {
  font-family:var(--sc-font-display);
  font-size:28px; letter-spacing:.04em;
  color:var(--sc-black); margin:48px 0 16px;
}
.sc-single-body h3 {
  font-size:20px; font-weight:700;
  color:var(--sc-black); margin:36px 0 12px;
}
.sc-single-body p {
  margin-bottom:24px;
}
.sc-single-body img {
  max-width:100%; height:auto; margin:24px 0;
}
.sc-single-body blockquote {
  border-left:3px solid var(--sc-accent);
  padding:16px 24px; margin:32px 0;
  font-style:italic; color:var(--sc-dim);
}
.sc-single-body a {
  color:var(--sc-accent);
  text-decoration:underline;
  text-underline-offset:3px;
}
.sc-single-body a:hover {
  text-decoration:none;
}
.sc-single-footer {
  max-width:720px;
  margin-top:48px; padding-top:24px;
  border-top:1px solid var(--sc-border);
  display:flex; flex-wrap:wrap; gap:12px;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--sc-dim);
}
.sc-single-footer a {
  color:var(--sc-dim); transition:color .3s;
}
.sc-single-footer a:hover {
  color:var(--sc-accent);
}
.sc-single-nav {
  max-width:720px;
  margin-top:48px; padding-top:36px;
  border-top:1px solid var(--sc-border);
  display:flex; justify-content:space-between; gap:24px;
}
.sc-single-nav-item {
  display:flex; flex-direction:column; gap:6px;
  max-width:45%;
}
.sc-single-nav-next {
  text-align:right; margin-left:auto;
}
.sc-single-nav-label {
  font-size:11px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--sc-accent);
}
.sc-single-nav-item a {
  font-size:14px; color:var(--sc-black);
  letter-spacing:.04em; line-height:1.5;
  transition:color .3s;
}
.sc-single-nav-item a:hover {
  color:var(--sc-accent);
}

/* =====================================================
   CART PAGE — 全面デザイン
   ===================================================== */
.woocommerce-cart .sc-page-content {
  max-width:none !important;
}
.woocommerce-cart .woocommerce {
  padding:0 44px 80px;
  max-width:1000px; margin:0 auto;
}
.woocommerce-cart .wc-empty-cart-message {
  text-align:center; padding:80px 0;
}
.woocommerce-cart .wc-empty-cart-message .cart-empty {
  font-family:var(--sc-font-display);
  font-size:clamp(28px,5vw,48px);
  margin-bottom:24px;
}

/* カートテーブル */
.woocommerce table.shop_table.cart,
.woocommerce table.cart {
  border-collapse:collapse; width:100%; margin-bottom:40px;
  border:none;
}
.woocommerce table.cart thead {
  border-bottom:2px solid var(--sc-black);
}
.woocommerce table.cart td,
.woocommerce table.cart th {
  padding:20px 16px;
  border-bottom:1px solid var(--sc-border);
  font-size:13px; letter-spacing:.05em;
  vertical-align:middle;
}
.woocommerce table.cart th {
  font-size:10px; letter-spacing:.35em; text-transform:uppercase;
  color:var(--sc-dim); font-weight:400;
  padding:12px 16px;
}
.woocommerce table.cart td.product-thumbnail {
  width:100px; padding-right:0;
}
.woocommerce table.cart td.product-thumbnail img {
  width:80px; height:100px; object-fit:cover;
  border:1px solid var(--sc-border);
}
.woocommerce table.cart td.product-name a {
  font-family:var(--sc-font-display);
  font-size:20px; letter-spacing:.04em;
  color:var(--sc-black);
  transition:color .3s;
}
.woocommerce table.cart td.product-name a:hover { color:var(--sc-accent); }
.woocommerce table.cart td.product-name dl.variation {
  margin-top:6px;
}
.woocommerce table.cart td.product-name dl.variation dt,
.woocommerce table.cart td.product-name dl.variation dd {
  font-size:11px; letter-spacing:.1em;
  color:var(--sc-dim); display:inline;
  margin:0; padding:0;
}
.woocommerce table.cart td.product-price,
.woocommerce table.cart td.product-subtotal {
  font-family:var(--sc-font-display);
  font-size:18px; letter-spacing:.06em;
}
.woocommerce table.cart td.product-subtotal {
  color:var(--sc-accent);
}
.woocommerce table.cart td.product-quantity .qty {
  width:60px; border:1px solid var(--sc-border);
  padding:8px; font-size:14px; text-align:center;
  border-radius:0; background:var(--sc-bg);
}
.woocommerce table.cart td.product-remove {
  width:44px; text-align:center;
}
.woocommerce table.cart td.product-remove a.remove {
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px;
  border:1px solid var(--sc-border);
  color:var(--sc-dim) !important; font-size:18px;
  transition:background .3s, color .3s, border-color .3s;
}
.woocommerce table.cart td.product-remove a.remove:hover {
  background:var(--sc-accent); color:#fff !important;
  border-color:var(--sc-accent);
}

/* カートアクション（クーポン + 更新ボタン） */
.woocommerce table.cart td.actions {
  padding:24px 0; border-bottom:none;
}
.woocommerce .coupon {
  display:flex; gap:8px; align-items:center;
}
.woocommerce .coupon .input-text {
  width:220px; border:1px solid var(--sc-border);
  padding:12px 14px; font-size:12px; letter-spacing:.1em;
  background:var(--sc-bg); border-radius:0;
}
.woocommerce .coupon .button,
.woocommerce table.cart td.actions > .button {
  display:inline-flex; align-items:center; justify-content:center;
}

/* カート集計 */
.woocommerce .cart-collaterals {
  margin-top:48px;
  display:flex; justify-content:flex-end;
}
.woocommerce .cart_totals {
  width:100%; max-width:480px;
  border:1px solid var(--sc-border);
  padding:32px;
}
.woocommerce .cart_totals h2 {
  font-family:var(--sc-font-display);
  font-size:28px; letter-spacing:.06em;
  margin-bottom:24px; padding-bottom:16px;
  border-bottom:2px solid var(--sc-black);
}
.woocommerce .cart_totals table {
  border-collapse:collapse; width:100%;
}
.woocommerce .cart_totals table td,
.woocommerce .cart_totals table th {
  padding:14px 0;
  border-bottom:1px solid var(--sc-border);
  font-size:13px; letter-spacing:.08em;
}
.woocommerce .cart_totals table th {
  font-size:10px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--sc-dim);
  font-weight:400; width:40%;
}
.woocommerce .cart_totals table .order-total td {
  font-family:var(--sc-font-display);
  font-size:28px; color:var(--sc-accent);
  letter-spacing:.04em;
}
.woocommerce .cart_totals .wc-proceed-to-checkout {
  padding-top:24px;
}
.woocommerce .cart_totals .wc-proceed-to-checkout .checkout-button {
  display:block; width:100%; text-align:center;
  background:var(--sc-black); color:var(--sc-bg);
  padding:16px 28px;
  font-size:13px; font-weight:700; letter-spacing:.25em;
  text-transform:uppercase;
  transition:background .3s, transform .3s, box-shadow .3s;
}
.woocommerce .cart_totals .wc-proceed-to-checkout .checkout-button:hover {
  background:var(--sc-accent); color:#fff;
  transform:translate(-2px,-2px);
  box-shadow:4px 4px 0 rgba(232,0,45,.15);
}

/* 配送方法 */
.woocommerce .cart_totals .woocommerce-shipping-methods {
  list-style:none; padding:0; margin:0;
}
.woocommerce .cart_totals .woocommerce-shipping-methods li {
  font-size:13px; letter-spacing:.06em;
  margin-bottom:4px;
}
.woocommerce .cart_totals .woocommerce-shipping-methods li label {
  cursor:pointer;
}
.woocommerce .cart_totals .shipping-calculator-button {
  font-size:11px; letter-spacing:.2em;
  color:var(--sc-accent); text-transform:uppercase;
  margin-top:8px; display:inline-block;
}

/* CHECKOUT */
.woocommerce-checkout #sc-main {
  padding-bottom:80px;
}
.woocommerce form.checkout {
  padding:0 44px;
}
.woocommerce form.checkout h3 {
  font-family:var(--sc-font-display);
  font-size:28px; letter-spacing:.04em;
  margin:32px 0 20px;
}
.woocommerce form .form-row {
  margin-bottom:16px;
}
.woocommerce form .form-row label {
  font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--sc-dim);
  margin-bottom:6px; display:block;
}
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
  width:100%;
}
.woocommerce #order_review_heading {
  font-family:var(--sc-font-display);
  font-size:28px; letter-spacing:.04em;
  margin:40px 44px 20px;
}
.woocommerce table.shop_table {
  border-collapse:collapse; width:100%;
  margin:0 0 24px;
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
  padding:12px 16px;
  border-bottom:1px solid var(--sc-border);
  font-size:13px; letter-spacing:.06em;
}
.woocommerce table.shop_table th {
  font-size:11px; letter-spacing:.25em;
  text-transform:uppercase; color:var(--sc-dim);
  font-weight:400;
}

/* MY ACCOUNT */
.woocommerce-account .woocommerce-MyAccount-navigation {
  width:220px; float:left;
  border:1px solid var(--sc-border);
  margin-right:40px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style:none; padding:0; margin:0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display:block; padding:12px 20px;
  font-size:12px; letter-spacing:.15em;
  text-transform:uppercase;
  border-bottom:1px solid var(--sc-border);
  transition:background .3s, color .3s;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background:var(--sc-black); color:var(--sc-bg);
}
.woocommerce-account .woocommerce-MyAccount-content {
  overflow:hidden;
  font-size:14px; line-height:1.85;
  color:var(--sc-dim); letter-spacing:.04em;
}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width:1024px) {
  .sc-products-grid { grid-template-columns:repeat(2,1fr); }
  .woocommerce ul.products { grid-template-columns:repeat(2,1fr); }
  .woocommerce div.product .related.products ul.products,
  .woocommerce div.product .up-sells.upsells.products ul.products { grid-template-columns:repeat(2,1fr); }
  .sc-concept-inner { grid-template-columns:1fr; gap:48px; }
  .woocommerce div.product { grid-template-columns:1fr; }
  .woocommerce-account .woocommerce-MyAccount-navigation {
    width:100%; float:none; margin-right:0; margin-bottom:24px;
  }
  .sc-hamburger { display:flex; }
  .sc-nav { display:none; }
}
@media (max-width:768px) {
  #sc-header { padding:16px 20px; }
  .sc-section { padding:72px 20px; }
  .sc-section--padleft { padding-left:20px; }
  .sc-hero-content { padding:0 20px 60px; }
  .sc-hero-side-label, .sc-hero-right-tag, .sc-side-label { display:none; }
  .sc-cat-grid { grid-template-columns:1fr 1fr; }
  .sc-cat-item:nth-child(1) { grid-column:span 2; }
  .sc-footer-top { flex-direction:column; gap:36px; }
  .sc-footer-cols { flex-direction:column; gap:28px; }
  .woocommerce ul.products { grid-template-columns:1fr; }
  .sc-archive-wrap { padding:0 20px 60px; }
  .woocommerce .woocommerce-breadcrumb { padding:12px 20px; }
  .woocommerce .woocommerce-message,
  .woocommerce .woocommerce-info,
  .woocommerce .woocommerce-error { margin:12px 0; }
  .woocommerce form.checkout { padding:0; }
  .woocommerce div.product { padding:40px 20px 60px; gap:40px; }
  .woocommerce-cart .woocommerce { padding:0 20px 60px; }
  .woocommerce table.cart td.product-thumbnail { display:none; }
  .woocommerce table.cart td { padding:12px 8px; }
  .woocommerce table.cart td.product-name a { font-size:16px; }
  .woocommerce .cart-collaterals { margin-top:32px; }
  .woocommerce .cart_totals { padding:24px; max-width:100%; }
  .woocommerce .coupon { flex-wrap:wrap; }
  .woocommerce .coupon .input-text { width:100%; }
  .sc-stats { flex-wrap:wrap; gap:24px; }
  .sc-single-thumbnail { margin-top:28px; }
  .sc-single-thumbnail img { max-height:320px; }
  .sc-single-body { margin-top:32px; }
  .sc-single-nav { flex-direction:column; gap:20px; }
  .sc-single-nav-item { max-width:100%; }
  .sc-single-nav-next { text-align:left; }
}
