/* ==========================================================================
   MIWAKO & MIWAKO A+ VIETNAM — VISUAL ART & SOFT GRADIENT DESIGN SYSTEM
   Style: Organic Visual Art & Fresh Natural Minimalism for Parents
   Brand Palette:
     Primary (Miwako Sky Blue):   #83C3E8
     Secondary (Sunny Yellow):    #FDC671
     Background (Natural White):  #F5F9F4
     Accent (Organic Green):      #B9D39A
     Typography (Deep Blue Gray): #253D49
   Typography:
     - Brand / Display Font (Miwako Official): 'Fz Dom Casual' (fz-dom-casual.otf)
     - Body / Regular UI Text (Thu Hiền Standard): 'Alata' (Google Fonts)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Alata&display=swap');

@font-face {
  font-family: 'Fz Dom Casual';
  src: url('../fonts/fz-dom-casual.otf?v=20261022v4') format('opentype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Color Interpolation Fallback per Modern Web Guidance (visual-effects) */
  --in-oklab: ;
  --in-oklch: ;

  /* Official Brand Color System */
  --color-sky-blue: #83C3E8;
  --color-sky-blue-deep: #4A9FD1;
  --color-sky-blue-soft: #EBF5FB;
  --color-sky-blue-mist: #D6EEFB;

  --color-sunny-yellow: #FDC671;
  --color-sunny-yellow-deep: #F2AE44;
  --color-sunny-yellow-soft: #FFF7E8;
  --color-sunny-yellow-mist: #FFE8BC;

  --color-natural-white: #F5F9F4;
  --color-pure-white: #FFFFFF;
  --color-warm-cream: #FFFDF8;

  --color-organic-green: #B9D39A;
  --color-organic-green-deep: #5B8C3E;
  --color-organic-green-soft: #EEF5E6;

  --color-text-primary: #2B5268;
  --color-text-secondary: #517285;
  --color-text-muted: #6E8E9F;

  /* Seamless Whole-Website Flowing Pastel Canvas (Zero Section Seams) */
  --grad-page-canvas:
    radial-gradient(ellipse 65% 35% at 15% 8%, rgba(131, 195, 232, 0.45) 0%, transparent 65%),
    radial-gradient(ellipse 60% 35% at 85% 12%, rgba(253, 198, 113, 0.42) 0%, transparent 65%),
    radial-gradient(ellipse 70% 40% at 80% 42%, rgba(131, 195, 232, 0.28) 0%, transparent 70%),
    radial-gradient(ellipse 65% 40% at 18% 65%, rgba(185, 211, 154, 0.34) 0%, transparent 70%),
    radial-gradient(ellipse 70% 35% at 82% 85%, rgba(253, 198, 113, 0.32) 0%, transparent 70%),
    linear-gradient(
      180deg var(--in-oklab),
      #DFF1FC 0%,
      #EEF8FD 16%,
      #F9FCF7 34%,
      #FFFDF6 52%,
      #F2F9EE 70%,
      #FFF9EB 86%,
      #E5F3FC 100%
    );

  --grad-hero-aurora:
    radial-gradient(circle at 82% 24%, rgba(253, 198, 113, 0.52) 0%, transparent 46%),
    radial-gradient(circle at 16% 18%, rgba(131, 195, 232, 0.58) 0%, transparent 52%),
    radial-gradient(circle at 58% 88%, rgba(185, 211, 154, 0.42) 0%, transparent 48%),
    linear-gradient(135deg var(--in-oklab), #D3ECFA 0%, #EDF7FD 42%, #FFF8E8 78%, #EEF6E6 100%);

  --grad-sky-world:
    radial-gradient(circle at 85% 18%, rgba(255, 255, 255, 0.85) 0%, transparent 52%),
    radial-gradient(circle at 15% 85%, rgba(185, 211, 154, 0.35) 0%, transparent 50%),
    linear-gradient(145deg var(--in-oklab), #C8E7FA 0%, #E6F4FC 52%, #F7FBFE 100%);

  --grad-sunny-world:
    radial-gradient(circle at 85% 18%, rgba(255, 255, 255, 0.85) 0%, transparent 52%),
    radial-gradient(circle at 15% 85%, rgba(253, 198, 113, 0.38) 0%, transparent 50%),
    linear-gradient(145deg var(--in-oklab), #FFE09E 0%, #FFF3D6 52%, #FFFDF7 100%);

  --grad-organic-meadow:
    radial-gradient(circle at 12% 25%, rgba(185, 211, 154, 0.45) 0%, transparent 48%),
    radial-gradient(circle at 88% 75%, rgba(253, 198, 113, 0.38) 0%, transparent 50%),
    radial-gradient(circle at 50% 10%, rgba(131, 195, 232, 0.28) 0%, transparent 48%),
    linear-gradient(160deg var(--in-oklab), #E8F4DC 0%, #F6FAF2 48%, #FFF6E3 100%);

  --grad-lookbook-dream:
    radial-gradient(circle at 80% 15%, rgba(131, 195, 232, 0.32) 0%, transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(253, 198, 113, 0.30) 0%, transparent 50%),
    linear-gradient(180deg var(--in-oklab), #FFFDF8 0%, #EBF5FB 50%, #F4F9F0 100%);

  --grad-warm-embrace:
    radial-gradient(circle at 20% 20%, rgba(253, 198, 113, 0.38) 0%, transparent 50%),
    radial-gradient(circle at 82% 80%, rgba(131, 195, 232, 0.38) 0%, transparent 52%),
    linear-gradient(135deg var(--in-oklab), #FFF6E4 0%, #F4F9F2 50%, #E6F4FC 100%);

  /* Clean Soft Ambient Shadows (Zero Heavy Borders) */
  --border-subtle: transparent;
  --border-glass: transparent;
  --shadow-card:
    0 12px 32px -8px rgba(55, 110, 145, 0.08);
  --shadow-card-hover:
    0 20px 44px -10px rgba(55, 110, 145, 0.14);
  --shadow-bezel:
    0 14px 36px -10px rgba(55, 110, 145, 0.09);

  /* Typography System:
     --font-display: Official Miwako Brand Font (Fz Dom Casual)
     --font-ui: Regular Body & UI Font learned from Thu Hiền (Alata) */
  --font-display: 'Fz Dom Casual', 'Alata', system-ui, -apple-system, sans-serif;
  --font-ui: 'Alata', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* Standard Centered Brand Container (1280px max-width for content, while Hero & Photography span full-bleed) */
  --container-max: 1280px;
  --container-pad: clamp(20px, 3vw, 40px);
  --section-space: 84px;
  --card-gap: 28px;
  --card-pad: 28px;
  --card-radius: 28px;
  --bezel-radius: 32px;
  --btn-radius: 999px;

  /* Fluid Spring Motion */
  --ease-out: cubic-bezier(0.32, 0.72, 0, 1);
  --dur-fast: 260ms;
  --dur-med: 480ms;
}

@supports (background: linear-gradient(in oklab, white, black)) {
  :root {
    --in-oklab: in oklab;
    --in-oklch: in oklch;
  }
}

@media (max-width: 768px) {
  :root {
    --container-pad: 20px;
    --section-space: 60px;
    --card-gap: 18px;
    --card-pad: 20px;
    --card-radius: 22px;
    --bezel-radius: 26px;
  }
}

/* ==========================================================================
   1. RESET & BASE TYPOGRAPHY
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-family: var(--font-ui);
  color: var(--color-text-primary);
  background-color: var(--color-natural-white);
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-ui);
  font-size: clamp(0.96rem, 0.92rem + 0.2vw, 1.08rem);
  font-weight: 400;
  line-height: 1.65;
  color: var(--color-text-primary);
  background: var(--grad-page-canvas);
  background-attachment: scroll;
  min-height: 100vh;
  overflow-x: hidden;
  position: relative;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(circle at 12% 18%, rgba(131, 195, 232, 0.28) 0%, transparent 48%),
    radial-gradient(circle at 88% 22%, rgba(253, 198, 113, 0.26) 0%, transparent 48%),
    radial-gradient(circle at 50% 82%, rgba(185, 211, 154, 0.24) 0%, transparent 52%);
}

img, picture, svg, video {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

ul, ol {
  list-style: none;
}

button, input, select, textarea {
  font: inherit;
  color: inherit;
}

/* Typography Hierarchy:
   - Brand Display Headings (h1-h4, .font-dom, .eyebrow): Fz Dom Casual
   - Regular Text / Body / UI (.font-sans, body, p): Alata (Thu Hiền standard) */
.font-dom {
  font-family: var(--font-display) !important;
  font-weight: 400;
  font-synthesis: none;
  text-transform: uppercase;
}

.font-sans {
  font-family: var(--font-ui) !important;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4 {
  font-family: var(--font-display);
  font-weight: 400 !important;
  font-synthesis: none;
  text-transform: uppercase;
  text-wrap: balance;
  color: var(--color-text-primary);
}

h1, .h1 {
  font-size: clamp(2.25rem, 1.65rem + 2.5vw, 3.85rem);
  line-height: 1.26;
  letter-spacing: 0.02em;
}

h2, .h2 {
  font-size: clamp(1.75rem, 1.38rem + 1.5vw, 2.8rem);
  line-height: 1.28;
  letter-spacing: 0.02em;
}

h3, .h3 {
  font-size: clamp(1.26rem, 1.12rem + 0.5vw, 1.65rem);
  line-height: 1.32;
  letter-spacing: 0.015em;
}

h4, .h4 {
  font-size: clamp(1.08rem, 1rem + 0.3vw, 1.3rem);
  line-height: 1.35;
  letter-spacing: 0.015em;
}

.text-body-lg {
  font-family: var(--font-ui);
  font-size: clamp(1.02rem, 0.96rem + 0.25vw, 1.15rem);
  line-height: 1.65;
  color: var(--color-text-secondary);
}

.caption, .eyebrow {
  font-size: clamp(0.8rem, 0.76rem + 0.12vw, 0.9rem);
  line-height: 1.4;
}

.eyebrow {
  font-family: var(--font-display);
  font-weight: 400;
  font-synthesis: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.85);
  color: var(--color-text-primary);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 14px;
  border: none;
  box-shadow: 0 6px 18px -6px rgba(55, 110, 145, 0.08);
}

.eyebrow--yellow {
  background: linear-gradient(135deg var(--in-oklab), #FFF3D1 0%, #FFE4A3 100%);
  color: var(--color-text-primary);
}

.eyebrow--green {
  background: linear-gradient(135deg var(--in-oklab), #EAF4DF 0%, #D5E8BE 100%);
  color: var(--color-text-primary);
}

.eyebrow--sky {
  background: linear-gradient(135deg var(--in-oklab), #E3F3FC 0%, #C4E5F8 100%);
  color: var(--color-text-primary);
}

/* ==========================================================================
   2. LAYOUT & ORGANIC WAVE CONTAINERS
   ========================================================================== */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
  position: relative;
  z-index: 2;
}

.section {
  position: relative;
  padding-block: var(--section-space);
  background: transparent !important;
  overflow: visible;
}

.section--white,
.section--natural,
.section--sky-soft,
.section--sunny-soft,
.section--warm-embrace {
  background: transparent !important;
}

.section-header {
  max-width: 720px;
  margin-bottom: 48px;
}

.section-header--center {
  margin-inline: auto;
  text-align: center;
}

.section-header p {
  margin-top: 12px;
  color: var(--color-text-secondary);
}

/* Decorative Ambient Orbs & Wave Dividers */
.ambient-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  opacity: 0.65;
}

.ambient-orb--sky {
  background: radial-gradient(circle, rgba(131, 195, 232, 0.55) 0%, transparent 70%);
}

.ambient-orb--sunny {
  background: radial-gradient(circle, rgba(253, 198, 113, 0.55) 0%, transparent 70%);
}

.ambient-orb--green {
  background: radial-gradient(circle, rgba(185, 211, 154, 0.5) 0%, transparent 70%);
}

.wave-divider {
  display: block;
  width: 100%;
  height: clamp(36px, 5vw, 72px);
  line-height: 0;
  overflow: hidden;
  pointer-events: none;
}

.wave-divider svg {
  width: 100%;
  height: 100%;
  preserveAspectRatio: none;
}

/* ==========================================================================
   3. CLEAN SINGLE-LAYER VISUAL FRAMES (NO NESTED BORDERS)
   ========================================================================== */
.art-bezel {
  background: transparent;
  border: none;
  border-radius: var(--bezel-radius);
  padding: 0;
  box-shadow: var(--shadow-card);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.art-bezel:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.art-bezel__inner {
  border-radius: var(--bezel-radius);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.86);
  position: relative;
  height: 100%;
}

/* ==========================================================================
   4. UI COMPONENT SYSTEM — PILL BUTTONS & CARDS (BRIGHT & POSITIVE PALETTE)
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-family: var(--font-ui);
  font-size: clamp(0.9375rem, 0.92rem + 0.1vw, 1rem);
  font-weight: 700;
  line-height: 1.2;
  padding: 12px 24px;
  border-radius: var(--btn-radius);
  border: none;
  cursor: pointer;
  transition:
    transform var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out),
    background var(--dur-fast) var(--ease-out);
  white-space: nowrap;
}

.btn:hover {
  transform: translateY(-3px);
}

.btn:active {
  transform: scale(0.98);
}

.btn__icon-circle {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.28);
  transition: transform var(--dur-fast) var(--ease-out);
}

.btn:hover .btn__icon-circle {
  transform: translate(2px, -1px) scale(1.06);
}

/* Primary Button: Fresh Miwako Sky Blue gradient pill (replaces dark charcoal) */
.btn--primary {
  background: linear-gradient(135deg var(--in-oklab), #4298D1 0%, #63B3E8 100%);
  color: var(--color-pure-white);
  box-shadow: 0 12px 26px -6px rgba(66, 152, 209, 0.38);
}

.btn--primary:hover {
  background: linear-gradient(135deg var(--in-oklab), #368BC4 0%, #52A6DF 100%);
  box-shadow: 0 16px 32px -6px rgba(66, 152, 209, 0.48);
}

/* Secondary Button: Sunny Yellow gradient pill */
.btn--sunny {
  background: linear-gradient(135deg var(--in-oklab), #FFE09E 0%, #FDC671 100%);
  color: var(--color-text-primary);
  box-shadow: 0 12px 26px -6px rgba(253, 198, 113, 0.48);
}

.btn--sunny .btn__icon-circle {
  background: rgba(255, 255, 255, 0.72);
}

.btn--sunny:hover {
  background: linear-gradient(135deg var(--in-oklab), #FFD580 0%, #F8BA59 100%);
  box-shadow: 0 16px 32px -6px rgba(253, 198, 113, 0.62);
}

/* Sky Blue Button */
.btn--sky {
  background: linear-gradient(135deg var(--in-oklab), #9AD1F0 0%, #83C3E8 100%);
  color: var(--color-text-primary);
  box-shadow: 0 10px 24px -6px rgba(131, 195, 232, 0.45);
}

.btn--sky:hover {
  background: linear-gradient(135deg var(--in-oklab), #83C3E8 0%, #6EB5DF 100%);
}

/* Ghost / Soft Glass Button */
.btn--outline {
  background: rgba(255, 255, 255, 0.88);
  color: var(--color-text-primary);
  box-shadow: 0 8px 22px -6px rgba(55, 110, 145, 0.1);
}

.btn--outline:hover {
  background: var(--color-pure-white);
}

/* Information Card (Single clean layer, borderless) */
.info-card {
  background: rgba(255, 255, 255, 0.88);
  border-radius: var(--card-radius);
  padding: var(--card-pad);
  border: none;
  box-shadow: var(--shadow-card);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.info-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.info-card__icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg var(--in-oklab), #EAF4DF 0%, #D5E8BE 100%);
  color: var(--color-text-primary);
  margin-bottom: 18px;
}

.info-card__icon--sky {
  background: linear-gradient(135deg var(--in-oklab), #E3F3FC 0%, #C4E5F8 100%);
}

.info-card__icon--sunny {
  background: linear-gradient(135deg var(--in-oklab), #FFF3D1 0%, #FFE4A3 100%);
}

/* ==========================================================================
   5. SECTION 01: SIGNATURE 3-ZONE EDITORIAL HEADER
      Left: List Menu & Mega Menu | Center: Brand Logo | Right: Socials + CTA
   ========================================================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 120;
  width: 100%;
  padding-inline: 0;
  margin-bottom: 0;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 4px 24px -6px rgba(43, 82, 104, 0.06);
  pointer-events: auto;
  transition: background var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 10px 30px -8px rgba(43, 82, 104, 0.1);
}

.site-header__shell {
  position: relative;
  max-width: 1380px;
  margin-inline: auto;
  pointer-events: auto;
  padding-inline: clamp(16px, 2.4vw, 32px);
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.site-header.is-scrolled .site-header__shell {
  background: transparent;
  box-shadow: none;
}

.site-header__inner {
  display: grid;
  grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr);
  align-items: center;
  height: 86px;
  padding-inline: 0;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  gap: 16px;
}

.site-header__left {
  justify-self: start;
  display: flex;
  align-items: center;
  gap: 6px;
}

.site-header__center {
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: auto;
  padding: 4px 8px;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
  transition: transform var(--dur-fast) var(--ease-out);
}

.site-logo:hover {
  transform: translateY(-1.5px) scale(1.03);
  box-shadow: none;
}

.site-logo img {
  height: clamp(46px, 4.1vw, 54px);
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 2px 8px rgba(32, 74, 105, 0.1));
}

/* Left List Navigation & Mega Menu Trigger */
.site-nav {
  display: flex;
  align-items: center;
  gap: 3px;
}

.site-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--color-text-secondary);
  padding: 8px 11px;
  border-radius: 999px;
  border: none;
  background: transparent;
  cursor: pointer;
  white-space: nowrap;
  transition:
    background var(--dur-fast) var(--ease-out),
    color var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out);
}

.site-nav__trigger--mega {
  background: var(--color-natural-white);
  color: var(--color-text-primary);
  padding-inline: 13px;
}

.nav-grid-icon {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  color: var(--color-sky-blue-deep);
}

.site-nav__link:hover,
.site-nav__link.is-active,
.nav-dropdown:hover > .site-nav__trigger,
.nav-dropdown.is-open > .site-nav__trigger {
  color: var(--color-text-primary);
  background: linear-gradient(135deg var(--in-oklab), #E6F4FC 0%, #FFF6E3 100%);
  box-shadow: none;
}

.nav-chevron {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  opacity: 0.68;
  transition: transform var(--dur-fast) var(--ease-out);
}

.nav-dropdown:hover .nav-chevron,
.nav-dropdown.is-open .nav-chevron {
  transform: rotate(180deg);
  opacity: 1;
}

/* Left-Anchored Desktop Mega Menu & Dropdown Panels */
.nav-dropdown {
  position: relative;
}

.nav-dropdown::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 18px;
}

.nav-dropdown__panel {
  position: absolute;
  top: calc(100% + 14px);
  left: 0;
  transform: translateY(10px) scale(0.98);
  transform-origin: top left;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-radius: 28px;
  padding: 18px;
  border: none;
  box-shadow:
    0 14px 32px -6px rgba(43, 82, 104, 0.1),
    0 34px 72px -12px rgba(43, 82, 104, 0.18);
  transition:
    opacity 220ms var(--ease-out),
    transform 220ms var(--ease-out),
    visibility 220ms;
  z-index: 140;
}

.nav-dropdown:hover .nav-dropdown__panel,
.nav-dropdown.is-open .nav-dropdown__panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.nav-dropdown__panel--mega {
  width: min(440px, calc(100vw - 48px));
  padding: 16px;
}

.mega-menu__layout {
  display: block;
}

.mega-menu__heading {
  font-family: var(--font-display);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-sky-blue-deep);
  margin-bottom: 10px;
  padding-inline: 4px;
}

.mega-menu__directory {
  display: none;
}

.mega-menu__links {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.nav-product-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.nav-product-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px;
  border-radius: 20px;
  border: none;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.nav-product-card--sky {
  background: linear-gradient(145deg var(--in-oklab), #E7F4FC 0%, #F9FCFF 100%);
}

.nav-product-card--sunny {
  background: linear-gradient(145deg var(--in-oklab), #FFF2D2 0%, #FFFDF8 100%);
}

.nav-product-card:hover,
.nav-product-card.is-current {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px -8px rgba(43, 82, 104, 0.14);
}

.nav-product-card__thumb {
  width: 72px;
  height: 78px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(43, 82, 104, 0.06);
}

.nav-product-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.nav-product-card__badge {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(131, 195, 232, 0.28);
  color: var(--color-text-primary);
  margin-bottom: 4px;
}

.nav-product-card__badge--sunny {
  background: rgba(253, 198, 113, 0.45);
}

.nav-product-card__info strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: var(--color-text-primary);
  line-height: 1.2;
  margin-bottom: 3px;
}

.nav-product-card__info p {
  font-size: 0.8rem;
  color: var(--color-text-secondary);
  line-height: 1.38;
}

/* Knowledge Hub Dropdown Links — Clean Single-Line Menu */
.nav-dropdown__panel--links {
  width: 276px;
  padding: 10px;
  border-radius: 22px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.nav-menu-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 14px;
  border-radius: 14px;
  transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.nav-menu-item:hover,
.nav-menu-item.is-current {
  background: rgba(255, 255, 255, 0.94);
  transform: translateX(2px);
}

.nav-dropdown__panel--links .nav-menu-item:hover,
.nav-dropdown__panel--links .nav-menu-item.is-current {
  background: linear-gradient(135deg var(--in-oklab), #EAF5FC 0%, #FFF7E5 100%);
}

.nav-menu-item__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-top: 0;
  flex-shrink: 0;
}

.nav-menu-item__dot--green {
  background: var(--color-organic-green-deep);
  box-shadow: none;
}

.nav-menu-item__dot--sky {
  background: var(--color-sky-blue-deep);
  box-shadow: none;
}

.nav-menu-item__dot--sunny {
  background: var(--color-sunny-yellow-deep);
  box-shadow: none;
}

.nav-menu-item strong {
  display: block;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--color-text-primary);
  margin-bottom: 0;
  white-space: nowrap;
}

.nav-menu-item p {
  display: none;
}

/* Right Zone: Social Channels + Consultation CTA Pill */
.site-header__actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.header-socials {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--color-natural-white);
  box-shadow: inset 0 0 0 1px rgba(43, 82, 104, 0.06);
}

.header-social-link {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #FFFFFF;
  box-shadow: 0 3px 8px rgba(24, 58, 84, 0.08);
  overflow: hidden;
  transition:
    transform var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out);
}

.header-social-link img {
  width: 30px;
  height: 30px;
  object-fit: contain;
  display: block;
}

.header-social-link:hover {
  transform: translateY(-2px) scale(1.06);
  box-shadow: 0 8px 16px -4px rgba(24, 58, 84, 0.2);
}

.header-cta-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 42px;
  padding: 0 6px 0 18px;
  border-radius: 999px;
  background: linear-gradient(135deg var(--in-oklab), #FFE09E 0%, #FDC671 100%);
  color: var(--color-text-primary);
  font-size: 0.88rem;
  font-weight: 700;
  box-shadow: 0 8px 20px -6px rgba(253, 198, 113, 0.45);
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.header-cta-pill:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -6px rgba(253, 198, 113, 0.6);
}

.header-cta-pill__icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  color: var(--color-text-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--dur-fast) var(--ease-out);
}

.header-cta-pill:hover .header-cta-pill__icon {
  transform: translate(1px, -1px) scale(1.06);
}

/* Minimal 2-Line Morphing Hamburger Button (Left Zone on Mobile/Tablet) */
.nav-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: none;
  background: var(--color-natural-white);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 0;
}

.nav-toggle__bar {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: var(--color-text-primary);
  transition: transform var(--dur-fast) var(--ease-out);
}

.nav-toggle.is-active .nav-toggle__bar:nth-child(1) {
  transform: translateY(3.5px) rotate(45deg);
}

.nav-toggle.is-active .nav-toggle__bar:nth-child(2) {
  transform: translateY(-3.5px) rotate(-45deg);
}

/* Mobile Structured Drawer */
.mobile-drawer {
  display: none;
}

@media (max-width: 1160px) {
  .site-nav {
    display: none;
  }

  .nav-toggle {
    display: inline-flex;
  }

  .site-header__shell {
    border-radius: 30px;
  }

  .mobile-drawer {
    display: none;
    padding: 14px 12px 12px;
    margin-top: 6px;
    border-top: 1px solid rgba(43, 82, 104, 0.08);
  }

  .mobile-drawer.is-open {
    display: block;
  }

  .mobile-drawer__products {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
  }

  .mobile-product-pill {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 18px;
    border: none;
  }

  .mobile-product-pill--sky {
    background: var(--color-sky-blue-soft);
  }

  .mobile-product-pill--sunny {
    background: var(--color-sunny-yellow-soft);
  }

  .mobile-product-pill img {
    width: 44px;
    height: 48px;
    object-fit: contain;
    flex-shrink: 0;
  }

  .mobile-product-pill strong {
    display: block;
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 400;
    color: var(--color-text-primary);
  }

  .mobile-product-pill span {
    display: block;
    font-size: 0.74rem;
    color: var(--color-text-secondary);
  }

  .mobile-drawer__links {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
  }

  .mobile-drawer__link {
    padding: 11px 14px;
    border-radius: 14px;
    font-size: 0.94rem;
    font-weight: 700;
    color: var(--color-text-primary);
    background: rgba(255, 255, 255, 0.65);
  }

  .mobile-drawer__link.is-active {
    background: linear-gradient(135deg var(--in-oklab), #E6F4FC 0%, #FFF6E3 100%);
    font-weight: 800;
  }
}

@media (max-width: 768px) {
  .site-header__inner {
    height: 64px;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
  }
  .site-logo img {
    height: 36px;
  }
  .header-socials {
    display: none;
  }
  .header-cta-pill {
    height: 34px;
    padding: 0 4px 0 11px;
    gap: 5px;
    font-size: 0.75rem;
    width: auto;
  }
  .header-cta-pill > span:first-child {
    font-size: 0;
  }
  .header-cta-pill > span:first-child::after {
    content: 'Tư vấn';
    font-size: 0.75rem;
    font-weight: 800;
  }
  .header-cta-pill__icon {
    width: 24px;
    height: 24px;
  }
  .mobile-drawer.is-open {
    max-height: calc(100dvh - 68px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 16px;
  }
  .mobile-drawer__products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .mobile-product-pill {
    padding: 8px 10px;
    gap: 8px;
  }
  .mobile-product-pill img {
    width: 36px;
    height: 40px;
  }
  .mobile-product-pill strong {
    font-size: 0.86rem;
  }
  .mobile-product-pill span {
    font-size: 0.68rem;
    line-height: 1.25;
  }
}

@media (max-width: 370px) {
  .header-cta-pill span:first-child {
    display: none;
  }
  .header-cta-pill {
    padding: 0 5px;
    width: 36px;
    justify-content: center;
  }
}

/* ==========================================================================
   6. SECTION 02: SCENIC HOMEPAGE ARCHITECTURE (REFERENCE MOCKUP STYLE)
   ========================================================================== */
.scenic-hero {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: transparent;
}

.scenic-hero__stage {
  position: relative;
  width: 100%;
}

.scenic-hero__stage::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 52% 72% at 24% 45%, rgba(16, 84, 136, 0.34) 0%, rgba(32, 112, 170, 0.16) 54%, rgba(255, 255, 255, 0) 100%);
}

.scenic-hero__stage img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.scenic-hero__content {
  position: absolute;
  top: 46%;
  left: clamp(24px, 6vw, 92px);
  transform: translateY(-50%) rotate(-3.5deg);
  z-index: 3;
  max-width: 48%;
  pointer-events: none;
}

.scenic-hero__headline {
  font-family: var(--font-display);
  font-size: clamp(2.85rem, 7.1vw, 6.8rem);
  line-height: 1.06;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  margin: 0 0 clamp(14px, 2vw, 26px);
}

.scenic-hero__line-white {
  display: block;
  color: #FFFFFF;
  -webkit-text-stroke: 2px rgba(15, 68, 108, 0.38);
  paint-order: stroke fill;
  text-shadow:
    0 4px 0 rgba(15, 68, 108, 0.36),
    0 12px 28px rgba(10, 48, 80, 0.42);
}

.scenic-hero__line-yellow {
  display: block;
  color: #FFE047;
  -webkit-text-stroke: 2px rgba(15, 68, 108, 0.42);
  paint-order: stroke fill;
  text-shadow:
    0 4px 0 rgba(15, 68, 108, 0.4),
    0 12px 28px rgba(10, 48, 80, 0.45);
}

.scenic-hero__sub {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: clamp(0.95rem, 1.42vw, 1.34rem);
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.55;
  text-transform: uppercase;
  color: #0D3554;
  transform: rotate(3.5deg);
  padding: clamp(10px, 1.1vw, 14px) clamp(16px, 1.8vw, 24px);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow:
    0 10px 28px -6px rgba(14, 58, 92, 0.22),
    inset 0 0 0 1.5px rgba(255, 255, 255, 0.95);
}

/* Interactive hotspots over the two cans on the right of hero-stage.webp */
.scenic-hero__hotspot {
  position: absolute;
  z-index: 4;
  border-radius: 20px;
  cursor: pointer;
  transition: transform var(--dur-fast) var(--ease-out);
}

.scenic-hero__hotspot--aplus {
  left: 53.5%;
  top: 7%;
  width: 20.5%;
  height: 50%;
}

.scenic-hero__hotspot--miwako {
  left: 69.5%;
  top: 19%;
  width: 21%;
  height: 50%;
}

/* Main Homepage V2 Stack below Hero (Constrained to Brand Container) */
.home-v2-main {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
  padding-top: clamp(24px, 3vw, 42px);
  padding-bottom: clamp(32px, 4vw, 56px);
  display: flex;
  flex-direction: column;
  gap: clamp(22px, 2.6vw, 34px);
}

/* 02.B: 4 Minimalist Pastel Feature Cards Row */
.home-pillars-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 1.8vw, 24px);
  width: 100%;
}

.home-pillar-card {
  background: rgba(255, 255, 255, 0.92);
  border-radius: 22px;
  padding: clamp(24px, 2.8vw, 36px) 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 16px;
  box-shadow: 0 10px 28px -10px rgba(43, 82, 104, 0.08);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.home-pillar-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px -10px rgba(43, 82, 104, 0.14);
}

.home-pillar-card__circle {
  width: clamp(66px, 5.4vw, 78px);
  height: clamp(66px, 5.4vw, 78px);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.home-pillar-card__circle--green {
  background: #DCECD2;
  color: #3B602D;
}

.home-pillar-card__circle--yellow {
  background: #FBF0C9;
  color: #7D5E18;
}

.home-pillar-card__circle--blue {
  background: #D8ECF8;
  color: #245B7E;
}

.home-pillar-card__circle--pink {
  background: #FADCD9;
  color: #843B3A;
}

.home-pillar-card__label {
  font-family: var(--font-ui);
  font-size: clamp(0.92rem, 1.1vw, 1.08rem);
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #163C54;
}

/* 03: Two Side-by-Side Scenic Product Banner Cards (MIWAKO A+ & MIWAKO) */
.scenic-products-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.2vw, 28px);
  width: 100%;
}

.scenic-product-banner {
  position: relative;
  display: block;
  width: 100%;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 14px 36px -10px rgba(43, 82, 104, 0.1);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.scenic-product-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.56) 0%, rgba(255, 255, 255, 0.22) 38%, rgba(255, 255, 255, 0) 62%);
}

.scenic-product-banner:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px -12px rgba(43, 82, 104, 0.16);
}

.scenic-product-banner img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  transition: transform 600ms var(--ease-out);
}

.scenic-product-banner:hover img {
  transform: scale(1.02);
}

.scenic-product-banner__overlay {
  position: absolute;
  top: 38%;
  left: clamp(22px, 3.4vw, 46px);
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(10px, 1.4vw, 16px);
  max-width: 52%;
}

.scenic-product-banner__tag {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: clamp(0.72rem, 0.88vw, 0.84rem);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #163C54;
  box-shadow: 0 4px 14px rgba(22, 60, 84, 0.1);
}

.scenic-product-banner__title {
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 3.9vw, 3.75rem);
  line-height: 1.04;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  margin: 0;
  -webkit-text-stroke: 2.5px rgba(255, 255, 255, 0.96);
  paint-order: stroke fill;
  text-shadow:
    0 3px 0 rgba(255, 255, 255, 0.96),
    0 10px 24px rgba(20, 50, 74, 0.22);
}

.scenic-product-banner--aplus .scenic-product-banner__title {
  color: #C2780E;
}

.scenic-product-banner--miwako .scenic-product-banner__title {
  color: #15629B;
}

.scenic-pill-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(68px, 6vw, 90px);
  height: clamp(38px, 3.4vw, 48px);
  border-radius: 999px;
  font-size: clamp(1.15rem, 1.45vw, 1.4rem);
  font-weight: 800;
  color: #FFFFFF;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.scenic-product-banner:hover .scenic-pill-arrow,
.scenic-wide-banner:hover .scenic-pill-arrow {
  transform: translateX(4px);
}

.scenic-pill-arrow--gold {
  background: linear-gradient(135deg, #E29B2E 0%, #C87E12 100%);
  box-shadow: 0 8px 20px -6px rgba(194, 120, 14, 0.52);
}

.scenic-pill-arrow--blue {
  background: linear-gradient(135deg, #2D82BE 0%, #17649C 100%);
  box-shadow: 0 8px 20px -6px rgba(23, 100, 156, 0.52);
}

.scenic-pill-arrow--outline-blue {
  background: rgba(255, 255, 255, 0.92);
  color: #15629B;
  box-shadow: inset 0 0 0 2px #15629B, 0 8px 20px -6px rgba(21, 98, 155, 0.25);
}

/* 04 & 05: Full-Width Wide Scenic Banners (Real Ingredients & Brighter Tomorrow) */
.scenic-wide-banner {
  position: relative;
  display: block;
  width: 100%;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 14px 36px -10px rgba(43, 82, 104, 0.09);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.scenic-wide-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.64) 0%, rgba(255, 255, 255, 0.28) 36%, rgba(255, 255, 255, 0) 58%);
}

.scenic-wide-banner:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 48px -12px rgba(43, 82, 104, 0.15);
}

.scenic-wide-banner img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  transition: transform 650ms var(--ease-out);
}

.scenic-wide-banner:hover img {
  transform: scale(1.015);
}

.scenic-wide-banner__overlay {
  position: absolute;
  top: 50%;
  left: clamp(24px, 4.2vw, 64px);
  transform: translateY(-50%);
  z-index: 2;
  max-width: 44%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(12px, 1.6vw, 20px);
}

.scenic-wide-banner__title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4.2vw, 4.2rem);
  line-height: 1.06;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  margin: 0;
  -webkit-text-stroke: 2.5px rgba(255, 255, 255, 0.96);
  paint-order: stroke fill;
  text-shadow:
    0 4px 0 rgba(255, 255, 255, 0.96),
    0 12px 28px rgba(20, 50, 74, 0.24);
}

.scenic-wide-banner__title--green {
  color: #2B5E20;
  transform: rotate(-3deg);
}

.scenic-wide-banner__title--blue {
  color: #145D94;
  transform: rotate(-2deg);
}

.scenic-wide-banner__sub {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: clamp(0.84rem, 1.05vw, 1rem);
  font-weight: 700;
  color: #163C54;
  background: rgba(255, 255, 255, 0.88);
  padding: 7px 15px;
  border-radius: 999px;
  box-shadow: 0 6px 18px -4px rgba(22, 60, 84, 0.14);
}

@media (max-width: 960px) {
  .home-pillars-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .scenic-products-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .scenic-hero__stage img {
    height: 235px;
    object-fit: cover;
    object-position: 68% center;
  }
  .scenic-hero__content {
    left: 14px;
    top: 50%;
    max-width: 52%;
  }
  .scenic-hero__headline {
    font-size: clamp(1.42rem, 6vw, 1.95rem);
    line-height: 1.08;
    margin-bottom: 8px;
  }
  .scenic-hero__line-white,
  .scenic-hero__line-yellow {
    -webkit-text-stroke: 1.2px rgba(15, 68, 108, 0.42);
  }
  .scenic-hero__sub {
    font-size: clamp(0.58rem, 2.2vw, 0.72rem);
    letter-spacing: 0.05em;
    padding: 6px 10px;
    border-radius: 12px;
    line-height: 1.4;
  }
  .home-v2-main {
    padding-top: 16px;
    padding-bottom: 24px;
    gap: 14px;
  }
  .home-pillars-grid {
    gap: 10px;
  }
  .home-pillar-card {
    flex-direction: row;
    justify-content: flex-start;
    text-align: left;
    padding: 12px 14px;
    gap: 10px;
    border-radius: 18px;
  }
  .home-pillar-card__circle {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
  }
  .home-pillar-card__circle svg {
    width: 22px;
    height: 22px;
  }
  .home-pillar-card__label {
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    line-height: 1.25;
  }
  .scenic-products-grid {
    gap: 14px;
  }
  .scenic-product-banner {
    border-radius: 20px;
  }
  .scenic-product-banner img {
    height: 205px;
    object-fit: cover;
    object-position: 82% center;
  }
  .scenic-product-banner__overlay {
    top: 50%;
    left: 16px;
    max-width: 56%;
    gap: 8px;
  }
  .scenic-product-banner__tag {
    font-size: 0.62rem;
    padding: 4px 9px;
    letter-spacing: 0.05em;
  }
  .scenic-product-banner__title {
    font-size: clamp(1.55rem, 6.2vw, 2.05rem);
    -webkit-text-stroke: 1.6px rgba(255, 255, 255, 0.96);
  }
  .scenic-pill-arrow {
    width: 52px;
    height: 32px;
    font-size: 1rem;
  }
  .scenic-wide-banner {
    border-radius: 20px;
  }
  .scenic-wide-banner img {
    height: 185px;
    object-fit: cover;
    object-position: 78% center;
  }
  .scenic-wide-banner__overlay {
    top: 50%;
    left: 16px;
    max-width: 56%;
    gap: 7px;
  }
  .scenic-wide-banner__title {
    font-size: clamp(1.38rem, 5.4vw, 1.85rem);
    -webkit-text-stroke: 1.6px rgba(255, 255, 255, 0.96);
  }
  .scenic-wide-banner__sub {
    display: inline-block;
    font-size: 0.66rem;
    padding: 5px 10px;
    line-height: 1.3;
  }
  .scenic-wide-banner .scenic-pill-arrow {
    display: none;
  }
}

.hero {
  position: relative;
  background: transparent !important;
  padding-top: clamp(44px, 5vw, 72px);
  padding-bottom: clamp(48px, 6vw, 80px);
  overflow: visible;
  isolation: isolate;
}

.hero::before,
.hero::after {
  display: none;
}

.hero__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  align-items: center;
  gap: clamp(32px, 4.5vw, 64px);
}

.hero__content {
  max-width: 560px;
}

.hero__title {
  margin-bottom: 20px;
}

.hero__title-highlight {
  display: inline;
  color: #348AC7;
}

.hero__desc {
  font-size: clamp(1rem, 0.96rem + 0.2vw, 1.12rem);
  color: var(--color-text-secondary);
  margin-bottom: 28px;
  line-height: 1.62;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 0;
}

/* Official Visual Stamp Badges Strip on Subpages */
.hero__badge-strip {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  border: none;
  margin-top: 22px;
  box-shadow: 0 8px 24px -8px rgba(55, 110, 145, 0.08);
}

.hero__badge-strip img {
  height: 38px;
  width: auto;
  object-fit: contain;
}

/* Open, Borderless Studio Stage on Hero Right: Two Equal Cans Floating Freely */
.hero__visual-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero__pedestal {
  position: relative;
  width: 100%;
  border-radius: 0;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.hero__pedestal-inner {
  position: relative;
  border-radius: 0;
  padding: clamp(12px, 2vw, 24px) 0;
  background: radial-gradient(circle at 50% 52%, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0.35) 48%, transparent 72%);
  overflow: visible;
}

/* Two Products Standing Side-by-Side at Identical Physical Scale */
.hero__cans-pair {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: end;
  gap: clamp(18px, 3vw, 34px);
  width: 100%;
  max-width: 560px;
  margin-inline: auto;
}

.hero__can-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform var(--dur-med) var(--ease-out);
}

.hero__can-item:hover {
  transform: translateY(-10px) scale(1.02);
}

.hero__can-img-wrap {
  width: 100%;
  aspect-ratio: 920 / 960;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}

.hero__can-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 26px 34px rgba(45, 95, 128, 0.18));
}

@media (max-width: 992px) {
  .hero__grid {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .hero__content {
    max-width: 640px;
    margin-inline: auto;
  }

  .hero__actions,
  .hero__trust-meta,
  .hero__badge-strip {
    justify-content: center;
  }

  .hero__cans-pair {
    max-width: 440px;
  }
}

/* ==========================================================================
   7. SECTION 03: PRODUCT COLLECTION (LARGE STUDIO PACKSHOT CARDS)
   ========================================================================== */
.product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 36px);
  align-items: stretch;
}

.product-card {
  position: relative;
  border-radius: 34px;
  padding: 0;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.88);
  border: none;
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.product-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

.product-card__inner {
  border-radius: 34px;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  background: transparent;
  border: none;
}

.product-card__stage {
  position: relative;
  border-radius: 0;
  padding: 36px 28px 26px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 360px;
  overflow: hidden;
}

.product-card--miwako .product-card__stage {
  background: var(--grad-sky-world);
}

.product-card--aplus .product-card__stage {
  background: var(--grad-sunny-world);
}

.product-card__stage-top {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  z-index: 2;
}

.product-card__packshot {
  width: 268px;
  height: 276px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-block: 4px;
  z-index: 2;
}

.product-card__packshot img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 22px 32px rgba(45, 95, 128, 0.17));
  transition: transform var(--dur-med) var(--ease-out);
}

.product-card:hover .product-card__packshot img {
  transform: scale(1.05) translateY(-5px);
}

.product-card__body {
  padding: 26px 30px 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: 1;
}

.product-card__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
}

.product-card__chip {
  padding: 6px 14px;
  border-radius: 999px;
  background: var(--color-natural-white);
  border: none;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--color-text-primary);
}

.product-card__desc {
  color: var(--color-text-secondary);
  font-size: 0.96rem;
  margin-top: 6px;
  margin-bottom: 18px;
  line-height: 1.58;
  max-width: 440px;
}

.product-card__footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 6px;
  border-top: none;
}

@media (max-width: 900px) {
  .product-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   8. VISUAL ART BENTO LOOKBOOK GALLERY (PARENT & CHILD + GRAIN ART)
   ========================================================================== */
.lookbook-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 36px;
}

.lookbook-filter-btn {
  padding: 10px 22px;
  border-radius: 999px;
  border: none;
  background: rgba(255, 255, 255, 0.85);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--color-text-secondary);
  cursor: pointer;
  box-shadow: 0 6px 16px -6px rgba(55, 110, 145, 0.08);
  transition: all var(--dur-fast) var(--ease-out);
}

.lookbook-filter-btn:hover,
.lookbook-filter-btn.is-active {
  background: linear-gradient(135deg var(--in-oklab), #4298D1 0%, #63B3E8 100%);
  color: var(--color-pure-white);
  box-shadow: 0 10px 24px -6px rgba(66, 152, 209, 0.36);
}

.bento-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: auto;
  align-items: start;
  gap: clamp(18px, 2.2vw, 32px);
  width: 100%;
}

.bento-item {
  position: relative;
  border-radius: 26px;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: var(--shadow-card);
  cursor: pointer;
  overflow: hidden;
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.bento-item:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-card-hover);
}

.bento-item--wide,
.bento-item--tall,
.bento-item--featured,
.bento-item--standard,
.bento-item--compact {
  grid-column: span 1;
  grid-row: span 1;
}

.bento-item__inner {
  position: relative;
  width: 100%;
  height: auto;
  border-radius: 26px;
  overflow: hidden;
  background: transparent;
}

.bento-item__inner img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  border-radius: 26px;
  transition: transform 650ms var(--ease-out);
}

.bento-item:hover .bento-item__inner img {
  transform: scale(1.03);
}

.bento-item__overlay {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 14px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: none;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  padding: 10px 14px;
  color: var(--color-text-primary);
  box-shadow: 0 10px 24px -8px rgba(55, 110, 145, 0.16);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.bento-item:hover .bento-item__overlay {
  opacity: 1;
  transform: translateY(0);
}

.bento-item__tag {
  align-self: flex-start;
  font-size: 0.69rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-sky-blue-deep);
  margin-bottom: 2px;
}

.bento-item__title {
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--color-text-primary);
  line-height: 1.32;
}

@media (max-width: 1360px) {
  .bento-gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 992px) {
  .bento-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: auto;
  }
  .bento-item--wide,
  .bento-item--tall,
  .bento-item--featured,
  .bento-item--standard,
  .bento-item--compact {
    grid-column: span 1;
    grid-row: span 1;
  }
}

@media (max-width: 600px) {
  .bento-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: auto;
    gap: 10px;
  }
  .bento-item,
  .bento-item__inner,
  .bento-item__inner img {
    border-radius: 18px;
  }
}

.bento-mobile-more-wrap {
  display: none;
  justify-content: center;
  margin-top: 18px;
  width: 100%;
}

.bento-mobile-more-btn {
  width: 100%;
  max-width: 340px;
  justify-content: center;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.95);
  border: 1.5px solid rgba(66, 152, 209, 0.35);
  color: #164F78;
}

/* Lightbox Modal for Lookbook Photos */
.lightbox-modal {
  position: fixed;
  inset: 0;
  z-index: 250;
  background: rgba(24, 41, 50, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.lightbox-modal.is-open {
  display: flex;
}

.lightbox-modal__card {
  position: relative;
  max-width: 860px;
  width: 100%;
  background: rgba(255, 255, 255, 0.95);
  padding: 12px;
  border-radius: 32px;
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.35);
}

.lightbox-modal__card img {
  width: 100%;
  max-height: 76vh;
  object-fit: contain;
  border-radius: 22px;
  background: var(--color-natural-white);
}

.lightbox-modal__caption {
  padding: 14px 16px 6px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.lightbox-modal__close {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: var(--color-text-primary);
  color: var(--color-pure-white);
  font-weight: 800;
  cursor: pointer;
}

/* ==========================================================================
   9. SECTION 04: NATURAL ORGANIC INGREDIENTS (VISUAL MACRO CARDS)
   ========================================================================== */
.ingredients-showcase {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: clamp(28px, 4vw, 52px);
  align-items: center;
}

.ingredients-hero-art {
  position: relative;
}

.ingredients-hero-art__badge {
  position: absolute;
  bottom: 22px;
  left: 22px;
  right: 22px;
  padding: 18px 22px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.98);
  box-shadow: 0 16px 36px -8px rgba(37, 61, 73, 0.14);
}

.macro-grain-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.macro-grain-card {
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 26px;
  padding: 0;
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.macro-grain-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-card-hover);
}

.macro-grain-card__inner {
  background: transparent;
  border-radius: 26px;
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.macro-grain-card__img {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  position: relative;
  background: #F7F4EC;
}

.macro-grain-card__img img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transition: transform 500ms var(--ease-out);
}

.macro-grain-card:hover .macro-grain-card__img img {
  transform: scale(1.05);
}

.macro-grain-card__body {
  padding: 20px 20px 22px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.macro-grain-card__body h3 {
  font-size: 1.12rem;
  margin-bottom: 6px;
}

.macro-grain-card__body p {
  font-size: 0.92rem;
  color: var(--color-text-secondary);
  line-height: 1.55;
}

/* Official 6-Free Visual Icon Ribbon */
.free-from-ribbon {
  margin-top: 36px;
  padding: 22px 26px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.86);
  border: none;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.free-from-ribbon__badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.free-from-badge-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--color-natural-white);
  border: none;
  box-shadow: none;
}

.free-from-badge-item img {
  width: 38px;
  height: 38px;
  object-fit: contain;
}

.free-from-badge-item span {
  font-size: 0.85rem;
  font-weight: 800;
  color: var(--color-text-primary);
}

@media (max-width: 960px) {
  .ingredients-showcase {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .macro-grain-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   10. SECTION 05: EDITORIAL NUTRITION KNOWLEDGE CARDS
   ========================================================================== */
.editorial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--card-gap);
}

.editorial-card {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 28px;
  padding: 0;
  border: none;
  overflow: hidden;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.editorial-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-card-hover);
}

.editorial-card__media {
  width: 100%;
  height: auto;
  overflow: hidden;
  border-radius: 0;
  background: var(--color-sky-blue-soft);
}

.editorial-card__media img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  transition: transform 500ms var(--ease-out);
}

.editorial-card:hover .editorial-card__media img {
  transform: scale(1.05);
}

.editorial-card__body {
  padding: 20px 18px 18px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.editorial-card__tag {
  display: inline-block;
  align-self: flex-start;
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--color-sky-blue-soft);
  color: var(--color-text-primary);
  font-size: 0.78rem;
  font-weight: 800;
  margin-bottom: 10px;
}

.editorial-card__title {
  margin-bottom: 8px;
  font-size: 1.2rem;
}

.editorial-card__excerpt {
  color: var(--color-text-secondary);
  font-size: 0.93rem;
  margin-bottom: 16px;
  flex: 1;
}

.editorial-card__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--color-text-primary);
}

@media (max-width: 960px) {
  .editorial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .editorial-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   11. SECTION 06: AUTHENTICITY & PARENT CONSULTATION
   ========================================================================== */
.authenticity-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(28px, 4vw, 52px);
  align-items: stretch;
}

.authenticity-card {
  background: rgba(255, 255, 255, 0.88);
  border-radius: 30px;
  padding: clamp(24px, 3vw, 36px);
  border: none;
  box-shadow: var(--shadow-card);
}

/* Form Elements */
.form-group {
  margin-bottom: 14px;
}

.form-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-text-primary);
  margin-bottom: 6px;
}

.form-control {
  width: 100%;
  padding: 13px 18px;
  border-radius: 16px;
  border: none;
  background: var(--color-natural-white);
  color: var(--color-text-primary);
  font-size: 0.95rem;
  box-shadow: inset 0 0 0 1px rgba(66, 152, 209, 0.14);
  transition: box-shadow var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}

.form-control:focus {
  outline: none;
  background: var(--color-pure-white);
  box-shadow: 0 0 0 3px rgba(131, 195, 232, 0.35);
}

@media (max-width: 960px) {
  .authenticity-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   12. PRODUCT DETAIL INTERACTIVE GALLERY SWITCHER
   ========================================================================== */
.product-gallery-stage {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.product-gallery-stage__main {
  background: rgba(255, 255, 255, 0.82);
  border: none;
  border-radius: 30px;
  padding: 20px;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.product-gallery-stage__main img {
  width: 100%;
  height: auto;
  max-height: 680px;
  object-fit: contain;
  border-radius: 22px;
  transition: transform 400ms var(--ease-out);
}

.product-gallery-stage__thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}

.product-gallery-thumb {
  background: rgba(255, 255, 255, 0.85);
  border: none;
  border-radius: 16px;
  padding: 4px;
  height: auto;
  cursor: pointer;
  overflow: hidden;
  box-shadow: 0 6px 14px -6px rgba(55, 110, 145, 0.1);
  transition: all var(--dur-fast) var(--ease-out);
}

.product-gallery-thumb.is-active,
.product-gallery-thumb:hover {
  transform: translateY(-2px);
  background: var(--color-pure-white);
  box-shadow: 0 0 0 2.5px var(--color-sky-blue-deep), 0 10px 20px -6px rgba(55, 110, 145, 0.18);
}

.product-gallery-thumb img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  border-radius: 12px;
}

/* ==========================================================================
   13. SECTION 07: FOOTER (SEAMLESS TRANSPARENT BLEND INTO WHOLE-PAGE CANVAS)
   ========================================================================== */
.site-footer {
  background: transparent !important;
  color: var(--color-text-primary);
  padding-top: 64px;
  padding-bottom: 36px;
  position: relative;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 36px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(43, 82, 104, 0.1);
}

.site-footer__brand img {
  height: 46px;
  width: auto;
  filter: drop-shadow(0 2px 6px rgba(32, 74, 105, 0.08));
}

.site-footer__brand p {
  color: var(--color-text-secondary);
  font-size: 0.94rem;
  max-width: 340px;
  margin-top: 14px;
}

.site-footer__title {
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 400;
  font-synthesis: none;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-text-primary);
  margin-bottom: 14px;
}

.site-footer__links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.site-footer__links a {
  color: var(--color-text-secondary);
  font-size: 0.9375rem;
}

.site-footer__links a:hover {
  color: var(--color-sky-blue-deep);
}

.site-footer__bottom {
  padding-top: 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: 0.85rem;
  color: var(--color-text-muted);
}

@media (max-width: 960px) {
  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .site-footer__grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   14. CERTIFICATION STORY BOARDS & TERMINOLOGY ENCYCLOPEDIA
   ========================================================================== */
.cert-boards-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}

.cert-story-board {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  box-shadow: var(--shadow-card);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.cert-story-board:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

/* Top Header Box inside Certification Story Board */
.cert-story-board__head {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 0 14px;
  border-radius: 0;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(43, 82, 104, 0.08);
  box-shadow: none;
}

.cert-story-board__badge {
  width: 84px;
  height: 84px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cert-story-board__badge img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 6px 12px rgba(55, 110, 145, 0.12));
}

.cert-story-board__title {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0.025em;
  line-height: 1.26;
  color: #1A5276;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.cert-story-board__subtitle {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  line-height: 1.4;
}

/* Bottom Criteria Card with Watermark Badge */
.cert-story-board__body {
  position: relative;
  flex: 1;
  padding: 6px 0 0;
  border-radius: 0;
  background: transparent;
  border: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cert-story-board__watermark {
  position: absolute;
  right: -18px;
  bottom: -18px;
  width: 160px;
  height: 160px;
  object-fit: contain;
  opacity: 0.11;
  pointer-events: none;
  transform: rotate(-8deg);
}

.cert-story-board__intro {
  font-size: 0.96rem;
  font-weight: 600;
  color: #1A5276;
  line-height: 1.55;
}

.cert-criteria-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
  z-index: 1;
}

.cert-criteria-item strong {
  display: block;
  font-size: 0.96rem;
  font-weight: 800;
  color: #154360;
  margin-bottom: 2px;
}

.cert-criteria-item p {
  font-size: 0.92rem;
  color: var(--color-text-primary);
  line-height: 1.52;
}

@media (max-width: 1080px) {
  .cert-boards-grid {
    grid-template-columns: 1fr;
  }
}

/* Symbol / Badge Decoder Grid */
.symbol-decoder-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.symbol-card {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 26px;
  padding: 24px;
  border: none;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.symbol-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-card-hover);
}

.symbol-card__top {
  display: flex;
  align-items: center;
  gap: 16px;
}

.symbol-card__icon {
  width: 68px;
  height: 68px;
  border-radius: 20px;
  background: var(--color-natural-white);
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 8px 18px -6px rgba(37, 61, 73, 0.1);
}

.symbol-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (max-width: 960px) {
  .symbol-decoder-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .symbol-decoder-grid {
    grid-template-columns: 1fr;
  }
}

/* Terminology Encyclopedia & Mutually Exclusive <details> Accordions */
.glossary-search-bar {
  max-width: 680px;
  margin: 0 auto 28px;
  position: relative;
}

.glossary-search-input {
  width: 100%;
  padding: 16px 24px 16px 52px;
  border-radius: 999px;
  border: 1.5px solid rgba(37, 61, 73, 0.14);
  background: rgba(255, 255, 255, 0.92);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-text-primary);
  box-shadow: 0 12px 32px -10px rgba(37, 61, 73, 0.1);
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.glossary-search-input:focus {
  outline: none;
  border-color: var(--color-sky-blue-deep);
  box-shadow: 0 0 0 4px rgba(131, 195, 232, 0.28);
}

.glossary-search-icon {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-muted);
  pointer-events: none;
}

.glossary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.glossary-card {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 26px;
  padding: 24px;
  border: none;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: transform var(--dur-med) var(--ease-out);
}

.glossary-card:hover {
  transform: translateY(-4px);
}

.glossary-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.glossary-card__term {
  font-family: var(--font-display);
  font-size: 1.32rem;
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0.02em;
  color: var(--color-text-primary);
}

.glossary-card__en {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-sky-blue-deep);
}

.glossary-accordion-group {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 920px;
  margin-inline: auto;
}

details.glossary-disclosure {
  background: rgba(255, 255, 255, 0.92);
  border-radius: 24px;
  border: none;
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: box-shadow var(--dur-fast) var(--ease-out);
}

details.glossary-disclosure[open] {
  box-shadow: var(--shadow-card-hover);
}

details.glossary-disclosure summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 26px;
  font-family: var(--font-display);
  font-size: 1.18rem;
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0.015em;
  color: var(--color-text-primary);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

details.glossary-disclosure summary::-webkit-details-marker {
  display: none;
}

.glossary-disclosure__icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--color-sky-blue-soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  flex-shrink: 0;
  transition: transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}

details.glossary-disclosure[open] .glossary-disclosure__icon {
  transform: rotate(45deg);
  background: var(--color-sunny-yellow);
}

.glossary-disclosure__content {
  padding: 0 26px 24px;
  color: var(--color-text-secondary);
  line-height: 1.68;
  border-top: 1px solid rgba(37, 61, 73, 0.06);
  padding-top: 16px;
}

@media (max-width: 860px) {
  .glossary-grid {
    grid-template-columns: 1fr;
  }
}

dialog::backdrop {
  background-color: rgba(24, 41, 50, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* Full-Bleed Lookbook Photography Wrapper & Individual Certification Showcase Grids */
.lookbook-fullbleed {
  width: 100%;
  max-width: 100%;
  padding-inline: clamp(20px, 3.2vw, 48px);
}

.cert-showcase-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 24px;
}

.cert-showcase-card {
  background: rgba(255, 255, 255, 0.92);
  border-radius: 26px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
  box-shadow: var(--shadow-card);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.cert-showcase-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.cert-showcase-card__seal {
  width: 112px;
  height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}

.cert-showcase-card__seal img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(43, 82, 104, 0.1));
}

.cert-showcase-card__title {
  font-family: var(--font-display);
  font-size: 1.32rem;
  color: var(--color-text-primary);
  margin: 0;
}

.cert-showcase-card__org {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--color-sky-blue-deep);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.cert-showcase-card__desc {
  font-size: 0.92rem;
  color: var(--color-text-secondary);
  line-height: 1.58;
}

.freefrom-showcase-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
}

.freefrom-showcase-item {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 22px;
  padding: 20px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  box-shadow: 0 8px 24px -8px rgba(43, 82, 104, 0.08);
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.freefrom-showcase-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card);
}

.freefrom-showcase-item img {
  width: 72px;
  height: 72px;
  object-fit: contain;
}

.freefrom-showcase-item strong {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 400;
  color: var(--color-text-primary);
  line-height: 1.2;
}

.freefrom-showcase-item span {
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

@media (max-width: 960px) {
  .cert-showcase-grid {
    grid-template-columns: 1fr;
  }
  .freefrom-showcase-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .freefrom-showcase-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Semantic Breadcrumb Bar & Structured Category Hub for Google Sitelinks */
.seo-breadcrumb {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding: 18px var(--container-pad) 0;
  position: relative;
  z-index: 5;
}

.seo-breadcrumb__list {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--color-text-secondary);
  box-shadow: 0 4px 14px -4px rgba(43, 82, 104, 0.07);
}

.seo-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.seo-breadcrumb__item + .seo-breadcrumb__item::before {
  content: '›';
  color: var(--color-sky-blue-deep);
  font-weight: 800;
}

.seo-breadcrumb__link {
  color: var(--color-text-secondary);
  transition: color var(--dur-fast) var(--ease-out);
}

.seo-breadcrumb__link:hover {
  color: var(--color-sky-blue-deep);
}

.seo-breadcrumb__current {
  color: var(--color-text-primary);
  font-weight: 800;
}

.category-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
}

.category-hub-card {
  background: rgba(255, 255, 255, 0.92);
  border-radius: 24px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  box-shadow: var(--shadow-card);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.category-hub-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.category-hub-card__tag {
  display: inline-flex;
  align-self: flex-start;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--color-sky-blue-soft);
  color: #164F78;
}

.category-hub-card__tag--sunny {
  background: var(--color-sunny-yellow-soft);
  color: #84590E;
}

.category-hub-card__tag--green {
  background: var(--color-organic-green-soft);
  color: #2D5A20;
}

.category-hub-card__title {
  font-family: var(--font-display);
  font-size: 1.28rem;
  color: var(--color-text-primary);
  margin: 0;
}

.category-hub-card__desc {
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  line-height: 1.56;
  margin: 0;
}

.category-hub-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.86rem;
  font-weight: 800;
  color: #165B8C;
  margin-top: 4px;
}

@media (max-width: 960px) {
  .category-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .category-hub-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   14B. DEDICATED CONTACT CHANNELS SHOWCASE (ZERO FORMS)
   ========================================================================== */
.contact-channels-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 36px;
}

.contact-channel-card {
  background: rgba(255, 255, 255, 0.96);
  border-radius: 26px;
  padding: 26px 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  box-shadow: var(--shadow-card);
  border: 2px solid rgba(114, 174, 216, 0.22);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out), border-color var(--dur-med) var(--ease-out);
  text-decoration: none;
  color: inherit;
}

.contact-channel-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--color-sky-blue);
}

.contact-channel-card--sunny {
  border-color: rgba(242, 189, 75, 0.42);
  background: linear-gradient(180deg, #FFFDF7 0%, #FFFFFF 100%);
}

.contact-channel-card--sunny:hover {
  border-color: var(--color-sunny-yellow);
}

.contact-channel-card--green {
  border-color: rgba(117, 172, 102, 0.35);
  background: linear-gradient(180deg, #F8FCF7 0%, #FFFFFF 100%);
}

.contact-channel-card--green:hover {
  border-color: var(--color-organic-green);
}

.contact-channel-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.contact-channel-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-sky-blue-soft);
  color: var(--color-sky-blue-deep);
  flex-shrink: 0;
  box-shadow: 0 6px 14px -4px rgba(30, 111, 168, 0.16);
}

.contact-channel-card__icon--sunny {
  background: var(--color-sunny-yellow-soft);
  color: #84590E;
}

.contact-channel-card__icon--green {
  background: var(--color-organic-green-soft);
  color: #2D5A20;
}

.contact-channel-card__icon img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.contact-channel-card__badge {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--color-sky-blue-soft);
  color: #164F78;
}

.contact-channel-card__badge--sunny {
  background: var(--color-sunny-yellow-soft);
  color: #84590E;
}

.contact-channel-card__badge--green {
  background: var(--color-organic-green-soft);
  color: #2D5A20;
}

.contact-channel-card__label {
  font-family: var(--font-display);
  font-size: 1.18rem;
  color: var(--color-text-primary);
  margin: 0 0 6px;
}

.contact-channel-card__value {
  font-size: 1.08rem;
  font-weight: 800;
  color: var(--color-sky-blue-deep);
  word-break: break-word;
  line-height: 1.35;
  padding: 10px 14px;
  border-radius: 14px;
  background: #F3F8FC;
  border: 1px solid rgba(114, 174, 216, 0.28);
  margin-bottom: 8px;
}

.contact-channel-card--sunny .contact-channel-card__value {
  color: #7A4F08;
  background: #FFF9E8;
  border-color: rgba(242, 189, 75, 0.38);
  font-size: 1.24rem;
  letter-spacing: 0.02em;
}

.contact-channel-card--green .contact-channel-card__value {
  color: #25521A;
  background: #F2F9F0;
  border-color: rgba(117, 172, 102, 0.34);
}

.contact-channel-card__desc {
  font-size: 0.88rem;
  color: var(--color-text-secondary);
  line-height: 1.54;
  margin: 0;
}

.contact-channel-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 16px;
  border-radius: 999px;
  font-size: 0.86rem;
  font-weight: 800;
  background: var(--color-sky-blue-soft);
  color: #164F78;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}

.contact-channel-card:hover .contact-channel-card__cta {
  background: var(--color-sky-blue-deep);
  color: #FFFFFF;
}

.contact-channel-card--sunny .contact-channel-card__cta {
  background: var(--color-sunny-yellow);
  color: #3D2800;
}

.contact-channel-card--sunny:hover .contact-channel-card__cta {
  background: #E2A829;
  color: #261800;
}

.contact-channel-card--green .contact-channel-card__cta {
  background: var(--color-organic-green-soft);
  color: #25521A;
}

.contact-channel-card--green:hover .contact-channel-card__cta {
  background: var(--color-organic-green);
  color: #FFFFFF;
}

@media (max-width: 1120px) {
  .contact-channels-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .contact-channels-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   14C. CUSTOMER FEEDBACK & REVIEW HUB (/danh-gia)
   ========================================================================== */
.form-group {
  margin-bottom: 18px;
}

.form-label {
  display: block;
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--color-text-primary);
  margin-bottom: 6px;
}

.form-input,
.form-select,
.form-textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  font-family: var(--font-body);
  font-size: 0.94rem;
  font-weight: 600;
  color: var(--color-text-primary);
  background: #FFFFFF;
  border: 1.5px solid rgba(114, 174, 216, 0.42);
  border-radius: 16px;
  padding: 12px 16px;
  line-height: 1.45;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
  outline: none;
}

.form-input::placeholder,
.form-textarea::placeholder {
  color: #7D99AD;
  font-weight: 500;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  border-color: var(--color-sky-blue-deep);
  box-shadow: 0 0 0 3px rgba(30, 111, 168, 0.14);
}

.form-textarea {
  min-height: 118px;
  resize: vertical;
}

.feedback-layout {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 28px;
  align-items: start;
  margin-bottom: 48px;
}

.feedback-form-card {
  background: rgba(255, 255, 255, 0.97);
  border-radius: 30px;
  padding: 34px 32px;
  box-shadow: var(--shadow-card);
  border: 2px solid rgba(114, 174, 216, 0.24);
}

.feedback-info-col {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.feedback-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 8px;
}

.feedback-type-option {
  position: relative;
  cursor: pointer;
}

.feedback-type-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.feedback-type-pill {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 18px;
  background: #F6FAFD;
  border: 2px solid rgba(114, 174, 216, 0.22);
  transition: all var(--dur-fast) var(--ease-out);
}

.feedback-type-option input:checked + .feedback-type-pill {
  background: #FFFDF4;
  border-color: var(--color-sunny-yellow);
  box-shadow: 0 8px 20px -6px rgba(242, 189, 75, 0.28);
}

.feedback-type-pill__icon {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(21, 58, 84, 0.06);
}

.feedback-type-pill__text strong {
  display: block;
  font-size: 0.92rem;
  color: var(--color-text-primary);
  margin-bottom: 2px;
}

.feedback-type-pill__text span {
  display: block;
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.4;
}

/* Star Rating Widget */
.feedback-rating-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  padding: 14px 18px;
  border-radius: 18px;
  background: #FFFDF6;
  border: 1.5px solid rgba(242, 189, 75, 0.38);
  margin-top: 8px;
}

.feedback-stars {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.feedback-star-btn {
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  font-size: 1.75rem;
  line-height: 1;
  color: #D5E1EA;
  transition: transform 150ms ease, color 150ms ease;
}

.feedback-star-btn.is-active {
  color: #F5B427;
}

.feedback-star-btn:hover {
  transform: scale(1.14);
}

.feedback-rating-label {
  font-size: 0.88rem;
  font-weight: 800;
  color: #7A4F08;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--color-sunny-yellow-soft);
}

/* Quick Tag Chips */
.feedback-tags-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.feedback-tag-chip {
  border: 1.5px solid rgba(114, 174, 216, 0.3);
  background: #F7FBFE;
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  font-weight: 700;
  padding: 6px 13px;
  border-radius: 999px;
  cursor: pointer;
  transition: all 150ms ease;
}

.feedback-tag-chip:hover {
  border-color: var(--color-sky-blue);
  color: var(--color-text-primary);
}

.feedback-tag-chip.is-selected {
  background: var(--color-sky-blue-deep);
  border-color: var(--color-sky-blue-deep);
  color: #FFFFFF;
}

/* File & Image Upload Dropzone */
.feedback-upload-zone {
  position: relative;
  border: 2px dashed rgba(30, 111, 168, 0.36);
  border-radius: 20px;
  background: #F7FBFE;
  padding: 22px 20px;
  text-align: center;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease-out);
  margin-top: 8px;
}

.feedback-upload-zone:hover,
.feedback-upload-zone.is-dragover {
  background: #EDF6FC;
  border-color: var(--color-sky-blue-deep);
}

.feedback-upload-zone input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.feedback-upload-zone__icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: #FFFFFF;
  color: var(--color-sky-blue-deep);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
  box-shadow: 0 6px 14px rgba(30, 111, 168, 0.12);
}

.feedback-upload-zone__title {
  display: block;
  font-weight: 800;
  font-size: 0.95rem;
  color: var(--color-text-primary);
  margin-bottom: 4px;
}

.feedback-upload-zone__hint {
  display: block;
  font-size: 0.82rem;
  color: var(--color-text-secondary);
}

.feedback-attachments-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.feedback-attachment-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #FFFFFF;
  border: 1px solid rgba(114, 174, 216, 0.32);
  box-shadow: 0 4px 10px rgba(21, 58, 84, 0.05);
}

.feedback-attachment-thumb {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  object-fit: cover;
  background: #EFF6FB;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.feedback-attachment-meta {
  flex: 1;
  min-width: 0;
}

.feedback-attachment-name {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--color-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.feedback-attachment-size {
  display: block;
  font-size: 0.74rem;
  color: var(--color-text-secondary);
}

.feedback-attachment-remove {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: none;
  background: #FCE8E6;
  color: #B3261E;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Reviews Filter & List */
.feedback-filter-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 28px;
}

.feedback-filter-btn {
  padding: 10px 20px;
  border-radius: 999px;
  border: 1.5px solid rgba(114, 174, 216, 0.32);
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-text-secondary);
  font-size: 0.9rem;
  font-weight: 800;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease-out);
}

.feedback-filter-btn.is-active,
.feedback-filter-btn:hover {
  background: var(--color-sky-blue-deep);
  border-color: var(--color-sky-blue-deep);
  color: #FFFFFF;
}

.feedback-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.feedback-review-card {
  background: rgba(255, 255, 255, 0.96);
  border-radius: 26px;
  padding: 24px;
  box-shadow: var(--shadow-card);
  border: 1.5px solid rgba(114, 174, 216, 0.22);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
}

.feedback-review-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.feedback-review-card__stars {
  color: #F5B427;
  font-size: 1.05rem;
  letter-spacing: 2px;
}

.feedback-review-card__reply {
  padding: 14px 16px;
  border-radius: 16px;
  background: #F4F9F3;
  border-left: 4px solid var(--color-organic-green);
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  line-height: 1.52;
}

.feedback-review-card__reply strong {
  display: block;
  color: #25521A;
  margin-bottom: 4px;
  font-size: 0.82rem;
}

@media (max-width: 1024px) {
  .feedback-layout {
    grid-template-columns: 1fr;
  }
  .feedback-reviews-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .feedback-type-grid,
  .feedback-attachments-list,
  .feedback-reviews-grid {
    grid-template-columns: 1fr;
  }
  .feedback-form-card {
    padding: 24px 18px;
  }
}

/* Google reCAPTCHA v3 Smart Widget & Floating Shield Badge */
.miwako-recaptcha-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 16px;
  border-radius: 16px;
  background: #F9FCFF;
  border: 1.5px solid rgba(66, 133, 244, 0.28);
  margin-bottom: 16px;
  box-shadow: 0 4px 14px -6px rgba(28, 58, 169, 0.08);
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.miwako-recaptcha-box.is-verified {
  background: #F4FBF2;
  border-color: rgba(77, 139, 62, 0.45);
}

.miwako-recaptcha-box__left {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  user-select: none;
  flex: 1;
  min-width: 0;
}

.miwako-recaptcha-box__checkbox-wrap {
  position: relative;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.miwako-recaptcha-box__checkbox {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: 2px solid #90A4B8;
  appearance: none;
  -webkit-appearance: none;
  background: #FFFFFF;
  cursor: pointer;
  margin: 0;
  transition: all 160ms ease;
}

.miwako-recaptcha-box__checkbox:hover {
  border-color: #4285F4;
}

.miwako-recaptcha-box.is-verifying .miwako-recaptcha-box__checkbox,
.miwako-recaptcha-box.is-verified .miwako-recaptcha-box__checkbox {
  opacity: 0;
  pointer-events: none;
}

.miwako-recaptcha-box__spinner {
  display: none;
  position: absolute;
  width: 22px;
  height: 22px;
  border: 2.5px solid rgba(66, 133, 244, 0.22);
  border-top-color: #4285F4;
  border-radius: 50%;
  animation: miwakoSpin 0.7s linear infinite;
}

.miwako-recaptcha-box__check-icon {
  display: none;
  position: absolute;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #2E7D32;
  color: #FFFFFF;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  font-weight: 800;
}

@keyframes miwakoSpin {
  to {
    transform: rotate(360deg);
  }
}

.miwako-recaptcha-box__label {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-text-primary);
  line-height: 1.35;
}

.miwako-recaptcha-box__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex-shrink: 0;
  padding-left: 10px;
  border-left: 1px solid rgba(114, 174, 216, 0.25);
}

.miwako-recaptcha-box__brand strong {
  font-size: 0.65rem;
  font-weight: 800;
  color: #4A5D6E;
  letter-spacing: 0.02em;
  margin-top: 2px;
}

.miwako-recaptcha-box__brand span {
  font-size: 0.6rem;
  color: #6B8296;
}

.miwako-recaptcha-box__brand a {
  color: #6B8296;
  text-decoration: none;
}

.miwako-recaptcha-box__brand a:hover {
  text-decoration: underline;
}

.miwako-recaptcha-float {
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 90;
  pointer-events: auto;
}

.miwako-recaptcha-float__pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(66, 133, 244, 0.25);
  box-shadow: 0 6px 18px -4px rgba(21, 58, 84, 0.14);
  font-size: 0.68rem;
  line-height: 1.2;
  color: var(--color-text-secondary);
  transition: opacity 200ms ease, transform 200ms ease;
}

.miwako-recaptcha-float__pill:hover {
  transform: translateY(-2px);
}

.miwako-recaptcha-float__logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.miwako-recaptcha-float__text strong {
  display: block;
  font-size: 0.68rem;
  color: #1C3AA9;
  font-weight: 800;
}

.miwako-recaptcha-float__text span {
  font-size: 0.6rem;
  color: #60788B;
}

.miwako-recaptcha-float__text a {
  color: #60788B;
}

@media (max-width: 680px) {
  .miwako-recaptcha-float {
    right: 10px;
    bottom: 10px;
  }
  .miwako-recaptcha-float__pill {
    padding: 4px 9px;
    gap: 6px;
  }
  .miwako-recaptcha-box {
    padding: 11px 12px;
    gap: 10px;
  }
  .miwako-recaptcha-box__label {
    font-size: 0.8rem;
  }
}

/* ==========================================================================
   14D. AUTHENTIC DALE & CECIL BRAND STORY PAGE (/cau-chuyen-thuong-hieu)
   ========================================================================== */
.story-characters-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  margin-top: 32px;
}

.story-character-card {
  background: #FFFFFF;
  border-radius: 30px;
  padding: 32px 28px;
  box-shadow: var(--shadow-card);
  border: 2px solid rgba(114, 174, 216, 0.25);
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 24px;
  align-items: center;
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}

.story-character-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.story-character-card--cecil {
  background: linear-gradient(145deg, #F4FAFF 0%, #FFFFFF 65%);
  border-color: rgba(114, 174, 216, 0.38);
}

.story-character-card--dale {
  background: linear-gradient(145deg, #FFFDF4 0%, #FFFFFF 65%);
  border-color: rgba(242, 189, 75, 0.45);
}

.story-character-card__portrait {
  background: #FFFFFF;
  border-radius: 24px;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 26px -8px rgba(21, 58, 84, 0.1);
  border: 1.5px solid rgba(114, 174, 216, 0.2);
}

.story-character-card--dale .story-character-card__portrait {
  border-color: rgba(242, 189, 75, 0.35);
}

.story-character-card__portrait img {
  width: 100%;
  max-width: 175px;
  height: 200px;
  object-fit: contain;
  display: block;
}

.story-character-card__name {
  font-family: var(--font-display);
  font-size: 1.75rem;
  color: var(--color-text-primary);
  margin: 8px 0 10px;
}

.story-character-card__desc {
  font-size: 0.94rem;
  color: var(--color-text-secondary);
  line-height: 1.62;
  margin: 0 0 12px;
}

.story-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
}

.story-stat-card {
  background: rgba(255, 255, 255, 0.96);
  border-radius: 26px;
  padding: 26px 22px;
  box-shadow: var(--shadow-card);
  border: 1.5px solid rgba(114, 174, 216, 0.24);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.story-stat-card__num {
  font-family: var(--font-display);
  font-size: 2.5rem;
  line-height: 1.05;
  color: var(--color-sky-blue-deep);
}

.story-stat-card--sunny .story-stat-card__num {
  color: #B8790E;
}

.story-stat-card--green .story-stat-card__num {
  color: #2D6A22;
}

.story-stat-card__title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--color-text-primary);
  margin: 0;
}

.story-stat-card__desc {
  font-size: 0.87rem;
  color: var(--color-text-secondary);
  line-height: 1.54;
  margin: 0;
}

.story-vision-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 28px;
}

.story-vision-card {
  background: #FFFFFF;
  border-radius: 28px;
  padding: 32px 28px;
  box-shadow: var(--shadow-card);
  border: 2px solid rgba(114, 174, 216, 0.25);
}

.story-vision-card--mission {
  background: linear-gradient(180deg, #F6FBF5 0%, #FFFFFF 100%);
  border-color: rgba(117, 172, 102, 0.35);
}

.story-vision-card--vision {
  background: linear-gradient(180deg, #FFFDF5 0%, #FFFFFF 100%);
  border-color: rgba(242, 189, 75, 0.42);
}

.story-vision-quote {
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--color-text-primary);
  line-height: 1.6;
  margin: 12px 0;
}

.story-vision-en {
  font-size: 0.86rem;
  font-style: italic;
  color: var(--color-text-secondary);
  padding: 12px 16px;
  border-radius: 14px;
  background: rgba(21, 58, 84, 0.04);
  margin: 0;
}

.story-references-box {
  margin-top: 28px;
  padding: 24px 28px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.9);
  border: 1.5px solid rgba(114, 174, 216, 0.24);
}

.story-references-list {
  margin: 10px 0 0;
  padding-left: 20px;
  display: grid;
  gap: 8px;
  font-size: 0.84rem;
  color: var(--color-text-secondary);
  line-height: 1.55;
}

/* ==========================================================================
   STORYBOOK NARRATIVE PAGE (/cau-chuyen-thuong-hieu)
   Open, borderless, frameless top-to-bottom storytelling flow
   ========================================================================== */
.storybook-page {
  position: relative;
  padding-bottom: 48px;
}

/* Prologue Header — Open & Frameless */
.story-prologue {
  padding: clamp(24px, 4vw, 48px) 0 clamp(24px, 4vw, 44px);
  text-align: center;
  position: relative;
}

.story-prologue__inner {
  max-width: 900px;
  margin-inline: auto;
}

.story-prologue__brand-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  margin-bottom: 18px;
}

.story-prologue__brand-pill img {
  height: 48px;
  width: auto;
  object-fit: contain;
}

.story-prologue__brand-pill span {
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #2D6A22;
}

.story-prologue__title {
  font-family: var(--font-display);
  font-size: clamp(2.15rem, 4.5vw, 3.4rem);
  line-height: 1.18;
  color: var(--color-text-primary);
  margin: 0 auto 20px;
  max-width: 840px;
}

.story-prologue__lead {
  font-size: clamp(1.08rem, 1.45vw, 1.24rem);
  line-height: 1.82;
  color: var(--color-text-secondary);
  max-width: 760px;
  margin: 0 auto 28px;
  font-weight: 500;
}

.story-prologue__hero-stage {
  max-width: 820px;
  margin: 0 auto;
  background: transparent;
  border-radius: 0;
  padding: 8px 0 0;
  box-shadow: none;
  border: none;
  position: relative;
}

.story-prologue__hero-stage img {
  width: 100%;
  max-height: 430px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 14px 28px rgba(21, 58, 84, 0.08));
}

.story-prologue__caption {
  margin-top: 16px;
  padding-top: 0;
  border-top: none;
  font-size: 0.98rem;
  color: var(--color-text-secondary);
  font-style: italic;
}

/* Scroll cue connector */
.story-scroll-connector {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 24px auto 0;
  color: var(--color-sky-blue-deep);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.story-scroll-connector__line {
  width: 2px;
  height: 54px;
  background: linear-gradient(180deg, rgba(66, 152, 209, 0.15) 0%, rgba(66, 152, 209, 0.65) 50%, rgba(242, 189, 75, 0.75) 100%);
  border-radius: 999px;
}

/* Continuous Narrative Stream — Open & Unboxed */
.story-stream {
  position: relative;
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

/* Chapter Marker — Clean typographic divider without boxes */
.story-chapter-marker {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: clamp(44px, 6vw, 76px) auto clamp(16px, 2.5vw, 28px);
}

.story-chapter-marker::before,
.story-chapter-marker::after {
  content: '';
  height: 1.5px;
  width: clamp(40px, 10vw, 120px);
  background: linear-gradient(90deg, transparent, rgba(66, 152, 209, 0.45), transparent);
}

.story-chapter-marker__badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  font-family: var(--font-display);
  font-size: 1.08rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #164F78;
}

.story-chapter-marker__badge--sunny {
  color: #9A6506;
}

.story-chapter-marker__badge--green {
  color: #2D6A22;
}

/* Narrative Chapter Spread — Completely Unboxed & Flowing */
.story-spread {
  position: relative;
  z-index: 1;
  background: transparent;
  border-radius: 0;
  padding: clamp(34px, 4.8vw, 58px) 0;
  box-shadow: none;
  border: none;
  display: grid;
  grid-template-columns: 1fr 1.08fr;
  gap: clamp(32px, 5vw, 68px);
  align-items: center;
}

.story-spread--reverse {
  grid-template-columns: 1.08fr 1fr;
}

.story-spread--sunny,
.story-spread--green {
  background: transparent;
  border: none;
}

.story-spread__visual {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.story-illustration-card {
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  border: none;
  text-align: center;
}

.story-illustration-card img {
  width: 100%;
  max-height: 400px;
  object-fit: contain;
  margin: 0 auto;
  display: block;
  filter: drop-shadow(0 14px 28px rgba(21, 58, 84, 0.09));
}

.story-illustration-card__caption {
  margin-top: 14px;
  font-size: 0.9rem;
  font-style: italic;
  font-weight: 600;
  color: var(--color-text-secondary);
}

/* Duo Character Stage inside Chapter 1 — Frameless Transparent Cutouts */
.story-duo-stage {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: end;
}

.story-duo-card {
  background: transparent;
  border-radius: 0;
  padding: 0;
  text-align: center;
  box-shadow: none;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.story-duo-card__avatar {
  width: 100%;
  height: 270px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border-radius: 0;
  padding: 0;
}

.story-duo-card__avatar img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 12px 22px rgba(21, 58, 84, 0.1));
  transition: transform var(--dur-med) var(--ease-out);
}

.story-duo-card:hover .story-duo-card__avatar img {
  transform: translateY(-6px) scale(1.03);
}

.story-duo-card__role {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0;
  background: transparent;
  color: #164F78;
}

.story-duo-card--dale .story-duo-card__role {
  color: #9A6506;
}

.story-duo-card__name {
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--color-text-primary);
  margin: 0;
}

.story-duo-card__bio {
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  line-height: 1.56;
  margin: 0;
  max-width: 240px;
}

/* Narrative Copy Column */
.story-spread__narrative {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.story-spread__kicker {
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--color-sky-blue-deep);
}

.story-spread__title {
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 2.8vw, 2.35rem);
  line-height: 1.22;
  color: var(--color-text-primary);
  margin: 0;
}

.story-spread__prose {
  font-size: 1.05rem;
  line-height: 1.82;
  color: var(--color-text-secondary);
  margin: 0;
}

.story-spread__prose strong {
  color: var(--color-text-primary);
}

.story-pullquote {
  margin: 8px 0 0;
  padding: 4px 0 4px 20px;
  border-radius: 0;
  background: transparent;
  border-left: 3.5px solid #3C94CC;
  font-size: 1.02rem;
  font-style: italic;
  font-weight: 700;
  color: var(--color-text-primary);
  line-height: 1.7;
}

.story-pullquote--sunny {
  border-left-color: #E09F1F;
}

.story-pullquote--green {
  border-left-color: #4D8B3E;
}

/* Inline Narrative Facts inside Chapter 2 — Borderless Open Typography */
.story-inline-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 28px;
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px dashed rgba(43, 82, 104, 0.18);
}

.story-inline-fact {
  background: transparent;
  border-radius: 0;
  padding: 0 0 0 14px;
  border: none;
  border-left: 3px solid rgba(66, 152, 209, 0.55);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.story-inline-fact--sunny {
  border-left-color: rgba(224, 159, 31, 0.7);
}

.story-inline-fact--green {
  border-left-color: rgba(77, 139, 62, 0.65);
}

.story-inline-fact__num {
  font-family: var(--font-display);
  font-size: 1.75rem;
  line-height: 1.08;
  color: #1E6FA8;
}

.story-inline-fact--sunny .story-inline-fact__num {
  color: #B47808;
}

.story-inline-fact--green .story-inline-fact__num {
  color: #2D6A22;
}

.story-inline-fact__text {
  font-size: 0.88rem;
  color: var(--color-text-secondary);
  line-height: 1.5;
}

/* Inline Grain Mini-Strip inside Chapter 3 — Unboxed Open Items */
.story-grain-pills {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
  margin-top: 10px;
  padding-top: 14px;
  border-top: 1px dashed rgba(43, 82, 104, 0.18);
}

.story-grain-pill {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: none;
}

.story-grain-pill img {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  box-shadow: 0 6px 14px rgba(21, 58, 84, 0.12);
}

.story-grain-pill strong {
  display: block;
  font-size: 0.9rem;
  color: var(--color-text-primary);
}

.story-grain-pill span {
  display: block;
  font-size: 0.8rem;
  color: var(--color-text-secondary);
  line-height: 1.4;
}

/* Epilogue Section — Frameless & Airy */
.story-epilogue {
  position: relative;
  z-index: 2;
  max-width: 960px;
  margin: 0 auto;
  background: transparent;
  border-radius: 0;
  padding: clamp(38px, 5vw, 62px) 0 24px;
  box-shadow: none;
  border: none;
  text-align: center;
}

.story-epilogue .story-vision-card {
  background: transparent;
  border: none;
  border-left: 3.5px solid #4D8B3E;
  border-radius: 0;
  box-shadow: none;
  padding: 6px 0 6px 22px;
}

.story-epilogue .story-vision-card--vision {
  border-left-color: #E09F1F;
}

.story-epilogue .story-vision-en {
  background: transparent;
  padding: 4px 0 0;
}

.story-epilogue .free-from-ribbon {
  background: transparent;
  border: none;
  box-shadow: none;
  border-top: 1px dashed rgba(43, 82, 104, 0.18);
  border-bottom: 1px dashed rgba(43, 82, 104, 0.18);
  border-radius: 0;
  padding: 24px 0;
}

.story-epilogue .story-references-box {
  background: transparent;
  border: none;
  padding: 16px 0 0;
}

@media (max-width: 960px) {
  .story-spread,
  .story-spread--reverse {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 28px 0;
    border-bottom: 1px dashed rgba(43, 82, 104, 0.14);
  }
  .story-spread:last-of-type {
    border-bottom: none;
  }
  .story-spread--reverse .story-spread__visual {
    order: -1;
  }
}

@media (max-width: 768px) {
  /* Global Mobile Typography, Spacing & Touch Targets */
  :root {
    --container-pad: 16px;
    --section-space: 44px;
    --card-gap: 14px;
    --card-pad: 18px;
    --card-radius: 20px;
  }

  .section-header {
    margin-bottom: 24px;
  }

  .section-header h2,
  .section-header .h2 {
    font-size: clamp(1.38rem, 5.2vw, 1.85rem);
    line-height: 1.24;
  }

  .section-header p {
    font-size: 0.92rem;
    line-height: 1.58;
  }

  .seo-breadcrumb {
    padding-top: 10px;
  }

  .seo-breadcrumb__list {
    font-size: 0.76rem;
    padding: 6px 12px;
    gap: 5px;
    border-radius: 16px;
  }

  .btn {
    white-space: normal;
    text-align: center;
    padding: 11px 18px;
    font-size: 0.9rem;
  }

  .hero {
    padding-top: 18px;
    padding-bottom: 32px;
  }

  .hero__grid {
    gap: 24px;
  }

  .hero__title {
    font-size: clamp(1.65rem, 6.2vw, 2.25rem);
    margin-bottom: 12px;
  }

  .hero__desc {
    font-size: 0.94rem;
    margin-bottom: 18px;
  }

  .hero__actions {
    flex-direction: column;
    width: 100%;
    gap: 10px;
  }

  .hero__actions .btn {
    width: 100%;
    justify-content: center;
  }

  .hero__badge-strip {
    padding: 8px 14px;
    gap: 8px;
    margin-top: 14px;
  }

  .hero__badge-strip img {
    height: 32px;
  }

  /* Product Gallery & Macro Grain Cards on Mobile */
  .product-gallery-stage__main {
    padding: 14px;
    border-radius: 22px;
  }

  .product-gallery-stage__main img {
    max-height: 290px;
  }

  .macro-grain-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .macro-grain-card,
  .macro-grain-card__inner {
    border-radius: 18px;
  }

  .macro-grain-card__body {
    padding: 12px 12px 14px;
  }

  .macro-grain-card__body h3 {
    font-size: 0.95rem;
    line-height: 1.25;
  }

  .macro-grain-card__body p {
    font-size: 0.78rem;
    line-height: 1.42;
  }

  /* Compact Editorial Blog Cards on Mobile */
  .editorial-card__media {
    max-height: 270px;
  }

  .editorial-card__media img {
    max-height: 270px;
    object-fit: cover !important;
    object-position: center 55%;
  }

  .editorial-card__body {
    padding: 16px;
  }

  .editorial-card__title {
    font-size: 1.08rem;
  }

  /* Swipeable Filter Pills on Mobile */
  .lookbook-filters,
  .feedback-filter-bar {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    padding: 4px 2px 10px;
    margin-bottom: 20px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .lookbook-filters::-webkit-scrollbar,
  .feedback-filter-bar::-webkit-scrollbar {
    display: none;
  }

  .lookbook-filter-btn,
  .feedback-filter-btn {
    flex-shrink: 0;
    padding: 8px 15px;
    font-size: 0.83rem;
    white-space: nowrap;
  }

  /* 6-Free Mini Strips & Responsive Form Rows */
  .freefrom-mini-strip {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 12px !important;
    padding: 14px 12px !important;
  }

  .form-row-responsive {
    grid-template-columns: 1fr !important;
  }

  /* Brand Story Page Mobile Refinements */
  .story-prologue {
    padding: 14px 0 20px;
  }

  .story-prologue__brand-pill {
    margin-bottom: 12px;
  }

  .story-prologue__brand-pill img {
    height: 40px;
  }

  .story-prologue__title {
    font-size: clamp(1.62rem, 6vw, 2.15rem);
    line-height: 1.22;
    margin-bottom: 14px;
  }

  .story-prologue__lead {
    font-size: 0.95rem;
    line-height: 1.68;
    margin-bottom: 18px;
  }

  .story-prologue__hero-stage img {
    max-height: 250px;
  }

  .story-prologue__caption,
  .story-illustration-card__caption {
    font-size: 0.84rem;
    margin-top: 10px;
  }

  .story-duo-stage {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px;
    align-items: start;
  }

  .story-duo-card__avatar {
    height: 170px;
  }

  .story-duo-card__name {
    font-size: 1.2rem;
  }

  .story-duo-card__bio {
    font-size: 0.78rem;
    line-height: 1.45;
  }

  .story-spread__title {
    font-size: clamp(1.38rem, 5.2vw, 1.75rem);
    line-height: 1.24;
  }

  .story-spread__prose {
    font-size: 0.94rem;
    line-height: 1.68;
  }

  .story-pullquote {
    font-size: 0.9rem;
    padding-left: 14px;
    line-height: 1.58;
  }

  .story-inline-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 12px;
  }

  .story-inline-fact__num {
    font-size: 1.4rem;
  }

  .story-inline-fact__text {
    font-size: 0.78rem;
    line-height: 1.42;
  }

  .story-grain-pills {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 10px;
  }

  .story-grain-pill {
    gap: 8px;
  }

  .story-grain-pill img {
    width: 40px;
    height: 40px;
  }

  .story-grain-pill strong {
    font-size: 0.78rem;
    line-height: 1.22;
  }

  .story-grain-pill span {
    font-size: 0.7rem;
    line-height: 1.3;
  }

  .story-cta-group .btn {
    width: 100%;
    justify-content: space-between;
  }

  .story-cert-strip {
    gap: 10px !important;
  }

  .story-cert-strip img {
    height: 40px !important;
  }

  .story-vision-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .story-epilogue {
    padding: 26px 0 16px;
  }

  /* Compact 2-Column Mobile Footer */
  .site-footer {
    padding-top: 36px;
    padding-bottom: 24px;
  }

  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 16px;
    padding-bottom: 24px;
  }

  .site-footer__brand,
  .site-footer__grid > nav:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .story-character-card {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .story-character-card__portrait {
    max-width: 200px;
    margin: 0 auto;
  }
  .story-stats-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   15. MOTION & ACCESSIBILITY (PREFERS-REDUCED-MOTION)
   ========================================================================== */
.reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 420ms var(--ease-out), transform 420ms var(--ease-out);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
