/* =========================================================================
 * Attractive v27 — UI/UX リニューアル（いちばん最後に読み込まれます）
 *
 *  方針：商品写真が主役。白地で写真を見せ、装飾は罫線とタイポグラフィだけにします。
 *        スマホ（375〜430px）を基準に組み、PCでは列数と余白を広げます。
 *
 *  0. 基本（色・文字・フォーカス）
 *  1. ヘッダー（お知らせ／ナビ／ITEM一覧／検索／スマホメニュー）
 *  2. 共通：セクション見出し・グリッド・横スクロール
 *  3. 商品カード
 *  4. トップページ（ヒーロー／WOMEN・MEN／ランキング／アイテム／特集／お知らせ）
 *  5. 商品一覧
 *  6. 商品詳細
 *  7. フッター
 *  8. 動きを減らす設定
 *
 *  クラス名は ah-（ヘッダー）、ac-（商品カード）、at27-（各ページ）、af-（フッター）で始まり、
 *  これまでのCSSと重ならないようにしています。
 * ========================================================================= */

/* 0. 基本 ---------------------------------------------------------------- */
:root {
  --a-ink: #1d1c1a;
  --a-ink2: #4f4b45;
  --a-mute: #6f6a62;
  --a-line: #e6e2dc;
  --a-paper: #f5f3ef;
  --a-photo: #f2f0ec;
  --a-gold: #86682c;
  --a-sale: #9b3426;
  --a-w: min(1360px, calc(100% - 32px));
  --a-head: 56px;
  --a-en: 'Cormorant Garamond', 'Times New Roman', serif;
  --a-ja: 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  --a-serif: 'Noto Serif JP', 'Hiragino Mincho ProN', serif;
}
@media (min-width: 900px) { :root { --a-w: min(1360px, calc(100% - 64px)); --a-head: 72px; } }

body { color: var(--a-ink); background: #fff; }
a { color: inherit; }
.ah :focus-visible, .ac :focus-visible, .at27-home :focus-visible, .at27-shop :focus-visible, .af :focus-visible, .at27-pdp :focus-visible {
  outline: 2px solid var(--a-gold); outline-offset: 2px;
}
html.ah-lock { overflow: hidden; }

/* 1. ヘッダー -------------------------------------------------------------- */
.ah-notice {
  display: flex; align-items: center; justify-content: center; gap: 24px;
  min-height: 32px; padding: 6px 16px; background: var(--a-ink); color: #f1eee8;
  font-size: 11.5px; letter-spacing: .04em; line-height: 1.5; text-align: center;
}
.ah-notice p { margin: 0; }
.ah-notice a { display: none; color: #cfc9bf; text-decoration: none; }
.ah-notice a:hover { color: #fff; }
@media (min-width: 900px) {
  .ah-notice { justify-content: space-between; padding: 6px max(32px, calc((100% - 1360px) / 2)); font-size: 12px; }
  .ah-notice a { display: inline; }
}

.ah { position: sticky; top: 0; z-index: 900; background: #fff; border-bottom: 1px solid var(--a-line); }
.admin-bar .ah { top: 46px; }
@media (min-width: 783px) { .admin-bar .ah { top: 32px; } }
.ah-inner {
  width: var(--a-w); margin: 0 auto; height: var(--a-head);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
}
.ah-left, .ah-tools { display: flex; align-items: center; }
.ah-tools { justify-content: flex-end; }
.ah-left { margin-left: -10px; }
.ah-tools { margin-right: -10px; }
.ah-icon {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; border: 0; background: none; color: var(--a-ink);
  cursor: pointer; text-decoration: none;
}
.ah-icon:hover { color: var(--a-gold); }
/* v27.4：アイコンの下に文字（お気に入り・マイページ・カート など） */
.ah-icon { flex-direction: column; gap: 4px; width: auto; min-width: 44px; height: 48px; padding: 0 4px; }
.ah-icon-label { font: 400 10px/1 var(--a-ja); letter-spacing: 0; white-space: nowrap; color: inherit; }
.ah-burger-lines { position: relative; display: block; width: 20px; height: 20px; }
.ah-burger-lines span { position: absolute; left: 0; width: 20px; height: 1.5px; background: currentColor; }
.ah-burger-lines span:first-child { top: 6px; }
.ah-burger-lines span:last-child { top: 13px; width: 14px; }
.ah-logo { display: block; flex: none; line-height: 0; }
.ah-logo img { display: block; width: 124px !important; max-width: none !important; height: auto !important; }
.ah-pc { display: none; }
.ah-nav { display: none; }
.ah-searchbar { display: none; }
.ah .at-cart-count {
  position: absolute; top: 2px; right: calc(50% - 20px); display: none;
  min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; box-sizing: border-box;
  background: var(--a-ink); color: #fff; font: 600 10px/17px var(--a-ja); text-align: center; letter-spacing: 0;
}
.ah .at-cart-count.is-active { display: block; }

@media (min-width: 900px) {
  .ah-inner { grid-template-columns: auto minmax(0, 1fr) auto; gap: 24px; }
  .ah-left, .ah-sp { display: none; }
  .ah-pc { display: inline-flex; }
  .ah-logo img { width: 176px !important; }
  .ah-tools { gap: 6px; }
  .ah-icon { min-width: 56px; height: 56px; }
  .ah-icon-label { font-size: 11px; }
  .ah-inner { height: 84px; }
  .ah-searchbar { display: flex !important; justify-self: center; align-items: center; gap: 10px; width: min(440px, 100%); height: 44px; border-bottom: 1px solid var(--a-ink); color: var(--a-ink); }
  .ah-searchbar svg { flex: none; }
  .ah-searchbar input[type=search] { flex: 1; min-width: 0; height: 42px; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; font: 14px var(--a-ja); color: var(--a-ink); outline: none; }
  .ah-searchbar input::placeholder { color: var(--a-mute); }
  .ah-searchbar:focus-within { border-bottom-width: 2px; }
  .ah-nav { display: block; border-top: 1px solid var(--a-line); }
  .ah-icon { background: none !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
  .ah-nav > ul { display: flex; justify-content: center; gap: clamp(8px, 3vw, 48px); width: var(--a-w); margin: 0 auto; padding: 0; list-style: none; }
  .ah-nav > ul > li > a, .ah-nav > ul > li > button {
    display: flex; align-items: center; height: 48px; padding: 0 8px; border: 0; background: none; white-space: nowrap;
    font: 400 14px/1 var(--a-ja); letter-spacing: .06em; color: var(--a-ink); text-decoration: none; cursor: pointer;
    box-shadow: inset 0 -2px 0 transparent; transition: box-shadow .2s;
  }
  .ah-nav > ul > li > a:hover, .ah-nav > ul > li > button:hover, .ah-has-menu.is-open > button { box-shadow: inset 0 -2px 0 var(--a-ink); }
  .ah-has-menu > button { background: none !important; color: var(--a-ink) !important; border: 0 !important; border-radius: 0 !important; }
  .ah-has-menu > button::after { content: ''; width: 5px; height: 5px; margin-left: 8px; border: solid currentColor; border-width: 0 1px 1px 0; transform: translateY(-2px) rotate(45deg); }
}
.ah-mega { display: none; }
@media (min-width: 900px) {
  .ah-mega { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid var(--a-line); border-bottom: 1px solid var(--a-line); }
  .ah-has-menu.is-open .ah-mega { display: block; }
  .ah-mega-inner { width: var(--a-w); margin: 0 auto; padding: 24px 0 28px; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
  .ah-mega-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 20px; flex: 1; margin: 0; padding: 0; list-style: none; }
  .ah-mega-cats a { display: grid; gap: 8px; color: var(--a-ink); text-decoration: none; font-size: 13px; }
  .ah-mega-cats img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--a-photo); }
  .ah-mega-cats a:hover span { text-decoration: underline; text-underline-offset: 4px; }
  .ah-mega-all { flex: none; font-size: 13px; color: var(--a-ink); text-underline-offset: 4px; }
}

.ah-search { border-top: 1px solid var(--a-line); background: #fff; padding: 16px 0 20px; }
.ah-search[hidden] { display: none; }
.ah-search form { width: var(--a-w); max-width: 720px; margin: 0 auto; display: flex; }
.ah-search input[type=search] {
  flex: 1; min-width: 0; height: 48px; padding: 0 14px; border: 1px solid var(--a-ink); border-right: 0; border-radius: 0;
  font: 16px var(--a-ja); background: #fff; color: var(--a-ink);
}
.ah-search button { height: 48px; padding: 0 22px; border: 0; background: var(--a-ink); color: #fff; font: 500 14px var(--a-ja); cursor: pointer; }
.ah-search-cats { width: var(--a-w); max-width: 720px; margin: 14px auto 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.ah-search-cats a { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1px solid var(--a-line); font-size: 12.5px; text-decoration: none; color: var(--a-ink2); }
.ah-search-cats a:hover { border-color: var(--a-ink); color: var(--a-ink); }

.ah-overlay { position: fixed; inset: 0; z-index: 990; background: rgba(20, 19, 17, .4); opacity: 0; transition: opacity .2s; }
.ah-overlay.is-open { opacity: 1; }
.ah-menu {
  position: fixed; z-index: 1000; top: 0; bottom: 0; left: 0; width: min(88vw, 380px);
  display: flex; flex-direction: column; background: #fff; transform: translateX(-100%); transition: transform .22s ease;
}
.ah-menu.is-open { transform: none; }
.ah-menu[hidden], .ah-overlay[hidden] { display: none; }
.ah-menu-head { display: flex; align-items: center; justify-content: space-between; height: 56px; padding: 0 6px 0 20px; border-bottom: 1px solid var(--a-line); }
.ah-menu-head span { font: 500 12px var(--a-ja); letter-spacing: .14em; }
.ah-menu-scroll { flex: 1; overflow-y: auto; padding: 20px 20px 40px; }
.ah-menu-gender { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 28px; }
.ah-menu-gender a { display: flex; flex-direction: column; justify-content: center; min-height: 64px; padding: 10px 14px; border: 1px solid var(--a-ink); text-decoration: none; color: var(--a-ink); }
.ah-menu-gender span { font: 500 15px/1.3 var(--a-ja); letter-spacing: .04em; }
.ah-menu-gender small { margin-top: 2px; font: 500 11px/1 var(--a-en); letter-spacing: .1em; color: var(--a-mute); }
.ah-menu-label { margin: 0 0 6px; font: 500 11px var(--a-ja); letter-spacing: .14em; color: var(--a-mute); }
.ah-menu-cats, .ah-menu-links, .ah-menu-sub { margin: 0; padding: 0; list-style: none; }
.ah-menu-cats a { display: flex; align-items: center; gap: 14px; min-height: 56px; border-bottom: 1px solid var(--a-line); text-decoration: none; color: var(--a-ink); font-size: 14.5px; }
.ah-menu-cats img { width: 40px; height: 40px; object-fit: cover; background: var(--a-photo); }
.ah-menu-links { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ah-menu-links a { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 60px; background: var(--a-paper); text-decoration: none; color: var(--a-ink); font: 500 12px var(--a-ja); letter-spacing: .1em; }
.ah-menu-links small { margin-top: 2px; font-size: 10.5px; letter-spacing: 0; color: var(--a-mute); font-weight: 400; }
.ah-menu-sub { margin-top: 24px; }
.ah-menu-sub a { display: flex; align-items: center; min-height: 44px; font-size: 13.5px; color: var(--a-ink2); text-decoration: none; }

/* 2. 共通 ------------------------------------------------------------------ */
.at27-sec { width: var(--a-w); margin: 48px auto 0; }
@media (min-width: 900px) { .at27-sec { margin-top: 72px; } }
.at27-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 0 0 20px; }
@media (min-width: 900px) { .at27-head { margin-bottom: 28px; } }
.at27-title { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin: 0; padding: 0; border: 0; font-weight: 400; line-height: 1; }
.at27-title::before, .at27-title::after { content: none !important; }
.at27-title-en { font: 600 22px/1 var(--a-en); letter-spacing: .1em; text-transform: uppercase; color: var(--a-ink); }
.at27-title-ja { font: 400 12px/1.4 var(--a-ja); letter-spacing: .06em; color: var(--a-mute); }
@media (min-width: 900px) { .at27-title-en { font-size: 28px; } .at27-title-ja { font-size: 12.5px; } }
.at27-all, .at27-more a {
  flex: none; font-size: 13px; color: var(--a-ink); text-decoration: underline; text-decoration-color: #bdb6aa; text-underline-offset: 5px;
}
.at27-all:hover, .at27-more a:hover { text-decoration-color: var(--a-ink); }
.at27-more { margin: 20px 0 0; text-align: right; }

.at27-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
@media (min-width: 900px) { .at27-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 44px 24px; } }
@media (max-width: 599px) { .at27-home .at27-grid > :nth-child(n+7) { display: none; } }
@media (min-width: 900px) and (max-width: 1199px) { .at27-grid--6 > :nth-child(n+9) { display: none; } }
@media (min-width: 1200px) { .at27-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 36px 20px; } }

.at27-rail {
  display: grid; grid-auto-flow: column; grid-auto-columns: 44%; gap: 12px;
  margin: 0 -16px; padding: 0 16px 4px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px;
  scrollbar-width: none; overscroll-behavior-x: contain;
}
.at27-rail::-webkit-scrollbar { display: none; }
.at27-rail > * { scroll-snap-align: start; }
.at27-rank .at27-rail { grid-auto-columns: calc(50% - 22px); }
@media (min-width: 600px) { .at27-rail, .at27-rank .at27-rail { grid-auto-columns: 30%; } }
@media (min-width: 900px) {
  .at27-rail { grid-auto-flow: row; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 44px 24px; margin: 0; padding: 0; overflow: visible; }
  .at27-rail--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .at27-rail--5 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
  .at27-rail--5 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 36px 20px; }
}

/* 3. 商品カード ------------------------------------------------------------ */
.ac { position: relative; min-width: 0; margin: 0; }
.ac-media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--a-photo); }
.ac-media .ac-img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; transition: opacity .35s ease; }
.ac-media .ac-img-alt { opacity: 0; }
@media (hover: hover) { .ac:hover .ac-media.has-alt .ac-img-alt { opacity: 1; } }
.ac-noimg { position: absolute; inset: 0; display: grid; place-items: center; font: 12px var(--a-en); letter-spacing: .1em; color: var(--a-mute); }
.ac-flags { position: absolute; z-index: 1; top: 8px; left: 8px; display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.ac-flag { padding: 3px 6px 2px; background: #fff; font: 600 10px/1.3 var(--a-ja); letter-spacing: .08em; color: var(--a-ink); }
.ac-flag--sale { background: var(--a-sale); color: #fff; }
.ac.is-soldout .ac-img { opacity: .55; }
.ac-soldout {
  position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 7px 0; background: rgba(255, 255, 255, .88);
  font: 600 10.5px/1.3 var(--a-ja); letter-spacing: .14em; text-align: center; color: var(--a-ink); pointer-events: none;
}
.ac-media > .at-wish-btn {
  position: absolute !important; z-index: 2; top: 2px !important; right: 2px !important; left: auto !important;
  display: grid !important; place-items: center; width: 44px !important; height: 44px !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important;
  color: var(--a-ink);
}
.ac-media > .at-wish-btn .at-wish-icon { width: 18px; height: 18px; }
.ac-media > .at-wish-btn.is-active { color: var(--a-sale); }
.ac-media > .at-wish-btn.is-active .at-wish-icon path { fill: currentColor; }
.ac-body { padding-top: 10px; }
.ac-name { display: block; margin: 0; padding: 0; border: 0; font: 400 13px/1.6 var(--a-ja); letter-spacing: .02em; color: var(--a-ink); }
.ac-name::before, .ac-name::after { content: none; }
.ac-link { color: inherit; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ac-link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.ac:hover .ac-link { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #bdb6aa; }
.ac.has-rank .ac-name { display: flex; gap: 8px; align-items: baseline; }
.ac.has-rank .ac-name { align-items: flex-start; }
.ac-rank {
  flex: none; display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 4px; margin-top: 0; box-sizing: border-box;
  background: var(--a-ink); color: #fff; font: 600 12px/1 var(--a-ja); font-variant-numeric: tabular-nums; letter-spacing: 0;
}
.ac.has-rank .ac-link { flex: 1; min-width: 0; }
.ac-price { margin: 4px 0 0; font: 500 14px/1.5 var(--a-ja); font-variant-numeric: tabular-nums; color: var(--a-ink); }
.ac-price del { margin-right: 6px; font-weight: 400; font-size: 12px; color: var(--a-mute); }
.ac-price ins { text-decoration: none; color: var(--a-sale); }
.ac-price .woocommerce-price-suffix { font-size: 11px; color: var(--a-mute); }
.ac-low { margin: 2px 0 0; font-size: 11.5px; color: var(--a-sale); }
.ac .at-rating { margin-top: 4px; }
@media (min-width: 900px) { .ac-name { font-size: 13.5px; } .ac-price { font-size: 14.5px; } .ac-flag { font-size: 10.5px; } }

/* 4. トップページ ---------------------------------------------------------- */
/* ヒーロー：PCは高さを抑え、下の新着が見えるように。スマホ専用画像がある場合は縦長で */
@media (min-width: 900px) { .at27-home .at-bnr-slide img { max-height: min(62vh, 620px); } }
@media (max-width: 640px) {
  .at27-home .at-bnr-slide picture:has(source) img { aspect-ratio: 4 / 5; max-height: 72svh; }
}

.at27-home .at-bnr { margin-bottom: 0 !important; padding-bottom: 0 !important; }

/* WOMEN / MEN */
.at27-gender { display: grid; gap: 28px; }
.at27-gender-col { display: grid; grid-template-columns: 36% minmax(0, 1fr); gap: 16px; align-items: start; }
.at27-gender-photo { display: block; color: var(--a-ink); text-decoration: none; }
.at27-gender-photo img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--a-photo); }
.at27-gender-name { display: flex; flex-direction: column; gap: 2px; margin-top: 10px; }
.at27-gender-name span { font: 500 17px/1.3 var(--a-ja); letter-spacing: .06em; }
.at27-gender-name small { font: 500 11px/1.3 var(--a-en); letter-spacing: .12em; color: var(--a-mute); }
.at27-gender-cats { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--a-line); }
.at27-gender-cats a {
  display: flex; align-items: center; justify-content: space-between; min-height: 46px; border-bottom: 1px solid var(--a-line);
  font-size: 13.5px; color: var(--a-ink); text-decoration: none;
}
.at27-gender-cats a::after { content: ''; width: 6px; height: 6px; border: solid var(--a-mute); border-width: 1px 1px 0 0; transform: rotate(45deg); margin-right: 4px; }
@media (min-width: 900px) {
  .at27-gender { grid-template-columns: 1fr 1fr; gap: 24px; }
  .at27-gender-col { display: block; }
  .at27-gender-photo { position: relative; overflow: hidden; }
  .at27-gender-photo img { aspect-ratio: 5 / 2; transition: transform .6s ease; }
  .at27-gender-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 19, 17, .55), rgba(20, 19, 17, 0) 55%); pointer-events: none; }
  .at27-gender-photo:hover img { transform: scale(1.02); }
  .at27-gender-name { position: absolute; z-index: 1; left: 24px; bottom: 20px; flex-direction: row; align-items: baseline; gap: 14px; margin: 0; color: #fff; }
  .at27-gender-name span { font: 500 26px/1 var(--a-ja); letter-spacing: .08em; }
  .at27-gender-name small { font-size: 12.5px; color: #fff; }
  .at27-gender-cats { display: flex; flex-wrap: wrap; gap: 4px 0; margin-top: 10px; border: 0; }
  .at27-gender-cats a { min-height: 32px; padding-right: 16px; border: 0; font-size: 13px; color: var(--a-ink2); }
  .at27-gender-cats a::after { content: none; }
  .at27-gender-cats li + li a::before { content: '/'; margin-right: 16px; color: #c9c3b8; }
  .at27-gender-cats a:hover { color: var(--a-ink); text-decoration: underline; text-underline-offset: 4px; }
}

/* ランキング：旧デザインの枠・背景を打ち消す */
.at27-home .at27-rank { border: 0 !important; }
.at27-tabs { display: flex; }
.at27-tabs .at-rank-tab {
  min-height: 40px !important; padding: 0 14px !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important;
  border-bottom: 1px solid var(--a-line) !important; background: none !important; box-shadow: none !important;
  font: 400 13px var(--a-ja) !important; color: var(--a-mute) !important; cursor: pointer;
}
.at27-tabs .at-rank-tab.is-active { border-bottom-color: var(--a-ink) !important; color: var(--a-ink) !important; font-weight: 500 !important; }

/* アイテムから探す */
.at27-items-list {
  display: grid; grid-auto-flow: column; grid-auto-columns: 27%; gap: 12px;
  margin: 0 -16px; padding: 0 16px 4px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.at27-items-list::-webkit-scrollbar { display: none; }
.at27-items-list li { scroll-snap-align: start; }
.at27-items-list a { display: grid; gap: 8px; text-decoration: none; color: var(--a-ink); }
.at27-items-img { display: block; aspect-ratio: 1; overflow: hidden; background: var(--a-photo); }
.at27-items-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.at27-items-name { font-size: 12.5px; line-height: 1.4; text-align: center; }
@media (min-width: 900px) {
  .at27-items-list { grid-auto-flow: row; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 24px; margin: 0; padding: 0; overflow: visible; }
  .at27-items-list a:hover img { transform: scale(1.03); }
  .at27-items-name { font-size: 13.5px; }
}

/* PICK UP（特集4枠）：スマホは横スクロール、PCは4列 */
.at27-feature-list {
  display: grid; grid-auto-flow: column; grid-auto-columns: 78%; gap: 12px;
  margin: 0 -16px; padding: 0 16px 4px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.at27-feature-list::-webkit-scrollbar { display: none; }
.at27-feature-list > li { scroll-snap-align: start; min-width: 0; }
.at27-feature-item { display: block; color: var(--a-ink); text-decoration: none; }
.at27-feature-img { display: block; overflow: hidden; background: var(--a-photo); }
.at27-feature-img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .6s ease; }
.at27-feature-text { display: grid; gap: 4px; margin-top: 12px; }
.at27-feature-label { font: 500 10.5px/1.3 var(--a-ja); letter-spacing: .14em; color: var(--a-gold); }
.at27-feature-title { font: 500 14.5px/1.55 var(--a-ja); letter-spacing: .03em; }
.at27-feature-desc { font-size: 12.5px; line-height: 1.7; color: var(--a-mute); }
@media (min-width: 900px) {
  .at27-feature-list { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; overflow: visible; }
  .at27-feature-item:hover img { transform: scale(1.02); }
  .at27-feature-item:hover .at27-feature-title { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #bdb6aa; }
}

/* お知らせ（ヒーロー下の1行） */
.at27-info {
  display: flex; align-items: center; gap: 12px; width: var(--a-w); margin: 16px auto 0; padding: 12px 16px; box-sizing: border-box;
  background: #fff; border-top: 1px solid var(--a-line); border-bottom: 1px solid var(--a-line); font-size: 13px;
}
.at27-info-label { flex: none; font-weight: 500; font-size: 12px; letter-spacing: .06em; color: var(--a-ink); }
.at27-info-link { display: flex; gap: 12px; align-items: baseline; flex: 1; min-width: 0; color: var(--a-ink); text-decoration: none; }
.at27-info-link time { flex: none; font-size: 12px; color: var(--a-mute); font-variant-numeric: tabular-nums; }
.at27-info-link span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.at27-info-link:hover span { text-decoration: underline; text-underline-offset: 3px; }
.at27-info-all { flex: none; font-size: 12px; color: var(--a-ink); text-underline-offset: 4px; }
@media (max-width: 599px) { .at27-info-link time { display: none; } }
@media (min-width: 900px) { .at27-info { justify-content: center; margin-top: 20px; padding: 14px 24px; } .at27-info-link { flex: 0 1 auto; } }

/* お知らせ */
.at27-news-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--a-line); }
.at27-news-list a { display: flex; gap: 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--a-line); text-decoration: none; color: var(--a-ink); font-size: 13.5px; }
.at27-news-list time { flex: none; font-size: 12px; color: var(--a-mute); font-variant-numeric: tabular-nums; }
.at27-news-list span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.at27-news-list a:hover span { text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 900px) {
  .at27-news { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 40px; align-items: start; }
  .at27-news .at27-head { flex-direction: column; align-items: flex-start; gap: 16px; margin: 0; }
  .at27-news-list a { gap: 32px; padding: 16px 0; }
}

/* 5. 商品一覧 -------------------------------------------------------------- */
.at27-shop { width: var(--a-w); margin: 0 auto; padding-bottom: 24px; }
.at27-shop-head { padding: 22px 0 14px; }
.at27-shop-label { margin: 0 0 6px; font: 500 11px/1 var(--a-ja); letter-spacing: .14em; color: var(--a-gold); }
.at27-shop-title { margin: 0; padding: 0; border: 0; font: 500 22px/1.4 var(--a-serif); letter-spacing: .04em; color: var(--a-ink); }
.at27-shop-lead { max-width: 640px; margin: 8px 0 0; font-size: 13px; line-height: 1.8; color: var(--a-mute); }
@media (min-width: 900px) { .at27-shop-head { padding: 40px 0 20px; } .at27-shop-title { font-size: 28px; } }

.at27-shop-nav { display: grid; gap: 12px; }
.at27-seg { display: inline-flex; justify-self: start; border: 1px solid var(--a-ink); }
.at27-seg a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 18px; font-size: 13px; color: var(--a-ink); text-decoration: none; }
.at27-seg a + a { border-left: 1px solid var(--a-ink); }
.at27-seg a.is-active { background: var(--a-ink); color: #fff; }
.at27-chips {
  display: flex; gap: 6px; margin: 0 -16px; padding: 0 16px 2px; list-style: none; overflow-x: auto; scrollbar-width: none;
}
.at27-chips::-webkit-scrollbar { display: none; }
.at27-chips a {
  display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; white-space: nowrap;
  border: 1px solid var(--a-line); font-size: 13px; color: var(--a-ink2); text-decoration: none;
}
.at27-chips a:hover { border-color: var(--a-ink2); }
.at27-chips a.is-active { border-color: var(--a-ink); color: var(--a-ink); font-weight: 500; }
@media (min-width: 900px) { .at27-chips { flex-wrap: wrap; margin: 0; padding: 0; overflow: visible; } }

.at27-shop-bar {
  position: sticky; top: var(--a-head); z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 52px; margin: 16px -16px 20px; padding: 6px 16px; background: rgba(255, 255, 255, .97);
  border-top: 1px solid var(--a-line); border-bottom: 1px solid var(--a-line);
}
.admin-bar .at27-shop-bar { top: calc(var(--a-head) + 46px); }
@media (min-width: 783px) { .admin-bar .at27-shop-bar { top: calc(var(--a-head) + 32px); } }
@media (min-width: 900px) { .at27-shop-bar { position: static; margin: 24px 0 28px; padding: 6px 0; background: none; } }
.at27-shop-count { margin: 0; font-size: 12.5px; color: var(--a-mute); white-space: nowrap; }
.at27-shop-count strong { margin-right: 2px; font-weight: 500; color: var(--a-ink); font-variant-numeric: tabular-nums; }
.at27-shop-tools { display: flex; align-items: center; gap: 8px; min-width: 0; }
.at27-shop-tools form { margin: 0 !important; }
.at27-shop-tools .at-refine { display: flex; align-items: center; gap: 6px; }
.at27-shop-tools .at-refine-field span { display: none; }
.at27-shop-tools select {
  height: 38px; max-width: 46vw; padding: 0 28px 0 10px !important; border: 1px solid var(--a-line) !important; border-radius: 0 !important;
  background-color: #fff; font: 13px var(--a-ja); color: var(--a-ink);
}
.at27-shop-tools .at-refine-clear { font-size: 12px; color: var(--a-mute); }
@media (min-width: 900px) { .at27-shop-tools .at-refine-field span { display: inline; margin-right: 6px; font-size: 12.5px; color: var(--a-mute); } }
@media (min-width: 900px) and (max-width: 1199px) { .at27-grid--shop { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.at27-empty { padding: 48px 0; text-align: center; font-size: 14px; color: var(--a-mute); }
.at27-empty a { display: inline-block; margin-top: 12px; color: var(--a-ink); text-underline-offset: 4px; }
.at27-pagination { margin-top: 48px; }
.at27-pagination ul.page-numbers { display: flex !important; justify-content: center; gap: 4px; border: 0 !important; }
.at27-pagination ul.page-numbers li { border: 0 !important; }
.at27-pagination .page-numbers a, .at27-pagination .page-numbers span {
  display: inline-grid !important; place-items: center; min-width: 44px; height: 44px; padding: 0 6px !important; font-size: 13px; color: var(--a-ink);
}
.at27-pagination .page-numbers .current { background: var(--a-ink) !important; color: #fff !important; }

/* 6. 商品詳細 -------------------------------------------------------------- */
.at27-pdp .at-product-main-img { aspect-ratio: 1 / 1; overflow: hidden; background: var(--a-photo); border-radius: 0; }
.at27-pdp .at-product-main-img img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; transition: opacity .3s; }
.at27-pdp .at-product-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.at27-pdp .at-thumb { width: 72px; height: 72px; padding: 0; overflow: hidden; border: 1px solid transparent; border-radius: 0; background: var(--a-photo); cursor: pointer; opacity: .7; flex-shrink: 0; transition: opacity .2s, border-color .2s; }
.at27-pdp .at-thumb.active, .at27-pdp .at-thumb:hover { opacity: 1; border-color: var(--a-ink); }
.at27-pdp .at-thumb img { width: 100%; height: 100%; object-fit: cover; }
.at27-swipe { display: none; }
@media (max-width: 899px) {
  .at27-swipe { display: block; position: relative; width: 100vw; margin-left: calc(50% - 50vw); }
  .at27-swipe + .at-product-gallery { display: none; }
  .at27-swipe-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
  .at27-swipe-track::-webkit-scrollbar { display: none; }
  .at27-swipe-item { flex: 0 0 100%; margin: 0; aspect-ratio: 1; background: var(--a-photo); scroll-snap-align: start; }
  .at27-swipe-item img { width: 100%; height: 100%; object-fit: cover; }
  .at27-swipe-count { position: absolute; right: 12px; bottom: 12px; margin: 0; padding: 3px 9px; background: rgba(255, 255, 255, .9); font-size: 11.5px; font-variant-numeric: tabular-nums; color: var(--a-ink); }
}
.at27-pdp .at-product-detail-name { font: 500 20px/1.55 var(--a-ja); letter-spacing: .03em; color: var(--a-ink); }
.at27-pdp .at-product-detail-price { font: 500 20px/1.4 var(--a-ja); font-variant-numeric: tabular-nums; }
@media (min-width: 900px) { .at27-pdp .at-product-detail-name { font-size: 23px; } .at27-pdp .at-product-detail-price { font-size: 22px; } }
.at27-pdp form.cart .single_add_to_cart_button,
.at27-pdp .at-buybar .at-buybar-btn {
  min-height: 52px !important; border: 0 !important; border-radius: 2px !important; background: var(--a-ink) !important; color: #fff !important;
  font: 500 15px var(--a-ja) !important; letter-spacing: .08em !important; box-shadow: none !important;
}
.at27-pdp form.cart .single_add_to_cart_button:hover,
.at27-pdp .at-buybar .at-buybar-btn:hover { background: #3a3733 !important; }
.at27-zoom { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(20, 19, 17, .9); }
.at27-zoom::backdrop { background: transparent; }
.at27-zoom img { position: absolute; inset: 0; margin: auto; max-width: 94vw; max-height: 90vh; object-fit: contain; cursor: zoom-out; }
.at27-zoom-close { position: absolute; z-index: 1; top: 8px; right: 8px; width: 48px; height: 48px; border: 0; background: none; color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }

/* 7. フッター -------------------------------------------------------------- */
.af { margin-top: 88px; background: var(--a-ink); color: #cfc9bf; font-size: 13px; }
@media (min-width: 900px) { .af { margin-top: 120px; } }
.af a { color: inherit; text-decoration: none; }
.af a:hover { color: #fff; }
.af-service { display: grid; margin: 0; padding: 0 16px; list-style: none; border-bottom: 1px solid #36332f; }
.af-service li + li { border-top: 1px solid #36332f; }
.af-service a { display: flex; align-items: baseline; gap: 14px; padding: 14px 0; }
.af-service strong { flex: none; width: 4em; font-weight: 500; color: #fff; }
.af-service span { font-size: 12.5px; }
@media (min-width: 900px) {
  .af-service { grid-template-columns: repeat(3, 1fr); padding: 0 max(32px, calc((100% - 1360px) / 2)); }
  .af-service li + li { border-top: 0; border-left: 1px solid #36332f; padding-left: 28px; }
  .af-service a { padding: 22px 0; }
}
.af-main { width: var(--a-w); margin: 0 auto; padding: 36px 0 12px; }
@media (min-width: 900px) { .af-main { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 40px; padding: 56px 0 48px; } }
.af-brand { padding-bottom: 24px; }
.af-logo img { width: 168px; height: auto; filter: brightness(0) invert(1); }
.af-brand p { max-width: 320px; margin: 16px 0 0; font-size: 12.5px; line-height: 1.9; color: #b9b3a8; }
.af-sns { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.af-sns a { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #4a4640; border-radius: 50%; color: #e9e4dc; }
.af-sns a:hover { border-color: #bca16a; }
.af-sns svg { width: 18px; height: 18px; }
.af-group { border-top: 1px solid #36332f; }
.af-group summary {
  display: flex; align-items: center; justify-content: space-between; min-height: 52px; cursor: pointer; list-style: none;
  font: 500 12px var(--a-ja); letter-spacing: .14em; color: #fff;
}
.af-group summary::-webkit-details-marker { display: none; }
.af-group summary::after { content: '+'; font: 300 18px/1 var(--a-ja); color: #9d978c; }
.af-group[open] summary::after { content: '−'; }
.af-group ul { margin: 0; padding: 0 0 16px; list-style: none; }
.af-group a { display: flex; align-items: center; min-height: 40px; }
@media (min-width: 900px) {
  .af-group { border: 0; }
  .af-group summary { min-height: 0; margin-bottom: 14px; pointer-events: none; }
  .af-group summary::after { content: none; }
  .af-group a { min-height: 34px; }
}
.af-bottom {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; width: var(--a-w); margin: 0 auto; padding: 18px 0 calc(18px + env(safe-area-inset-bottom));
  border-top: 1px solid #36332f; font-size: 11px; letter-spacing: .08em; color: #9d978c;
}
.af-bottom small { font-size: inherit; }
/* 商品ページのスマホ固定購入バーとフッターが重ならないように */
@media (max-width: 899px) { .single-product .af-bottom { padding-bottom: calc(88px + env(safe-area-inset-bottom)); } }

/* ランキング：メンズ・レディースを上下に並べる（v27.1） */
.at27-rank-group + .at27-rank-group { margin-top: 40px; }
.at27-rank-sub { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--a-line); }
.at27-rank-sub h3 { margin: 0; padding: 0; border: 0; font: 500 15px/1.4 var(--a-ja); letter-spacing: .06em; color: var(--a-ink); }
.at27-rank-sub h3::before, .at27-rank-sub h3::after { content: none; }
@media (min-width: 900px) { .at27-rank-group + .at27-rank-group { margin-top: 56px; } .at27-rank-sub { margin-bottom: 20px; } }

/* =========================================================================
 * 9. 全ページの統一（v27.1）
 *    旧CSSの見た目を上書きして、ボタン・見出し・文字色・番号の表記をそろえます。
 * ========================================================================= */

/* 9-1. クリック時の点線枠を出さない（キーボード操作時の枠は残す） */
a:focus:not(:focus-visible), button:focus:not(:focus-visible), summary:focus:not(:focus-visible), [tabindex]:focus:not(:focus-visible) { outline: none !important; }

/* 9-2. ボタン：主ボタン＝墨色、副ボタン＝白地に墨の線。角丸2px・高さ48px・同じ書体 */
#page .at-btn, #page .at-btn-outline, #page .at-btn-solid,
#page a.button, #page button.button, #page input.button, #page input[type=submit].button,
#page #place_order, #page .checkout-button, #page .wc-proceed-to-checkout a,
#page .at-guest-entry .at-btn, #page .at-restock-row button, #page .at-refine-submit,
#atCartDrawer .at-btn, #atCartDrawer .at-btn-solid {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 28px !important; box-sizing: border-box;
  border: 1px solid var(--a-ink) !important; border-radius: 2px !important; box-shadow: none !important;
  background: #fff !important; color: var(--a-ink) !important;
  font: 500 14px/1.4 var(--a-ja) !important; letter-spacing: .06em !important; text-decoration: none !important; text-transform: none !important;
  cursor: pointer; transition: background .2s, color .2s, border-color .2s;
}
#page .at-btn-solid, #page a.button.alt, #page button.button.alt, #page #place_order, #page .checkout-button,
#page .wc-proceed-to-checkout a, #page .at-guest-entry .at-btn, #page .at-restock-row button, #page .at-refine-submit,
#page .single_add_to_cart_button, #atCartDrawer .at-btn-solid {
  background: var(--a-ink) !important; color: #fff !important; border-color: var(--a-ink) !important;
}
#page .at-btn:hover, #page .at-btn-outline:hover, #page a.button:hover, #page button.button:hover, #page input.button:hover,
#page .at-btn:focus-visible, #page .at-btn-outline:focus-visible { background: var(--a-ink) !important; color: #fff !important; }
#page .at-btn-solid:hover, #page a.button.alt:hover, #page button.button.alt:hover, #page #place_order:hover, #page .checkout-button:hover,
#page .wc-proceed-to-checkout a:hover, #page .at-guest-entry .at-btn:hover, #page .at-restock-row button:hover, #page .at-refine-submit:hover,
#page .single_add_to_cart_button:hover { background: #3a3733 !important; border-color: #3a3733 !important; color: #fff !important; }
#atCartDrawer .at-btn-solid:hover { background: #3a3733 !important; color: #fff !important; }
#atCartDrawer .at-btn-full, #page .at-btn-full, #page #place_order, #page .wc-proceed-to-checkout a { width: 100%; }
#page .at-btn:disabled, #page .button:disabled, #page .button.disabled { opacity: .45 !important; cursor: default; }
#page .at-thanks-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
@media (max-width: 599px) { #page .at-thanks-actions > * { flex: 1 1 100%; } }

/* 9-3. 購入ステップ・番号：細い明朝体の数字をやめ、ゴシックの数字に統一 */
#page .at-step { font-family: var(--a-ja) !important; color: var(--a-mute); }
#page .at-step.is-current { color: var(--a-ink); font-weight: 500; }
#page .at-step-num, #page .at-step-num-sm {
  display: inline-grid !important; place-items: center; width: 24px !important; height: 24px !important; min-width: 24px;
  border: 1px solid #c9c3b8 !important; border-radius: 50% !important; background: #fff !important; color: var(--a-mute) !important;
  font: 600 12px/1 var(--a-ja) !important; font-variant-numeric: tabular-nums; letter-spacing: 0 !important;
}
#page .at-step.is-current .at-step-num, #page .at-step-num-sm.active { background: var(--a-ink) !important; border-color: var(--a-ink) !important; color: #fff !important; }
#page .at-step.is-done .at-step-num { border-color: var(--a-ink) !important; color: var(--a-ink) !important; }
#page .at-step a:hover { color: var(--a-ink); text-decoration: underline; text-underline-offset: 3px; }

/* 9-4. ページ見出し：3種類あった形（中央寄せ・色地・飾り線）を商品一覧と同じ形にそろえる */
#page .page-header, #page .at-page-header, #page .at-column-hero {
  width: min(1032px, calc(100% - 32px)); max-width: none; margin: 0 auto !important; padding: 24px 0 20px !important; box-sizing: border-box;
  background: none !important; border: 0 !important; min-height: 0 !important; text-align: left !important;
}
@media (min-width: 900px) { #page .page-header, #page .at-page-header, #page .at-column-hero { width: min(1032px, calc(100% - 64px)); padding: 40px 0 28px !important; } }
#page .page-header-deco, #page .page-divider { display: none !important; }
#page .page-header-en, #page .at-page-header-label, #page .at-column-hero-label {
  margin: 0 0 8px !important; font: 500 11px/1.4 var(--a-ja) !important; letter-spacing: .14em !important; color: var(--a-gold) !important; text-transform: uppercase;
}
#page .page-header-ja, #page .at-page-header-title, #page .at-column-hero-title {
  margin: 0 !important; padding: 0 !important; border: 0 !important;
  font: 500 22px/1.45 var(--a-serif) !important; letter-spacing: .04em !important; color: var(--a-ink) !important;
}
@media (min-width: 900px) { #page .page-header-ja, #page .at-page-header-title, #page .at-column-hero-title { font-size: 28px !important; } }
#page .at-page-header-sub, #page .at-column-hero-lead { margin: 8px 0 0 !important; font: 400 13px/1.8 var(--a-ja) !important; letter-spacing: .02em !important; color: var(--a-mute) !important; }

/* 9-5. 小見出し：金の縦線をやめ、文字と下線だけに */
#page .at-thanks-next h2, #page .at-recent-title, #page .at-page-body h2, #page .at-column-body h2, #page .at-checkout-pay-title, #page .at-address-card h2 {
  padding-left: 0 !important; border-left: 0 !important;
}
#page .at-thanks-next h2, #page .at-recent-title {
  margin: 0 0 16px !important; padding-bottom: 10px !important; border-bottom: 1px solid var(--a-line) !important;
  font: 500 16px/1.4 var(--a-ja) !important; letter-spacing: .06em !important; color: var(--a-ink) !important;
}
#page .at-page-body h2, #page .at-column-body h2 { padding-bottom: 8px !important; border-bottom: 1px solid var(--a-line) !important; font-family: var(--a-ja) !important; }
#page .woocommerce-message, #page .woocommerce-info, #page .woocommerce-error, #page .at-guest-checkout-note {
  border-left: 0 !important; border: 1px solid var(--a-line) !important; border-radius: 2px !important; background: var(--a-paper) !important;
}
#page .woocommerce-error { border-color: #e2c3bd !important; background: #fbf4f2 !important; }
#page .at-account-nav-item.is-active { border-left: 0 !important; background: var(--a-paper) !important; color: var(--a-ink) !important; font-weight: 500; box-shadow: inset 2px 0 0 var(--a-ink); }

/* 9-6. 商品名・価格の文字色をすべて墨色に（関連商品・最近見た商品・お気に入り・カート） */
#page .ac-name, #page .ac-link, #page .at-curated-grid .ac-link { color: var(--a-ink) !important; font-family: var(--a-ja) !important; font-weight: 400 !important; }
#page .at-curated-grid { gap: 28px 12px; }
@media (min-width: 900px) { #page .at-curated-grid { gap: 44px 24px; } }
#page .at-recent { border-top: 0 !important; }
#page .at-recent-inner { width: var(--a-w); max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }
#page .at-recent-card, #page .at-recent-card * { text-decoration: none !important; }
#page .at-recent-card-img { border-radius: 0 !important; background: var(--a-photo); }
#page .at-recent-card-name { color: var(--a-ink) !important; font: 400 12.5px/1.6 var(--a-ja) !important; margin-top: 8px; }
#page .at-recent-card-price { color: var(--a-ink) !important; font: 500 13px/1.5 var(--a-ja) !important; font-variant-numeric: tabular-nums; }
#page .at-recent-card:hover .at-recent-card-name { text-decoration: underline !important; text-underline-offset: 3px; text-decoration-color: #bdb6aa !important; }
#page .at-product-detail-cat a { color: var(--a-gold) !important; font: 500 11px/1.4 var(--a-ja) !important; letter-spacing: .14em; text-decoration: none; }
#page .at-wish-card-name, #page .at-drawer-item-name, #page .woocommerce-cart-form .product-name a { color: var(--a-ink) !important; text-decoration: none !important; }
#page .at-wish-card-price, #page .at-drawer-item-price, #page .amount { font-family: var(--a-ja) !important; font-variant-numeric: tabular-nums; }

/* 9-7. 本文リンクの色を統一（金の文字リンクはやめ、墨＋下線） */
#page .at-guide-wrap a:not([class]), #page .at-acc-body a, #page .at-page-body a:not([class]), #page .at-column-body a:not([class]),
#page .at-purchase-note a, #page .at-gift-note a, #page .woocommerce-privacy-policy-text a, #page .at-semi-order-link {
  color: var(--a-ink) !important; text-decoration: underline !important; text-decoration-color: #bdb6aa !important; text-underline-offset: 4px;
}
#page .at-guide-card { border-radius: 2px !important; box-shadow: none !important; }
#page .at-guide-card h2 { font-family: var(--a-ja) !important; color: var(--a-ink) !important; }
#page .at-guide-lead { text-align: left !important; margin-left: 0 !important; color: var(--a-ink2) !important; }

/* 9-8. 入力欄：高さ・枠・角丸をそろえる */
#page .woocommerce form .input-text, #page .woocommerce form select, #page .at-mf-row input:not([type=checkbox]):not([type=radio]), #page .at-restock-row input[type=email] {
  min-height: 48px; border: 1px solid #cfc9bf !important; border-radius: 2px !important; box-shadow: none !important; font-family: var(--a-ja); font-size: 16px;
}
#page .woocommerce form .input-text:focus, #page .woocommerce form select:focus { border-color: var(--a-ink) !important; outline: none; }

/* 9-9. 背景色（v27.5）
 *  ・地色は全ページ白に統一（商品写真の色が正しく見えるため）
 *  ・トップページの PICK UP／ランキング、商品ページ・一覧の「最近見た商品」は薄いグレーの帯にして、
 *    白とグレーが交互に来るリズムをつくる（グレーは帯としてだけ使う） */
:root { --a-band: #faf9f7; }   /* v27.7：トップのバナー背景と同じ色に */
html body, #page, #page .site-content, #page .at27-home, #page .at27-shop, body.home #page, body.home .at-home-refined { background-color: #fff !important; }
.at27-band {
  position: relative; padding-top: 44px; padding-bottom: 48px; background: var(--a-band);
  box-shadow: 0 0 0 100vmax var(--a-band); clip-path: inset(0 -100vmax);
}
@media (min-width: 900px) { .at27-band { padding-top: 64px; padding-bottom: 72px; } }
.at27-home .at27-band.at27-rank { background: var(--a-band) !important; }
.at27-band + .at27-sec:not(.at27-band) { margin-top: 56px; }
.at27-band .ac-media, .at27-band .at27-feature-img { background: #f0eee9; }
.at27-info + .at27-band { margin-top: 24px; }
#page .at-recent { position: relative; margin-top: 64px !important; padding: 44px 0 48px !important; background: var(--a-band) !important; box-shadow: 0 0 0 100vmax var(--a-band); clip-path: inset(0 -100vmax); }

/* 9-10. 商品画像の大きさ（v27.8）
 *  国内のアクセサリーECに多い「正方形の写真・PC 5〜6列」に合わせ、写真を小さめ・一覧性を高く */
.ac-media { aspect-ratio: 1 / 1; }
@media (min-width: 600px) and (max-width: 899px) { .at27-grid--shop { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px) and (max-width: 1199px) { .at27-grid--shop { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 36px 20px; } }
@media (min-width: 1200px) {
  .at27-grid--shop { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 40px 20px; }
  #page .at-curated-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 40px 20px; }
  #page .at-wish-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 32px 20px !important; }
}
@media (min-width: 900px) and (max-width: 1199px) { #page .at-wish-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
#page .at-wish-card { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: none !important; }
#page .at-wish-card-media { aspect-ratio: 1 / 1; border-radius: 0 !important; background: var(--a-photo); }
#page .at-wish-card-body { padding: 10px 0 0 !important; }
#page .at-wish-card-name { font-size: 13px !important; line-height: 1.6; }
#page .at-wish-card-price { font-size: 14px !important; margin: 4px 0 12px !important; }

/* 9-11. マイページ（v27.8）
 *  箱を並べるのをやめ、グループ見出し＋1行ずつのリスト（項目名＋説明）に。
 *  各画面の見出し・ボタン・カード・パンくずも全ページと同じ形にそろえます。 */
#page .at-account-wrap { width: min(1032px, calc(100% - 32px)); max-width: none !important; margin: 0 auto !important; padding: 24px 0 64px !important; display: block !important; }
@media (min-width: 900px) { #page .at-account-wrap { padding: 40px 0 96px !important; } }
#page .at-account-main { width: 100%; max-width: none; }
#page .at-account-crumb { display: flex; gap: 8px; margin: 0 0 20px; font-size: 12px; color: var(--a-mute); }
#page .at-account-crumb a { color: var(--a-mute); text-decoration: none; }
#page .at-account-crumb a:hover { color: var(--a-ink); text-decoration: underline; text-underline-offset: 3px; }

.at27-member-head { margin-bottom: 28px; }
.at27-member-label { margin: 0 0 8px; font: 500 11px/1.4 var(--a-ja); letter-spacing: .14em; color: var(--a-gold); }
#page .at27-member h1 { margin: 0 !important; padding: 0 !important; border: 0 !important; font: 500 22px/1.45 var(--a-serif) !important; letter-spacing: .04em; color: var(--a-ink); text-align: left; }
.at27-member-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 14px 0 0; font-size: 15px; color: var(--a-ink); }
.at27-member-name small { font-size: 12px; color: var(--a-mute); }
.at27-member-groups { display: grid; gap: 28px; }
.at27-member-group h2 { margin: 0 0 4px !important; padding: 0 0 10px !important; border: 0 !important; border-bottom: 1px solid var(--a-ink) !important; font: 500 13px/1.4 var(--a-ja) !important; letter-spacing: .08em; color: var(--a-ink); }
.at27-member-group ul { margin: 0; padding: 0; list-style: none; }
.at27-member-group a {
  position: relative; display: grid; gap: 2px; min-height: 64px; padding: 12px 32px 12px 0; align-content: center; box-sizing: border-box;
  border-bottom: 1px solid var(--a-line); color: var(--a-ink); text-decoration: none;
}
.at27-member-group a::after { content: ''; position: absolute; right: 6px; top: 50%; width: 7px; height: 7px; border: solid var(--a-ink2); border-width: 1px 1px 0 0; transform: translateY(-50%) rotate(45deg); }
.at27-member-t { font-size: 15px; font-weight: 500; }
.at27-member-d { font-size: 12px; color: var(--a-mute); }
.at27-member-group a:hover { background: var(--a-band); }
.at27-member-group a:hover .at27-member-t { text-decoration: underline; text-underline-offset: 4px; }
.at27-member-sub { display: flex; gap: 24px; margin: 28px 0 0; padding: 0; list-style: none; }
.at27-member-sub a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: var(--a-ink2); text-decoration: underline; text-decoration-color: #bdb6aa; text-underline-offset: 4px; }
@media (min-width: 900px) {
  #page .at27-member h1 { font-size: 28px !important; }
  .at27-member-head { margin-bottom: 40px; }
  .at27-member-groups { grid-template-columns: 1fr 1fr; gap: 48px; }
}

/* 各画面（注文履歴・お届け先・会員登録情報・パスワード変更） */
#page .at-orders-page > h1, #page .at-password-page > h1, #page .at-profile-page > h1, #page .at-address-page > h1, #page .woocommerce-MyAccount-content > h1, #page .woocommerce-MyAccount-content > h2:first-child {
  margin: 0 0 24px !important; padding: 0 !important; border: 0 !important; text-align: left !important;
  font: 500 22px/1.45 var(--a-serif) !important; letter-spacing: .04em !important; color: var(--a-ink) !important;
}
@media (min-width: 900px) { #page .at-orders-page > h1, #page .at-password-page > h1, #page .at-profile-page > h1, #page .at-address-page > h1 { font-size: 26px !important; } }
#page .at-password-page, #page .at-profile-page { max-width: 720px; margin: 0 !important; }
#page .at-account-main p { color: var(--a-ink2); }
#page .at-profile-form h2, #page .at-address-form h2 { margin: 0 0 16px !important; padding: 0 0 10px !important; border: 0 !important; border-bottom: 1px solid var(--a-line) !important; font: 500 16px/1.4 var(--a-ja) !important; color: var(--a-ink); }
#page .at-address-card, #page .at-order-card, #page .at-order-summary, #page .at-profile-form, #page .at-password-form {
  border: 1px solid var(--a-line) !important; border-radius: 2px !important; box-shadow: none !important; background: #fff !important;
}
#page .at-address-card.is-primary { border-color: var(--a-ink) !important; }
#page .at-address-card h2 { font: 500 14px/1.4 var(--a-ja) !important; color: var(--a-ink) !important; }
#page .at-order-summary { background: var(--a-band) !important; }
#page .at-account-save {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: 48px; min-width: 240px; padding: 0 28px !important;
  border: 1px solid var(--a-ink) !important; border-radius: 2px !important; background: var(--a-ink) !important; color: #fff !important; box-shadow: none !important;
  font: 500 14px/1.4 var(--a-ja) !important; letter-spacing: .06em !important; cursor: pointer;
}
#page .at-account-save:hover { background: #3a3733 !important; }
@media (max-width: 599px) { #page .at-account-save { width: 100%; } }
#page .at-address-edit, #page .at-address-actions button, #page .at-password-toggle, #page .at-address-add {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px !important;
  border: 1px solid var(--a-ink) !important; border-radius: 2px !important; background: #fff !important; color: var(--a-ink) !important; box-shadow: none !important;
  font: 500 12.5px/1 var(--a-ja) !important; text-decoration: none !important; cursor: pointer;
}
#page .at-address-edit:hover, #page .at-address-actions button:hover, #page .at-password-toggle:hover, #page .at-address-add:hover { background: var(--a-ink) !important; color: #fff !important; }
#page .at-address-add { min-height: 48px; padding: 0 24px !important; }
#page .at-account-back { display: inline-flex; align-items: center; min-height: 44px; margin-top: 28px; font-size: 13px; color: var(--a-ink2) !important; text-decoration: underline !important; text-decoration-color: #bdb6aa !important; text-underline-offset: 4px; }
#page .at-order-pagination a { border-radius: 2px !important; }
#page .at-order-pagination a[aria-current] { background: var(--a-ink) !important; border-color: var(--a-ink) !important; }
#page .at-account-main label { font-size: 13px; color: var(--a-ink); }

/* ログイン・会員登録 */
#page .at-auth-submit { width: 100%; }
#page .at-auth-submit-light { background: #fff !important; color: var(--a-ink) !important; }
#page .at-auth-submit-light:hover { background: var(--a-ink) !important; color: #fff !important; }
#page .at-auth-grid > *, #page .at-guest-entry { border-radius: 2px !important; box-shadow: none !important; }

/* 9-12. 商品一覧の上部（v27.9）：パンくず／見出し＋件数／対象タブ／写真つきカテゴリー／文字の並び替え */
.at27-crumb ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 16px 0 0; list-style: none; font-size: 12px; color: var(--a-mute); }
.at27-crumb li + li::before { content: '›'; margin: 0 10px; color: #b9b3a8; }
.at27-crumb a { color: var(--a-mute); text-decoration: none; }
.at27-crumb a:hover { color: var(--a-ink); text-decoration: underline; text-underline-offset: 3px; }
.at27-shop .at27-shop-head { padding: 18px 0 18px; }
.at27-shop-titlerow { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; }
.at27-shop-head .at27-shop-count { margin: 0; font-size: 13px; color: var(--a-mute); }
.at27-shop-head .at27-shop-count strong { margin: 0 2px; font-weight: 500; color: var(--a-ink); }
@media (min-width: 900px) { .at27-shop .at27-shop-head { padding: 28px 0 24px; } }

.at27-tabs2 { display: flex; gap: 0; border-bottom: 1px solid var(--a-line); overflow-x: auto; scrollbar-width: none; }
.at27-tabs2 a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; margin-bottom: -1px; border-bottom: 2px solid transparent; font-size: 14px; color: var(--a-mute); text-decoration: none; white-space: nowrap; }
.at27-tabs2 a:hover { color: var(--a-ink); }
.at27-tabs2 a.is-active { border-bottom-color: var(--a-ink); color: var(--a-ink); font-weight: 500; }

.at27-catnav { margin: 20px -16px 0; }
.at27-catnav ul { display: flex; gap: 14px; margin: 0; padding: 0 16px 4px; list-style: none; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
.at27-catnav ul::-webkit-scrollbar { display: none; }
.at27-catnav li { flex: 0 0 72px; scroll-snap-align: start; }
.at27-catnav a { display: grid; justify-items: center; gap: 8px; color: var(--a-ink2); text-decoration: none; text-align: center; }
.at27-catnav-img { display: grid; place-items: center; width: 64px; height: 64px; overflow: hidden; border-radius: 50%; background: var(--a-photo); box-shadow: 0 0 0 1px var(--a-line); transition: box-shadow .2s; }
.at27-catnav-img img { width: 100%; height: 100%; object-fit: cover; }
.at27-catnav-img--all { font: 600 12px/1 var(--a-en); letter-spacing: .12em; color: var(--a-ink); background: #fff; }
.at27-catnav-name { font-size: 12px; line-height: 1.4; }
.at27-catnav-name small { display: block; font-size: 10.5px; color: var(--a-mute); font-variant-numeric: tabular-nums; }
.at27-catnav a:hover .at27-catnav-img { box-shadow: 0 0 0 1px var(--a-ink2); }
.at27-catnav a.is-active .at27-catnav-img { box-shadow: 0 0 0 2px var(--a-ink); }
.at27-catnav a.is-active .at27-catnav-name { color: var(--a-ink); font-weight: 500; }
@media (min-width: 900px) {
  .at27-catnav { margin: 28px 0 0; }
  .at27-catnav ul { flex-wrap: wrap; gap: 20px 16px; padding: 0; overflow: visible; }
  .at27-catnav li { flex-basis: 88px; }
  .at27-catnav-img { width: 72px; height: 72px; }
  .at27-catnav-name { font-size: 12.5px; }
}

.at27-sort { display: none; }
@media (min-width: 900px) {
  .at27-sp-only { display: none !important; }
  .at27-sort { display: flex; flex-wrap: wrap; align-items: center; gap: 0; font-size: 13px; }
  .at27-sort > span { margin-right: 12px; color: var(--a-mute); font-size: 12.5px; }
  .at27-sort a { padding: 4px 12px; color: var(--a-mute); text-decoration: none; }
  .at27-sort a + a { border-left: 1px solid var(--a-line); }
  .at27-sort a:hover { color: var(--a-ink); }
  .at27-sort a.is-active { color: var(--a-ink); font-weight: 500; text-decoration: underline; text-underline-offset: 6px; }
  .at27-shop-bar { justify-content: space-between; }
}

/* 9-13. マイページの入力フォーム（v27.9） */
#page .at-password-form, #page .at-profile-form, #page .at-address-form { max-width: 720px; padding: 0 !important; border: 0 !important; background: none !important; }
#page .at-password-page > p, #page .at-profile-page > p { text-align: left !important; margin: 0 0 24px !important; font-size: 14px; }
#page .at-password-row { display: grid !important; grid-template-columns: 1fr !important; gap: 8px; padding: 0 0 20px !important; border: 0 !important; }
#page .at-password-row label, #page .at-account-main .form-row > label, #page .at-mf-label { display: flex; align-items: center; gap: 8px; font: 500 13px/1.5 var(--a-ja) !important; color: var(--a-ink) !important; }
#page .at-password-control { position: relative; display: block !important; }
#page .at-password-control input { width: 100% !important; padding-right: 76px !important; box-sizing: border-box; }
#page .at-password-toggle { position: absolute !important; right: 8px; top: 50%; transform: translateY(-50%); min-height: 32px !important; padding: 0 12px !important; white-space: nowrap; writing-mode: horizontal-tb; }
#page .at-password-help { margin: -4px 0 24px !important; font-size: 12.5px !important; color: var(--a-mute) !important; }
#page .at-profile-form .form-row, #page .at-profile-form .at-profile-row, #page .at-mf-row { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; border: 0 !important; }
#page .at-account-main input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]),
#page .at-account-main select, #page .at-account-main textarea {
  width: 100%; min-height: 48px; padding: 0 14px; box-sizing: border-box; border: 1px solid #cfc9bf !important; border-radius: 2px !important;
  background: #fff !important; box-shadow: none !important; font: 16px var(--a-ja); color: var(--a-ink);
}
#page .at-account-main input:focus, #page .at-account-main select:focus { border-color: var(--a-ink) !important; outline: none; }
#page .at-form-actions { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--a-line); }
/* 必須／任意のラベル：金地をやめ、必須＝えんじ、任意＝細い枠 */
#page .at-required, #page .at-mf-badge.is-required, #page label .required, #page legend .required {
  border: 0 !important; border-radius: 2px !important; background: var(--a-sale) !important; color: #fff !important; padding: 2px 6px !important; line-height: 1.3 !important;
}
#page .at-optional, #page .at-mf-badge:not(.is-required), #page label .optional, #page .at-co-optional {
  border: 1px solid #cfc9bf !important; border-radius: 2px !important; background: #fff !important; color: var(--a-mute) !important; padding: 1px 6px !important; line-height: 1.3 !important;
}

/* 9-14. 注文履歴（v27.9） */
#page .at-orders-layout { gap: 32px; }
#page .at-order-card { padding: 20px !important; margin: 0 0 16px !important; }
.at-order-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--a-line); }
.at-order-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0 !important; font-size: 12.5px; color: var(--a-mute) !important; font-variant-numeric: tabular-nums; }
.at-order-status { flex: none; padding: 4px 10px; border: 1px solid var(--a-ink); border-radius: 2px; font-size: 12px; font-weight: 500; color: var(--a-ink); }
.at-order-status--completed { background: var(--a-ink); color: #fff; }
.at-order-status--cancelled, .at-order-status--failed, .at-order-status--refunded { border-color: #cfc9bf; color: var(--a-mute); }
.at-order-items { margin: 0 !important; padding: 12px 0 !important; list-style: none !important; }
.at-order-items li { display: flex; justify-content: space-between; gap: 16px; padding: 4px 0; font-size: 14px; color: var(--a-ink); }
.at-order-items li span:last-child { flex: none; color: var(--a-mute); font-variant-numeric: tabular-nums; }
.at-order-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid var(--a-line); }
.at-order-total { display: flex; align-items: baseline; gap: 10px; margin: 0 !important; font-size: 16px; font-weight: 500; color: var(--a-ink) !important; }
.at-order-total span { font-size: 12px; font-weight: 400; color: var(--a-mute); }
#page .at-order-actions { display: flex; gap: 8px; }
#page .at-order-actions a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border: 1px solid var(--a-ink) !important; border-radius: 2px !important; background: #fff; color: var(--a-ink) !important; font-size: 13px; font-weight: 500; text-decoration: none !important; }
#page .at-order-actions a:hover { background: var(--a-ink); color: #fff !important; }
#page .at-order-summary { padding: 20px !important; border: 0 !important; }
#page .at-order-summary h2 { margin: 20px 0 8px !important; font: 500 14px/1.4 var(--a-ja) !important; border: 0 !important; padding: 0 !important; }
#page .at-order-summary button { min-height: 44px; margin-top: 8px; width: 100%; border: 1px solid var(--a-ink) !important; border-radius: 2px !important; background: #fff !important; color: var(--a-ink) !important; font: 500 13px var(--a-ja); cursor: pointer; }
#page .at-order-summary small { display: block; margin-top: 12px; font-size: 11.5px; line-height: 1.7; color: var(--a-mute); }

/* 8. 動きを減らす設定 ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .ah-menu, .ah-overlay, .ac-media .ac-img, .at27-gender-photo img, .at27-items-img img, .at27-feature-img img, .ah-nav a { transition: none !important; }
  .at27-gender-photo:hover img, .at27-items-list a:hover img, .at27-feature-item:hover img { transform: none; }
}
