/* =========================================================
   carpediem — main.css
   墨黒 × シャンパンゴールドの高級アクセサリーブランド
   JS非依存で表示保証・省モーション尊重・レスポンシブ最新
   ========================================================= */

:root{
  /* 色 */
  --c-ink:#0c0a09;        /* 主要な黒 */
  --c-ink-2:#141110;      /* やや明るい黒 */
  --c-ink-3:#1c1917;      /* 面の黒 */
  --c-fg:#141110;         /* 本文文字 */
  --c-muted:#6b655e;      /* 補助文字 */
  --c-paper:#faf9f7;      /* 生成りの背景 */
  --c-paper-2:#f2efea;    /* もう一段沈めた背景 */
  --c-line:#e6e1d9;       /* 罫線(明) */
  --c-line-dark:rgba(255,255,255,.14); /* 罫線(暗) */
  --c-white:#ffffff;
  --c-gold:#c4a05c;       /* シャンパンゴールド(暗背景用) */
  --c-gold-soft:#d8c39a;
  --c-gold-deep:#8a6a2f;  /* 明背景でコントラスト確保 */

  /* フォント */
  --font-serif:"Cormorant","Times New Roman",serif;                         /* 欧文ディスプレイ */
  --font-sans-en:"Montserrat","Helvetica Neue",Arial,sans-serif;            /* 欧文ラベル */
  --font-mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif; /* 和文見出し */
  --font-gothic:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;/* 和文本文 */

  /* 余白スケール */
  --space-1:8px; --space-2:16px; --space-3:24px; --space-4:32px;
  --space-5:48px; --space-6:64px; --space-7:96px; --space-8:128px;

  --container:1240px;
  --container-narrow:820px;
  --header-h:84px;
  --radius:2px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;
  font-family:var(--font-gothic);
  font-size:16px;line-height:1.9;
  color:var(--c-fg);
  background:var(--c-paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;transition:color .3s var(--ease),opacity .3s var(--ease);}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;}
ul,ol{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,p,figure,dl,dd{margin:0;}
:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px;}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(20px,5vw,56px);}
.container--narrow{max-width:var(--container-narrow);}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:fixed;top:-100px;left:12px;z-index:1000;background:var(--c-ink);color:#fff;padding:12px 18px;border-radius:var(--radius);}
.skip-link:focus{top:12px;}

.section{padding-block:clamp(64px,9vw,128px);}
.notice{padding:24px;border:1px solid var(--c-line);color:var(--c-muted);text-align:center;border-radius:var(--radius);}

/* ---------- typography helpers ---------- */
.eyebrow{
  font-family:var(--font-sans-en);
  font-size:.72rem;font-weight:500;letter-spacing:.34em;text-transform:uppercase;
  color:var(--c-muted);margin-bottom:20px;
}
.eyebrow--gold{color:var(--c-gold);}
.section-title{
  font-family:var(--font-mincho);
  font-weight:600;line-height:1.42;letter-spacing:.02em;
  font-size:clamp(1.7rem,3.4vw,2.6rem);
  color:var(--c-ink);
}
.section-title--light{color:var(--c-white);}
.section-title--sm{font-size:clamp(1.3rem,2.4vw,1.7rem);}
.section-sub{margin-top:16px;color:var(--c-muted);font-size:.98rem;letter-spacing:.02em;}
.lead{font-size:1.06rem;line-height:2.05;letter-spacing:.02em;}

.section-head{max-width:720px;margin-bottom:clamp(36px,5vw,60px);}
.section-head--split{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;max-width:none;}
.section-foot{margin-top:clamp(36px,5vw,56px);text-align:center;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--font-gothic);font-size:.9rem;font-weight:500;letter-spacing:.08em;
  padding:16px 30px;border-radius:var(--radius);
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.btn .cd-icon{transition:transform .35s var(--ease);}
.btn:hover .cd-icon{transform:translateX(5px);}
.btn--light{background:var(--c-white);color:var(--c-ink);}
.btn--light:hover{background:var(--c-gold);color:var(--c-ink);}
.btn--dark{background:var(--c-ink);color:var(--c-white);}
.btn--dark:hover{background:var(--c-ink-3);color:var(--c-gold-soft);}
.btn--outline{border:1px solid var(--c-ink);color:var(--c-ink);}
.btn--outline:hover{background:var(--c-ink);color:var(--c-white);}
.btn--ghost{border:1px solid var(--c-line-dark);color:var(--c-white);}
.btn--ghost:hover{border-color:var(--c-gold);color:var(--c-gold);}
.btn--sm{padding:12px 22px;font-size:.82rem;}

.link-arrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-sans-en);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c-gold);}
.link-arrow .cd-icon{transition:transform .35s var(--ease);}
.link-arrow:hover .cd-icon{transform:translateX(6px);}
.link-arrow--dark{color:var(--c-ink);}
.link-arrow--sm{font-size:.76rem;}

/* ---------- reveal(JS非依存が既定) ---------- */
[data-reveal]{opacity:1;transform:none;}
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.js [data-reveal].is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  [data-reveal],.js [data-reveal],.js [data-reveal].is-visible{opacity:1!important;transform:none!important;transition:none!important;}
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--header-h);
  display:flex;align-items:center;
  color:var(--c-white);
  transition:color .4s var(--ease);
}
/* すりガラス背景は擬似要素へ(罠7:祖先のbackdrop-filterがfixedの基準にならないように) */
.site-header::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:0;
  background:rgba(12,10,9,.86);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--c-line-dark);
  transition:opacity .5s var(--ease);
}
.site-header.is-scrolled::before,
body:not(.is-front) .site-header::before{opacity:1;}
body:not(.is-front){--anchor-pad:var(--header-h);}
body:not(.is-front) .site-main{padding-top:var(--header-h);}

.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;}

/* brand wordmark */
.brand-wordmark{display:inline-flex;flex-direction:column;line-height:1;}
.brand-wordmark__name{font-family:var(--font-serif);font-size:1.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;}
.brand-wordmark__sub{font-family:var(--font-sans-en);font-size:.56rem;letter-spacing:.5em;text-transform:uppercase;margin-top:5px;padding-left:.4em;opacity:.85;}
.custom-logo{max-height:44px;width:auto;}
.custom-logo-link{display:inline-flex;align-items:center;}
.brand-logo{display:inline-flex;align-items:center;}
.brand-logo__img{height:42px;width:auto;display:block;}
.brand-logo--footer .brand-logo__img{height:38px;}

/* primary nav */
.main-navigation .nav-menu{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px);}
.main-navigation .nav-menu a{
  font-family:var(--font-sans-en);font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  position:relative;padding:6px 0;
}
.main-navigation .nav-menu a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--c-gold);transition:width .35s var(--ease);}
.main-navigation .nav-menu a:hover{color:var(--c-gold-soft);}
.main-navigation .nav-menu a:hover::after,
.main-navigation .current-menu-item>a::after{width:100%;}
.main-navigation .sub-menu{display:none;}

/* utils */
.site-header__utils{display:flex;align-items:center;gap:6px;}
.util-btn{width:44px;height:44px;display:grid;place-items:center;color:inherit;border-radius:50%;transition:background .3s var(--ease),color .3s var(--ease);}
.util-btn:hover{color:var(--c-gold);background:rgba(255,255,255,.06);}

.nav-toggle{display:none;width:46px;height:46px;place-items:center;}
.nav-toggle__box{position:relative;width:24px;height:14px;}
.nav-toggle__line{position:absolute;left:0;width:100%;height:1.5px;background:currentColor;transition:transform .4s var(--ease),opacity .3s var(--ease);}
.nav-toggle__line:nth-child(1){top:0;}
.nav-toggle__line:nth-child(2){top:6px;}
.nav-toggle__line:nth-child(3){top:12px;}

/* search bar */
.site-search{position:absolute;top:100%;left:0;right:0;background:rgba(12,10,9,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--c-line-dark);}
.site-search[hidden]{display:none;}
.site-search__inner{display:flex;align-items:center;gap:20px;padding-block:22px;}
.site-search__close{width:44px;height:44px;display:grid;place-items:center;color:#fff;flex-shrink:0;}
.site-search .search-form{flex:1;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--c-line-dark);}
.site-search .search-form__field{flex:1;background:transparent;border:0;color:#fff;font-size:1.05rem;padding:12px 0;font-family:var(--font-mincho);}
.site-search .search-form__field::placeholder{color:rgba(255,255,255,.4);}
.site-search .search-form__submit{color:var(--c-gold);width:40px;height:40px;display:grid;place-items:center;}

.nav-overlay{position:fixed;inset:0;z-index:90;background:rgba(12,10,9,.5);opacity:0;transition:opacity .4s var(--ease);}
.nav-overlay[hidden]{display:none;}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;color:#fff;isolation:isolate;background:var(--c-ink);}
.hero__media{position:absolute;inset:0;z-index:-3;}
.hero__video,.hero__poster,.hero__fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.hero__fallback{
  background:
    radial-gradient(120% 90% at 72% 30%,#2a2320 0%,transparent 58%),
    linear-gradient(135deg,#0c0a09 0%,#221c17 55%,#0c0a09 100%);
  animation:heroBreath 16s ease-in-out infinite alternate;
}
@keyframes heroBreath{to{transform:scale(1.07) translateY(-1.5%);}}
.hero__scrim{position:absolute;inset:0;z-index:-2;
  background:
    linear-gradient(90deg,rgba(12,10,9,.92) 0%,rgba(12,10,9,.55) 34%,transparent 62%),
    linear-gradient(180deg,rgba(12,10,9,.5) 0%,transparent 30%,rgba(12,10,9,.55) 100%);
}
.hero__grain{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.4;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");}

.hero__content{position:relative;z-index:2;max-width:720px;padding-block:120px;}
.hero__eyebrow{font-family:var(--font-mincho);font-size:.98rem;letter-spacing:.14em;margin-bottom:26px;color:rgba(255,255,255,.9);}
.hero__title{
  font-family:var(--font-serif);font-weight:500;
  font-size:clamp(2.6rem,6.2vw,5rem);line-height:1.08;letter-spacing:.005em;
  margin-bottom:30px;
}
.hero__line{display:block;white-space:nowrap;}
.hero__char{display:inline-block;line-height:1.06;will-change:transform,opacity;}
.js .hero__char{opacity:0;transform:translateY(30px);}
.js .hero.is-revealed .hero__char{animation:charIn 1s var(--ease) forwards;animation-delay:calc(.2s + var(--i)*.045s);}
@keyframes charIn{to{opacity:1;transform:none;}}
.hero__lead{font-size:1rem;line-height:2;color:rgba(255,255,255,.82);max-width:32em;margin-bottom:40px;}
.hero__actions{display:flex;gap:16px;flex-wrap:wrap;}

.hero__index{position:absolute;left:clamp(20px,5vw,56px);top:50%;transform:translateY(-50%);z-index:2;display:flex;flex-direction:column;gap:22px;}
.hero__index-item{font-family:var(--font-sans-en);font-size:.72rem;letter-spacing:.2em;color:rgba(255,255,255,.4);position:relative;padding-left:34px;}
.hero__index-item::before{content:"";position:absolute;left:0;top:50%;width:22px;height:1px;background:rgba(255,255,255,.3);}
.hero__index-item.is-active{color:#fff;}
.hero__index-item.is-active::before{width:30px;background:var(--c-gold);}

.hero__scroll{position:absolute;right:clamp(20px,4vw,44px);top:50%;transform:translateY(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:16px;writing-mode:vertical-rl;}
.hero__scroll-text{font-family:var(--font-sans-en);font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.hero__scroll-line{width:1px;height:70px;background:linear-gradient(to bottom,var(--c-gold),transparent);position:relative;overflow:hidden;}
.hero__scroll-line::after{content:"";position:absolute;top:-40%;left:0;width:100%;height:40%;background:var(--c-gold);animation:scrollLine 2.4s ease-in-out infinite;}
@keyframes scrollLine{0%{top:-40%;}60%,100%{top:100%;}}

.hero__sound{position:absolute;right:clamp(20px,4vw,44px);bottom:34px;z-index:3;width:46px;height:46px;border:1px solid var(--c-line-dark);border-radius:50%;display:grid;place-items:center;color:#fff;transition:border-color .3s var(--ease),color .3s var(--ease);}
.hero__sound:hover{border-color:var(--c-gold);color:var(--c-gold);}
.hero__sound-off{display:none;}
.hero__sound[aria-pressed="true"] .hero__sound-on{display:none;}
.hero__sound[aria-pressed="true"] .hero__sound-off{display:block;}

@media (prefers-reduced-motion:reduce){
  .hero__fallback,.hero__scroll-line::after{animation:none!important;}
  .js .hero__char{opacity:1!important;transform:none!important;animation:none!important;}
}

/* =========================================================
   CONCEPT + STATS
   ========================================================= */
.section--concept{background:var(--c-paper);}
.concept{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,6vw,90px);align-items:start;}
.concept__head{position:sticky;top:calc(var(--header-h) + 40px);}
.concept__text{color:var(--c-fg);}
.concept__stats{display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,56px);margin-top:clamp(40px,5vw,56px);padding-top:40px;border-top:1px solid var(--c-line);}
.stat{display:flex;flex-direction:column;}
.stat__num{font-family:var(--font-serif);font-size:clamp(2.4rem,5vw,3.4rem);font-weight:600;line-height:1;color:var(--c-ink);}
.stat__suffix{font-family:var(--font-serif);font-size:1.2rem;color:var(--c-gold-deep);margin-top:4px;}
.stat__label{font-family:var(--font-sans-en);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-muted);margin-top:12px;}

/* =========================================================
   ARRIVALS / ITEM CARDS
   ========================================================= */
.section--arrivals{background:var(--c-paper);}
.carousel-nav{display:flex;gap:12px;flex-shrink:0;}
.carousel-nav__btn{width:52px;height:52px;border:1px solid var(--c-line);border-radius:50%;display:grid;place-items:center;color:var(--c-ink);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);}
.carousel-nav__btn:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink);}
.carousel-nav__btn:disabled{opacity:.3;cursor:default;}

.item-carousel{overflow:hidden;margin-inline:calc(-1*clamp(20px,5vw,56px));padding-inline:clamp(20px,5vw,56px);}
.item-carousel__track{display:flex;gap:clamp(16px,2vw,28px);scroll-snap-type:x mandatory;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;}
.item-carousel__track::-webkit-scrollbar{display:none;}
.item-carousel__track > .item-card{flex:0 0 clamp(220px,25vw,290px);scroll-snap-align:start;}

.item-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,30px);}
.item-card{background:transparent;}
.item-card__link{display:block;}
.item-card__media{position:relative;aspect-ratio:1;overflow:hidden;background:var(--c-paper-2);border-radius:var(--radius);}
.item-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.item-card__link:hover .item-card__media img{transform:scale(1.05);}
.item-card__badge{position:absolute;top:12px;left:12px;background:var(--c-ink);color:#fff;font-family:var(--font-sans-en);font-size:.62rem;font-weight:600;letter-spacing:.14em;padding:6px 12px;}
.item-card__view{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(12,10,9,.86);color:#fff;font-size:.78rem;letter-spacing:.1em;transform:translateY(100%);transition:transform .4s var(--ease);}
.item-card__link:hover .item-card__view{transform:translateY(0);}
.item-card__body{padding-top:18px;}
.item-card__cat{font-family:var(--font-sans-en);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-muted);margin-bottom:8px;}
.item-card__title{font-family:var(--font-mincho);font-size:1.02rem;font-weight:500;line-height:1.5;color:var(--c-ink);}
.item-card__price{margin-top:10px;font-family:var(--font-serif);font-size:1.15rem;font-weight:600;color:var(--c-ink);}
.item-card__tax{font-family:var(--font-gothic);font-size:.7rem;color:var(--c-muted);margin-left:6px;}

/* =========================================================
   CRAFT
   ========================================================= */
.section--craft{background:var(--c-ink);color:#fff;}
.craft{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,6vw,80px);align-items:center;}
.craft__text{max-width:440px;}
.craft__lead{color:rgba(255,255,255,.78);margin:26px 0 34px;line-height:2.05;}
.craft__gallery{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:auto auto;gap:clamp(12px,1.6vw,20px);}
.craft__fig{overflow:hidden;border-radius:var(--radius);}
.craft__fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.craft__fig:hover img{transform:scale(1.06);}
.craft__fig--tall{grid-row:1 / span 2;}

/* =========================================================
   COLLECTIONS
   ========================================================= */
.section--collections{background:var(--c-paper);}
.collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);}
.collection-card{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius);display:block;}
.collection-card__media{position:absolute;inset:0;}
.collection-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);}
.collection-card:hover .collection-card__media img{transform:scale(1.06);}
.collection-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(12,10,9,.82) 100%);}
.collection-card__body{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:clamp(20px,3vw,32px);color:#fff;display:flex;flex-direction:column;gap:8px;}
.collection-card__count{font-family:var(--font-sans-en);font-size:.64rem;letter-spacing:.18em;color:var(--c-gold-soft);}
.collection-card__name{font-family:var(--font-mincho);font-size:1.4rem;font-weight:500;}
.collection-card__more{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;letter-spacing:.08em;opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease);}
.collection-card:hover .collection-card__more{opacity:1;transform:none;}

/* collections page rows */
.collection-list{display:flex;flex-direction:column;gap:clamp(28px,4vw,56px);}
.collection-row{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,4vw,60px);align-items:center;}
.collection-row--reverse{direction:rtl;}
.collection-row--reverse > *{direction:ltr;}
.collection-row__media{overflow:hidden;border-radius:var(--radius);aspect-ratio:16/10;}
.collection-row__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);}
.collection-row:hover .collection-row__media img{transform:scale(1.05);}
.collection-row__body{display:flex;flex-direction:column;gap:14px;}
.collection-row__eyebrow{font-family:var(--font-sans-en);font-size:.7rem;letter-spacing:.18em;color:var(--c-gold-deep);}
.collection-row__name{font-family:var(--font-mincho);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600;color:var(--c-ink);}
.collection-row__desc{color:var(--c-muted);}

/* =========================================================
   JOURNAL
   ========================================================= */
.section--journal{background:var(--c-paper-2);}
.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.5vw,36px);}
.journal-card__media{display:block;overflow:hidden;aspect-ratio:16/10;border-radius:var(--radius);}
.journal-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.journal-card:hover .journal-card__media img{transform:scale(1.05);}
.journal-card__body{padding-top:18px;}
.journal-card__date{font-family:var(--font-sans-en);font-size:.72rem;letter-spacing:.12em;color:var(--c-gold-deep);}
.journal-card__title{font-family:var(--font-mincho);font-size:1.08rem;font-weight:500;line-height:1.6;margin-top:10px;color:var(--c-ink);}

/* =========================================================
   CTA band
   ========================================================= */
.section--cta{position:relative;overflow:hidden;color:#fff;padding-block:clamp(90px,13vw,180px);isolation:isolate;}
.cta__bg{position:absolute;inset:0;z-index:-1;}
.cta__bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.cta__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,10,9,.72),rgba(12,10,9,.55));}
.cta__inner{text-align:center;max-width:640px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:24px;}
.cta__text{color:rgba(255,255,255,.85);}

/* =========================================================
   PAGE HERO / BREADCRUMBS
   ========================================================= */
.page-hero{position:relative;background:var(--c-ink);color:#fff;}
.page-hero--media{min-height:clamp(300px,44vh,480px);display:flex;align-items:flex-end;overflow:hidden;
  padding-top:calc(var(--header-h) + clamp(48px,8vw,96px));padding-bottom:clamp(44px,6vw,72px);}
.page-hero--media .container{position:relative;z-index:1;}
.page-hero__media{position:absolute;inset:0;z-index:0;}
.page-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 32%;}
.page-hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,10,9,.5),rgba(12,10,9,.35) 45%,rgba(12,10,9,.82)),linear-gradient(90deg,rgba(12,10,9,.55),transparent 60%);}
.page-hero__eyebrow{font-family:var(--font-sans-en);font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c-gold-soft);margin-bottom:16px;}
.page-hero__title{font-family:var(--font-mincho);font-size:clamp(1.9rem,4.4vw,3rem);font-weight:600;line-height:1.3;letter-spacing:.02em;}
.page-hero__title--article{font-size:clamp(1.6rem,3.6vw,2.5rem);max-width:20em;}
.page-hero__desc{margin-top:18px;color:rgba(255,255,255,.85);max-width:40em;line-height:1.9;}

.breadcrumbs{background:var(--c-paper);border-bottom:1px solid var(--c-line);}
.breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-block:16px;font-size:.76rem;color:var(--c-muted);}
.breadcrumbs__item{display:flex;align-items:center;gap:10px;}
.breadcrumbs__item:not(:first-child)::before{content:"/";color:var(--c-line);}
.breadcrumbs__item a:hover{color:var(--c-gold-deep);}
.breadcrumbs__item.is-current{color:var(--c-ink);}

/* =========================================================
   SHOP filter / single item
   ========================================================= */
.shop-filter{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:clamp(36px,5vw,56px);}
.shop-filter__link{font-family:var(--font-sans-en);font-size:.78rem;letter-spacing:.1em;padding:10px 22px;border:1px solid var(--c-line);border-radius:100px;color:var(--c-muted);transition:all .3s var(--ease);}
.shop-filter__link:hover{border-color:var(--c-ink);color:var(--c-ink);}
.shop-filter__link.is-current{background:var(--c-ink);color:#fff;border-color:var(--c-ink);}

.single-item__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:start;}
.single-item__media{position:relative;overflow:hidden;border-radius:var(--radius);aspect-ratio:1;background:var(--c-paper-2);}
.single-item__media img{width:100%;height:100%;object-fit:cover;}
.single-item__badge{position:absolute;top:16px;left:16px;background:var(--c-ink);color:#fff;font-family:var(--font-sans-en);font-size:.64rem;letter-spacing:.14em;padding:7px 14px;}
.single-item__info{position:sticky;top:calc(var(--header-h) + 30px);}
.single-item__cat{font-family:var(--font-sans-en);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c-gold-deep);margin-bottom:14px;}
.single-item__title{font-family:var(--font-mincho);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600;line-height:1.4;color:var(--c-ink);}
.single-item__price{font-family:var(--font-serif);font-size:1.7rem;font-weight:600;margin-top:16px;color:var(--c-ink);}
.single-item__tax{font-family:var(--font-gothic);font-size:.8rem;color:var(--c-muted);margin-left:8px;}
.single-item__desc{margin:26px 0;color:var(--c-fg);line-height:2;}
.single-item__spec{border-top:1px solid var(--c-line);margin:26px 0;}
.single-item__spec-row{display:flex;gap:20px;padding:14px 0;border-bottom:1px solid var(--c-line);font-size:.92rem;}
.single-item__spec-row dt{width:100px;flex-shrink:0;color:var(--c-muted);}
.single-item__note{font-size:.82rem;color:var(--c-muted);margin-top:16px;}
.single-item__related{margin-top:clamp(56px,8vw,96px);}
.single-item__related .section-title{margin-bottom:36px;}
.single-item__actions .btn{width:100%;justify-content:center;}

/* =========================================================
   ENTRY CONTENT(本文タイポグラフィ)
   ========================================================= */
.layout-with-sidebar{display:grid;grid-template-columns:1fr 300px;gap:clamp(40px,5vw,72px);align-items:start;}
.entry-content{font-size:1rem;line-height:2.05;color:var(--c-fg);}
.entry-content > *+*{margin-top:1.5em;}
.entry-content h2{font-family:var(--font-mincho);font-size:clamp(1.35rem,2.6vw,1.7rem);font-weight:600;margin:2em 0 .8em;padding-bottom:.5em;border-bottom:1px solid var(--c-line);}
.entry-content h3{font-family:var(--font-mincho);font-size:1.25rem;font-weight:600;margin:1.8em 0 .5em;position:relative;padding-left:16px;}
.entry-content h3::before{content:"";position:absolute;left:0;top:.3em;bottom:.3em;width:3px;background:var(--c-gold);}
.entry-content h4{font-weight:700;font-size:1.08rem;margin:1.6em 0 .4em;}
.entry-content p{margin:0;}
.entry-content a{color:var(--c-gold-deep);text-decoration:underline;text-underline-offset:3px;}
.entry-content a:hover{color:var(--c-ink);}
.entry-content ul,.entry-content ol{padding-left:1.4em;}
.entry-content ul{list-style:disc;}
.entry-content ol{list-style:decimal;}
.entry-content li{margin:.4em 0;}
.entry-content li::marker{color:var(--c-gold-deep);}
.entry-content blockquote{border-left:3px solid var(--c-gold);padding:10px 24px;margin:1.6em 0;background:var(--c-paper-2);color:var(--c-muted);font-style:italic;}
.entry-content img{border-radius:var(--radius);margin:1.4em 0;}
.entry-content table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.94rem;}
.entry-content th,.entry-content td{border:1px solid var(--c-line);padding:12px 16px;text-align:left;}
.entry-content th{background:var(--c-paper-2);font-weight:700;}
.entry-content code{background:var(--c-paper-2);padding:2px 7px;border-radius:3px;font-size:.9em;}
.entry-content hr{border:0;border-top:1px solid var(--c-line);margin:2.5em 0;}
.page-links{margin-top:2em;display:flex;gap:8px;align-items:center;}

/* article extras */
.entry-tags{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.entry-tags__label{font-family:var(--font-sans-en);font-size:.7rem;letter-spacing:.16em;color:var(--c-muted);margin-right:6px;}
.entry-tags a{font-size:.8rem;padding:6px 14px;border:1px solid var(--c-line);border-radius:100px;color:var(--c-muted);}
.entry-tags a:hover{border-color:var(--c-ink);color:var(--c-ink);}

.post-nav{display:flex;justify-content:space-between;gap:20px;margin-top:56px;padding-top:32px;border-top:1px solid var(--c-line);}
.post-nav a{display:inline-flex;align-items:center;gap:10px;font-size:.9rem;color:var(--c-muted);max-width:22em;}
.post-nav a:hover{color:var(--c-ink);}
.post-nav__next{margin-left:auto;text-align:right;}

/* =========================================================
   JOURNAL LIST / entry-card / pagination
   ========================================================= */
.journal-list{display:flex;flex-direction:column;gap:clamp(28px,4vw,48px);}
.entry-card{display:grid;grid-template-columns:300px 1fr;gap:clamp(20px,3vw,40px);align-items:center;}
.entry-card__media{overflow:hidden;border-radius:var(--radius);aspect-ratio:4/3;}
.entry-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.entry-card:hover .entry-card__media img{transform:scale(1.05);}
.entry-card__meta{display:flex;gap:16px;align-items:center;font-family:var(--font-sans-en);font-size:.74rem;letter-spacing:.1em;color:var(--c-gold-deep);margin-bottom:12px;}
.entry-card__cat{color:var(--c-muted);}
.entry-card__title{font-family:var(--font-mincho);font-size:clamp(1.15rem,2vw,1.4rem);font-weight:600;line-height:1.5;margin-bottom:12px;}
.entry-card__title a:hover{color:var(--c-gold-deep);}
.entry-card__excerpt{color:var(--c-muted);font-size:.94rem;margin-bottom:16px;}

.pagination{margin-top:clamp(48px,6vw,72px);}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;}
.pagination .page-numbers{display:grid;place-items:center;min-width:46px;height:46px;padding:0 8px;border:1px solid var(--c-line);border-radius:var(--radius);font-family:var(--font-sans-en);font-size:.86rem;color:var(--c-fg);transition:all .3s var(--ease);}
.pagination a.page-numbers:hover{border-color:var(--c-ink);background:var(--c-ink);color:#fff;}
.pagination .page-numbers.current{background:var(--c-ink);color:#fff;border-color:var(--c-ink);}
.pagination .page-numbers.dots{border:0;}

/* =========================================================
   SEARCH / 404 / empty
   ========================================================= */
.search-results{display:grid;gap:8px;}
.search-result{border-bottom:1px solid var(--c-line);}
.search-result a{display:block;padding:28px 0;transition:padding .3s var(--ease);}
.search-result a:hover{padding-left:12px;}
.search-result__type{font-family:var(--font-sans-en);font-size:.68rem;letter-spacing:.16em;color:var(--c-gold-deep);}
.search-result__title{font-family:var(--font-mincho);font-size:1.3rem;font-weight:600;margin:8px 0;}
.search-result__excerpt{color:var(--c-muted);font-size:.92rem;}

.empty-state{text-align:center;padding:clamp(48px,8vw,96px) 0;}
.empty-state__lead{font-family:var(--font-mincho);font-size:1.4rem;margin-bottom:12px;}
.empty-state__form{max-width:440px;margin:32px auto 0;}
.empty-state .search-form,.error-404__search .search-form{display:flex;gap:10px;border:1px solid var(--c-line);border-radius:var(--radius);padding:6px 6px 6px 18px;}
.empty-state .search-form__field,.error-404__search .search-form__field{flex:1;border:0;background:transparent;padding:10px 0;font-size:1rem;color:var(--c-fg);}
.empty-state .search-form__submit,.error-404__search .search-form__submit{width:46px;height:46px;background:var(--c-ink);color:#fff;border-radius:var(--radius);display:grid;place-items:center;}

.error-404{position:relative;min-height:80vh;display:flex;align-items:center;color:#fff;overflow:hidden;isolation:isolate;padding-top:var(--header-h);}
.error-404__bg{position:absolute;inset:0;z-index:-1;}
.error-404__bg img{width:100%;height:100%;object-fit:cover;}
.error-404__scrim{position:absolute;inset:0;background:rgba(12,10,9,.72);}
.error-404__inner{text-align:center;max-width:620px;margin-inline:auto;}
.error-404__code{font-family:var(--font-serif);font-size:clamp(5rem,15vw,9rem);line-height:1;color:var(--c-gold);}
.error-404__title{font-family:var(--font-mincho);font-size:clamp(1.4rem,3vw,2rem);font-weight:600;margin:16px 0;}
.error-404__text{color:rgba(255,255,255,.82);margin-bottom:32px;}
.error-404__actions{display:flex;justify-content:center;margin-bottom:28px;}
.error-404__search{max-width:420px;margin-inline:auto;}
.error-404__search .search-form{background:rgba(255,255,255,.95);}

/* =========================================================
   CONTACT / CF7
   ========================================================= */
.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,5vw,72px);align-items:start;}
.contact-intro__lead{font-size:1.02rem;line-height:2;margin-bottom:32px;}
.contact-info{border-top:1px solid var(--c-line);}
.contact-info__row{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--c-line);}
.contact-info__row dt{display:flex;align-items:center;gap:10px;width:130px;flex-shrink:0;font-family:var(--font-sans-en);font-size:.78rem;letter-spacing:.08em;color:var(--c-muted);}
.contact-info__row dt .cd-icon{color:var(--c-gold-deep);}
.contact-info__row dd a:hover{color:var(--c-gold-deep);}
.contact-note{font-size:.82rem;color:var(--c-muted);margin-top:20px;line-height:1.9;}
.contact-fallback{padding:32px;border:1px dashed var(--c-line);border-radius:var(--radius);text-align:center;color:var(--c-muted);}
.contact-fallback__note{font-size:.86rem;margin-top:10px;}

.wpcf7 .cf7-row{margin-bottom:22px;}
.wpcf7 label{display:block;font-size:.88rem;font-weight:500;color:var(--c-fg);}
.wpcf7 .req{font-family:var(--font-sans-en);font-size:.62rem;letter-spacing:.1em;color:#fff;background:var(--c-gold-deep);padding:3px 8px;border-radius:2px;margin-left:8px;vertical-align:middle;}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 select,.wpcf7 textarea{
  width:100%;margin-top:10px;padding:14px 16px;border:1px solid var(--c-line);border-radius:var(--radius);
  font-family:var(--font-gothic);font-size:1rem;color:var(--c-fg);background:var(--c-white);transition:border-color .3s var(--ease);
}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{outline:0;border-color:var(--c-gold-deep);}
.wpcf7 textarea{resize:vertical;min-height:140px;}
.wpcf7 .cf7-quiz{margin-bottom:18px;font-size:.9rem;}
.wpcf7 .cf7-quiz input{width:auto;display:inline-block;min-width:120px;margin-left:10px;}
.wpcf7-acceptance{display:block;margin:8px 0 24px;font-size:.88rem;color:var(--c-muted);}
.wpcf7-acceptance a{color:var(--c-gold-deep);text-decoration:underline;}
.wpcf7 .cf7-submit{margin-top:8px;}
.wpcf7 .wpcf7-submit{background:var(--c-ink);color:#fff;font-family:var(--font-gothic);font-size:.95rem;letter-spacing:.08em;padding:16px 48px;border-radius:var(--radius);cursor:pointer;transition:background .3s var(--ease);width:100%;}
.wpcf7 .wpcf7-submit:hover{background:var(--c-ink-3);}
.wpcf7-not-valid-tip{color:#c0392b;font-size:.82rem;margin-top:6px;}
.wpcf7 .wpcf7-response-output{margin:20px 0 0;padding:14px 18px;border-radius:var(--radius);font-size:.9rem;}

/* =========================================================
   ABOUT page rows
   ========================================================= */
.about-lead{font-family:var(--font-mincho);font-size:clamp(1.2rem,2.4vw,1.6rem);line-height:2;text-align:center;color:var(--c-ink);}
.about-sections{background:var(--c-paper-2);}
.about-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center;margin-bottom:clamp(40px,6vw,80px);}
.about-row:last-child{margin-bottom:0;}
.about-row--reverse{direction:rtl;}
.about-row--reverse > *{direction:ltr;}
.about-row__media{overflow:hidden;border-radius:var(--radius);aspect-ratio:4/3;}
.about-row__media img{width:100%;height:100%;object-fit:cover;}
.about-row__num{font-family:var(--font-serif);font-size:2.4rem;color:var(--c-gold-deep);line-height:1;}
.about-row__title{font-family:var(--font-mincho);font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:600;margin:14px 0 18px;color:var(--c-ink);}
.about-row__body{color:var(--c-fg);line-height:2.05;}

/* =========================================================
   SIDEBAR / widgets
   ========================================================= */
.sidebar .widget{margin-bottom:40px;}
.widget-title{font-family:var(--font-mincho);font-size:1.1rem;font-weight:600;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--c-line);}
.sidebar ul{display:flex;flex-direction:column;gap:10px;}
.sidebar a:hover{color:var(--c-gold-deep);}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{background:var(--c-ink);color:rgba(255,255,255,.72);}
.site-footer__main{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:clamp(32px,4vw,64px);padding-block:clamp(56px,7vw,88px);}
.site-footer .brand-wordmark__name{color:#fff;}
.site-footer__message{margin-top:20px;font-size:.9rem;line-height:1.9;max-width:30em;}
.site-footer__sns{display:flex;gap:14px;margin-top:24px;}
.site-footer__sns a{width:42px;height:42px;border:1px solid var(--c-line-dark);border-radius:50%;display:grid;place-items:center;color:rgba(255,255,255,.8);transition:all .3s var(--ease);}
.site-footer__sns a:hover{border-color:var(--c-gold);color:var(--c-gold);}
.site-footer__nav .footer-menu{display:flex;flex-direction:column;gap:14px;}
.site-footer__nav a{font-size:.92rem;}
.site-footer__nav a:hover{color:var(--c-gold-soft);}
.footer-info__row{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--c-line-dark);font-size:.88rem;}
.footer-info__row dt{color:var(--c-gold);flex-shrink:0;}
.site-footer__info .btn{margin-top:22px;}
.site-footer__bottom{border-top:1px solid var(--c-line-dark);}
.site-footer__bottom-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:22px;flex-wrap:wrap;}
.site-footer__copy,.site-footer__credit{font-family:var(--font-sans-en);font-size:.72rem;letter-spacing:.08em;color:rgba(255,255,255,.5);}
.site-footer__credit a{color:rgba(255,255,255,.7);}
.site-footer__credit a:hover{color:var(--c-gold);}

/* to-top */
.to-top{position:fixed;right:24px;bottom:24px;z-index:80;width:48px;height:48px;background:var(--c-ink);color:#fff;border:1px solid var(--c-line-dark);border-radius:50%;display:grid;place-items:center;transform:rotate(180deg);opacity:0;visibility:hidden;transition:opacity .4s var(--ease),background .3s var(--ease);}
.to-top.is-visible{opacity:1;visibility:visible;}
.to-top:hover{background:var(--c-gold);color:var(--c-ink);}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1200px){
  .item-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:1024px){
  :root{--header-h:72px;}
  .main-navigation{position:fixed;inset:0;z-index:95;background:rgba(12,10,9,.98);
    display:flex;flex-direction:column;justify-content:center;align-items:center;
    transform:translateX(100%);transition:transform .5s var(--ease);}
  .main-navigation.is-open{transform:none;}
  .main-navigation .nav-menu{flex-direction:column;gap:8px;text-align:center;}
  .main-navigation .nav-menu a{font-size:1.05rem;padding:14px;letter-spacing:.2em;}
  .nav-toggle{display:grid;}
  body.nav-open{overflow:hidden;}
  body.nav-open .nav-toggle__line:nth-child(1){transform:translateY(6px) rotate(45deg);}
  body.nav-open .nav-toggle__line:nth-child(2){opacity:0;}
  body.nav-open .nav-toggle__line:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
  .concept{grid-template-columns:1fr;gap:40px;}
  .concept__head{position:static;}
  .craft{grid-template-columns:1fr;gap:40px;}
  .collection-grid{grid-template-columns:repeat(2,1fr);}
  .layout-with-sidebar{grid-template-columns:1fr;}
  .contact-layout{grid-template-columns:1fr;}
  .single-item__grid{grid-template-columns:1fr;gap:32px;}
  .single-item__info{position:static;}
  .site-footer__main{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  .section-head--split{flex-direction:column;align-items:flex-start;}
  .item-grid{grid-template-columns:repeat(2,1fr);}
  .journal-grid{grid-template-columns:1fr;gap:28px;}
  .collection-row,.collection-row--reverse{grid-template-columns:1fr;direction:ltr;gap:20px;}
  .about-row,.about-row--reverse{grid-template-columns:1fr;direction:ltr;gap:24px;}
  .about-row--reverse .about-row__media{order:-1;}
  .entry-card{grid-template-columns:1fr;}
  .entry-card__media{aspect-ratio:16/9;}
  .hero__index{display:none;}
  .hero__scroll{display:none;}
  .hero__content{padding-block:100px;}
  .post-nav{flex-direction:column;gap:16px;}
  .post-nav__next{margin-left:0;text-align:left;}
  .site-footer__main{grid-template-columns:1fr;gap:36px;}
  .site-footer__bottom-inner{flex-direction:column;align-items:flex-start;gap:8px;}
}
@media (max-width:520px){
  .collection-grid{grid-template-columns:1fr;}
  .item-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .craft__gallery{grid-template-columns:1fr 1fr;}
  .brand-wordmark__name{font-size:1.35rem;}
  .btn{padding:14px 24px;}
  .hero__line{white-space:normal;}
}

/* 印刷 */
@media print{
  .site-header,.site-footer,.to-top,.hero__scroll,.hero__sound{display:none;}
}
