
    /* ═══ Loader: CSS moved to global wp_head snippet ═══ */
    /* (ensures same loader on ALL pages) */

    /* ═══ Hero: cinematic+ redesign ═══ */
    .hero {
      align-items: center;
      justify-content: center;
      padding-bottom: 0;
    }

    /* Ken Burns slow zoom on hero image */
    .hero__image img {
      animation: heroKenBurns 30s ease-in-out infinite alternate !important;
    }
    @keyframes heroKenBurns {
      0%   { transform: scale(1); }
      100% { transform: scale(1.08) translate(-0.5%, -0.5%); }
    }

    /* Hero logo image replacing text title */
    .hero__title {
      font-size: 0 !important;
      color: transparent !important;
      line-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      text-shadow: none !important;
    }
    .hero__logo-img {
      display: block;
      width: clamp(200px, 30vw, 420px);
      height: auto;
      filter: brightness(0) invert(1) drop-shadow(0 6px 40px rgba(0,0,0,.4));
      margin: 0 auto;
      opacity: 0;
      animation: heroLogoReveal 1.2s cubic-bezier(.16,1,.3,1) .5s forwards;
    }
    @keyframes heroLogoReveal {
      0%   { opacity: 0; transform: scale(.85) translateY(30px); filter: brightness(0) invert(1) blur(8px) drop-shadow(0 6px 40px rgba(0,0,0,.4)); }
      60%  { opacity: 1; filter: brightness(0) invert(1) blur(0px) drop-shadow(0 6px 40px rgba(0,0,0,.4)); }
      100% { opacity: 1; transform: scale(1) translateY(0); filter: brightness(0) invert(1) drop-shadow(0 6px 40px rgba(0,0,0,.4)); }
    }
    /* Accent glow behind logo */
    .hero__logo-glow {
      position: absolute;
      width: clamp(300px, 45vw, 600px);
      height: clamp(200px, 30vw, 400px);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -60%);
      background: radial-gradient(ellipse, rgba(210,120,90,.12) 0%, transparent 70%);
      pointer-events: none;
      z-index: 2;
      opacity: 0;
      animation: heroGlowIn 2s ease 1s forwards;
    }
    @keyframes heroGlowIn {
      to { opacity: 1; }
    }

    /* Decorative accent line under logo */
    .hero__title-deco {
      display: block;
      width: clamp(60px, 8vw, 100px);
      height: 2px;
      margin: clamp(12px, 2vh, 20px) auto 0;
      background: linear-gradient(90deg, transparent, var(--accent), transparent);
      border-radius: 1px;
      opacity: 0;
      animation: heroFadeUp .8s ease .85s forwards;
    }

    /* Cinematic overlays — enhanced with vignette */
    .hero__film {
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        radial-gradient(ellipse at 50% 40%, transparent 30%, rgba(20,20,20,.35) 100%),
        linear-gradient(165deg, rgba(210,120,90,.10) 0%, transparent 40%),
        linear-gradient(to bottom,
          rgba(20,20,20,.50) 0%,
          rgba(20,20,20,.06) 25%,
          rgba(20,20,20,.02) 45%,
          rgba(20,20,20,.28) 70%,
          rgba(20,20,20,.88) 100%
        );
      pointer-events: none;
    }

    /* Film grain overlay */
    .hero__grain {
      position: absolute;
      inset: 0;
      z-index: 2;
      opacity: .035;
      pointer-events: none;
      mix-blend-mode: overlay;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
      background-size: 200px 200px;
    }

    /* Accent line */
    .hero__accent-line {
      position: absolute;
      left: clamp(24px, 5vw, 80px);
      top: 20%;
      bottom: 20%;
      width: 1px;
      background: linear-gradient(to bottom, transparent, rgba(210,120,90,.5), transparent);
      z-index: 2;
      opacity: 0;
      animation: heroAccentIn 1.5s ease 1.2s forwards;
    }
    .hero__accent-line::after {
      content: '';
      position: absolute;
      inset: 20% -4px 20% -4px;
      background: linear-gradient(to bottom, transparent, rgba(210,120,90,.12), transparent);
      filter: blur(4px);
    }
    @keyframes heroAccentIn {
      to { opacity: 1; }
    }

    /* Location badge */
    .hero__badge {
      position: absolute;
      top: clamp(100px, 14vh, 140px);
      right: clamp(24px, 5vw, 60px);
      z-index: 3;
      display: flex;
      align-items: center;
      gap: 8px;
      font-family: var(--font-ui);
      font-size: .62rem;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: rgba(255,255,255,.55);
      opacity: 0;
      animation: heroBadgeIn 1s ease 1.5s forwards;
    }
    .hero__badge svg {
      opacity: .5;
      flex-shrink: 0;
    }
    @keyframes heroBadgeIn {
      to { opacity: 1; }
    }

    /* Content wrapper (overrides theme .hero__content/.hero__text) */
    .hero__content-wrap {
      position: relative;
      z-index: 3;
      text-align: center;
      max-width: 960px;
      padding: 0 var(--container-pad, 24px);
    }

    /* Tag line with side lines */
    .hero__tag {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      margin-bottom: clamp(16px, 3vh, 28px);
      opacity: 0;
      animation: heroFadeUp .8s ease .6s forwards;
    }
    .hero__tag-text {
      font-family: var(--font-ui);
      font-size: clamp(.6rem, .9vw, .72rem);
      letter-spacing: .22em;
      text-transform: uppercase;
      color: rgba(255,255,255,.7);
      white-space: nowrap;
    }
    .hero__tag-line {
      display: block;
      width: clamp(24px, 5vw, 60px);
      height: 1px;
      background: rgba(210,120,90,.6);
    }

    /* Subtitle below title */
    .hero__subtitle {
      font-family: var(--font-body);
      font-weight: 400;
      font-size: clamp(.82rem, 1.2vw, 1rem);
      letter-spacing: .06em;
      color: rgba(255,255,255,.65);
      opacity: 0;
      margin-top: clamp(12px, 2vh, 20px);
      margin-bottom: clamp(24px, 4vh, 40px);
      line-height: 1.7;
      animation: heroFadeUp .8s ease 1s forwards;
    }

    /* CTAs */
    .hero__ctas {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      flex-wrap: wrap;
      opacity: 0;
      animation: heroFadeUp .8s ease 1.2s forwards;
    }
    .hero__btn-primary {
      pointer-events: all;
      background: var(--accent) !important;
      color: var(--white) !important;
      border-color: var(--accent) !important;
      padding: 16px 40px !important;
      font-size: .7rem !important;
      letter-spacing: .12em !important;
      box-shadow: 0 4px 24px rgba(210,120,90,.25);
    }
    .hero__btn-primary::before { background: var(--white) !important; }
    .hero__btn-primary:hover { 
      color: var(--accent) !important; 
      box-shadow: 0 8px 32px rgba(210,120,90,.35);
    }
    .hero__btn-secondary {
      pointer-events: all;
      border-color: rgba(255,255,255,.45) !important;
      color: var(--white) !important;
      padding: 16px 40px !important;
      font-size: .7rem !important;
      letter-spacing: .12em !important;
    }
    .hero__btn-secondary::before { background: var(--white) !important; }
    .hero__btn-secondary:hover { color: var(--fg) !important; }

    /* Bottom info bar */
    .hero__bottom-bar {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 3;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: clamp(16px, 3vw, 40px);
      padding: clamp(14px, 2vh, 20px) var(--container-pad, 24px);
      background: rgba(20,20,20,.5);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-top: 1px solid rgba(210,120,90,.12);
      opacity: 0;
      animation: heroFadeUp .8s ease 1.6s forwards;
    }
    .hero__bottom-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 3px;
    }
    .hero__bottom-label {
      font-family: var(--font-ui);
      font-size: .52rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--accent);
    }
    .hero__bottom-value {
      font-size: .72rem;
      color: rgba(255,255,255,.8);
      letter-spacing: .03em;
    }
    .hero__bottom-sep {
      width: 1px;
      height: 28px;
      background: rgba(255,255,255,.12);
    }

    @keyframes heroFadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    .hero__text .btn {
      pointer-events: all;
      border-color: rgba(255,255,255,.8);
      color: var(--white);
      opacity: 0;
    }
    .hero__text .btn::before { background: var(--white); }
    .hero__text .btn:hover   { color: var(--fg); }

    /* ═══ Hero scroll indicator ═══ */
    .hero__scroll {
      position: absolute;
      bottom: clamp(70px, 10vh, 100px);
      right: clamp(24px, 5vw, 60px);
      z-index: 3;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      color: rgba(255,255,255,.5);
      opacity: 0;
      animation: heroScrollFadeIn 1s ease 2s forwards;
    }
    .hero__scroll-text {
      font-family: var(--font-ui);
      font-size: .58rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      writing-mode: vertical-rl;
    }
    .hero__scroll-line {
      width: 1px;
      height: 40px;
      background: linear-gradient(to bottom, rgba(255,255,255,.5), transparent);
      animation: heroScrollPulse 2s ease-in-out infinite;
    }
    @keyframes heroScrollFadeIn {
      to { opacity: 1; }
    }
    @keyframes heroScrollPulse {
      0%, 100% { transform: scaleY(1); opacity: .6; }
      50%      { transform: scaleY(.5); opacity: .3; }
    }

    /* ═══ Sawtooth / Zigzag edges — on NAV and FOOTER ═══ */

    /* Nav: dark teal/slate — distinct from black footer */
    .nav {
      background: #1e1714 !important;
      margin-bottom: 0 !important;
      padding-bottom: 0 !important;
    }
    .nav.scrolled {
      background: #1e1714 !important;
      box-shadow: 0 2px 16px rgba(0,0,0,.25);
    }
    /* Nav links + logo in white (on dark bg) */
    .nav__links a, .nav__btn { color: var(--white, #fff) !important; }
    .nav.scrolled .nav__links a, .nav.scrolled .nav__btn { color: var(--white, #fff) !important; }
    .nav__logo img { filter: brightness(0) invert(1); }
    .nav.scrolled .nav__logo img { filter: brightness(0) invert(1); }
    .burger span { background: var(--white, #fff) !important; }
    .nav.scrolled .burger span { background: var(--white, #fff) !important; }

    /* Nav sawtooth: teal triangles pointing down, FLUSH with nav */
    .nav::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: -14px;
      height: 14px;
      background-repeat: repeat-x;
      background-size: 22px 14px;
      background-position: top center;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10'%3E%3Cpolygon points='0,0 10,10 20,0' fill='%231e1714'/%3E%3C/svg%3E");
      z-index: 999;
      pointer-events: none;
    }

    /* Hero: absorb the nav sawtooth overlap */
    .hero {
      margin-top: 0 !important;
      padding-top: 0 !important;
    }

    /* Footer sawtooth: black triangles pointing up, flush against footer */
    .saw-edge--footer {
      position: relative;
      z-index: 10;
      width: 100%;
      height: 14px;
      line-height: 0;
      flex-shrink: 0;
      margin-top: 0;
      margin-bottom: 0;
      background-repeat: repeat-x;
      background-size: 22px 14px;
      background-position: bottom center;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10'%3E%3Cpolygon points='0,10 10,0 20,10' fill='%23141414'/%3E%3C/svg%3E");
      background-color: transparent;
    }
    /* Kill gap between last section and footer sawtooth */
    .section:last-of-type {
      margin-bottom: 0 !important;
      padding-bottom: var(--space-lg) !important;
    }
    .saw-edge--footer {
      margin-top: 0 !important;
    }
    .saw-edge--footer + footer,
    .saw-edge--footer + .footer {
      margin-top: 0 !important;
      padding-top: var(--space-lg) !important;
    }

    /* ═══ Nav logo image ═══ */
    .nav__logo img {
      height: 40px;
      width: auto;
      display: block;
      transition: opacity .3s var(--ease-out-expo);
    }
    .nav__logo:hover img { opacity: .65; }

    /* ═══ Intro centered ═══ */
    .intro-centered {
      text-align: center;
      max-width: 780px;
      margin: 0 auto;
    }
    .intro-centered p {
      font-family: var(--font-display);
      font-size: clamp(1.12rem, 2vw, 1.5rem);
      font-weight: 400;
      font-style: normal;
      line-height: 1.6;
      color: var(--fg);
    }
    .deco-line {
      display: block;
      width: 52px;
      height: 2px;
      background: var(--accent);
      margin: 2em auto 0;
      border: none;
    }

    /* ═══ Restauration cards ═══ */
    .resto-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(24px, 4vw, 52px);
      margin-top: clamp(28px, 4vw, 44px);
    }
    .resto-card__img {
      overflow: hidden;
      margin-bottom: 1.2em;
    }
    .resto-card__img img {
      width: 100%;
      height: clamp(260px, 28vw, 380px);
      object-fit: cover;
      transition: transform .65s var(--ease-out-expo);
    }
    .resto-card__img:hover img { transform: scale(1.04); }
    .resto-card h3 {
      font-family: var(--font-display);
      font-size: clamp(1.4rem, 2.5vw, 2.1rem);
      font-weight: 700;
      color: var(--accent);
      text-transform: uppercase;
      letter-spacing: .02em;
      line-height: 1.1;
    }
    .resto-card p {
      color: var(--grey-600);
      margin: .55em 0 1em;
      font-size: .9rem;
      line-height: 1.6;
    }

    /* ═══ Soirées dark section ═══ */
    .section--dark {
      background: var(--fg);
      color: var(--bg);
      position: relative;
      overflow: hidden;
    }
    .section--dark h2       { color: var(--cream); }
    .section--dark h4       { color: var(--cream); opacity: .6; }
    .section--dark p,
    .section--dark .text-large { color: rgba(255,252,240,.72); }
    .section--dark .btn     { border-color: rgba(255,252,240,.65); color: var(--bg); }
    .section--dark .btn::before { background: var(--bg); }
    .section--dark .btn:hover   { color: var(--fg); }
    .section--dark-bg {
      position: absolute;
      inset: 0;
      z-index: 0;
    }
    .section--dark-bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      opacity: .18;
    }
    .section--dark > .container { position: relative; z-index: 1; }

    /* ═══ Carte cadeau ═══ */
    .section--cream { background: var(--cream); }
    .carte-cadeau {
      text-align: center;
      max-width: 660px;
      margin: 0 auto;
    }
    .carte-cadeau h2 { margin-bottom: .25em; }
    .carte-cadeau p {
      color: var(--grey-600);
      font-size: clamp(.9rem, 1.2vw, 1.04rem);
      margin-bottom: 2em;
      line-height: 1.65;
    }

    /* ═══ Footer 4-col ═══ */
    .footer__logo-img {
      width: clamp(140px, 18vw, 220px);
      height: auto;
      margin-bottom: 1em;
      filter: brightness(0) invert(1);
      opacity: .85;
    }
    .footer__tagline {
      font-family: var(--font-display);
      font-size: .88rem;
      font-style: normal;
      opacity: .55;
      line-height: 1.55;
    }

    /* ═══ Responsive ═══ */
    @media (max-width: 768px) {
      .resto-grid { grid-template-columns: 1fr; }
      .footer__wrap--home { grid-template-columns: 1fr !important; }
      .hero__accent-line { display: none; }
      .hero__badge { display: none; }
      .hero__scroll { display: none; }
      .nav::after { height: 10px; background-size: 16px 10px; bottom: -10px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10'%3E%3Cpolygon points='0,0 10,10 20,0' fill='%231e1714'/%3E%3C/svg%3E"); }
      .saw-edge--footer { height: 10px; background-size: 16px 10px; }
      .nav__links a, .nav__btn { font-size: .7rem !important; }
      .hero__bottom-bar {
        flex-wrap: wrap;
        gap: 12px 20px;
      }
      .hero__bottom-sep:last-of-type { display: none; }
      .hero__bottom-item:last-child { display: none; }
      .hero__ctas { flex-direction: column; width: 100%; }
      .hero__btn-primary,
      .hero__btn-secondary { width: 100%; text-align: center; }
    }
  