/**
 * TSUKASA — Premium Accessory Boutique
 * Dark teal · Champagne gold · Glassmorphism
 */

:root {
  --cnp-teal: #0F2E3D;
  --cnp-charcoal: #0F2E3D;
  --cnp-navy: #0A1F2B;
  --cnp-ivory: #FAFAF8;
  --cnp-gold: #D4AF37;
  --cnp-gold-soft: #E0C060;
  --cnp-champagne: #D4AF37;
  --cnp-stone: #8A8278;
  --cnp-paper: #F5F3EF;
  --cnp-ink: #0F2E3D;
  --cnp-muted: #6B6560;
  --cnp-line: rgba(15, 46, 61, 0.1);
  --cnp-line-light: rgba(250, 250, 248, 0.15);
  --cnp-font-display: "Cormorant Garamond", "Instrument Serif", "Times New Roman", Georgia, serif;
  --cnp-font-accent: "Instrument Serif", "Cormorant Garamond", Georgia, serif;
  --cnp-font-body: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  --cnp-max: 1180px;
  --cnp-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --cnp-header-h: 4.25rem;
  --cnp-radius: 999px;
  --cnp-glass: rgba(250, 250, 248, 0.12);
  --cnp-glass-border: rgba(212, 175, 55, 0.35);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: hidden; }

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  background-color: var(--cnp-ivory);
  color: var(--cnp-ink);
  font-family: var(--cnp-font-body);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  -webkit-font-smoothing: antialiased;
}

main { flex: 1; }

img { display: block; max-width: 100%; height: auto; }

a { color: inherit; text-decoration: none; transition: color 0.3s var(--cnp-ease); }
a:hover { color: var(--cnp-gold); }

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }

ul, ol, p, h1, h2, h3, figure, blockquote, address { margin: 0; }
ul, ol { list-style: none; padding: 0; }
address { font-style: normal; }

::selection { background: rgba(212, 175, 55, 0.35); color: var(--cnp-charcoal); }

.cnp-skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  padding: 0.75rem 1rem; background: var(--cnp-charcoal); color: var(--cnp-ivory);
}
.cnp-skip:focus { left: 1rem; top: 1rem; }

.cnp-wrap { width: min(100% - 2.5rem, var(--cnp-max)); margin-inline: auto; }
.cnp-img { width: 100%; height: 100%; object-fit: cover; }

/* Typography */
.cnp-kicker {
  font-family: var(--cnp-font-display);
  font-size: 0.78rem; font-weight: 500;
  letter-spacing: 0.24em; text-transform: uppercase; color: var(--cnp-gold);
}
.cnp-kicker--gold, .cnp-kicker--light { color: var(--cnp-gold-soft); }

.cnp-display {
  font-family: var(--cnp-font-display);
  font-weight: 500;
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  line-height: 1.15; letter-spacing: 0.02em; color: var(--cnp-charcoal);
}
.cnp-display--md { font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin-top: 0.75rem; }
.cnp-display--sm { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-top: 0.5rem; }
.cnp-display--lg { margin-top: 0.75rem; font-size: clamp(2rem, 4.5vw, 3.4rem); }
.cnp-display--light { color: var(--cnp-ivory); }

.cnp-lede { margin-top: 1.1rem; max-width: 34rem; color: var(--cnp-muted); font-weight: 300; }
.cnp-section__lead { margin-top: 0.85rem; max-width: 36rem; color: var(--cnp-muted); font-weight: 300; }
.cnp-section__lead--muted { color: rgba(250, 250, 248, 0.65); }
.cnp-section__more { margin-top: 2.5rem; text-align: center; }

.cnp-link {
  font-family: var(--cnp-font-display);
  font-size: 0.95rem; letter-spacing: 0.08em;
  border-bottom: 1px solid var(--cnp-gold); padding-bottom: 0.15rem; color: var(--cnp-charcoal);
}
.cnp-link:hover { color: var(--cnp-gold); }

/* Buttons */
.cnp-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.85rem; padding: 0.65rem 1.65rem; border-radius: var(--cnp-radius);
  background: var(--cnp-charcoal); color: var(--cnp-ivory);
  font-size: 0.82rem; letter-spacing: 0.12em;
  transition: background 0.3s var(--cnp-ease), color 0.3s var(--cnp-ease), border-color 0.3s var(--cnp-ease);
}
.cnp-btn:hover { background: #163545; color: var(--cnp-ivory); }
.cnp-btn--outline { background: transparent; color: var(--cnp-charcoal); border: 1px solid var(--cnp-gold); }
.cnp-btn--outline:hover { background: rgba(212, 175, 55, 0.12); color: var(--cnp-charcoal); }
.cnp-btn--gold { background: var(--cnp-gold); color: var(--cnp-charcoal); }
.cnp-btn--gold:hover { background: var(--cnp-gold-soft); color: var(--cnp-charcoal); }
.cnp-btn--outline-light { background: transparent; color: var(--cnp-ivory); border: 1px solid rgba(212, 175, 55, 0.7); }
.cnp-btn--outline-light:hover { background: rgba(212, 175, 55, 0.15); color: var(--cnp-ivory); }

/* Header */
.cnp-header {
  position: fixed; inset: 0 0 auto; z-index: 50;
  height: var(--cnp-header-h);
  transition: background 0.35s var(--cnp-ease), box-shadow 0.35s var(--cnp-ease);
}
.cnp-header.is-solid {
  background: rgba(250, 250, 248, 0.94);
  backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 var(--cnp-line);
}
.cnp-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  height: var(--cnp-header-h); gap: 1.5rem;
}
.cnp-brand { display: flex; flex-direction: column; line-height: 1.1; }
.cnp-brand__en { font-family: var(--cnp-font-display); font-size: 1.15rem; font-weight: 600; letter-spacing: 0.18em; }
.cnp-brand__jp { font-size: 0.68rem; letter-spacing: 0.2em; color: var(--cnp-muted); margin-top: 0.15rem; }

.cnp-nav { display: none; gap: 1.6rem; }
.cnp-nav__link { font-size: 0.78rem; letter-spacing: 0.14em; color: var(--cnp-charcoal); }
.cnp-nav__link[aria-current="page"] { color: var(--cnp-gold); }

.cnp-menu-btn { width: 2.5rem; height: 2.5rem; display: flex; flex-direction: column; justify-content: center; gap: 0.4rem; }
.cnp-menu-btn span { display: block; height: 1px; background: var(--cnp-charcoal); transition: transform 0.3s var(--cnp-ease); }
.cnp-menu-btn[aria-expanded="true"] span:first-child { transform: translateY(0.22rem) rotate(35deg); }
.cnp-menu-btn[aria-expanded="true"] span:last-child { transform: translateY(-0.22rem) rotate(-35deg); }

.cnp-mobile { background: var(--cnp-paper); border-top: 1px solid var(--cnp-line); padding: 1.25rem 0 1.75rem; }
.cnp-mobile__nav { display: flex; flex-direction: column; gap: 1rem; }
.cnp-mobile__nav a { font-family: var(--cnp-font-display); font-size: 1.35rem; letter-spacing: 0.08em; }

@media (min-width: 900px) {
  .cnp-nav { display: flex; }
  .cnp-menu-btn { display: none; }
}

.page-home .cnp-header:not(.is-solid) .cnp-brand__en,
.page-home .cnp-header:not(.is-solid) .cnp-nav__link,
.page-home .cnp-header:not(.is-solid) .cnp-menu-btn span { color: var(--cnp-ivory); background-color: transparent; }
.page-home .cnp-header:not(.is-solid) .cnp-brand__jp { color: rgba(250, 250, 248, 0.7); }
.page-home .cnp-header:not(.is-solid) .cnp-menu-btn span { background: var(--cnp-ivory); }
.page-home .cnp-header:not(.is-solid) .cnp-nav__link[aria-current="page"] { color: var(--cnp-gold-soft); }

/* Hero */
.cnp-hero {
  position: relative;
  min-height: 100vh; min-height: 100dvh;
  display: grid; place-items: end start;
  color: var(--cnp-ivory); overflow: hidden;
  background-color: var(--cnp-teal);
}
.cnp-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: var(--cnp-hero-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.06);
  animation: cnp-hero-zoom 14s var(--cnp-ease) forwards;
}
.cnp-hero__media {
  position: absolute; inset: 0; z-index: 1;
  pointer-events: none;
}
.cnp-hero__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: center;
  opacity: 0;
}
.cnp-hero__veil {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(15, 46, 61, 0.82) 0%, rgba(15, 46, 61, 0.58) 38%, rgba(15, 46, 61, 0.42) 62%, rgba(15, 46, 61, 0.55) 100%),
    linear-gradient(180deg, rgba(15, 46, 61, 0.35) 0%, rgba(15, 46, 61, 0.2) 40%, rgba(15, 46, 61, 0.65) 100%),
    radial-gradient(ellipse at 72% 40%, rgba(212, 175, 55, 0.12), transparent 55%);
}
.cnp-hero__copy {
  position: relative; z-index: 3;
  padding: calc(var(--cnp-header-h) + 2rem) 0 6rem;
  width: min(100% - 2.5rem, var(--cnp-max)); margin-inline: auto;
}
.cnp-hero__brand {
  font-family: var(--cnp-font-display);
  font-size: clamp(2.8rem, 8vw, 5.5rem);
  font-weight: 500; letter-spacing: 0.16em; line-height: 1;
}
.cnp-hero__title { margin-top: 0.35rem; }
.cnp-hero__jp {
  font-family: var(--cnp-font-accent);
  font-size: clamp(1.1rem, 2.2vw, 1.45rem);
  font-weight: 400; letter-spacing: 0.28em; color: var(--cnp-gold-soft);
}
.cnp-hero__lede {
  margin-top: 1.25rem; max-width: 28rem;
  font-weight: 300; font-size: 1rem; color: rgba(250, 250, 248, 0.88);
}
.cnp-hero__cta { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: 2rem; }

@keyframes cnp-hero-zoom { to { transform: scale(1); } }

/* Glass cards floating over hero */
.cnp-hero__floats {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
}
.cnp-glass-card {
  position: absolute;
  background: var(--cnp-glass);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--cnp-glass-border);
  border-radius: 12px;
  padding: 0.65rem;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
  animation: cnp-float 6s var(--cnp-ease) infinite;
}
.cnp-glass-card__media {
  aspect-ratio: 4/5; overflow: hidden; border-radius: 8px;
  width: 120px;
}
.cnp-glass-card__cat {
  font-family: var(--cnp-font-display);
  font-size: 0.62rem; letter-spacing: 0.16em;
  color: var(--cnp-gold-soft); margin-top: 0.45rem;
}
.cnp-glass-card__name {
  font-family: var(--cnp-font-display);
  font-size: 0.85rem; font-weight: 500; color: var(--cnp-ivory);
}
.cnp-hero__float--1 { top: 18%; right: 8%; animation-delay: 0s; }
.cnp-hero__float--2 { top: 42%; right: 18%; animation-delay: 1.2s; }
.cnp-hero__float--3 { bottom: 22%; right: 6%; animation-delay: 2.4s; }

@keyframes cnp-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

@media (max-width: 768px) {
  .cnp-hero__float--2, .cnp-hero__float--3 { display: none; }
  .cnp-hero__float--1 { top: 12%; right: 4%; }
  .cnp-glass-card__media { width: 90px; }
}

/* Wavy SVG divider */
.cnp-wave-divider {
  position: absolute; bottom: -1px; left: 0; right: 0; z-index: 3;
  line-height: 0;
}
.cnp-wave-divider svg { width: 100%; height: 60px; display: block; }

/* Press marquee — As seen in */
.cnp-press { padding: 1.5rem 0 1.25rem; background: var(--cnp-ivory); }
.cnp-press__label {
  font-family: var(--cnp-font-display);
  font-size: 0.72rem; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--cnp-muted);
  text-align: center; margin-bottom: 0.85rem;
}
.cnp-press-marquee {
  overflow: hidden;
  border-block: 1px solid rgba(212, 175, 55, 0.25);
  padding: 0.75rem 0;
}
.cnp-press-marquee__track {
  display: flex; width: max-content; gap: 3rem;
  animation: cnp-press-marquee 35s linear infinite;
}
.cnp-press-marquee__item {
  font-family: var(--cnp-font-display);
  font-size: 1rem; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--cnp-teal); white-space: nowrap; opacity: 0.55;
}
.cnp-press-marquee__item::after {
  content: "·"; margin-left: 3rem; color: var(--cnp-gold); opacity: 0.6;
}
@keyframes cnp-press-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Center gradient glow band */
.cnp-glow-band {
  position: relative;
  padding: clamp(3rem, 7vw, 5rem) 0;
  text-align: center; overflow: hidden;
  background: var(--cnp-ivory);
}
.cnp-glow-band__glow {
  position: absolute; inset: 8% 18%;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(212, 175, 55, 0.38), transparent 58%),
    radial-gradient(ellipse at 25% 70%, rgba(15, 46, 61, 0.08), transparent 50%),
    radial-gradient(ellipse at 75% 30%, rgba(224, 192, 96, 0.3), transparent 48%);
  filter: blur(8px); pointer-events: none;
}
.cnp-glow-band__inner { position: relative; z-index: 1; max-width: 34rem; margin-inline: auto; }
.cnp-glow-band .cnp-display { margin: 0 0 0.85rem; }
.cnp-glow-band .cnp-display em { font-style: italic; color: var(--cnp-gold); }
.cnp-glow-band p:last-child { margin: 0; color: var(--cnp-muted); font-weight: 300; }

/* Split-background service cards */
.cnp-split-section {
  position: relative;
  padding: clamp(4rem, 9vw, 7rem) 0 clamp(5rem, 10vw, 8rem);
}
.cnp-split-section__bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, var(--cnp-teal) 0%, var(--cnp-teal) 50%, var(--cnp-ivory) 50%, var(--cnp-ivory) 100%);
  z-index: 0;
}
.cnp-split-section .cnp-wrap { position: relative; z-index: 1; }
.cnp-split-section .cnp-section__head { color: var(--cnp-ivory); margin-bottom: 3rem; }
.cnp-split-section .cnp-display { color: var(--cnp-ivory); }
.cnp-split-section .cnp-section__lead { color: rgba(250, 250, 248, 0.72); }

.cnp-split-cards {
  display: grid; gap: 1.5rem;
  margin-top: -1rem;
}
@media (min-width: 768px) {
  .cnp-split-cards { grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
}

.cnp-split-card {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 16px 48px rgba(15, 46, 61, 0.12);
  transition: transform 0.4s var(--cnp-ease), box-shadow 0.4s var(--cnp-ease);
}
.cnp-split-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 56px rgba(15, 46, 61, 0.18);
}
.cnp-split-card__media { aspect-ratio: 16/10; overflow: hidden; }
.cnp-split-card__body { padding: 1.35rem 1.25rem 1.5rem; }
.cnp-split-card__body h3 {
  font-family: var(--cnp-font-display);
  font-size: 1.25rem; font-weight: 500; color: var(--cnp-teal);
}
.cnp-split-card__body p {
  margin-top: 0.55rem; font-size: 0.88rem;
  color: var(--cnp-muted); font-weight: 300;
}
.cnp-split-card__body .cnp-link { display: inline-block; margin-top: 0.85rem; }

/* Dark navy stats grid */
.cnp-stats {
  padding: clamp(3rem, 7vw, 5rem) 0;
  background: var(--cnp-navy);
}
.cnp-stats__grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem;
}
@media (min-width: 768px) {
  .cnp-stats__grid { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
}
.cnp-stat {
  text-align: center;
  padding: 1.75rem 1rem;
  background: rgba(250, 250, 248, 0.04);
  border: 1px solid rgba(212, 175, 55, 0.2);
  border-radius: 8px;
}
.cnp-stat__icon {
  display: block; font-size: 1.1rem;
  color: var(--cnp-gold); margin-bottom: 0.5rem;
}
.cnp-stat__num {
  font-family: var(--cnp-font-display);
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 500; color: var(--cnp-gold-soft); line-height: 1.1;
}
.cnp-stat__label {
  margin-top: 0.4rem; font-size: 0.78rem;
  color: rgba(250, 250, 248, 0.6); letter-spacing: 0.06em;
}

/* Sections */
.cnp-section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.cnp-section--warm { background: var(--cnp-paper); }
.cnp-section__head { margin-bottom: 2.5rem; }
.cnp-section__head--light .cnp-display { color: var(--cnp-ivory); }
.cnp-section__head--center { text-align: center; margin-inline: auto; max-width: 34rem; }

/* Category tiles */
.cnp-tiles { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .cnp-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .cnp-tiles { grid-template-columns: repeat(5, 1fr); gap: 1rem; } }

.cnp-tile { display: block; color: inherit; }
.cnp-tile__media { display: block; aspect-ratio: 3/4; overflow: hidden; background: #e8e2d8; }
.cnp-tile__media img { transition: transform 0.8s var(--cnp-ease); }
.cnp-tile:hover .cnp-tile__media img { transform: scale(1.05); }
.cnp-tile__body { display: block; padding-top: 0.9rem; }
.cnp-tile__en { display: block; font-family: var(--cnp-font-display); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cnp-gold); }
.cnp-tile__jp { display: block; font-family: var(--cnp-font-display); font-size: 1.35rem; margin-top: 0.2rem; }
.cnp-tile__text { display: block; margin-top: 0.35rem; font-size: 0.82rem; color: var(--cnp-muted); font-weight: 300; }

/* Featured products + swiper */
.cnp-product {
  transition: transform 0.35s var(--cnp-ease), box-shadow 0.35s var(--cnp-ease);
}
.cnp-product__media {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: #e8e2d8;
  margin-bottom: 0.9rem;
  box-shadow: 0 12px 32px rgba(15, 46, 61, 0.1);
  border-radius: 0.35rem;
}
.cnp-product__media img { transition: transform 0.7s var(--cnp-ease); width: 100%; height: 100%; max-width: none; object-fit: cover; }
.cnp-product:hover { transform: translateY(-4px); }
.cnp-product:hover .cnp-product__media {
  box-shadow: 0 20px 48px rgba(15, 46, 61, 0.16);
}
.cnp-product:hover .cnp-product__media img { transform: scale(1.04); }
.cnp-product__cat { font-family: var(--cnp-font-display); font-size: 0.72rem; letter-spacing: 0.16em; color: var(--cnp-gold); }
.cnp-product__name { font-family: var(--cnp-font-display); font-size: 1.35rem; font-weight: 500; margin-top: 0.25rem; }
.cnp-product__note { margin-top: 0.3rem; font-size: 0.82rem; color: var(--cnp-muted); font-weight: 300; }

.cnp-rating {
  display: flex; align-items: center; gap: 0.35rem;
  margin: 0.35rem 0 0.45rem; font-size: 0.78rem; color: var(--cnp-muted);
}
.cnp-rating__stars { color: var(--cnp-gold); letter-spacing: 0.06em; font-size: 0.85rem; }
.cnp-rating__num { font-weight: 500; color: var(--cnp-teal); }

.cnp-feat-carousel { margin-top: 1.5rem; }
.cnp-feat-carousel .swiper-slide { width: min(280px, 78vw); }
.cnp-feat-carousel__nav { display: flex; gap: 0.65rem; justify-content: flex-end; margin-top: 1.25rem; }
.cnp-feat-carousel__nav--center { justify-content: center; }
.cnp-feat-carousel__btn {
  width: 2.6rem; height: 2.6rem;
  border: 1px solid rgba(15, 46, 61, 0.2); border-radius: 999px;
  background: #fff; cursor: pointer; color: var(--cnp-teal);
}
.cnp-feat-carousel__btn:hover { border-color: var(--cnp-gold); color: var(--cnp-gold); }

/* Craft strip */
.cnp-craft {
  padding: clamp(3.5rem, 8vw, 6.5rem) 0;
  background: linear-gradient(160deg, var(--cnp-teal) 0%, #143544 55%, var(--cnp-teal) 100%);
  color: var(--cnp-ivory);
}
.cnp-craft__strip { display: grid; gap: 2rem; }
@media (min-width: 900px) { .cnp-craft__strip { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
.cnp-craft__media { position: relative; aspect-ratio: 5/4; overflow: hidden; margin-bottom: 1rem; }
.cnp-craft__tag {
  position: absolute; left: 0.85rem; bottom: 0.85rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid rgba(212, 175, 55, 0.7); border-radius: var(--cnp-radius);
  font-family: var(--cnp-font-display); font-size: 0.72rem; letter-spacing: 0.16em;
  color: var(--cnp-gold-soft); background: rgba(15, 46, 61, 0.45);
}
.cnp-craft__item h3 { font-family: var(--cnp-font-display); font-size: 1.4rem; font-weight: 500; }
.cnp-craft__item p { margin-top: 0.55rem; font-size: 0.9rem; font-weight: 300; color: rgba(250, 250, 248, 0.72); }

/* Journal */
.cnp-journal { display: grid; gap: 2rem; }
@media (min-width: 800px) { .cnp-journal { grid-template-columns: repeat(3, 1fr); gap: 1.75rem; } }
.cnp-journal__media { aspect-ratio: 4/3; overflow: hidden; margin-bottom: 0.9rem; background: #e8e2d8; }
.cnp-journal__date { font-family: var(--cnp-font-display); font-size: 0.78rem; letter-spacing: 0.12em; color: var(--cnp-gold); }
.cnp-journal__item h3 { font-family: var(--cnp-font-display); font-size: 1.3rem; font-weight: 500; margin-top: 0.35rem; }
.cnp-journal__item p { margin-top: 0.45rem; font-size: 0.88rem; color: var(--cnp-muted); font-weight: 300; }

/* Testimonial swiper */
.cnp-voice-swiper { margin-top: 0.5rem; }
.cnp-voice-swiper .swiper-slide { width: min(320px, 84vw); height: auto; }
.cnp-voice-card {
  height: 100%; margin: 0; padding: 1.5rem 1.35rem;
  background: #fff; border: 1px solid rgba(212, 175, 55, 0.28);
  border-radius: 4px; text-align: left;
}
.cnp-voice-card p:nth-of-type(2) {
  font-family: var(--cnp-font-display); font-size: 1.15rem;
  line-height: 1.65; margin: 0 0 1rem;
}
.cnp-stars { color: var(--cnp-gold); letter-spacing: 0.1em; margin: 0 0 0.65rem !important; font-size: 0.9rem; }
.cnp-voice-card footer { display: flex; flex-wrap: wrap; gap: 0.4rem 0.85rem; font-size: 0.8rem; color: var(--cnp-muted); }
.cnp-voice-card cite { font-style: normal; font-weight: 500; color: var(--cnp-teal); }

/* FAQ */
.cnp-faq { display: grid; gap: 2.5rem; }
@media (min-width: 860px) { .cnp-faq { grid-template-columns: 0.85fr 1.15fr; gap: 3.5rem; align-items: start; } }
.cnp-faq__item + .cnp-faq__item { border-top: 1px solid var(--cnp-line); }
.cnp-faq__btn {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  gap: 1rem; padding: 1.15rem 0; text-align: left;
  font-family: var(--cnp-font-display); font-size: 1.15rem;
}
.cnp-faq__panel { padding: 0 0 1.15rem; color: var(--cnp-muted); font-weight: 300; }
.cnp-faq__btn[aria-expanded="true"] span:last-child { transform: rotate(45deg); }
.cnp-faq__btn span:last-child { transition: transform 0.25s var(--cnp-ease); color: var(--cnp-gold); }

/* CTA */
.cnp-cta {
  padding: clamp(4rem, 9vw, 7rem) 0;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(212, 175, 55, 0.18), transparent 50%),
    var(--cnp-teal);
  color: var(--cnp-ivory);
}
.cnp-cta__inner { max-width: 40rem; }
.cnp-cta__text { margin-top: 1rem; color: rgba(250, 250, 248, 0.72); font-weight: 300; }
.cnp-cta__address { margin-top: 1.5rem; font-size: 0.9rem; color: rgba(250, 250, 248, 0.78); }
.cnp-cta__address span { color: var(--cnp-gold-soft); margin-right: 0.65rem; letter-spacing: 0.08em; font-size: 0.75rem; }
.cnp-cta__actions { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: 2rem; }

/* Banner */
.cnp-banner {
  position: relative; min-height: 52vh;
  display: grid; align-items: end; color: var(--cnp-ivory); overflow: hidden;
}
.cnp-banner__media { position: absolute; inset: 0; }
.cnp-banner__img { width: 100%; height: 100%; object-fit: cover; }
.cnp-banner__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 46, 61, 0.25), rgba(15, 46, 61, 0.75)); }
.cnp-banner__content { position: relative; z-index: 1; padding: calc(var(--cnp-header-h) + 2.5rem) 0 3rem; }
.cnp-banner__title { font-family: var(--cnp-font-display); font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 500; line-height: 1.2; margin-top: 0.75rem; }
.cnp-banner__lead { margin-top: 0.85rem; max-width: 32rem; font-weight: 300; color: rgba(250, 250, 248, 0.85); }
.cnp-crumb { display: flex; gap: 0.5rem; font-size: 0.78rem; letter-spacing: 0.1em; color: rgba(250, 250, 248, 0.7); margin-bottom: 1rem; }
.cnp-crumb a:hover { color: var(--cnp-gold-soft); }

/* About / media */
.cnp-about { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 860px) { .cnp-about { grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.cnp-about__text p + p { margin-top: 1rem; }
.cnp-about__text p { color: var(--cnp-muted); font-weight: 300; }
.cnp-media { overflow: hidden; background: #e8e2d8; }

.cnp-values { display: grid; gap: 1.75rem; }
@media (min-width: 800px) { .cnp-values { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.cnp-value h3 { font-family: var(--cnp-font-display); font-size: 1.45rem; font-weight: 500; margin: 0.55rem 0; }
.cnp-value p { color: var(--cnp-muted); font-weight: 300; font-size: 0.92rem; }

/* Collection */
.cnp-collection { display: grid; gap: 3.5rem; }
.cnp-collection__block { display: grid; gap: 1.75rem; padding-top: 2rem; border-top: 1px solid var(--cnp-line); }
@media (min-width: 860px) { .cnp-collection__block { grid-template-columns: 1.05fr 1fr; gap: 2.5rem; align-items: start; } }
.cnp-collection__media { aspect-ratio: 4/3; overflow: hidden; background: #e8e2d8; }
.cnp-collection__items { margin-top: 1.5rem; display: grid; gap: 1.15rem; }
.cnp-collection__item { padding-bottom: 1.1rem; border-bottom: 1px solid var(--cnp-line); }
.cnp-collection__sku { font-family: var(--cnp-font-display); font-size: 0.72rem; letter-spacing: 0.14em; color: var(--cnp-gold); }
.cnp-collection__name { font-family: var(--cnp-font-display); font-size: 1.2rem; margin-top: 0.2rem; }
.cnp-collection__spec { font-size: 0.8rem; color: var(--cnp-stone); margin-top: 0.15rem; }
.cnp-collection__note { margin-top: 0.4rem; font-size: 0.88rem; color: var(--cnp-muted); font-weight: 300; }

/* Articles */
.cnp-page-hero { padding: calc(var(--cnp-header-h) + 2.5rem) 0 2rem; }
.cnp-page-hero__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 860px) { .cnp-page-hero__grid { grid-template-columns: 1fr 0.9fr; gap: 3rem; } }
.cnp-page-hero__media { aspect-ratio: 4/5; overflow: hidden; background: #e8e2d8; }
.cnp-articles { display: grid; gap: 2.5rem; }
.cnp-article { display: grid; gap: 1.25rem; padding-bottom: 2.25rem; border-bottom: 1px solid var(--cnp-line); }
@media (min-width: 800px) { .cnp-article { grid-template-columns: 0.9fr 1.1fr; gap: 2rem; align-items: center; } }
.cnp-article__media { aspect-ratio: 16/10; overflow: hidden; background: #e8e2d8; }
.cnp-article__meta { font-family: var(--cnp-font-display); font-size: 0.78rem; letter-spacing: 0.12em; color: var(--cnp-gold); }
.cnp-article h2 { font-family: var(--cnp-font-display); font-size: clamp(1.4rem, 2.5vw, 1.85rem); font-weight: 500; margin-top: 0.4rem; }
.cnp-article p { margin-top: 0.55rem; color: var(--cnp-muted); font-weight: 300; }

/* Contact */
.cnp-contact { display: grid; gap: 2.5rem; padding: calc(var(--cnp-header-h) + 2.5rem) 0 4rem; }
@media (min-width: 900px) { .cnp-contact { grid-template-columns: 1fr 1fr; gap: 3.5rem; align-items: start; } }
.cnp-contact__lab { font-family: var(--cnp-font-display); font-size: 1.2rem; margin-top: 2rem; margin-bottom: 0.75rem; }
.cnp-contact__line { margin-top: 0.45rem; font-size: 0.92rem; color: var(--cnp-muted); }
.cnp-contact__line span { display: inline-block; min-width: 4.5rem; color: var(--cnp-gold); font-size: 0.75rem; letter-spacing: 0.1em; }
.cnp-panel { background: var(--cnp-paper); padding: 1.75rem; border: 1px solid var(--cnp-line); }
.cnp-field { margin-bottom: 1.15rem; }
.cnp-field label { display: block; margin-bottom: 0.4rem; }
.cnp-field input, .cnp-field select, .cnp-field textarea {
  width: 100%; padding: 0.75rem 0.9rem;
  border: 1px solid var(--cnp-line); border-radius: 0.65rem;
  background: #fff; outline: none; transition: border-color 0.25s var(--cnp-ease);
}
.cnp-field input:focus, .cnp-field select:focus, .cnp-field textarea:focus { border-color: var(--cnp-gold); }
.cnp-field textarea { min-height: 9rem; resize: vertical; }
.cnp-hp { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }
.cnp-form__note { margin-bottom: 1rem; padding: 0.85rem 1rem; background: rgba(212, 175, 55, 0.18); border-radius: 0.5rem; font-size: 0.9rem; }
.cnp-form__note--err { background: rgba(160, 60, 50, 0.12); color: #8a2e28; }

/* Footer */
.cnp-footer {
  position: relative;
  color: var(--cnp-ivory);
  padding-top: 4rem;
  overflow: hidden;
  background-color: var(--cnp-teal);
}
.cnp-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url("../images/featured/lead.jpg") center/cover no-repeat;
}
.cnp-footer::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(15, 46, 61, 0.84) 0%, rgba(15, 46, 61, 0.93) 100%);
}
.cnp-footer > .cnp-wrap,
.cnp-footer > .cnp-footer__bar {
  position: relative;
  z-index: 2;
}
.cnp-footer__statement { display: flex; flex-direction: column; gap: 0.45rem; margin-bottom: 3rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--cnp-line-light); }
.cnp-footer__brand { font-family: var(--cnp-font-display); font-size: clamp(1.8rem, 4vw, 2.6rem); letter-spacing: 0.16em; }
.cnp-footer__line { font-weight: 300; color: rgba(250, 250, 248, 0.85); }
.cnp-footer__line--soft { color: rgba(250, 250, 248, 0.55); font-size: 0.9rem; }
.cnp-footer__grid { display: grid; gap: 2rem; padding-bottom: 3rem; }
@media (min-width: 800px) { .cnp-footer__grid { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } }
.cnp-footer__links { margin-top: 0.85rem; display: grid; gap: 0.45rem; }
.cnp-footer__links a { color: rgba(250, 250, 248, 0.75); font-size: 0.9rem; font-weight: 300; }
.cnp-footer__links a:hover { color: var(--cnp-gold-soft); }
.cnp-footer__address { margin-top: 0.85rem; font-size: 0.88rem; font-weight: 300; color: rgba(250, 250, 248, 0.75); line-height: 1.9; }
.cnp-footer__meta { margin-top: 0.35rem; }
.cnp-footer__meta span { color: var(--cnp-gold-soft); margin-right: 0.5rem; font-size: 0.72rem; letter-spacing: 0.08em; }
.cnp-footer__bar { border-top: 1px solid var(--cnp-line-light); padding: 1.15rem 0; }
.cnp-footer__bar-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; font-size: 0.78rem; color: rgba(250, 250, 248, 0.5); }

/* Reveals */
.cnp-reveal { opacity: 1; transform: none; transition: opacity 0.9s var(--cnp-ease), transform 0.9s var(--cnp-ease); }
html.js .cnp-reveal:not(.is-visible) { opacity: 0; transform: translateY(1.25rem); }
.cnp-reveal-d1 { transition-delay: 0.12s; }
.cnp-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cnp-hero__img, .cnp-reveal, .cnp-reveal-d1, .cnp-glass-card, .cnp-press-marquee__track {
    animation: none !important; transition: none !important;
    opacity: 1 !important; transform: none !important;
  }
}

/* === Hero upgrade + mobile hardening (20260902) === */
html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
[class*="-wrap"] { width: min(calc(100% - 2rem), var(--wrap, 1140px)); max-width: 100%; margin-inline: auto; min-width: 0; }

.cnp-hero__img { opacity: 0.52 !important; object-fit: cover; width: 100%; height: 100%; }
.cnp-hero::before { opacity: 0.5; }

.cnp-hero__brand,
.cnp-hero__jp,
.cnp-hero__lede {
  text-shadow: 0 2px 20px rgba(15, 46, 61, 0.55);
}
.cnp-hero__floats { display: none; }
.cnp-hero__swiper-wrap { position: absolute; right: clamp(1rem, 4vw, 3rem); bottom: clamp(5rem, 12vw, 8rem); width: min(calc(100% - 2rem), 22rem); z-index: 3; }
.cnp-hero-swiper { overflow: hidden; border-radius: 1rem; background: rgba(255,255,255,0.12); backdrop-filter: blur(12px); padding: 0.65rem; border: 1px solid rgba(255,255,255,0.2); }
.cnp-hero-swiper .swiper-slide { width: 9rem; }
.cnp-hero-pick { margin: 0; border-radius: 0.75rem; overflow: hidden; background: rgba(15,46,61,0.85); }
.cnp-hero-pick img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; }
.cnp-hero-pick figcaption { padding: 0.55rem 0.65rem; font-size: 0.72rem; color: rgba(255,255,255,0.9); }
.cnp-hero-pick__cat { opacity: 0.7; display: block; font-size: 0.62rem; letter-spacing: 0.08em; }
@media (max-width: 767px) {
  .cnp-hero { min-height: auto; padding-bottom: 12rem; }
  .cnp-hero__copy { position: relative; padding-top: 5rem; }
  .cnp-hero__swiper-wrap { left: 1rem; right: 1rem; width: auto; bottom: 1.5rem; }
}

/* === Homepage v2 — creative carousel + info strip (20260902d) === */
.cnp-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 1;
  mix-blend-mode: overlay;
}

.cnp-hero-swiper { overflow: visible !important; }
.cnp-hero-swiper .swiper-slide { width: 10rem; transition: transform 0.4s ease; }
.cnp-hero-swiper .swiper-slide-active { transform: scale(1.05); z-index: 2; }

.cnp-info-strip { padding: 1.1rem 0; background: #0A222E; border-block: 1px solid rgba(212, 175, 55, 0.2); }
.cnp-info-strip__grid { display: grid; gap: 1rem; grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .cnp-info-strip__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .cnp-info-strip__grid { grid-template-columns: repeat(4, 1fr); } }
.cnp-info-strip__item strong { display: block; font-size: 0.68rem; letter-spacing: 0.12em; color: #D4AF37; margin-bottom: 0.2rem; }
.cnp-info-strip__item span { font-size: 0.78rem; line-height: 1.5; color: rgba(250, 250, 248, 0.72); }

/* === Light surface texture — press + signature band (20260902g) === */
.cnp-press,
.cnp-glow-band {
  background-color: var(--cnp-ivory);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cdefs%3E%3Cpattern id='grain' width='40' height='40' patternUnits='userSpaceOnUse'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23ffffff' stroke-width='0.6' stroke-opacity='0.35'/%3E%3Ccircle cx='10' cy='10' r='0.8' fill='%23ffffff' fill-opacity='0.25'/%3E%3Ccircle cx='30' cy='30' r='0.8' fill='%23ffffff' fill-opacity='0.2'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='160' height='160' fill='url(%23grain)'/%3E%3C/svg%3E"),
    linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(250, 250, 248, 0.92) 55%, rgba(245, 243, 239, 0.98) 100%);
  background-size: 160px 160px, auto;
}

.cnp-glow-band__glow {
  opacity: 0.85;
}
