/* Ocônice — design tokens (adapted from the supplied design system) */
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Jost:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&display=swap");

:root{
  --cream-50:#FDFBF5; --cream-100:#F8F3E7; --cream-200:#EFE6D4;
  --ink-900:#241F20; --ink-700:#3A3335; --ink-500:#6E6467; --ink-300:#A79EA0;
  --moutarde-500:#D9C33C; --moutarde-300:#EDE07A; --moutarde-100:#F7F2C8;
  --citron-500:#C6DE4B; --citron-200:#E6F0B4;
  --rose-500:#E895B6; --rose-300:#F0AECB; --rose-100:#FBE4EE;
  --sauge-500:#9FC08E; --sauge-300:#BFD5B2; --sauge-100:#E6EFE0;
  --lavande-500:#B9A8DE; --lavande-300:#D3C8EC; --lavande-100:#EDE7F7;
  --iris-600:#A23BA0;
  --corail-500:#F2916B; --corail-300:#F8BCA2; --corail-100:#FDE7DC;
  --terracotta-500:#9C7B5C; --terracotta-300:#C4A88C; --terracotta-100:#EFE3D6;
  --groseille-600:#D8402F; --groseille-400:#E8705F; --groseille-100:#FBDDD8;

  --page-bg:var(--cream-50); --surface-card:#FFFFFF; --surface-quiet:var(--cream-100);
  --text-body:var(--ink-700); --text-heading:var(--ink-900); --text-muted:var(--ink-500);
  --text-on-invert:var(--cream-50); --text-link:var(--groseille-600); --text-link-hover:var(--iris-600);
  --border-hairline:var(--cream-200); --border-ink:var(--ink-900); --focus-ring:var(--lavande-500);

  --font-serif-display:"Cormorant Garamond",Georgia,serif;
  --font-sans-body:"Jost","Helvetica Neue",sans-serif;
  --text-display-lg:clamp(2.6rem,6.4vw,5.5rem);
  --text-display:clamp(2.2rem,4.2vw,3.5rem);
  --text-h2:1.875rem; --text-h3:1.375rem;
  --text-lead:1.1875rem; --text-body-size:1rem; --text-small:0.875rem; --text-caption:0.75rem;
  --leading-display:1.08; --leading-heading:1.2; --leading-body:1.65;
  --tracking-display:0.01em; --tracking-eyebrow:0.18em;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px;
  --section-y:var(--space-9); --content-max:1120px; --prose-max:62ch;
  --gutter:clamp(20px,5vw,64px);

  --radius-sm:8px; --radius-md:16px; --radius-lg:28px; --radius-pill:999px;
  --radius-blob-1:62% 38% 55% 45%/45% 55% 45% 55%;
  --radius-blob-2:40% 60% 35% 65%/55% 40% 60% 45%;
  --radius-blob-3:55% 45% 62% 38%/38% 58% 42% 62%;
  --radius-card-soft:28px 34px 30px 36px;
  --shadow-soft:0 8px 28px -18px rgba(36,31,32,.28);
  --shadow-lift:0 18px 44px -24px rgba(36,31,32,.34);

  --ease-soft:cubic-bezier(.22,.61,.36,1);
  --dur-fast:140ms; --dur-base:240ms; --dur-slow:520ms;
  --hover-lift:-2px; --press-scale:.985;
  --watermark-opacity:0.08;
}
@media (prefers-reduced-motion:reduce){
  :root{--dur-fast:0ms;--dur-base:0ms;--dur-slow:0ms}
}

/* ---------- Reset & base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--page-bg);color:var(--text-body);font-family:var(--font-sans-body);font-weight:300;line-height:var(--leading-body)}
h1,h2,h3,p,ul,figure{margin:0}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover)}
img{max-width:100%;display:block}
button{font:inherit}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink-900);color:var(--cream-50);padding:12px 20px;z-index:100;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}

.container{max-width:var(--content-max);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--section-y) 0}
.bg-cream{background:var(--cream-50)}
.bg-quiet{background:var(--cream-100)}
.bg-iris{background:var(--iris-600);color:var(--cream-100)}

/* ---------- Watermark pattern ---------- */
.pattern-bg{position:relative;isolation:isolate}
.pattern-bg::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:center/860px repeat url("../images/pattern-fruits.jpg");opacity:var(--watermark-opacity)}
.pattern-bg--fade::before{mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 78%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 78%,transparent)}
.pattern-bg--tight::before{background-size:700px}
.pattern-bg>*{position:relative;z-index:1}

/* ---------- Eyebrow / section heading ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--groseille-600);font-size:var(--text-caption);font-weight:500;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}
.eyebrow--invert{color:var(--cream-100)}
.section-heading{display:flex;flex-direction:column;gap:var(--space-4);align-items:flex-start;text-align:left;margin-bottom:var(--space-7)}
.section-heading--center{align-items:center;text-align:center}
.section-heading--invert .eyebrow{color:var(--cream-100)}
.section-heading h1,.section-heading h2{font-family:var(--font-serif-display);font-weight:300;font-size:var(--text-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--text-heading);max-width:26ch}
.section-heading--invert h1,.section-heading--invert h2{color:var(--cream-50)}
.section-heading p{font-size:var(--text-lead);font-weight:300;line-height:var(--leading-body);color:var(--text-body);max-width:var(--prose-max);margin-top:var(--space-4)}
.section-heading--invert p{color:var(--cream-100)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  font-family:var(--font-sans-body);font-weight:500;font-size:var(--text-small);
  letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;text-decoration:none;
  border-radius:var(--radius-pill);border:1.25px solid transparent;cursor:pointer;padding:12px 26px;
  transition:background var(--dur-base) var(--ease-soft),color var(--dur-base) var(--ease-soft),transform var(--dur-fast) var(--ease-soft),border-color var(--dur-base) var(--ease-soft)}
.btn:hover{transform:translateY(var(--hover-lift))}
.btn:active{transform:scale(var(--press-scale))}
.btn-sm{padding:8px 18px;font-size:var(--text-caption)}
.btn-lg{padding:16px 34px;font-size:var(--text-body-size)}
.btn-block{display:flex;width:100%}
.btn-primary{background:var(--groseille-600);color:var(--cream-50);border-color:var(--groseille-600)}
.btn-primary:hover{background:#C2372A;border-color:#C2372A;color:var(--cream-50)}
.btn-secondary{background:transparent;color:var(--ink-900);border-color:var(--ink-900)}
.btn-secondary:hover{background:var(--ink-900);color:var(--cream-50)}
.btn-soft{background:var(--rose-100);color:var(--ink-900)}
.btn-soft:hover{background:var(--rose-300);color:var(--ink-900)}
.btn-invert{background:var(--cream-50);color:var(--iris-600);border-color:var(--cream-50)}
.btn-invert:hover{background:var(--cream-100);color:var(--iris-600)}
.btn[disabled]{opacity:.42;cursor:not-allowed;transform:none}

/* ---------- Tags ---------- */
.tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-caption);font-weight:500;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;padding:5px 13px;border-radius:var(--radius-pill)}
.tag-moutarde{background:var(--moutarde-300);color:var(--ink-900)}
.tag-rose{background:var(--rose-300);color:var(--ink-900)}
.tag-sauge{background:var(--sauge-300);color:var(--ink-900)}
.tag-lavande{background:var(--lavande-300);color:var(--ink-900)}
.tag-corail{background:var(--corail-300);color:var(--ink-900)}
.tag-citron{background:var(--citron-200);color:var(--ink-900)}
.tag-outline{background:transparent;color:var(--ink-900);box-shadow:inset 0 0 0 1.25px var(--ink-900)}

/* ---------- Cards ---------- */
.card{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-card-soft);padding:var(--space-6);box-shadow:var(--shadow-soft);transition:box-shadow var(--dur-base) var(--ease-soft),transform var(--dur-base) var(--ease-soft)}
.card-cream{background:var(--cream-100);border-color:transparent}
.card-lavande{background:var(--lavande-100);border-color:transparent}
.card-lift:hover{box-shadow:var(--shadow-lift);transform:translateY(var(--hover-lift))}

/* ---------- Blob frame ---------- */
.blob{position:relative;width:100%;aspect-ratio:1/1}
.blob::before{content:"";position:absolute;inset:6% -4% -6% 4%;border-radius:var(--radius-blob-1)}
.blob-1::before{border-radius:var(--radius-blob-1)}
.blob-2::before{border-radius:var(--radius-blob-2)}
.blob-3::before{border-radius:var(--radius-blob-3)}
.blob-figure{position:absolute;inset:0;overflow:hidden}
.blob-figure img{width:100%;height:100%;object-fit:cover;display:block}
.blob-1 .blob-figure{border-radius:var(--radius-blob-1)}
.blob-2 .blob-figure{border-radius:var(--radius-blob-2)}
.blob-3 .blob-figure{border-radius:var(--radius-blob-3)}
.blob-tone-citron::before{background:var(--citron-200)}
.blob-tone-lavande::before{background:var(--lavande-300)}
.blob-tone-rose::before{background:var(--rose-300)}
.blob-tone-corail::before{background:var(--corail-300)}
.blob-tone-sauge::before{background:var(--sauge-300)}
.blob-tone-moutarde::before{background:var(--moutarde-300)}
.blob-tone-terracotta::before{background:var(--terracotta-300)}

/* ---------- Flavor card ---------- */
.flavor-card{display:flex;flex-direction:column;gap:var(--space-4)}
.flavor-card-kind{font-size:var(--text-caption);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted)}
.flavor-card h3{font-family:var(--font-serif-display);font-weight:300;font-size:var(--text-h3);line-height:var(--leading-heading);color:var(--text-heading)}
.flavor-card p{font-size:var(--text-small);font-weight:300;line-height:var(--leading-body);color:var(--text-body)}
.flavor-card-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}

/* ---------- Icons ---------- */
.icon{display:inline-flex;flex:0 0 auto}
.icon svg{width:100%;height:100%}

/* ---------- Header / nav ---------- */
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--space-6);
  padding:14px var(--gutter);background:rgba(253,251,245,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-hairline)}
.brand-logo{display:inline-flex;flex-direction:column;line-height:1;gap:2px;text-decoration:none}
.brand-logo .wordmark{font-family:var(--font-serif-display);font-weight:300;font-size:30px;letter-spacing:.015em;color:var(--ink-900)}
.brand-logo .tagline{font-size:9px;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-900);opacity:.7}
.brand-logo--invert .wordmark,.brand-logo--invert .tagline{color:var(--cream-50)}
.nav-links{display:flex;align-items:center;gap:var(--space-6);margin-left:auto}
.nav-links a{font-size:var(--text-small);color:var(--text-muted);border-bottom:1.25px solid transparent;padding-bottom:3px;transition:color var(--dur-base) var(--ease-soft),border-color var(--dur-base) var(--ease-soft)}
.nav-links a:hover{color:var(--ink-900)}
.nav-links a[aria-current="page"]{color:var(--ink-900);border-color:var(--groseille-600)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:11px;cursor:pointer;margin-left:auto}
.nav-toggle span{display:block;width:22px;height:1.5px;background:var(--ink-900)}
.mobile-menu{display:none}

@media (max-width:860px){
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .mobile-menu{position:fixed;inset:0 0 0 auto;width:min(320px,86vw);height:100vh;background:var(--cream-50);z-index:30;
    display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-7) var(--space-6);transform:translateX(100%);transition:transform var(--dur-slow) var(--ease-soft)}
  .mobile-menu.is-open{transform:translateX(0)}
  .mobile-menu a{font-family:var(--font-serif-display);font-size:1.4rem;color:var(--ink-900)}
  .mobile-menu a[aria-current="page"]{color:var(--groseille-600)}
  .nav-scrim{display:none;position:fixed;inset:0;background:rgba(36,31,32,.35);z-index:25}
  .nav-scrim.is-open{display:block}
}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink-900);color:var(--cream-100);padding:var(--space-9) 0 var(--space-6)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-7)}
.footer-grid p{font-size:var(--text-small);font-weight:300;line-height:var(--leading-body);color:var(--cream-100);opacity:.9;margin-top:var(--space-4)}
.footer-col-title{font-size:var(--text-caption);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;opacity:.75;display:block;margin-bottom:var(--space-3)}
.footer-links{display:flex;flex-direction:column;gap:var(--space-3);list-style:none;padding:0;margin:0}
.footer-links a{color:var(--cream-50);font-size:var(--text-small);opacity:.92}
.footer-links a:hover{opacity:1;color:var(--cream-50);text-decoration:underline}
.footer-contact{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-small)}
.footer-contact a{color:var(--cream-50)}
.footer-contact span{display:inline-flex;gap:8px;align-items:center}
.footer-bottom{max-width:var(--content-max);margin:var(--space-7) auto 0;padding:var(--space-4) var(--gutter) 0;border-top:1px solid rgba(253,251,245,.28);font-size:var(--text-caption);opacity:.8}

/* ---------- Hero ---------- */
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-8);align-items:center;padding-top:var(--space-9)}
.hero-copy{display:flex;flex-direction:column;gap:var(--space-5)}
.hero-copy h1{font-family:var(--font-serif-display);font-weight:300;font-size:var(--text-display-lg);line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--ink-900)}
.hero-copy .lead{font-size:var(--text-lead);font-weight:300;line-height:var(--leading-body);max-width:46ch}
.hero-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}
.hero-tags{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}
.hero-blobs{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.hero-blobs .blob:nth-child(2n){margin-top:var(--space-7)}

/* ---------- Atelier ---------- */
.atelier-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-8);align-items:center}
.atelier-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-5)}
.atelier-facts .card{display:flex;flex-direction:column;gap:8px}
.atelier-facts .card .icon{color:var(--groseille-600)}
.atelier-facts .card strong{font-family:var(--font-serif-display);font-weight:300;font-size:var(--text-h3);color:var(--ink-900)}
.atelier-facts .card span.txt{font-size:var(--text-small);font-weight:300;line-height:1.55}

/* ---------- Grids ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-7)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}

/* ---------- Pro banner ---------- */
.pro-banner-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--space-8);align-items:center}
.pro-banner-grid .btn-wrap{display:flex;justify-content:flex-end}

/* ---------- Flavors screen ---------- */
.filter-bar{display:flex;gap:var(--space-2);margin:0 0 var(--space-7);flex-wrap:wrap}
.filter-btn{padding:9px 20px;border-radius:var(--radius-pill);cursor:pointer;font-size:var(--text-caption);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;border:1.25px solid var(--ink-900);background:transparent;color:var(--ink-900);transition:background var(--dur-base) var(--ease-soft),color var(--dur-base) var(--ease-soft)}
.filter-btn[aria-pressed="true"]{background:var(--ink-900);color:var(--cream-50)}
.flavors-note{margin-top:var(--space-8);display:flex;gap:var(--space-5);align-items:center;justify-content:space-between;flex-wrap:wrap}
.flavors-note-text{display:flex;gap:var(--space-4);align-items:center;max-width:60ch;font-size:var(--text-small);line-height:1.6}
.flavors-note .icon{color:var(--iris-600)}

/* ---------- Find us screen ---------- */
.findus-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--space-8);align-items:start}
.event-list{list-style:none;margin:var(--space-6) 0 0;padding:0}
.event-item{display:flex;gap:var(--space-5);align-items:flex-start;padding:var(--space-5) 0;border-bottom:1px solid var(--border-hairline)}
.event-date{flex:0 0 auto;width:62px;height:62px;border-radius:var(--radius-blob-2);display:grid;place-items:center;line-height:1;text-align:center}
.event-date .day{font-family:var(--font-serif-display);font-size:1.5rem;color:var(--ink-900);display:block}
.event-date .month{font-size:var(--text-caption);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-700)}
.event-body{display:flex;flex-direction:column;gap:5px}
.event-body h3{font-family:var(--font-serif-display);font-weight:300;font-size:var(--text-h3);color:var(--text-heading)}
.event-meta{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--text-small);color:var(--text-muted)}
.event-meta span{display:inline-flex;align-items:center;gap:6px}
.event-note{font-size:var(--text-small);font-weight:300;color:var(--text-body)}
.findus-side{display:flex;flex-direction:column;gap:var(--space-5);position:sticky;top:96px}

/* ---------- Forms ---------- */
.field{display:flex;flex-direction:column;gap:var(--space-2)}
.field label{font-size:var(--text-caption);font-weight:500;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted)}
.field input,.field select,.field textarea{width:100%;font-family:var(--font-sans-body);font-size:var(--text-body-size);color:var(--ink-700);background:var(--surface-card);border:1.25px solid var(--ink-900);border-radius:var(--radius-pill);padding:13px 20px;outline:none;transition:box-shadow var(--dur-base) var(--ease-soft)}
.field textarea{border-radius:var(--radius-lg);resize:vertical}
.field select{appearance:none;padding-right:44px;background-image:linear-gradient(45deg,transparent 50%,var(--ink-900) 50%),linear-gradient(135deg,var(--ink-900) 50%,transparent 50%);background-position:calc(100% - 24px) center,calc(100% - 19px) center;background-size:6px 6px;background-repeat:no-repeat;cursor:pointer}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 3px var(--lavande-300)}
.field-hint{font-size:var(--text-caption);color:var(--text-muted)}
.field-error{font-size:var(--text-caption);color:var(--groseille-600)}
.switch-row,.check-row{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--text-small);color:var(--ink-700);cursor:pointer}
.switch-input{position:absolute;opacity:0;width:0;height:0}
.switch-track{width:44px;height:24px;border-radius:var(--radius-pill);padding:2px;border:1.25px solid var(--ink-900);background:var(--cream-100);display:flex;align-items:center;transition:background var(--dur-base) var(--ease-soft)}
.switch-thumb{width:18px;height:18px;border-radius:var(--radius-pill);background:var(--cream-50);border:1px solid var(--ink-900);transition:transform var(--dur-base) var(--ease-soft)}
.switch-input:checked~.switch-track{background:var(--sauge-500);justify-content:flex-end}
.check-box{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;border:1.25px solid var(--ink-900);border-radius:6px;background:transparent}
.check-input{position:absolute;opacity:0;width:0;height:0}
.check-input:checked~.check-box{background:var(--ink-900)}
.check-box::after{content:"";width:9px;height:5px;border-left:1.5px solid var(--cream-50);border-bottom:1.5px solid var(--cream-50);transform:rotate(-45deg) translateY(-1px);display:none}
.check-input:checked~.check-box::after{display:block}
.quote-card{padding:var(--space-7);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-6)}
.quote-card .col-full{grid-column:1/-1}
.quote-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap}
.form-status{font-size:var(--text-small);margin-top:var(--space-3)}
.form-status.success{color:#5E8A53}
.form-status.error{color:var(--groseille-600)}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-8);align-items:center}
.contact-list{display:flex;flex-direction:column;gap:var(--space-3)}
.contact-list span{display:inline-flex;gap:var(--space-3);align-items:center;font-size:var(--text-body-size);color:var(--ink-700)}
.contact-list .icon{color:var(--groseille-600)}
.contact-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .hero-grid,.atelier-grid,.pro-banner-grid,.findus-grid,.contact-grid{grid-template-columns:1fr}
  .pro-banner-grid .btn-wrap{justify-content:flex-start}
  .grid-3{grid-template-columns:1fr 1fr}
  .grid-4{grid-template-columns:1fr 1fr}
  .quote-card{grid-template-columns:1fr}
  .findus-side{position:static}
}
@media (max-width:560px){
  .grid-3,.grid-4{grid-template-columns:1fr}
  .hero-blobs{grid-template-columns:1fr 1fr}
}

/* ---------- Reveal-on-scroll ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity var(--dur-slow) var(--ease-soft),transform var(--dur-slow) var(--ease-soft)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}
