@charset "UTF-8";
/* Alcorn McBride 共通（製品・用途別・カテゴリー・ダウンロード）。元は各ページの <style> */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif; -webkit-font-smoothing: antialiased; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; }
ul, ol { list-style: none; margin: 0; padding: 0; }

:root {
  --amb-brand-primary:      #C41230;
  --amb-brand-primary-dark: #9E0E26;
  --amb-brand-primary-rgb:  196, 18, 48;
  --amb-bg-primary:   #FFFFFF;
  --amb-bg-secondary: #F8F9FA;
  --amb-bg-tertiary:  #EBEDF0;
  --amb-text-primary:   #1A1A2E;
  --amb-text-secondary: #5A5A72;
  --amb-text-tertiary:  #8A8A9A;
  --amb-border-color: #E0E0E8;
  --amb-border-light: #EBEDF0;
  --amb-shadow-md: 0 4px 16px rgba(0,0,0,0.08);
  --amb-shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
  --amb-shadow-xl: 0 16px 48px rgba(0,0,0,0.16);
  --amb-shadow-brand: 0 8px 32px rgba(196,18,48,0.3);
  --amb-radius-sm: 6px; --amb-radius-md: 12px;
  --amb-radius-lg: 20px; --amb-radius-full: 9999px;
  --amb-transition-base: 0.3s ease;
  --amb-font-display: 'Inter', sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --amb-bg-primary: #08080c; --amb-bg-secondary: #0d0d14; --amb-bg-tertiary: #14141f;
    --amb-text-primary: #F0F0F5; --amb-text-secondary: #A0A0B0;
    --amb-border-color: #2A2A40; --amb-border-light: #1F1F35;
  }
}


















/* ===== Brand Nav ===== */
.brand-nav { background:linear-gradient(135deg,#0a0a0a 0%,#1a0a0a 100%); border-bottom:3px solid var(--amb-brand-primary); position:sticky; top:70px; z-index:999; box-shadow:0 4px 20px rgba(0,0,0,0.3); }
.brand-nav-wrapper { max-width:1400px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; }
.brand-nav-logo { display:flex; align-items:center; padding:16px 0; }
.brand-nav-logo img { height:32px; width:auto; }
.brand-nav-menu { display:flex; align-items:center; gap:0; flex-grow:1; justify-content:center; }
.brand-nav-menu > li { position:relative; }
.brand-nav-menu > li > a { display:flex; align-items:center; gap:6px; padding:20px 22px; color:rgba(255,255,255,.88); font-size:14px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; transition:all .3s; border-bottom:3px solid transparent; white-space:nowrap; }
.brand-nav-menu > li > a:hover, .brand-nav-menu > li > a.active { color:var(--amb-brand-primary); background:rgba(196,18,48,.1); border-bottom-color:var(--amb-brand-primary); }
.brand-nav-menu > li > a i { font-size:11px; transition:transform .3s; }
.nav-dropdown { position:relative; }
.nav-dropdown .dropdown-menu { position:absolute; top:100%; left:0; min-width:220px; background:#0a0a0a; border:1px solid rgba(196,18,48,.25); border-radius:0 0 8px 8px; box-shadow:0 10px 40px rgba(0,0,0,0.4); opacity:0; visibility:hidden; transform:translateY(-10px); transition:all .3s; z-index:1000; }
.nav-dropdown:hover .dropdown-menu, .nav-dropdown.active .dropdown-menu { opacity:1; visibility:visible; transform:translateY(0); }
.nav-dropdown:hover > a i, .nav-dropdown.active > a i { transform:rotate(180deg); }
.dropdown-menu a { display:block; padding:13px 20px; color:rgba(255,255,255,.8); font-size:13px; font-weight:500; transition:all .2s; border-left:3px solid transparent; }
.dropdown-menu a:hover { background:rgba(196,18,48,.15); color:var(--amb-brand-primary); border-left-color:var(--amb-brand-primary); }
.brand-nav-mobile-toggle { display:none; align-items:center; justify-content:center; padding:12px 16px; color:white; font-size:14px; font-weight:600; cursor:pointer; background:none; border:none; width:100%; gap:8px; }
.brand-nav-mobile-toggle i { transition:transform .3s; }
@media (max-width:1024px) {
  .brand-nav { top:60px; border-bottom-width:2px; }
  .brand-nav-wrapper { flex-direction:column; padding:0; }
  .brand-nav-logo { display:none; }
  .brand-nav-mobile-toggle { display:flex; }
  .brand-nav-menu { display:none; flex-direction:column; width:100%; padding:0; background:#0f0808; }
  .brand-nav-menu.active { display:flex; }
  .brand-nav-menu > li { width:100%; border-bottom:1px solid rgba(255,255,255,.08); }
  .brand-nav-menu > li > a { padding:14px 20px; font-size:13px; justify-content:space-between; border-bottom:none; }
  .nav-dropdown .dropdown-menu { position:static; opacity:1; visibility:visible; transform:none; display:none; border:none; border-radius:0; box-shadow:none; background:rgba(0,0,0,.3); }
  .nav-dropdown.active .dropdown-menu { display:block; }
  .dropdown-menu a { padding:12px 40px; }
}

/* ===== Breadcrumb ===== */
.amb-breadcrumb { background:var(--amb-bg-primary); border-bottom:1px solid var(--amb-border-light); padding:10px 0; }
.amb-breadcrumb-inner { max-width:1400px; margin:0 auto; padding:0 24px; display:flex; align-items:center; gap:6px; font-size:0.8125rem; color:var(--amb-text-tertiary); flex-wrap:wrap; }
.amb-breadcrumb a { color:var(--amb-text-tertiary); transition:color .2s; }
.amb-breadcrumb a:hover { color:var(--amb-brand-primary); }
.amb-breadcrumb i { font-size:0.625rem; }
.amb-breadcrumb-current { color:var(--amb-text-primary); font-weight:500; }

/* ===== Product Hero ===== */
.amb-product-hero {
  background: linear-gradient(160deg, #000000 0%, #1a0508 25%, #100308 60%, #050108 100%);
  padding: 60px 0 48px;
  position: relative;
  overflow: hidden;
}
.amb-product-hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 70% 60% at 0% 50%, rgba(196,18,48,0.12) 0%, transparent 50%),
    radial-gradient(ellipse 50% 50% at 100% 20%, rgba(196,18,48,0.08) 0%, transparent 40%);
}
.amb-product-hero::after {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--amb-brand-primary) 0%, rgba(196,18,48,0.3) 60%, transparent 100%);
}
.amb-product-hero-inner {
  max-width:1400px; margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:1fr; gap:48px; align-items:start;
  position: relative; z-index: 1;
}
@media (min-width:1024px) { .amb-product-hero-inner { grid-template-columns:1fr 1fr; gap:64px; } }

/* 画像ギャラリー */
.amb-gallery { }
.amb-gallery-main {
  background: #ffffff; border-radius:var(--amb-radius-lg);
  overflow:hidden; border:1px solid rgba(255,255,255,0.15);
  display:flex; align-items:center; justify-content:center;
  padding:32px; min-height:300px; cursor:zoom-in;
  position:relative;
}
.amb-gallery-main img { max-height:300px; width:auto; max-width:100%; object-fit:contain; transition:transform .3s; display:block; }
.amb-gallery-main:hover img { transform:scale(1.03); }
.amb-gallery-main-badge {
  position:absolute; top:16px; left:16px;
  background:var(--amb-brand-primary); color:white;
  font-size:0.6875rem; font-weight:700; text-transform:uppercase;
  padding:4px 10px; border-radius:var(--amb-radius-sm);
}
.amb-gallery-thumbs { display:flex; gap:12px; margin-top:12px; flex-wrap:wrap; }
.amb-gallery-thumb {
  width:88px; height:72px; border-radius:var(--amb-radius-sm);
  background:#ffffff; border:2px solid rgba(255,255,255,0.2);
  overflow:hidden; cursor:pointer; transition:var(--amb-transition-base);
  display:flex; align-items:center; justify-content:center; padding:6px;
}
.amb-gallery-thumb:hover, .amb-gallery-thumb.active { border-color:var(--amb-brand-primary); }
.amb-gallery-thumb img { max-width:100%; max-height:100%; object-fit:contain; }

/* 製品情報 */
.amb-product-info { }
.amb-product-category {
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em;
  color:var(--amb-brand-primary); margin-bottom:12px;
}
.amb-product-category::before { content:''; width:20px; height:2px; background:var(--amb-brand-primary); }
.amb-product-name {
  font-family:var(--amb-font-display); font-size:clamp(2rem,5vw,3rem);
  font-weight:800; color:#ffffff; line-height:1.1;
  letter-spacing:-.02em; margin-bottom:8px;
}
.amb-product-subtitle { font-size:1rem; color:rgba(255,255,255,0.65); margin-bottom:24px; font-weight:500; }

.amb-product-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.amb-product-tag {
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15);
  padding:6px 12px; border-radius:var(--amb-radius-full);
  font-size:0.75rem; font-weight:600; color:rgba(255,255,255,0.75);
}
.amb-product-tag i { color:var(--amb-brand-primary); font-size:0.7rem; }
.amb-product-tag.highlight { background:rgba(196,18,48,.2); border-color:rgba(196,18,48,.4); color:#ff8080; }

.amb-product-summary {
  font-size:0.9375rem; color:rgba(255,255,255,0.65); line-height:1.8;
  margin-bottom:0; padding-bottom:28px; border-bottom:1px solid rgba(255,255,255,0.1);
}

.amb-product-actions { display:flex; flex-wrap:wrap; gap:12px; }
.amb-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 28px; border-radius:var(--amb-radius-full); font-weight:600;
  font-size:0.9375rem; transition:var(--amb-transition-base); border:none; cursor:pointer;
}
.amb-btn-primary { background:linear-gradient(135deg,var(--amb-brand-primary),var(--amb-brand-primary-dark)); color:white; box-shadow:var(--amb-shadow-brand); }
.amb-btn-primary:hover { transform:translateY(-2px); box-shadow:0 12px 40px rgba(196,18,48,.5); }
.amb-btn-outline { background:transparent; color:var(--amb-text-primary); border:2px solid var(--amb-border-color); }
.amb-btn-outline:hover { border-color:var(--amb-brand-primary); color:var(--amb-brand-primary); }
.amb-btn-outline-light { background:transparent; color:rgba(255,255,255,.9); border:2px solid rgba(255,255,255,.6); }
.amb-btn-outline-light:hover { border-color:white; color:white; background:rgba(255,255,255,.08); }

/* ===== Main Content ===== */
.amb-product-content { background:var(--amb-bg-secondary); padding:64px 0; }
.amb-product-content-inner { max-width:1400px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1fr; gap:32px; }
@media (min-width:1024px) { .amb-product-content-inner { grid-template-columns:1fr 360px; gap:48px; } }

.amb-product-main { }

/* セクション共通 */
.amb-content-section { background:var(--amb-bg-primary); border-radius:var(--amb-radius-lg); padding:36px; border:1px solid var(--amb-border-light); margin-bottom:24px; box-shadow:var(--amb-shadow-md); }
.amb-content-section:last-child { margin-bottom:0; }
.amb-content-section-title {
  display:flex; align-items:center; gap:12px;
  font-family:var(--amb-font-display); font-size:1.125rem; font-weight:700;
  color:var(--amb-text-primary); margin-bottom:20px;
  padding-bottom:16px; border-bottom:2px solid var(--amb-brand-primary);
}
.amb-content-section-title i { color:var(--amb-brand-primary); font-size:1rem; }

/* 製品説明 */
.amb-product-desc { font-size:0.9375rem; color:var(--amb-text-secondary); line-height:1.9; }

/* 特長リスト */
.amb-feature-list { display:grid; grid-template-columns:1fr; gap:10px; }
@media (min-width:640px) { .amb-feature-list { grid-template-columns:1fr 1fr; } }
.amb-feature-item {
  display:flex; align-items:flex-start; gap:10px;
  padding:12px 16px; background:var(--amb-bg-secondary);
  border-radius:var(--amb-radius-md); border:1px solid var(--amb-border-light);
  transition:var(--amb-transition-base);
}
.amb-feature-item:hover { border-color:var(--amb-brand-primary); background:rgba(196,18,48,.04); }
.amb-feature-icon { width:28px; height:28px; background:rgba(196,18,48,.12); border-radius:var(--amb-radius-sm); display:flex; align-items:center; justify-content:center; color:var(--amb-brand-primary); font-size:0.75rem; flex-shrink:0; margin-top:1px; }
.amb-feature-text { font-size:0.875rem; color:var(--amb-text-primary); line-height:1.5; font-weight:500; }

/* 仕様テーブル */
.amb-spec-group { margin-bottom:28px; }
.amb-spec-group:last-child { margin-bottom:0; }
.amb-spec-group-title {
  font-size:0.8125rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.08em; color:var(--amb-brand-primary);
  margin-bottom:12px; padding-bottom:6px;
  border-bottom:1px solid rgba(196,18,48,.2);
}
.amb-spec-table { width:100%; border-collapse:collapse; }
.amb-spec-table tr { border-bottom:1px solid var(--amb-border-light); }
.amb-spec-table tr:last-child { border-bottom:none; }
.amb-spec-table td { padding:10px 4px; font-size:0.875rem; vertical-align:top; line-height:1.6; }
.amb-spec-table td:first-child { color:var(--amb-text-tertiary); font-weight:600; white-space:nowrap; width:38%; padding-right:16px; }
.amb-spec-table td:last-child { color:var(--amb-text-primary); }

/* ===== サイドバー ===== */
.amb-product-sidebar { }
.amb-sidebar-card { background:var(--amb-bg-primary); border-radius:var(--amb-radius-lg); padding:24px; border:1px solid var(--amb-border-light); margin-bottom:20px; box-shadow:var(--amb-shadow-md); }
.amb-sidebar-card:last-child { margin-bottom:0; }
.amb-sidebar-title { font-size:0.8125rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--amb-text-tertiary); margin-bottom:16px; }

/* 関連製品 */
.amb-related-list { display:flex; flex-direction:column; gap:8px; }
.amb-related-item {
  display:flex; align-items:center; gap:12px; padding:10px 12px;
  border-radius:var(--amb-radius-md); background:var(--amb-bg-secondary);
  border:1px solid var(--amb-border-light); transition:var(--amb-transition-base);
}
.amb-related-item:hover { border-color:var(--amb-brand-primary); background:rgba(196,18,48,.04); }
.amb-related-icon { width:36px; height:36px; background:rgba(196,18,48,.1); border-radius:var(--amb-radius-sm); display:flex; align-items:center; justify-content:center; color:var(--amb-brand-primary); font-size:0.875rem; flex-shrink:0; }
.amb-related-name { font-size:0.875rem; font-weight:600; color:var(--amb-text-primary); }
.amb-related-sub { font-size:0.75rem; color:var(--amb-text-tertiary); }
.amb-related-arrow { margin-left:auto; color:var(--amb-brand-primary); font-size:0.75rem; }

/* CTAカード */
.amb-cta-card {
  background:linear-gradient(135deg,#0f0205,#1a0508);
  border:1px solid rgba(196,18,48,.3); border-radius:var(--amb-radius-lg);
  padding:28px; text-align:center;
}
.amb-cta-card-title { font-family:var(--amb-font-display); font-size:1.125rem; font-weight:700; color:white; margin-bottom:8px; }
.amb-cta-card-text { font-size:0.875rem; color:rgba(255,255,255,.65); line-height:1.6; margin-bottom:20px; }
.amb-cta-card .amb-btn-primary { width:100%; justify-content:center; }

















/* Back to Top */
.amb-back-to-top { position:fixed; bottom:30px; right:30px; width:46px; height:46px; background:linear-gradient(135deg,var(--amb-brand-primary),var(--amb-brand-primary-dark)); color:white; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.125rem; box-shadow:var(--amb-shadow-brand); opacity:0; visibility:hidden; transform:translateY(20px); transition:var(--amb-transition-base); z-index:99; border:none; cursor:pointer; }
.amb-back-to-top.visible { opacity:1; visibility:visible; transform:translateY(0); }
.amb-back-to-top:hover { transform:translateY(-4px); }

/* Lightbox overlay */
.amb-lightbox-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:99999; align-items:center; justify-content:center; }
.amb-lightbox-overlay.active { display:flex; }
.amb-lightbox-overlay img { max-width:90vw; max-height:85vh; object-fit:contain; border-radius:var(--amb-radius-md); }
.amb-lightbox-close { position:fixed; top:20px; right:24px; background:rgba(255,255,255,.15); border:none; color:white; width:44px; height:44px; border-radius:50%; font-size:1.25rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:var(--amb-transition-base); }
.amb-lightbox-close:hover { background:var(--amb-brand-primary); }


/* ===== 共通ヘッダー・フッター（includes/header.php・footer.php）に合わせた補正 ===== */
.amb-page { padding-top: var(--site-header-height, 64px); line-height: normal; } /* 固定ヘッダーの下から開始。行間は元ページ（ブラウザ標準）に合わせる */
/* サイト共通 CSS の nav { display:flex; padding; max-width; min-height } を、ブランド内の nav（ブランドナビ・タブ）では打ち消す。
   :where() で詳細度を nav と同じにし、各 nav 自身のクラス指定（.uc-tabs など）は優先させる */
:where(.amb-page) nav { display: block; max-width: none; min-height: 0; margin: 0; padding: 0; }
.amb-page .brand-nav { top: var(--site-header-height, 64px); }
@media (max-width:1024px) { .amb-page .brand-nav { top: var(--site-header-height, 64px); } }
/* サイト共通 CSS の * { margin:0; padding:0 } で消えたブラウザ標準の余白を戻す（元ページはこれを前提に作られている）。
   :where() で詳細度 0 にし、各要素のクラス指定が優先されるようにする */
:where(.amb-page) :where(h1) { margin: 0.67em 0; }
:where(.amb-page) :where(h2) { margin: 0.83em 0; }
:where(.amb-page) :where(h3) { margin: 1em 0; }
:where(.amb-page) :where(h4) { margin: 1.33em 0; }
:where(.amb-page) :where(h5) { margin: 1.67em 0; }
:where(.amb-page) :where(h6) { margin: 2.33em 0; }
:where(.amb-page) :where(p, dl, pre) { margin: 1em 0; }
:where(.amb-page) :where(blockquote, figure) { margin: 1em 40px; }
:where(.amb-page) :where(dd) { margin-left: 40px; }
:where(.amb-page) :where(td, th) { padding: 1px; }
:where(.amb-page) :where(button) { padding: 1px 6px; }
/* 別ページから index.php#about などで来たとき、見出しが固定ヘッダーとブランドナビに隠れないように */
.amb-page [id] { scroll-margin-top: calc(var(--site-header-height, 64px) + 90px); }
