   :root {
      --olive-dark:   #1e2a10;
      --olive-mid:    #3d5020;
      --olive-light:  #5a7030;
      --olive-accent: #8fa84f;
      --sage-bg:      #b5bf9a;
      --sage-light:   #d0d8bc;
      --cream:        #f0efe8;
      --near-black:   #0e1408;
      --text-light:   #e8ecdf;
      --gold:         #c9a84c;
      --gold-light:   #e8c96e;
      --red-accent:   #8b1a1a;
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Barlow', sans-serif;
      background-color: var(--near-black);
      color: var(--text-light);
      overflow-x: hidden;
    }

    /* ════════════════════════════════
       GLOBAL SAMURAI BG PATTERN
       Brushstroke-style dark texture
    ════════════════════════════════ */
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      background-image:
        /* diagonal slash lines - like katana cuts */
        repeating-linear-gradient(
          -55deg,
          transparent 0px,
          transparent 60px,
          rgba(143,168,79,0.018) 60px,
          rgba(143,168,79,0.018) 62px
        ),
        repeating-linear-gradient(
          35deg,
          transparent 0px,
          transparent 90px,
          rgba(143,168,79,0.012) 90px,
          rgba(143,168,79,0.012) 92px
        );
      pointer-events: none;
      z-index: 0;
    }

    /* ── NAVBAR ── */
    .navbar {
      background: rgba(10,16,5,0.97);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid rgba(143,168,79,0.3);
      padding: 8px 0;
      position: sticky;
      top: 0;
      z-index: 1000;
    }
    .navbar::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--olive-accent), var(--gold), var(--olive-accent), transparent);
    }
    .navbar-brand img { height: 52px; }
    .navbar-toggler { border: 1px solid var(--olive-accent); }
    .navbar-toggler-icon {
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%238fa84f' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
    }
    .nav-link {
      font-family: 'Oswald', sans-serif;
      font-size: 0.9rem;
      letter-spacing: 2px;
      color: var(--sage-light) !important;
      text-transform: uppercase;
      padding: 6px 14px !important;
      transition: color 0.2s;
      position: relative;
    }
    .nav-link::after {
      content: '';
      position: absolute;
      bottom: 0; left: 14px; right: 14px;
      height: 1px;
      background: var(--olive-accent);
      transform: scaleX(0);
      transition: transform 0.25s;
    }
    .nav-link:hover { color: var(--olive-accent) !important; }
    .nav-link:hover::after { transform: scaleX(1); }

    /* ════════════════════════════════
       HERO
    ════════════════════════════════ */
    .hero {
      position: relative;
      min-height: 100svh;
      display: flex;
      align-items: center;
      overflow: hidden;
      background:
        radial-gradient(ellipse at 30% 50%, rgba(46,60,25,0.9) 0%, rgba(10,16,5,0.95) 65%),
        radial-gradient(ellipse at 85% 50%, rgba(30,40,15,0.6) 0%, transparent 55%);
    }

    /* Japanese rising sun arc behind samurai */
    .hero-rising-sun {
      position: absolute;
      right: 5%;
      bottom: 0;
      width: min(680px, 90vw);
      height: min(680px, 90vw);
      border-radius: 50%;
      background: radial-gradient(circle, rgba(201,168,76,0.08) 0%, rgba(143,168,79,0.05) 35%, transparent 70%);
      border: 1px solid rgba(201,168,76,0.06);
      z-index: 0;
      pointer-events: none;
    }
    /* Radiating lines from sun */
    .hero-rising-sun::before {
      content: '';
      position: absolute;
      inset: -20%;
      background-image: repeating-conic-gradient(
        rgba(201,168,76,0.04) 0deg 4deg,
        transparent 4deg 12deg
      );
      border-radius: 50%;
    }

    /* Samurai photo */
    .hero-samurai-photo {
      position: absolute;
      right: 0;
      bottom: 0;
      height: 100%;
      width: 55%;
      object-fit: contain;
      object-position: right bottom;
      filter: sepia(0.3) hue-rotate(25deg) saturate(1.1) brightness(0.7) contrast(1.1);
      opacity: 0.9;
      z-index: 1;
      pointer-events: none;
      mask-image: linear-gradient(to left, rgba(0,0,0,0.95) 40%, rgba(0,0,0,0.3) 75%, transparent 100%);
      -webkit-mask-image: linear-gradient(to left, rgba(0,0,0,0.95) 40%, rgba(0,0,0,0.3) 75%, transparent 100%);
    }

    /* Left content protection */
    .hero-left-fade {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to right,
        rgba(10,16,5,0.98) 0%,
        rgba(10,16,5,0.85) 35%,
        rgba(10,16,5,0.3) 60%,
        transparent 75%
      );
      z-index: 2;
      pointer-events: none;
    }

    /* Red accent stripe — Japanese flag inspiration */
    .hero-accent-stripe {
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 4px;
      background: linear-gradient(to bottom, transparent, var(--red-accent), var(--gold), var(--red-accent), transparent);
      z-index: 3;
    }

    /* Japanese kanji watermark */
    .hero-kanji {
      position: absolute;
      right: 53%;
      top: 50%;
      transform: translateY(-50%);
      font-size: clamp(8rem, 18vw, 16rem);
      font-weight: 900;
      color: rgba(143,168,79,0.04);
      line-height: 1;
      z-index: 2;
      pointer-events: none;
      user-select: none;
      letter-spacing: -10px;
    }

    .hero-content {
      position: relative;
      z-index: 4;
    }
    .hero-logo {
      width: min(210px, 50vw);
      filter: drop-shadow(0 0 30px rgba(143,168,79,0.45)) drop-shadow(0 0 60px rgba(201,168,76,0.2));
      animation: floatLogo 4s ease-in-out infinite;
    }
    @keyframes floatLogo {
      0%,100% { transform: translateY(0); }
      50%      { transform: translateY(-8px); }
    }

    /* Pre-title decoration */
    .hero-pretitle {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 10px;
    }
    .hero-pretitle-line {
      flex: 1;
      max-width: 50px;
      height: 1px;
      background: linear-gradient(to right, transparent, var(--gold));
    }
    .hero-pretitle-text {
      font-family: 'Oswald', sans-serif;
      font-size: 0.72rem;
      letter-spacing: 5px;
      color: var(--gold);
      text-transform: uppercase;
    }

    .hero-title {
      font-family: 'Oswald', sans-serif;
      font-weight: 700;
      font-size: clamp(3.2rem, 9vw, 7rem);
      letter-spacing: 3px;
      text-transform: uppercase;
      line-height: 0.95;
      background: linear-gradient(160deg, #d0d8bc 0%, #8fa84f 40%, #c9a84c 70%, #8fa84f 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      filter: drop-shadow(0 4px 20px rgba(0,0,0,0.8));
    }
    .hero-title-gym {
      font-size: clamp(1.8rem, 5vw, 3.8rem);
      letter-spacing: 10px;
      background: linear-gradient(90deg, var(--olive-accent), var(--gold-light));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      display: block;
      margin-top: 4px;
    }

    .hero-divider {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 18px 0;
    }
    .hero-divider-line {
      flex: 1;
      max-width: 60px;
      height: 1px;
      background: var(--olive-accent);
    }
    .hero-divider-icon { color: var(--gold); font-size: 0.9rem; }

    .hero-tagline {
      font-size: clamp(0.92rem, 1.6vw, 1.05rem);
      color: var(--sage-bg);
      max-width: 360px;
      line-height: 1.8;
      text-shadow: 0 1px 8px rgba(0,0,0,0.9);
    }

    .btn-warrior {
      font-family: 'Oswald', sans-serif;
      font-size: 0.95rem;
      letter-spacing: 3px;
      text-transform: uppercase;
      background: linear-gradient(135deg, var(--olive-mid), var(--olive-dark));
      color: var(--cream);
      border: 1px solid var(--olive-accent);
      padding: 13px 38px;
      border-radius: 1px;
      transition: all 0.3s;
      text-decoration: none;
      display: inline-block;
      position: relative;
      overflow: hidden;
    }
    .btn-warrior::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, var(--gold), var(--olive-accent));
      opacity: 0;
      transition: opacity 0.3s;
    }
    .btn-warrior:hover { color: var(--near-black); border-color: var(--gold); }
    .btn-warrior:hover::before { opacity: 1; }
    .btn-warrior span { position: relative; z-index: 1; }

    .btn-warrior-outline {
      font-family: 'Oswald', sans-serif;
      font-size: 0.95rem;
      letter-spacing: 3px;
      text-transform: uppercase;
      background: transparent;
      color: var(--olive-accent);
      border: 1px solid rgba(143,168,79,0.4);
      padding: 12px 30px;
      border-radius: 1px;
      transition: all 0.3s;
      text-decoration: none;
      display: inline-block;
    }
    .btn-warrior-outline:hover {
      background: rgba(143,168,79,0.1);
      border-color: var(--olive-accent);
      color: var(--olive-accent);
    }

    .scroll-hint {
      position: absolute;
      bottom: 28px; left: 50%;
      transform: translateX(-50%);
      z-index: 5;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
    }
    .scroll-hint-line {
      width: 1px;
      height: 40px;
      background: linear-gradient(to bottom, var(--olive-accent), transparent);
      animation: scrollLine 1.8s ease-in-out infinite;
    }
    @keyframes scrollLine {
      0%   { transform: scaleY(0); transform-origin: top; opacity: 0; }
      50%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
      100% { transform: scaleY(1); transform-origin: bottom; opacity: 0; }
    }
    .scroll-hint-text {
      font-family: 'Oswald', sans-serif;
      font-size: 0.65rem;
      letter-spacing: 4px;
      color: var(--olive-accent);
      text-transform: uppercase;
    }

    @media (max-width: 767px) {
      .hero-samurai-photo {
        width: 100%;
        height: 70%;
        top: auto;
        bottom: 0;
        opacity: 0.25;
        mask-image: linear-gradient(to top, rgba(0,0,0,0.6) 30%, transparent 100%);
        -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,0.6) 30%, transparent 100%);
      }
      .hero-left-fade { background: rgba(10,16,5,0.88); }
      .hero-kanji { display: none; }
    }

    /* ════════════════════════════════
       SECTION SHARED
    ════════════════════════════════ */
    .section-wrap {
      position: relative;
      overflow: hidden;
    }
    /* Samurai watermark for every section */
    .section-samurai-wm {
      position: absolute;
      top: 0; bottom: 0;
      width: 40%;
      max-width: 420px;
      background-image: url('5bbe900173956-265d1bf64a51b32e42d3f7719c6f9ab2.png');
      background-repeat: no-repeat;
      background-size: contain;
      filter: sepia(0.6) hue-rotate(35deg) saturate(0.5) brightness(0.5);
      opacity: 0.055;
      pointer-events: none;
      z-index: 0;
    }
    .section-samurai-wm.right { right: -4%; background-position: right center; }
    .section-samurai-wm.left  { left: -4%;  background-position: left center; }

    /* Slash divider between sections */
    .slash-divider {
      height: 3px;
      background: linear-gradient(90deg, transparent, var(--olive-accent) 20%, var(--gold) 50%, var(--olive-accent) 80%, transparent);
      margin: 0;
    }

    .section-inner { position: relative; z-index: 1; }

    .section-eyebrow {
      font-family: 'Oswald', sans-serif;
      font-size: 0.7rem;
      letter-spacing: 5px;
      text-transform: uppercase;
      color: var(--gold);
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 8px;
    }
    .section-eyebrow::before, .section-eyebrow::after {
      content: '';
      flex: 1;
      max-width: 30px;
      height: 1px;
      background: var(--gold);
    }
    .section-title {
      font-family: 'Oswald', sans-serif;
      font-size: clamp(2rem, 4.5vw, 3rem);
      font-weight: 700;
      text-transform: uppercase;
      color: var(--text-light);
      line-height: 1;
      letter-spacing: 2px;
    }
    .title-accent { color: var(--olive-accent); }
    .section-rule {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 16px auto 32px;
    }
    .section-rule.left { margin: 16px 0 32px; }
    .section-rule-line {
      width: 50px;
      height: 2px;
      background: var(--olive-accent);
    }
    .section-rule-diamond {
      width: 7px; height: 7px;
      background: var(--gold);
      transform: rotate(45deg);
      flex-shrink: 0;
    }

    /* ════════════════════════════════
       HOURS SECTION
    ════════════════════════════════ */
    .hours-section {
      background: linear-gradient(180deg, var(--near-black) 0%, #131b09 100%);
      padding: 90px 0;
    }
    .hours-card {
      background: linear-gradient(145deg, rgba(30,42,16,0.9), rgba(14,20,8,0.95));
      border: 1px solid rgba(143,168,79,0.2);
      border-top: 2px solid var(--olive-accent);
      border-radius: 2px;
      padding: 32px 28px;
      height: 100%;
      transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
      position: relative;
      overflow: hidden;
    }
    .hours-card::after {
      content: '';
      position: absolute;
      top: 0; right: 0;
      width: 60px; height: 60px;
      background: radial-gradient(circle at top right, rgba(201,168,76,0.1), transparent 70%);
    }
    .hours-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 16px 48px rgba(0,0,0,0.6), 0 0 0 1px rgba(143,168,79,0.3);
      border-color: var(--olive-accent);
    }
    .hours-card-icon {
      width: 52px; height: 52px;
      border-radius: 2px;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.5rem;
      margin-bottom: 18px;
    }
    .hours-card-icon.male   { background: rgba(100,130,200,0.12); color: #7fa8e8; border: 1px solid rgba(100,130,200,0.2); }
    .hours-card-icon.female { background: rgba(200,100,130,0.12); color: #e88fa8; border: 1px solid rgba(200,100,130,0.2); }
    .hours-card-title {
      font-family: 'Oswald', sans-serif;
      font-size: 1.25rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--olive-accent);
      padding-bottom: 14px;
      margin-bottom: 18px;
      border-bottom: 1px solid rgba(143,168,79,0.2);
    }
    .time-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 9px 0;
      border-bottom: 1px solid rgba(143,168,79,0.07);
      gap: 10px;
    }
    .time-row:last-child { border-bottom: none; }
    .time-day { color: var(--sage-bg); font-size: 0.88rem; flex-shrink: 0; }
    .time-val {
      font-family: 'Oswald', sans-serif;
      font-weight: 600;
      color: var(--text-light);
      font-size: 0.95rem;
      text-align: right;
    }

    /* ════════════════════════════════
       PRICES SECTION
    ════════════════════════════════ */
    .prices-section {
      background: linear-gradient(180deg, #131b09 0%, #0e1408 50%, #131b09 100%);
      padding: 90px 0;
      position: relative;
    }
    /* Rising sun behind pricing */
    .prices-sun {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      width: 600px; height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(201,168,76,0.04) 0%, transparent 60%);
      pointer-events: none;
      z-index: 0;
    }
    .prices-sun::before {
      content: '';
      position: absolute;
      inset: -10%;
      background-image: repeating-conic-gradient(
        rgba(201,168,76,0.025) 0deg 3deg,
        transparent 3deg 10deg
      );
      border-radius: 50%;
    }

    .price-card {
      background: linear-gradient(145deg, rgba(30,42,16,0.85), rgba(14,20,8,0.95));
      border: 1px solid rgba(143,168,79,0.2);
      border-radius: 2px;
      padding: 0;
      height: 100%;
      transition: transform 0.3s, box-shadow 0.3s;
      position: relative;
      overflow: hidden;
    }
    .price-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 60px rgba(0,0,0,0.7), 0 0 0 1px rgba(201,168,76,0.3);
    }
    .price-card.featured {
      border-color: var(--gold);
      box-shadow: 0 0 0 1px rgba(201,168,76,0.3), 0 8px 40px rgba(0,0,0,0.5);
    }
    .price-card.featured:hover {
      box-shadow: 0 20px 60px rgba(0,0,0,0.7), 0 0 0 1px var(--gold), 0 0 40px rgba(201,168,76,0.15);
    }

    /* Top ribbon for featured */
    .price-ribbon {
      background: linear-gradient(90deg, var(--gold), #a07828, var(--gold));
      color: var(--near-black);
      font-family: 'Oswald', sans-serif;
      font-size: 0.72rem;
      letter-spacing: 3px;
      text-transform: uppercase;
      text-align: center;
      padding: 7px 0;
      font-weight: 700;
    }

    .price-card-body {
      padding: 28px 26px 26px;
    }
    .price-type {
      font-family: 'Oswald', sans-serif;
      font-size: 0.72rem;
      letter-spacing: 4px;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 6px;
    }
    .price-sessions {
      font-family: 'Oswald', sans-serif;
      font-size: 1.35rem;
      font-weight: 700;
      color: var(--text-light);
      letter-spacing: 1px;
      margin-bottom: 16px;
    }
    .price-amount-wrap {
      display: flex;
      align-items: flex-end;
      gap: 6px;
      margin-bottom: 18px;
      padding-bottom: 18px;
      border-bottom: 1px solid rgba(143,168,79,0.15);
    }
    .price-currency {
      font-family: 'Oswald', sans-serif;
      font-size: 1.1rem;
      color: var(--olive-accent);
      margin-bottom: 6px;
    }
    .price-number {
      font-family: 'Oswald', sans-serif;
      font-size: 3rem;
      font-weight: 700;
      line-height: 1;
      background: linear-gradient(135deg, var(--gold-light), var(--gold));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .price-number.featured-num {
      font-size: 3.6rem;
    }
    .price-label {
      font-size: 0.82rem;
      color: var(--sage-bg);
      margin-bottom: 8px;
    }
    .price-per-session {
      font-family: 'Oswald', sans-serif;
      font-size: 0.8rem;
      color: var(--olive-accent);
      letter-spacing: 1px;
      background: rgba(143,168,79,0.08);
      border: 1px solid rgba(143,168,79,0.15);
      padding: 5px 12px;
      display: inline-block;
      border-radius: 2px;
      margin-bottom: 20px;
    }
    .price-features { list-style: none; padding: 0; margin: 0 0 22px; }
    .price-features li {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 7px 0;
      font-size: 0.88rem;
      color: var(--sage-bg);
      border-bottom: 1px solid rgba(143,168,79,0.06);
    }
    .price-features li:last-child { border-bottom: none; }
    .price-features li i { color: var(--olive-accent); font-size: 0.75rem; flex-shrink: 0; }
    .price-cta {
      font-family: 'Oswald', sans-serif;
      font-size: 0.85rem;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      display: block;
      text-align: center;
      padding: 11px 0;
      border: 1px solid rgba(143,168,79,0.35);
      color: var(--olive-accent);
      text-decoration: none;
      border-radius: 1px;
      transition: all 0.25s;
    }
    .price-cta:hover { background: rgba(143,168,79,0.12); border-color: var(--olive-accent); color: var(--olive-accent); }
    .price-cta.gold-cta {
      background: linear-gradient(135deg, var(--gold), #a07828);
      color: var(--near-black);
      border-color: transparent;
      font-weight: 700;
    }
    .price-cta.gold-cta:hover { opacity: 0.9; }

    .price-note {
      background: rgba(143,168,79,0.05);
      border: 1px solid rgba(143,168,79,0.12);
      border-left: 3px solid var(--gold);
      border-radius: 2px;
      padding: 14px 18px;
      font-size: 0.85rem;
      color: var(--sage-bg);
    }
    .price-note strong { color: var(--gold); }

    /* ════════════════════════════════
       CLASSES SECTION
    ════════════════════════════════ */
    .classes-section {
      background: linear-gradient(180deg, #0e1408 0%, var(--olive-dark) 50%, #0e1408 100%);
      padding: 90px 0;
    }
    .class-card {
      background: linear-gradient(145deg, rgba(30,42,16,0.85), rgba(14,20,8,0.95));
      border: 1px solid rgba(143,168,79,0.18);
      border-radius: 2px;
      overflow: hidden;
      transition: all 0.3s;
      height: 100%;
    }
    .class-card:hover {
      border-color: rgba(143,168,79,0.5);
      box-shadow: 0 12px 40px rgba(0,0,0,0.5);
      transform: translateY(-4px);
    }
    .class-header {
      padding: 24px 26px 18px;
      border-bottom: 1px solid rgba(143,168,79,0.12);
      position: relative;
    }
    .class-header::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, var(--olive-accent), transparent);
    }
    .class-icon-wrap {
      width: 54px; height: 54px;
      background: rgba(143,168,79,0.1);
      border: 1px solid rgba(143,168,79,0.25);
      border-radius: 2px;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.4rem;
      color: var(--olive-accent);
      margin-bottom: 14px;
    }
    .class-name {
      font-family: 'Oswald', sans-serif;
      font-size: 1.2rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--text-light);
    }
    .class-desc { font-size: 0.87rem; color: var(--sage-bg); margin-top: 5px; line-height: 1.6; }
    .class-schedule { padding: 18px 26px; }
    .schedule-slot {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      border-bottom: 1px solid rgba(143,168,79,0.07);
      font-size: 0.88rem;
    }
    .schedule-slot:last-child { border-bottom: none; }
    .slot-dot { width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0; }
    .slot-day {
      font-family: 'Oswald', sans-serif;
      font-weight: 600;
      color: var(--olive-accent);
      min-width: 78px;
      font-size: 0.82rem;
      letter-spacing: 1px;
    }
    .slot-time { color: var(--text-light); }

    /* ════════════════════════════════
       SOCIAL SECTION
    ════════════════════════════════ */
    .social-section {
      background: linear-gradient(180deg, #0e1408 0%, #0a1005 100%);
      padding: 90px 0;
    }
    .social-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 16px;
      max-width: 480px;
      margin: 0 auto;
    }
    @media (min-width: 576px) {
      .social-grid { grid-template-columns: repeat(3, 1fr); max-width: 100%; }
    }
    .social-link {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
      padding: 30px 16px;
      border: 1px solid rgba(143,168,79,0.18);
      border-radius: 2px;
      text-decoration: none;
      color: var(--sage-light);
      font-family: 'Oswald', sans-serif;
      font-size: 0.8rem;
      letter-spacing: 2px;
      text-transform: uppercase;
      transition: all 0.3s;
      background: rgba(30,42,16,0.4);
      position: relative;
      overflow: hidden;
    }
    .social-link::before {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 2px;
      transform: scaleX(0);
      transition: transform 0.3s;
    }
    .social-link:hover { transform: translateY(-5px); }
    .social-link:hover::before { transform: scaleX(1); }
    .social-link .fab { font-size: 2rem; }
    .social-link.instagram:hover { border-color: #e1306c; color: #e1306c; }
    .social-link.instagram::before { background: #e1306c; }
    .social-link.tiktok:hover    { border-color: #69c9d0; color: #69c9d0; }
    .social-link.tiktok::before  { background: #69c9d0; }
    .social-link.facebook:hover  { border-color: #1877f2; color: #1877f2; }
    .social-link.facebook::before{ background: #1877f2; }
    .social-link.whatsapp:hover  { border-color: #25d366; color: #25d366; }
    .social-link.whatsapp::before{ background: #25d366; }

    /* ── FOOTER ── */
    footer {
      background: var(--near-black);
      border-top: 1px solid rgba(143,168,79,0.2);
      padding: 32px 0 24px;
      text-align: center;
      font-size: 0.83rem;
      color: var(--sage-bg);
      position: relative;
    }
    footer::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--olive-accent), var(--gold), var(--olive-accent), transparent);
    }
    footer span { color: var(--olive-accent); }

    /* Fade-in */
    .fade-up {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.65s ease, transform 0.65s ease;
    }
    .fade-up.visible { opacity: 1; transform: translateY(0); }

    @media (prefers-reduced-motion: reduce) {
      .hero-logo, .scroll-hint-line { animation: none; }
      .fade-up { opacity: 1; transform: none; transition: none; }
    }