@import url('https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,600;6..72,700&family=Manrope:wght@400;500;600&display=swap');

@layer reset, tokens, layout, components, utilities;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
  body { min-height: 100vh; }
  img { max-width: 100%; display: block; }
  a { color: inherit; text-decoration: none; }
  button { font: inherit; cursor: pointer; background: none; border: none; color: inherit; }
  ul, ol { list-style: none; }
  input, textarea { font: inherit; color: inherit; }
}

@layer tokens {
  :root {
    --color-void: #08090f;
    --color-void-soft: #0d0f18;
    --color-surface: #12141f;
    --color-surface-elevated: #191c2a;
    --color-surface-raised: #212437;
    --color-hairline: rgba(226, 220, 255, 0.09);
    --color-hairline-strong: rgba(226, 220, 255, 0.16);

    --color-text-primary: #f1ede2;
    --color-text-secondary: #b7b3c4;
    --color-text-muted: #837f95;

    --color-gold: #c9a568;
    --color-gold-light: #e4c68e;
    --color-gold-dim: #8a723f;

    --color-emerald: #4f9179;
    --color-emerald-light: #6fb59a;
    --color-emerald-deep: #2c4f42;

    --color-wine: #8a4a52;

    --font-heading: 'Newsreader', serif;
    --font-body: 'Manrope', sans-serif;

    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-8: 3rem;
    --space-10: 4rem;
    --space-12: 5rem;
    --space-16: 7rem;

    --radius-sm: 8px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-xl: 36px;
    --radius-full: 999px;

    --shadow-sm: 0 1px 2px rgba(0,0,0,0.5);
    --shadow-md: 0 10px 30px -8px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.4);
    --shadow-lg: 0 30px 70px -16px rgba(0,0,0,0.65), 0 10px 30px -10px rgba(0,0,0,0.5);
    --shadow-glow-gold: 0 0 0 1px rgba(201,165,104,0.18), 0 12px 40px -10px rgba(201,165,104,0.28);
    --shadow-glow-emerald: 0 0 0 1px rgba(79,145,121,0.2), 0 12px 40px -10px rgba(79,145,121,0.28);

    --transition-base: 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    --transition-fast: 0.2s ease;
  }
}

@layer layout {
  html, body { background: var(--color-void); color: var(--color-text-primary); font-family: var(--font-body); line-height: 1.65; overflow-x: hidden; }
  body { display: flex; flex-direction: column; min-height: 100vh; background-image: radial-gradient(circle at 20% -10%, rgba(79,145,121,0.08), transparent 45%), radial-gradient(circle at 90% 10%, rgba(201,165,104,0.06), transparent 40%); }
  main { flex: 1; }
  h1, h2, h3 { font-family: var(--font-heading); font-weight: 600; line-height: 1.15; color: var(--color-text-primary); letter-spacing: -0.01em; }
  h1 { font-size: clamp(2.4rem, 4.5vw + 1rem, 4.4rem); font-weight: 700; }
  h2 { font-size: clamp(1.8rem, 2.2vw + 1rem, 2.6rem); }
  h3 { font-size: clamp(1.15rem, 1vw + 0.9rem, 1.4rem); }
  p { color: var(--color-text-secondary); }
  .section-eyebrow { display: inline-block; font-family: var(--font-body); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--color-gold); font-weight: 600; margin-bottom: var(--space-3); }
}

@layer components {

  
  .main-navigation {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    background: linear-gradient(180deg, rgba(8,9,15,0.92), rgba(8,9,15,0.75));
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--color-hairline);
    transition: transform var(--transition-base), opacity var(--transition-base);
  }
  .main-navigation.is-hidden { transform: translateY(-120%); opacity: 0; pointer-events: none; }
  .main-navigation__inner { max-width: 1280px; margin: 0 auto; padding: var(--space-4) var(--space-6); display: flex; align-items: center; gap: var(--space-6); }
  .main-navigation__brand { display: flex; align-items: center; gap: var(--space-3); margin-right: auto; }
  .main-navigation__logo { width: 38px; height: 38px; }
  .main-navigation__brandname { font-family: var(--font-heading); font-size: 1.2rem; font-weight: 600; letter-spacing: 0.01em; }
  .main-navigation__links { display: flex; gap: var(--space-6); }
  .main-navigation__links a { font-size: 0.95rem; color: var(--color-text-secondary); position: relative; padding: var(--space-1) 0; transition: color var(--transition-fast); }
  .main-navigation__links a::after { content: ''; position: absolute; left: 0; bottom: -4px; width: 0; height: 1px; background: var(--color-gold); transition: width var(--transition-base); }
  .main-navigation__links a:hover, .main-navigation__links a.is-active { color: var(--color-text-primary); }
  .main-navigation__links a:hover::after, .main-navigation__links a.is-active::after { width: 100%; }
  .main-navigation__cta { border: 1px solid var(--color-gold-dim); padding: 0.6rem 1.4rem; border-radius: var(--radius-full); font-size: 0.9rem; font-weight: 600; color: var(--color-gold-light); transition: all var(--transition-fast); }
  .main-navigation__cta:hover { background: var(--color-gold); color: var(--color-void); box-shadow: var(--shadow-glow-gold); }
  .main-navigation__toggle { display: none; font-size: 1.3rem; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: var(--radius-full); }

  .navigation-pill {
    position: fixed; top: var(--space-4); right: var(--space-4); z-index: 101;
    width: 52px; height: 52px; border-radius: var(--radius-full);
    background: var(--color-gold); color: var(--color-void);
    display: flex; align-items: center; justify-content: center; font-size: 1.2rem;
    box-shadow: var(--shadow-glow-gold);
    opacity: 0; transform: scale(0.7); pointer-events: none;
    transition: opacity var(--transition-base), transform var(--transition-base);
  }
  .navigation-pill.is-visible { opacity: 1; transform: scale(1); pointer-events: auto; }
  .navigation-pill:hover { transform: scale(1.08); }

  
  .curtain-menu {
    position: fixed; inset: 0; z-index: 200;
    background: linear-gradient(160deg, #0b0d16 0%, #14172a 60%, #191220 100%);
    transform: translateY(-100%);
    transition: transform 0.6s cubic-bezier(0.65, 0, 0.35, 1);
    display: flex; align-items: center; justify-content: center;
  }
  .curtain-menu.is-open { transform: translateY(0); }
  .curtain-menu__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-8); text-align: center; padding: var(--space-6); }
  .curtain-menu__links { display: flex; flex-direction: column; gap: var(--space-5); }
  .curtain-menu__links a {
    font-family: var(--font-heading); font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 600;
    color: var(--color-text-secondary);
    opacity: 0; transform: translateY(-30px);
    transition: color var(--transition-fast);
  }
  .curtain-menu.is-open .curtain-menu__links a { animation: curtainLinkIn 0.6s cubic-bezier(0.22,1,0.36,1) forwards; animation-delay: calc(var(--i) * 0.08s + 0.15s); }
  .curtain-menu__links a:hover { color: var(--color-gold-light); }
  @keyframes curtainLinkIn { to { opacity: 1; transform: translateY(0); } }
  .curtain-menu__cta { border: 1px solid var(--color-gold-dim); padding: 0.7rem 1.8rem; border-radius: var(--radius-full); color: var(--color-gold-light); font-weight: 600; }
  .curtain-menu__close { display: flex; align-items: center; gap: var(--space-2); color: var(--color-text-muted); font-size: 0.95rem; padding: var(--space-3); }
  .curtain-menu__close:hover { color: var(--color-text-primary); }

  
  .mobile-tab-bar {
    display: none;
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 90;
    background: rgba(13,15,24,0.95); backdrop-filter: blur(16px);
    border-top: 1px solid var(--color-hairline);
    padding: var(--space-2) var(--space-4);
    padding-bottom: max(var(--space-2), env(safe-area-inset-bottom));
    justify-content: space-around; align-items: center;
  }
  .mobile-tab-bar a { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; color: var(--color-text-muted); border-radius: var(--radius-md); transition: all var(--transition-fast); }
  .mobile-tab-bar a.is-active { color: var(--color-gold-light); background: rgba(201,165,104,0.1); }

  
  .welcome-banner { padding: calc(var(--space-16) + var(--space-6)) var(--space-6) var(--space-12); position: relative; }
  .welcome-banner__inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.05fr 1fr; gap: var(--space-10); align-items: center; }
  .welcome-banner__mosaic { position: relative; height: 560px; }
  .welcome-banner__image { position: absolute; object-fit: cover; border-radius: var(--radius-lg); border: 1px solid var(--color-hairline-strong); box-shadow: var(--shadow-lg); }
  .welcome-banner__image--one { width: 58%; height: 62%; top: 0; left: 0; transform: rotate(-4deg); z-index: 3; }
  .welcome-banner__image--two { width: 42%; height: 40%; top: 4%; right: 0; transform: rotate(6deg); z-index: 2; }
  .welcome-banner__image--three { width: 46%; height: 42%; bottom: 0; left: 4%; transform: rotate(5deg); z-index: 4; }
  .welcome-banner__image--four { width: 40%; height: 36%; bottom: 6%; right: 6%; transform: rotate(-7deg); z-index: 1; }
  .welcome-banner__image--five { width: 34%; height: 30%; top: 40%; left: 34%; transform: rotate(2deg); z-index: 5; }
  .welcome-banner__eyebrow { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--color-emerald-light); font-weight: 600; margin-bottom: var(--space-4); }
  .welcome-banner__heading { margin-bottom: var(--space-5); }
  .welcome-banner__lead { font-size: 1.1rem; max-width: 46ch; margin-bottom: var(--space-6); }
  .welcome-banner__actions { display: flex; gap: var(--space-4); flex-wrap: wrap; }

  .button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); padding: 0.9rem 1.8rem; border-radius: var(--radius-full); font-weight: 600; font-size: 0.95rem; transition: all var(--transition-base); min-height: 44px; }
  .button--primary { background: linear-gradient(135deg, var(--color-gold-light), var(--color-gold)); color: #201804; box-shadow: var(--shadow-glow-gold); }
  .button--primary:hover { transform: translateY(-2px); box-shadow: 0 18px 50px -12px rgba(201,165,104,0.4); }
  .button--ghost { border: 1px solid var(--color-hairline-strong); color: var(--color-text-primary); }
  .button--ghost:hover { background: var(--color-surface-elevated); border-color: var(--color-gold-dim); }

  
  .empathy-section { padding: var(--space-12) var(--space-6); }
  .empathy-section__inner { max-width: 780px; margin: 0 auto; text-align: center; }
  .empathy-section__inner p:last-child { font-size: 1.1rem; }

  
  .service-showcase { padding: var(--space-12) var(--space-6); max-width: 1280px; margin: 0 auto; }
  .service-showcase__header { max-width: 640px; margin-bottom: var(--space-10); }
  .service-showcase__header p { margin-top: var(--space-3); }
  .service-showcase__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
  .service-showcase__card {
    background: linear-gradient(160deg, var(--color-surface-elevated), var(--color-surface));
    border: 1px solid var(--color-hairline); border-radius: var(--radius-lg);
    padding: var(--space-6); box-shadow: var(--shadow-md);
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
  }
  .service-showcase__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: var(--color-gold-dim); }
  .service-showcase__icon { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: var(--radius-md); background: rgba(79,145,121,0.14); color: var(--color-emerald-light); font-size: 1.3rem; margin-bottom: var(--space-4); }
  .service-showcase__card h3 { margin-bottom: var(--space-3); }

  
  .process-section { padding: var(--space-12) var(--space-6); background: var(--color-void-soft); border-top: 1px solid var(--color-hairline); border-bottom: 1px solid var(--color-hairline); }
  .process-section__header { max-width: 1280px; margin: 0 auto var(--space-10); }
  .process-section__list { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-6); counter-reset: step; }
  .process-section__step { position: relative; padding-top: var(--space-5); border-top: 2px solid var(--color-hairline-strong); }
  .process-section__number { font-family: var(--font-heading); font-size: 2.2rem; color: var(--color-gold); display: block; margin-bottom: var(--space-3); }
  .process-section__step h3 { margin-bottom: var(--space-2); }

  
  .distinction-section { padding: var(--space-12) var(--space-6); max-width: 1280px; margin: 0 auto; }
  .distinction-section__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); }
  .distinction-section__column { padding: var(--space-8); border-radius: var(--radius-xl); }
  .distinction-section__column:first-child { background: linear-gradient(160deg, rgba(79,145,121,0.14), rgba(79,145,121,0.03)); border: 1px solid rgba(79,145,121,0.25); }
  .distinction-section__column h2 { margin-bottom: var(--space-5); }
  .distinction-section__column ul li { display: flex; gap: var(--space-3); margin-bottom: var(--space-4); color: var(--color-text-secondary); }
  .distinction-section__column ul li i { color: var(--color-emerald-light); margin-top: 0.25em; }
  .distinction-section__column--muted { background: rgba(138,74,82,0.08); border: 1px solid rgba(138,74,82,0.25); }
  .distinction-section__column--muted p { font-size: 1.02rem; }

  
  .story-teaser { padding: var(--space-12) var(--space-6); max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--space-10); align-items: center; }
  .story-teaser__image img { border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); border: 1px solid var(--color-hairline-strong); width: 100%; height: 420px; object-fit: cover; }
  .story-teaser__content p { margin: var(--space-4) 0 var(--space-5); }
  .link-arrow { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--color-gold-light); font-weight: 600; transition: gap var(--transition-fast); }
  .link-arrow:hover { gap: var(--space-3); }

  
  .contact-preview { padding: var(--space-12) var(--space-6); max-width: 1280px; margin: 0 auto; }
  .contact-preview__header { text-align: center; margin-bottom: var(--space-8); }
  .contact-preview__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
  .contact-preview__card { background: var(--color-surface-elevated); border: 1px solid var(--color-hairline); border-radius: var(--radius-lg); padding: var(--space-6); text-align: center; box-shadow: var(--shadow-sm); transition: box-shadow var(--transition-base), transform var(--transition-base); }
  .contact-preview__card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
  .contact-preview__icon { display: inline-flex; width: 54px; height: 54px; align-items: center; justify-content: center; border-radius: var(--radius-full); background: rgba(201,165,104,0.14); color: var(--color-gold-light); font-size: 1.3rem; margin-bottom: var(--space-4); }
  .contact-preview__card h3 { margin-bottom: var(--space-2); }
  .contact-preview__card a { color: var(--color-text-secondary); transition: color var(--transition-fast); }
  .contact-preview__card a:hover { color: var(--color-gold-light); }

  
  .closing-cta { padding: var(--space-12) var(--space-6); }
  .closing-cta__inner { max-width: 720px; margin: 0 auto; text-align: center; background: linear-gradient(160deg, var(--color-surface-raised), var(--color-surface)); border: 1px solid var(--color-hairline-strong); border-radius: var(--radius-xl); padding: var(--space-10) var(--space-8); box-shadow: var(--shadow-lg); }
  .closing-cta__inner p { margin: var(--space-4) 0 var(--space-6); }

  
  .page-header { padding: calc(var(--space-16) + var(--space-4)) var(--space-6) var(--space-10); border-bottom: 1px solid var(--color-hairline); }
  .page-header__inner { max-width: 780px; margin: 0 auto; text-align: center; }
  .page-header__inner p { margin-top: var(--space-4); font-size: 1.05rem; }
  .page-header--legal { padding-bottom: var(--space-8); }

  
  .narrative-section { padding: var(--space-12) var(--space-6); max-width: 1280px; margin: 0 auto; }
  .narrative-section__inner { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: var(--space-10); align-items: center; }
  .narrative-section__image img { border-radius: var(--radius-lg); border: 1px solid var(--color-hairline-strong); box-shadow: var(--shadow-lg); width: 100%; height: 480px; object-fit: cover; }
  .narrative-section__text p { margin-bottom: var(--space-4); font-size: 1.05rem; }

  
  .values-section { padding: var(--space-12) var(--space-6); background: var(--color-void-soft); border-top: 1px solid var(--color-hairline); border-bottom: 1px solid var(--color-hairline); }
  .values-section__header { max-width: 1280px; margin: 0 auto var(--space-10); }
  .values-section__grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-6); }
  .values-section__card { padding: var(--space-6); border-left: 2px solid var(--color-gold-dim); }
  .values-section__card span { color: var(--color-gold-light); font-size: 1.4rem; display: block; margin-bottom: var(--space-3); }
  .values-section__card h3 { margin-bottom: var(--space-2); }

  
  .journey-timeline-section { padding: var(--space-12) var(--space-6); max-width: 900px; margin: 0 auto; }
  .journey-timeline-section__header { margin-bottom: var(--space-10); }
  .journey-timeline-section__list { position: relative; padding-left: var(--space-8); border-left: 1px solid var(--color-hairline-strong); }
  .journey-timeline-section__list li { position: relative; padding-bottom: var(--space-8); }
  .journey-timeline-section__list li:last-child { padding-bottom: 0; }
  .journey-timeline-section__marker { position: absolute; left: calc(-1 * var(--space-8) - 18px); top: 0; width: 36px; height: 36px; border-radius: var(--radius-full); background: var(--color-surface-elevated); border: 1px solid var(--color-gold-dim); color: var(--color-gold-light); display: flex; align-items: center; justify-content: center; font-size: 0.95rem; }
  .journey-timeline-section__list h3 { margin-bottom: var(--space-2); }

  
  .category-grid-section { padding: var(--space-12) var(--space-6); max-width: 1280px; margin: 0 auto; }
  .category-grid-section__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
  .category-grid-section__card { background: var(--color-surface-elevated); border: 1px solid var(--color-hairline); border-radius: var(--radius-lg); padding: var(--space-6); box-shadow: var(--shadow-sm); transition: all var(--transition-base); }
  .category-grid-section__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: var(--color-emerald-deep); }
  .category-grid-section__icon { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: var(--radius-md); background: rgba(138,74,82,0.14); color: #c98089; font-size: 1.25rem; margin-bottom: var(--space-4); }
  .category-grid-section__card h3 { margin-bottom: var(--space-3); }

  
  .method-section { padding: var(--space-12) var(--space-6); max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-10); align-items: center; }
  .method-section__list li { margin-bottom: var(--space-4); padding-left: var(--space-5); position: relative; color: var(--color-text-secondary); }
  .method-section__list li::before { content: ''; position: absolute; left: 0; top: 0.5em; width: 8px; height: 8px; border-radius: var(--radius-full); background: var(--color-gold); }
  .method-section__list strong { color: var(--color-text-primary); }
  .method-section__image img { border-radius: var(--radius-lg); border: 1px solid var(--color-hairline-strong); box-shadow: var(--shadow-lg); width: 100%; height: 400px; object-fit: cover; }

  
  .list-preview-section { padding: var(--space-12) var(--space-6); max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-10); align-items: center; }
  .list-preview-section__image img { border-radius: var(--radius-lg); border: 1px solid var(--color-hairline-strong); box-shadow: var(--shadow-lg); width: 100%; height: 420px; object-fit: cover; }
  .list-preview-section__text p { margin: var(--space-4) 0 var(--space-5); }

  
  .inquiry-form-section { padding: var(--space-12) var(--space-6); max-width: 900px; margin: 0 auto; }
  .inquiry-form-section__intro { text-align: center; margin-bottom: var(--space-8); }
  .inquiry-form-section__intro p { margin-top: var(--space-3); }
  .inquiry-form { background: var(--color-surface-elevated); border: 1px solid var(--color-hairline); border-radius: var(--radius-xl); padding: var(--space-8); box-shadow: var(--shadow-md); }
  .inquiry-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); margin-bottom: var(--space-5); }
  .inquiry-form__field--wide { grid-column: 1 / -1; }
  .inquiry-form__field label { display: block; font-size: 0.85rem; color: var(--color-text-muted); margin-bottom: var(--space-2); }
  .inquiry-form__field input, .inquiry-form__field textarea { width: 100%; background: var(--color-surface); border: 1px solid var(--color-hairline-strong); border-radius: var(--radius-md); padding: 0.85rem 1rem; color: var(--color-text-primary); transition: border-color var(--transition-fast), box-shadow var(--transition-fast); min-height: 44px; }
  .inquiry-form__field textarea { resize: vertical; min-height: 80px; }
  .inquiry-form__field input:focus, .inquiry-form__field textarea:focus { outline: none; border-color: var(--color-gold-dim); box-shadow: 0 0 0 3px rgba(201,165,104,0.15); }
  .inquiry-form__row--secondary { grid-template-columns: 1fr auto; align-items: center; margin-bottom: 0; }
  .inquiry-form__checkbox { display: flex; align-items: flex-start; gap: var(--space-3); font-size: 0.88rem; color: var(--color-text-secondary); }
  .inquiry-form__checkbox input { width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--color-gold); margin-top: 2px; }
  .inquiry-form__checkbox a { color: var(--color-gold-light); }

  
  .map-section { padding: var(--space-12) var(--space-6); max-width: 1000px; margin: 0 auto; text-align: center; }
  .map-section__inner h2 { margin: var(--space-2) 0 var(--space-6); }
  .map-section__frame { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--color-hairline-strong); box-shadow: var(--shadow-lg); }
  .map-section__frame iframe { width: 100%; height: 380px; border: 0; display: block; filter: grayscale(0.3) invert(0.92) contrast(0.9); }

  
  .inquiry-faq { padding: var(--space-12) var(--space-6); max-width: 900px; margin: 0 auto; }
  .inquiry-faq__header { text-align: center; margin-bottom: var(--space-8); }

  
  .disclosure { border-bottom: 1px solid var(--color-hairline); }
  .disclosure__header { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: var(--space-5) var(--space-2); text-align: left; font-family: var(--font-heading); font-size: 1.1rem; font-weight: 600; color: var(--color-text-primary); }
  .disclosure__header i { color: var(--color-gold); transition: transform var(--transition-base); flex-shrink: 0; margin-left: var(--space-4); }
  .disclosure.is-open .disclosure__header i { transform: rotate(180deg); }
  .disclosure__panel-wrapper { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--transition-base); }
  .disclosure.is-open .disclosure__panel-wrapper { grid-template-rows: 1fr; }
  .disclosure__panel { overflow: hidden; }
  .disclosure__panel p { padding: 0 var(--space-2) var(--space-5); font-size: 0.98rem; }

  .legal-provisions { padding: var(--space-10) var(--space-6) var(--space-16); max-width: 860px; margin: 0 auto; }

  
  .thanks-section { padding: calc(var(--space-16) + var(--space-4)) var(--space-6) var(--space-16); }
  .thanks-section__inner { max-width: 700px; margin: 0 auto; text-align: center; }
  .thanks-section__inner p { margin: var(--space-4) 0 var(--space-6); }
  .journey-status-timeline { margin-top: var(--space-12); text-align: left; position: relative; padding-left: var(--space-8); border-left: 1px solid var(--color-hairline-strong); }
  .journey-status-timeline__item { position: relative; padding-bottom: var(--space-8); }
  .journey-status-timeline__item:last-child { padding-bottom: 0; }
  .journey-status-timeline__marker { position: absolute; left: calc(-1 * var(--space-8) - 18px); top: 0; width: 36px; height: 36px; border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; font-size: 0.9rem; background: var(--color-surface-elevated); border: 1px solid var(--color-hairline-strong); color: var(--color-text-muted); }
  .journey-status-timeline__item.is-done .journey-status-timeline__marker { border-color: var(--color-emerald); color: var(--color-emerald-light); background: rgba(79,145,121,0.12); }
  .journey-status-timeline__item.is-current .journey-status-timeline__marker { box-shadow: var(--shadow-glow-emerald); }
  .journey-status-timeline__item h3 { margin-bottom: var(--space-1); }
  .journey-status-timeline__item.is-upcoming h3, .journey-status-timeline__item.is-upcoming p { color: var(--color-text-muted); }

  
  .page-footer { background: var(--color-void-soft); border-top: 1px solid var(--color-hairline-strong); margin-top: var(--space-16); }
  .page-footer__inner { max-width: 1280px; margin: 0 auto; padding: var(--space-12) var(--space-6); display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--space-10); }
  .page-footer__logo { width: 44px; height: 44px; margin-bottom: var(--space-4); }
  .page-footer__brand p { max-width: 46ch; margin-bottom: var(--space-5); }
  .page-footer__cta { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--color-gold-light); font-weight: 600; }
  .page-footer__columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
  .page-footer__column h3 { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-muted); margin-bottom: var(--space-4); font-family: var(--font-body); font-weight: 600; }
  .page-footer__column a, .page-footer__column button { display: block; color: var(--color-text-secondary); margin-bottom: var(--space-3); font-size: 0.92rem; text-align: left; transition: color var(--transition-fast); }
  .page-footer__column a:hover, .page-footer__column button:hover { color: var(--color-gold-light); }
  .page-footer__bottom { border-top: 1px solid var(--color-hairline); padding: var(--space-5) var(--space-6); text-align: center; }
  .page-footer__bottom p { font-size: 0.82rem; color: var(--color-text-muted); }

  
  .cookie-consent-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 300; display: flex; background: rgba(10,11,18,0.98); backdrop-filter: blur(20px); border-top: 1px solid var(--color-hairline-strong); box-shadow: 0 -20px 60px -20px rgba(0,0,0,0.7); transform: translateY(0); transition: transform var(--transition-base); }
  .cookie-consent-banner[hidden] { display: none; }
  .cookie-consent-banner__info, .cookie-consent-banner__controls { flex: 1; padding: var(--space-6); }
  .cookie-consent-banner__info { border-right: 1px solid var(--color-hairline); }
  .cookie-consent-banner__info h3 { margin-bottom: var(--space-2); font-size: 1.05rem; }
  .cookie-consent-banner__info p { font-size: 0.88rem; }
  .cookie-consent-banner__info a { color: var(--color-gold-light); }
  .cookie-consent-banner__toggles { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-bottom: var(--space-4); }
  .cookie-consent-banner__toggles label { display: flex; align-items: center; gap: var(--space-2); font-size: 0.85rem; color: var(--color-text-secondary); }
  .cookie-consent-banner__toggles input { width: 18px; height: 18px; accent-color: var(--color-gold); }
  .cookie-consent-banner__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; }
  .cookie-consent-banner__actions button { padding: 0.7rem 1.2rem; border-radius: var(--radius-full); border: 1px solid var(--color-hairline-strong); font-size: 0.85rem; font-weight: 600; transition: all var(--transition-fast); min-height: 44px; }
  .cookie-consent-banner__actions button:hover { border-color: var(--color-gold-dim); }
  .cookie-consent-banner__actions .is-primary { background: var(--color-gold); color: var(--color-void); border-color: var(--color-gold); }

  
  .cursor-trail { position: fixed; top: 0; left: 0; width: 22px; height: 22px; border-radius: 50%; background: radial-gradient(circle, rgba(201,165,104,0.5), rgba(201,165,104,0) 70%); pointer-events: none; z-index: 9999; transition: transform 0.12s ease-out, opacity 0.3s ease; transform: translate(-50%, -50%); opacity: 0; }
  .cursor-trail.is-active { opacity: 1; }
}

@layer utilities {
  .reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.22,1,0.36,1); }
  .reveal.visible { opacity: 1; transform: translateY(0); }

  @media (max-width: 980px) {
    .main-navigation__links, .main-navigation__cta { display: none; }
    .main-navigation__toggle { display: flex; }
    .mobile-tab-bar { display: flex; }
    .welcome-banner__inner { grid-template-columns: 1fr; }
    .welcome-banner__mosaic { height: 380px; order: -1; }
    .service-showcase__grid { grid-template-columns: repeat(2, 1fr); }
    .process-section__list { grid-template-columns: repeat(2, 1fr); }
    .distinction-section__inner { grid-template-columns: 1fr; }
    .story-teaser { grid-template-columns: 1fr; }
    .story-teaser__image img { height: 300px; }
    .contact-preview__grid { grid-template-columns: 1fr; }
    .narrative-section__inner { grid-template-columns: 1fr; }
    .narrative-section__image img { height: 320px; }
    .values-section__grid { grid-template-columns: repeat(2, 1fr); }
    .category-grid-section__grid { grid-template-columns: repeat(2, 1fr); }
    .method-section, .list-preview-section { grid-template-columns: 1fr; }
    .page-footer__inner { grid-template-columns: 1fr; }
    .page-footer__columns { grid-template-columns: repeat(3, 1fr); }
    body { padding-bottom: 70px; }
  }

  @media (max-width: 640px) {
    .welcome-banner { padding-top: var(--space-10); }
    .welcome-banner__mosaic { height: 300px; }
    .welcome-banner__actions { flex-direction: column; align-items: stretch; }
    .service-showcase__grid { grid-template-columns: 1fr; }
    .process-section__list { grid-template-columns: 1fr; }
    .values-section__grid { grid-template-columns: 1fr; }
    .category-grid-section__grid { grid-template-columns: 1fr; }
    .page-footer__columns { grid-template-columns: 1fr; }
    .inquiry-form__row { grid-template-columns: 1fr; }
    .inquiry-form__row--secondary { grid-template-columns: 1fr; gap: var(--space-4); }
    .cookie-consent-banner { flex-direction: column; }
    .cookie-consent-banner__info { border-right: none; border-bottom: 1px solid var(--color-hairline); }
    .journey-timeline-section, .journey-status-timeline { padding-left: var(--space-6); }
  }

  @media (min-width: 981px) {
    .cursor-trail { display: block; }
  }
  @media (max-width: 980px) {
    .cursor-trail { display: none; }
  }
}