@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, input, textarea { font: inherit; color: inherit; }
  button { cursor: pointer; background: none; border: none; }
  ul { list-style: none; }
  h1, h2, h3, h4 { font-weight: 600; line-height: 1.15; }
}

@layer tokens {
  :root {
    --c-cream: #F5EAD9;
    --c-cream-2: #EFE0C8;
    --c-cream-3: #E3CBA4;
    --c-ink: #241812;
    --c-ink-2: #2F2119;
    --c-ink-3: #3B2A1F;
    --c-rust: #B04B2C;
    --c-rust-dark: #8A3820;
    --c-rust-light: #D97A50;
    --c-text-dark: #241812;
    --c-text-light: #F7EEE1;

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

    --space-3xs: .25rem;
    --space-2xs: .5rem;
    --space-xs: .75rem;
    --space-sm: 1rem;
    --space-md: 1.5
rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4.5rem;
  --space-3xl: 6.5rem;

  --radius-sm: 6px;
  --radius-md: 14px;
  --radius-lg: 26px;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 2px rgba(36, 24, 18, 0.08), 0 1px 1px rgba(36, 24, 18, 0.06);
  --shadow-md: 0 6px 16px rgba(36, 24, 18, 0.12), 0 2px 6px rgba(36, 24, 18, 0.08);
  --shadow-lg: 0 20px 48px rgba(36, 24, 18, 0.20), 0 8px 20px rgba(36, 24, 18, 0.12);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,0.12);

  --ease: cubic-bezier(.4,0,.2,1);
  }
}

@layer layout {
  html { font-family: var(--font-body); }
  body {
    background: var(--c-cream);
    color: var(--c-text-dark);
    font-size: 1rem;
    line-height: 1.65;
    overflow-x: hidden;
  }

  .u-container {
    width: 100%;
    max-width: 1220px;
    margin-inline: auto;
    padding-inline: var(--space-md, 1.5rem);
  }

  .s-section {
    padding-block: var(--space-3xl);
  }

  h1, h2, h3 { font-family: var(--font-heading); }

  h1 { font-size: clamp(2.4rem, 5vw + 1rem, 4.4rem); }
  h2 { font-size: clamp(1.8rem, 3vw + 1rem, 2.8rem); }
  h3 { font-size: clamp(1.2rem, 1vw + 1rem, 1.5rem); }

  p { max-width: 68ch; }

  .u-visually-hidden {
    position: absolute; width: 1px; height: 1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
  }
}

@layer components {

  
  .c-nav-wrapper {
    position: fixed; top: 0; left: 0; right: 0; z-index: 500;
    transition: transform 0.4s var(--ease);
    background: rgba(245, 234, 217, 0.86);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(36,24,18,0.08);
  }
  .c-nav-wrapper.is-hidden { transform: translateY(-100%); }

  .c-nav__inner {
    display: flex; align-items: center; justify-content: space-between;
    padding-block: var(--space-sm);
    flex-wrap: wrap;
  }

  .c-nav__logo {
    display: flex; align-items: center; gap: var(--space-2xs);
    font-family: var(--font-heading); font-weight: 700; font-size: 1.3rem;
    color: var(--c-ink);
  }
  .c-nav__logo em { font-style: normal; color: var(--c-rust); }

  .c-nav__toggle {
    display: flex; flex-direction: column; gap: 5px;
    width: 44px; height: 44px; align-items: center; justify-content: center;
  }
  .c-nav__toggle span {
    width: 22px; height: 2px; background: var(--c-ink); border-radius: 2px;
    transition: transform .3s var(--ease), opacity .3s var(--ease);
  }
  .c-nav__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .c-nav__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .c-nav__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .c-nav__panel {
    display: flex; align-items: center; gap: var(--space-lg);
  }

  .c-nav__links { display: flex; gap: var(--space-lg); }
  .c-nav__links a {
    font-weight: 600; font-size: .95rem; color: var(--c-ink-2);
    position: relative; padding-block: 4px;
    transition: color .3s var(--ease);
  }
  .c-nav__links a::after {
    content: ''; position: absolute; left: 0; bottom: -2px; width: 0; height: 2px;
    background: var(--c-rust); transition: width .3s var(--ease);
  }
  .c-nav__links a:hover, .c-nav__links a.is-active { color: var(--c-rust-dark); }
  .c-nav__links a:hover::after, .c-nav__links a.is-active::after { width: 100%; }

  @media (max-width: 880px) {
    .c-nav__toggle { display: flex; order: 2; }
    .c-nav__logo { order: 1; }
    .c-nav__panel {
      order: 3; width: 100%; flex-direction: column; align-items: stretch;
      gap: var(--space-md);
      max-height: 0; overflow: hidden;
      transition: max-height .45s var(--ease), padding .45s var(--ease);
      padding-top: 0;
    }
    .c-nav__panel.is-open { max-height: 480px; padding-top: var(--space-md); padding-bottom: var(--space-sm); }
    .c-nav__links { flex-direction: column; gap: var(--space-sm); }
    .c-nav__panel .c-btn { align-self: flex-start; }
  }

  
  .c-btn {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .85rem 1.6rem; border-radius: var(--radius-pill);
    font-weight: 600; font-size: .95rem; white-space: nowrap;
    transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
    min-height: 44px;
  }
  .c-btn--cta {
    background: linear-gradient(135deg, var(--c-rust), var(--c-rust-dark));
    color: var(--c-text-light);
    box-shadow: var(--shadow-md);
    position: relative;
  }
  .c-btn--cta:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
  .c-btn__dot {
    width: 8px; height: 8px; border-radius: 50%; background: #FCE8A8;
    box-shadow: 0 0 0 0 rgba(252,232,168,0.7);
    animation: pulse-dot 2.2s infinite;
  }
  @keyframes pulse-dot {
    0% { box-shadow: 0 0 0 0 rgba(252,232,168,0.6); }
    70% { box-shadow: 0 0 0 8px rgba(252,232,168,0); }
    100% { box-shadow: 0 0 0 0 rgba(252,232,168,0); }
  }
  .c-btn--outline-light {
    border: 2px solid rgba(247,238,225,0.6); color: var(--c-text-light);
    background: rgba(247,238,225,0.06);
  }
  .c-btn--outline-light:hover { background: rgba(247,238,225,0.16); transform: translateY(-2px); }
  .c-btn--outline {
    border: 2px solid var(--c-rust); color: var(--c-rust-dark); background: transparent;
  }
  .c-btn--outline:hover { background: var(--c-rust); color: var(--c-text-light); }
  .c-btn--ghost { color: var(--c-ink-2); border: 2px solid rgba(36,24,18,0.15); background: transparent; }
  .c-btn--ghost:hover { border-color: var(--c-ink-2); }
  .c-btn--lg { padding: 1.1rem 2.2rem; font-size: 1.05rem; }
  .c-btn--send {
    align-self: flex-end; margin-top: var(--space-sm);
    background: linear-gradient(135deg, var(--c-ink), var(--c-ink-3));
    color: var(--c-text-light); box-shadow: var(--shadow-md);
  }
  .c-btn--send:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }

  
  .s-hero {
    position: relative; min-height: 100vh; display: flex; align-items: center;
    background: linear-gradient(160deg, var(--c-ink) 0%, var(--c-ink-3) 55%, var(--c-rust-dark) 130%);
    padding-top: 7rem; padding-bottom: var(--space-3xl);
    overflow: hidden;
  }
  .s-hero__icons {
    position: absolute; inset: 0; display: grid;
    grid-template-columns: repeat(6, 1fr); gap: 2rem;
    padding: 3rem; opacity: .08; color: var(--c-text-light);
    font-size: 2.6rem; pointer-events: none;
  }
  .s-hero__icons i { justify-self: center; }
  .s-hero__inner { position: relative; z-index: 2; }
  .s-hero__card {
    max-width: 780px; margin-inline: auto; text-align: center;
    background: rgba(36,24,18,0.35);
    border: 1px solid rgba(247,238,225,0.18);
    border-radius: var(--radius-lg);
    padding: clamp(2rem, 4vw, 3.5rem);
    backdrop-filter: blur(6px);
    box-shadow: var(--shadow-lg);
  }
  .s-hero__greeting {
    font-family: var(--font-heading); font-style: italic; font-size: 1.15rem;
    color: var(--c-cream-3); margin-bottom: var(--space-sm);
  }
  .s-hero__card h1 { color: var(--c-text-light); margin-bottom: var(--space-md); }
  .s-hero__lead { color: var(--c-cream-2); max-width: 60ch; margin-inline: auto; margin-bottom: var(--space-lg); }
  .s-hero__actions { display: flex; gap: var(--space-sm); justify-content: center; flex-wrap: wrap; }

  @keyframes hero-in {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
  }
  .s-hero__card { animation: hero-in .9s var(--ease) both; }

  .c-eyebrow {
    display: inline-block; font-size: .8rem; font-weight: 600; letter-spacing: .09em;
    text-transform: uppercase; color: var(--c-rust-light);
    margin-bottom: var(--space-sm);
  }
  .c-eyebrow--dark { color: var(--c-rust-dark); }

  
  .s-intro { background: var(--c-cream); }
  .s-intro__grid {
    display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--space-2xl); align-items: center;
  }
  .s-intro__text p { margin-top: var(--space-md); color: var(--c-ink-2); }
  .s-intro__text h2 { color: var(--c-ink); margin-bottom: var(--space-sm); }

  
  .c-duotone {
    position: relative; overflow: hidden; border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    aspect-ratio: 4/5;
  }
  .c-duotone img {
    width: 100%; height: 100%; object-fit: cover;
    filter: grayscale(1) contrast(1.15);
    transition: transform .6s var(--ease);
  }
  .c-duotone::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(135deg, var(--c-rust-dark) 0%, transparent 55%, var(--c-ink) 100%);
    mix-blend-mode: color;
    opacity: 0.92;
  }
  .c-duotone--alt::after {
    background: linear-gradient(135deg, var(--c-ink) 0%, transparent 55%, var(--c-rust) 100%);
  }
  .c-duotone:hover img { transform: scale(1.06); }

  
  .s-horizontal { background: var(--c-ink); color: var(--c-text-light); }
  .s-horizontal__head { max-width: 68ch; margin-bottom: var(--space-xl); }
  .s-horizontal__head h2 { color: var(--c-text-light); margin-block: var(--space-sm); }
  .s-horizontal__head p { color: var(--c-cream-2); }

  .c-hscroll { position: relative; }
  .c-hscroll__track {
    display: flex; gap: var(--space-lg);
    overflow-x: auto; scroll-snap-type: x mandatory;
    padding: var(--space-sm) var(--space-md) var(--space-lg);
    scrollbar-width: none;
  }
  .c-hscroll__track::-webkit-scrollbar { display: none; }

  .c-hcard {
    flex: 0 0 min(320px, 82vw); scroll-snap-align: start;
    background: var(--c-ink-2); border-radius: var(--radius-md);
    overflow: hidden; border: 1px solid rgba(247,238,225,0.1);
    box-shadow: var(--shadow-md);
    transition: transform .4s var(--ease);
  }
  .c-hcard:hover { transform: translateY(-6px); }
  .c-hcard__image { aspect-ratio: 5/4; border-radius: 0; box-shadow: none; }
  .c-hcard__body { padding: var(--space-lg); }
  .c-hcard__tag {
    display: inline-block; font-family: var(--font-heading); font-style: italic;
    color: var(--c-rust-light); font-size: 1.1rem; margin-bottom: var(--space-2xs);
  }
  .c-hcard__body h3 { color: var(--c-text-light); margin-bottom: var(--space-xs); }
  .c-hcard__body p { color: var(--c-cream-2); font-size: .95rem; }

  .c-hscroll__nav {
    position: absolute; top: 40%; transform: translateY(-50%);
    width: 48px; height: 48px; border-radius: 50%;
    background: var(--c-rust); color: var(--c-text-light);
    display: flex; align-items: center; justify-content: center;
    box-shadow: var(--shadow-md); z-index: 3;
    transition: background .3s var(--ease), transform .3s var(--ease);
  }
  .c-hscroll__nav:hover { background: var(--c-rust-dark); transform: translateY(-50%) scale(1.08); }
  .c-hscroll__nav--prev { left: -4px; }
  .c-hscroll__nav--next { right: -4px; }
  @media (max-width: 640px) {
    .c-hscroll__nav { display: none; }
  }

  
  .s-services { background: var(--c-cream-2); }
  .s-section-head { max-width: 68ch; margin-bottom: var(--space-xl); }
  .s-section-head--center { margin-inline: auto; text-align: center; }
  .s-section-head h2 { color: var(--c-ink); margin-block: var(--space-sm); }
  .s-section-head p { color: var(--c-ink-2); }
  .s-section-head--center p { margin-inline: auto; }

  .c-accordion {
    display: flex; flex-direction: column; gap: var(--space-sm);
    max-width: 900px; margin-inline: auto;
  }
  .c-accordion__item {
    background: var(--c-cream); border-radius: var(--radius-md);
    border: 1px solid rgba(36,24,18,0.08);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: box-shadow .3s var(--ease);
  }
  .c-accordion__item.is-active { box-shadow: var(--shadow-md); border-color: var(--c-rust-light); }
  .c-accordion__trigger {
    width: 100%; display: flex; align-items: center; gap: var(--space-md);
    padding: var(--space-md) var(--space-lg); text-align: left;
    min-height: 44px;
  }
  .c-accordion__icon {
    width: 46px; height: 46px; border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--c-rust), var(--c-rust-dark));
    color: var(--c-text-light); display: flex; align-items: center; justify-content: center;
    font-size: 1.15rem; flex-shrink: 0;
  }
  .c-accordion__title { flex: 1; font-weight: 600; font-size: 1.05rem; color: var(--c-ink); }
  .c-accordion__chevron { transition: transform .35s var(--ease); color: var(--c-rust-dark); }
  .c-accordion__item.is-active .c-accordion__chevron { transform: rotate(180deg); }
  .c-accordion__panel {
    max-height: 0; overflow: hidden; transition: max-height .5s var(--ease);
  }
  .c-accordion__item.is-active .c-accordion__panel { max-height: 320px; }
  .c-accordion__content { padding: 0 var(--space-lg) var(--space-lg) calc(46px + var(--space-md) + var(--space-lg)); }
  .c-accordion__content p { color: var(--c-ink-2); }
  @media (max-width: 640px) {
    .c-accordion__content { padding: 0 var(--space-md) var(--space-md) var(--space-md); }
  }

  
  .s-piemonte { background: var(--c-cream); }
  .s-piemonte__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: var(--space-2xl); align-items: center; }
  .s-piemonte__text h2 { color: var(--c-ink); margin-bottom: var(--space-sm); }
  .s-piemonte__text p { color: var(--c-ink-2); margin-bottom: var(--space-md); }

  .c-link-arrow {
    display: inline-flex; align-items: center; gap: .5rem; font-weight: 600;
    color: var(--c-rust-dark); border-bottom: 2px solid var(--c-rust-light);
    padding-bottom: 2px; transition: gap .3s var(--ease), color .3s var(--ease);
  }
  .c-link-arrow:hover { gap: .9rem; color: var(--c-rust); }

  
  .s-gallery { background: var(--c-ink); }
  .s-gallery__grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-md);
  }
  .s-gallery__item { aspect-ratio: 1/1; }
  .s-gallery__item--tall { grid-row: span 2; aspect-ratio: 1/2; }
  @media (max-width: 880px) {
    .s-gallery__grid { grid-template-columns: repeat(2, 1fr); }
    .s-gallery__item--tall { grid-row: span 1; aspect-ratio: 1/1; }
  }

  
  .s-cta { background: linear-gradient(135deg, var(--c-rust-dark), var(--c-rust)); }
  .s-cta__inner { text-align: center; max-width: 720px; margin-inline: auto; }
  .s-cta__inner h2 { color: var(--c-text-light); margin-bottom: var(--space-sm); }
  .s-cta__inner p { color: var(--c-cream-2); margin-inline: auto; margin-bottom: var(--space-lg); }

  
  .s-page-hero {
    padding-top: 9rem; padding-bottom: var(--space-2xl);
  }
  .s-page-hero--dark {
    background: linear-gradient(150deg, var(--c-ink) 0%, var(--c-rust-dark) 130%);
    color: var(--c-text-light);
  }
  .s-page-hero--dark .c-eyebrow { color: var(--c-rust-light); }
  .s-page-hero--dark h1 { color: var(--c-text-light); margin-block: var(--space-sm); }
  .s-page-hero__lead { color: var(--c-cream-2); max-width: 65ch; }

  
  .s-story__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2xl); align-items: center; }
  .s-story__grid--reverse .s-story__image { order: 2; }
  .s-story-alt { background: var(--c-cream-2); }
  .s-story__text h2 { color: var(--c-ink); margin-bottom: var(--space-sm); }
  .s-story__text p { color: var(--c-ink-2); margin-bottom: var(--space-md); }

  
  .s-values { background: var(--c-cream); }
  .s-values__grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-lg);
  }
  .c-value-card {
    background: var(--c-cream-2); border-radius: var(--radius-md);
    padding: var(--space-lg); border-left: 4px solid var(--c-rust);
    box-shadow: var(--shadow-sm);
    transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  }
  .c-value-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
  .c-value-card i { font-size: 1.6rem; color: var(--c-rust-dark); margin-bottom: var(--space-sm); }
  .c-value-card h3 { color: var(--c-ink); margin-bottom: var(--space-2xs); }
  .c-value-card p { color: var(--c-ink-2); font-size: .93rem; }
  @media (max-width: 980px) { .s-values__grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 560px) { .s-values__grid { grid-template-columns: 1fr; } }

  
  .s-mission { background: var(--c-ink); }
  .s-mission__inner { max-width: 760px; margin-inline: auto; text-align: center; }
  .s-mission__inner h2 { color: var(--c-text-light); margin-bottom: var(--space-sm); }
  .s-mission__inner p { color: var(--c-cream-2); margin-inline: auto; margin-bottom: var(--space-lg); }
  .s-mission .c-eyebrow { color: var(--c-rust-light); }

  
  .s-product { display: flex; flex-direction: column; gap: var(--space-2xl); }
  .s-product__row { display: grid; grid-template-columns: .9fr 1.1fr; gap: var(--space-2xl); align-items: center; }
  .s-product__row--reverse .s-product__image { order: 2; }
  .s-product__text h2 { color: var(--c-ink); margin-bottom: var(--space-sm); }
  .s-product__text p { color: var(--c-ink-2); margin-bottom: var(--space-md); }
  .c-list-check { display: flex; flex-direction: column; gap: var(--space-xs); }
  .c-list-check li { display: flex; gap: var(--space-xs); align-items: flex-start; color: var(--c-ink-2); font-size: .95rem; }
  .c-list-check i { color: var(--c-rust); margin-top: 4px; flex-shrink: 0; }

  
  .s-note { background: var(--c-cream-2); }
  .s-note__inner {
    display: flex; gap: var(--space-md); align-items: flex-start;
    background: var(--c-cream); border-radius: var(--radius-md);
    padding: var(--space-lg); border: 1px solid rgba(176,75,44,0.25);
    max-width: 900px; margin-inline: auto;
    box-shadow: var(--shadow-sm);
  }
  .s-note__inner i { font-size: 1.6rem; color: var(--c-rust); margin-top: 4px; }
  .s-note__inner h2 { color: var(--c-ink); font-size: 1.3rem; margin-bottom: var(--space-2xs); }
  .s-note__inner p { color: var(--c-ink-2); }

  
  .s-care { display: flex; flex-direction: column; gap: var(--space-xl); }
  .c-care-block { display: flex; gap: var(--space-lg); align-items: flex-start; }
  .c-care-block__icon {
    width: 60px; height: 60px; border-radius: var(--radius-md);
    background: linear-gradient(135deg, var(--c-rust), var(--c-rust-dark));
    color: var(--c-text-light); display: flex; align-items: center; justify-content: center;
    font-size: 1.5rem; flex-shrink: 0; box-shadow: var(--shadow-md);
  }
  .c-care-block__body h2 { color: var(--c-ink); margin-bottom: var(--space-2xs); font-size: 1.4rem; }
  .c-care-block__body p { color: var(--c-ink-2); }
  @media (max-width: 640px) { .c-care-block { flex-direction: column; } }

  .s-care-extra { background: var(--c-ink); }
  .s-care-extra__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: var(--space-2xl); align-items: center; }
  .s-care-extra__text h2 { color: var(--c-text-light); margin-bottom: var(--space-sm); }
  .s-care-extra__text p { color: var(--c-cream-2); margin-bottom: var(--space-sm); }

  
  .s-contact__grid { display: grid; grid-template-columns: 1.3fr .9fr; gap: var(--space-2xl); align-items: start; }

  .c-chat-wrap {
    background: var(--c-cream-2); border-radius: var(--radius-lg);
    padding: var(--space-xl); box-shadow: var(--shadow-md);
    border: 1px solid rgba(36,24,18,0.06);
  }
  .c-chat { display: flex; flex-direction: column; gap: var(--space-sm); }
  .c-chat__bubble {
    max-width: 88%; padding: .9rem 1.2rem; border-radius: var(--radius-md);
    display: flex; gap: var(--space-xs); align-items: flex-start;
    animation: bubble-in .5s var(--ease) both;
  }
  @keyframes bubble-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
  .c-chat__bubble--bot {
    background: var(--c-ink); color: var(--c-text-light);
    border-bottom-left-radius: 4px; align-self: flex-start;
    box-shadow: var(--shadow-sm);
  }
  .c-chat__avatar {
    width: 28px; height: 28px; border-radius: 50%; background: var(--c-rust);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: .8rem;
  }
  .c-chat__bubble--user {
    background: var(--c-cream); align-self: flex-end;
    border-bottom-right-radius: 4px; width: 100%; max-width: 100%;
    border: 1px solid rgba(176,75,44,0.2);
  }
  .c-chat__bubble--user input,
  .c-chat__bubble--user textarea {
    width: 100%; border: none; background: transparent; font-size: 1rem;
    resize: vertical; min-height: 44px;
  }
  .c-chat__bubble--user input:focus,
  .c-chat__bubble--user textarea:focus { outline: none; }
  .c-chat__bubble--checkbox { background: transparent; border: none; padding: .4rem 0; }

  .c-checkbox {
    display: flex; align-items: center; gap: var(--space-xs); font-size: .92rem; color: var(--c-ink-2);
    cursor: pointer;
  }
  .c-checkbox input { width: 20px; height: 20px; accent-color: var(--c-rust); flex-shrink: 0; }
  .c-checkbox a { color: var(--c-rust-dark); font-weight: 600; text-decoration: underline; }

  .c-contact-info {
    background: var(--c-ink); color: var(--c-text-light);
    border-radius: var(--radius-lg); padding: var(--space-xl);
    box-shadow: var(--shadow-md);
  }
  .c-contact-info h2 { color: var(--c-text-light); margin-bottom: var(--space-md); font-size: 1.4rem; }
  .c-contact-info__list { display: flex; flex-direction: column; gap: var(--space-sm); margin-bottom: var(--space-lg); }
  .c-contact-info__list li { display: flex; gap: var(--space-xs); align-items: center; color: var(--c-cream-2); }
  .c-contact-info__list i { color: var(--c-rust-light); width: 20px; }
  .c-map { border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-sm); }

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

  
  .s-timeline { background: var(--c-cream-2); }
  .c-timeline { display: flex; flex-direction: column; gap: var(--space-lg); max-width: 780px; margin-inline: auto; }
  .c-timeline__item { display: flex; gap: var(--space-md); align-items: flex-start; position: relative; }
  .c-timeline__item:not(:last-child)::after {
    content: ''; position: absolute; left: 22px; top: 48px; bottom: -1.5rem; width: 2px;
    background: linear-gradient(var(--c-rust), transparent);
  }
  .c-timeline__marker {
    width: 46px; height: 46px; border-radius: 50%; flex-shrink: 0;
    background: linear-gradient(135deg, var(--c-rust), var(--c-rust-dark));
    color: var(--c-text-light); display: flex; align-items: center; justify-content: center;
    font-family: var(--font-heading); font-weight: 700; font-size: 1.15rem;
    box-shadow: var(--shadow-md);
  }
  .c-timeline__content h3 { color: var(--c-ink); font-size: 1.15rem; margin-bottom: var(--space-3xs); }
  .c-timeline__content p { color: var(--c-ink-2); font-size: .95rem; }

  
  .s-thanks {
    min-height: 90vh; display: flex; align-items: center; padding-top: 7rem;
    background: linear-gradient(150deg, var(--c-ink) 0%, var(--c-rust-dark) 140%);
  }
  .s-thanks__inner { text-align: center; max-width: 700px; margin-inline: auto; }
  .c-quote-card {
    background: rgba(247,238,225,0.08); border: 1px solid rgba(247,238,225,0.2);
    border-radius: var(--radius-lg); padding: var(--space-xl);
    margin-bottom: var(--space-xl); backdrop-filter: blur(6px);
    box-shadow: var(--shadow-lg);
  }
  .c-quote-card i { color: var(--c-rust-light); font-size: 1.6rem; margin-bottom: var(--space-sm); }
  .c-quote-card__text {
    font-family: var(--font-heading); font-style: italic; font-size: clamp(1.2rem, 2vw + .5rem, 1.6rem);
    color: var(--c-text-light); margin-bottom: var(--space-sm); max-width: none;
  }
  .c-quote-card__source { color: var(--c-cream-3); font-size: .88rem; }
  .s-thanks h1 { color: var(--c-text-light); margin-bottom: var(--space-sm); }
  .s-thanks p { color: var(--c-cream-2); margin-inline: auto; margin-bottom: var(--space-lg); }

  
  .s-legal__inner { max-width: 820px; margin-inline: auto; padding-top: 3rem; }
  .s-legal__inner h1 { color: var(--c-ink); margin-block: var(--space-sm) var(--space-lg); }
  .s-legal__intro { color: var(--c-ink-2); margin-bottom: var(--space-xl); font-size: 1.05rem; }
  .s-legal__inner h2 {
    color: var(--c-rust-dark); font-size: 1.35rem; margin-top: var(--space-xl); margin-bottom: var(--space-sm);
    border-bottom: 2px solid var(--c-cream-3); padding-bottom: var(--space-2xs);
  }
  .s-legal__inner p { color: var(--c-ink-2); margin-bottom: var(--space-md); max-width: none; }
  .s-legal__inner strong { color: var(--c-ink); }

  
  .c-footer { background: var(--c-ink); color: var(--c-cream-2); margin-top: auto; }
  .c-footer__inner {
    display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--space-xl);
    padding-block: var(--space-2xl);
  }
  .c-footer__brand { display: flex; flex-direction: column; gap: var(--space-xs); }
  .c-footer__name { font-family: var(--font-heading); font-size: 1.3rem; color: var(--c-text-light); }
  .c-footer__tag { color: var(--c-cream-3); font-size: .9rem; max-width: 32ch; }
  .c-footer__col h3 { color: var(--c-text-light); font-size: 1rem; margin-bottom: var(--space-sm); }
  .c-footer__col ul { display: flex; flex-direction: column; gap: var(--space-xs); }
  .c-footer__col li { display: flex; gap: var(--space-2xs); align-items: center; color: var(--c-cream-2); font-size: .92rem; }
  .c-footer__col a { transition: color .3s var(--ease); }
  .c-footer__col a:hover { color: var(--c-rust-light); }
  .c-footer__col i { color: var(--c-rust-light); width: 16px; }
  .c-footer__bottom {
    border-top: 1px solid rgba(247,238,225,0.1); padding-block: var(--space-md);
    font-size: .82rem; color: var(--c-cream-3);
  }
  @media (max-width: 880px) {
    .c-footer__inner { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 540px) {
    .c-footer__inner { grid-template-columns: 1fr; }
  }

  
  .c-cookie { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 900; }
  .c-cookie__bell {
    width: 56px; height: 56px; border-radius: 50%;
    background: linear-gradient(135deg, var(--c-rust), var(--c-rust-dark));
    color: var(--c-text-light); font-size: 1.3rem;
    display: flex; align-items: center; justify-content: center;
    box-shadow: var(--shadow-lg); position: relative;
    transition: transform .3s var(--ease);
  }
  .c-cookie__bell:hover { transform: scale(1.08) rotate(-6deg); }
  .c-cookie__badge {
    position: absolute; top: 2px; right: 2px; width: 12px; height: 12px;
    border-radius: 50%; background: #FCE8A8; border: 2px solid var(--c-ink);
  }
  .c-cookie__badge.u-hidden { display: none; }
  .c-cookie__panel {
    position: absolute; bottom: 70px; right: 0; width: min(360px, 88vw);
    background: var(--c-cream); border-radius: var(--radius-lg);
    padding: var(--space-lg); box-shadow: var(--shadow-lg);
    border: 1px solid rgba(36,24,18,0.1);
    opacity: 0; visibility: hidden; transform: translateY(16px);
    transition: opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
    max-height: 80vh; overflow-y: auto;
  }
  .c-cookie__panel.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
  .c-cookie__header { display: flex; align-items: center; gap: var(--space-xs); margin-bottom: var(--space-sm); }
  .c-cookie__header i { color: var(--c-rust); font-size: 1.2rem; }
  .c-cookie__header h3 { font-size: 1.1rem; color: var(--c-ink); }
  .c-cookie__panel p { color: var(--c-ink-2); font-size: .88rem; margin-bottom: var(--space-md); }
  .c-cookie__row {
    display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm);
    padding-block: var(--space-xs); border-top: 1px solid rgba(36,24,18,0.08);
  }
  .c-cookie__row strong { display: block; font-size: .9rem; color: var(--c-ink); }
  .c-cookie__row span { font-size: .8rem; color: var(--c-ink-2); }

  .c-switch { position: relative; width: 42px; height: 24px; flex-shrink: 0; }
  .c-switch input { opacity: 0; width: 0; height: 0; }
  .c-switch span {
    position: absolute; inset: 0; background: rgba(36,24,18,0.2); border-radius: var(--radius-pill);
    transition: background .3s var(--ease);
  }
  .c-switch span::before {
    content: ''; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px;
    background: white; border-radius: 50%; transition: transform .3s var(--ease);
    box-shadow: var(--shadow-sm);
  }
  .c-switch input:checked + span { background: var(--c-rust); }
  .c-switch input:checked + span::before { transform: translateX(18px); }
  .c-switch--locked span { opacity: .6; }

  .c-cookie__actions { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-top: var(--space-md); }
  .c-cookie__actions .c-btn { flex: 1; justify-content: center; padding: .7rem 1rem; font-size: .85rem; }
  .c-cookie__link {
    display: block; text-align: center; margin-top: var(--space-sm); font-size: .82rem;
    color: var(--c-rust-dark); text-decoration: underline;
  }
}

@layer utilities {
  .u-hidden { display: none !important; }
  .u-text-center { text-align: center; }

  .c-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
  .c-reveal.is-visible { opacity: 1; transform: translateY(0); }

  @media (max-width: 980px) {
    .s-intro__grid, .s-piemonte__grid, .s-story__grid, .s-product__row, .s-care-extra__grid {
      grid-template-columns: 1fr !important;
    }
    .s-story__grid--reverse .s-story__image,
    .s-product__row--reverse .s-product__image { order: 0 !important; }
    .c-duotone { aspect-ratio: 16/10; }
  }

  @media (max-width: 640px) {
    .s-section { padding-block: var(--space-2xl); }
    .c-footer__inner { gap: var(--space-lg); }
  }
}