@font-face{font-family:'Rue Sans';src:url('/assets/rue/instrument-sans.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
:root{
 --paper:#fffefa;--white:#fffefa;--concrete:#f3f2ec;--concrete-deep:#e4e3dc;--steel:#c4c6bc;
 --ink:#252625;--charcoal:#3b3d38;--muted:#65665e;--green:#8b2035;--green-hover:#69162a;
 --color-bg:var(--paper);--color-surface:var(--white);--color-text:var(--ink);--color-muted:var(--muted);--color-accent:var(--green);--color-focus:var(--green);--color-error:#8b2035;
 --hospitality:#234d3d;--line:rgba(37,38,37,.14);--line-strong:rgba(37,38,37,.24);
 --font-display:'Newsreader',Georgia,serif;--font-body:'Rue Sans',sans-serif;--font-mono:'Rue Sans',sans-serif;
 --display:var(--font-display);--body:var(--font-body);--sans:var(--font-body);--mono:var(--font-mono);
 --text-detail:clamp(.72rem,.68rem + .15vw,.83rem);--text-small:clamp(.91rem,.85rem + .2vw,1rem);--text-body:clamp(1rem,.96rem + .2vw,1.15rem);--text-lead:clamp(1.1rem,1rem + .5vw,1.4rem);
 --text-h3:clamp(2.7rem,2.3rem + 1.8vw,4.6rem);--text-h2:clamp(3.5rem,2.5rem + 4.5vw,7.4rem);--leading-tight:1;--leading-display:1.04;--leading-body:1.65;--tracking-tight:-.035em;--tracking-wide:.15em;
 --page-max:90rem;--page-gutter:clamp(1.5rem,5vw,5.5rem);--radius-control:.2rem;--shadow-food:0 1.25rem 2.25rem -1.5rem rgba(37,38,37,.24);
 --kh-nav-paper:rgba(255,254,250,.86);--kh-nav-paper-solid:var(--paper);--kh-nav-panel-paper:rgba(255,254,250,.985);--kh-nav-ink:var(--ink);--kh-nav-muted:var(--muted);--kh-nav-focus:var(--green);
 --rue-logo-width:clamp(18rem,74vw,73rem);--rue-header-logo:7.3rem;--rue-stroke-duration:3.7s;--rue-label-gap:clamp(2rem,7vh,5rem);--rue-hero-offset:4vh;--rue-section-gap:clamp(4rem,7vw,7.5rem);
 --rue-row-gap:.8rem;--rue-wordmark-caption:clamp(.63rem,.55rem + .18vw,.8rem);--rue-menu-title:clamp(5.5rem,4rem + 5vw,10rem);
}
body{font-family:var(--font-body);background:var(--paper)}
.rue-static-wordmark,.rue-secondary-wordmark{display:block;width:12rem;height:auto;max-width:100%}
.persistent-brand{top:0;width:100%;height:4rem;min-height:2.75rem;filter:none!important;opacity:0;pointer-events:none;background:var(--paper);transition:opacity var(--duration-base) var(--ease-out)}
.persistent-brand.rue-brand-visible{opacity:1;pointer-events:auto}
.persistent-brand .rue-static-wordmark{width:var(--rue-header-logo)}
.persistent-brand:hover,.persistent-brand:active{transform:translateX(-50%)}
.persistent-brand[data-on-dark='true'] .rue-static-wordmark{filter:none}
.hero-lockup{padding-bottom:calc(var(--space-8) + var(--rue-hero-offset));gap:var(--rue-label-gap)}
.rue-handwriting{width:var(--rue-logo-width);overflow:visible}
.rue-handwriting path{stroke-dasharray:1;stroke-dashoffset:0}
.rue-ink-finish{opacity:1}
.rue-ink-drawing{opacity:0}
.rue-ink-complete{opacity:1}
.rue-arrival-footer{position:absolute;left:var(--page-gutter);right:var(--page-gutter);bottom:calc(var(--kh-nav-height) + var(--space-10));display:flex;align-items:center;justify-content:flex-end;color:var(--muted);font:400 var(--text-small)/1.4 var(--font-body)}
.rue-arrival-footer a{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--green)}
.rue-arrival-footer a:hover{text-decoration:underline;text-underline-offset:.3em}
@media(prefers-reduced-motion:no-preference){
 .rue-writing-ready .rue-ink-drawing{opacity:1}
 .rue-writing-ready .rue-ink-complete{opacity:0}
 .rue-writing-ready .rue-handwriting path{animation:rue-write var(--stroke-time) linear var(--stroke-delay) both}
 .rue-writing-ready .rue-ink-finish{animation:rue-finish var(--writing-finish) var(--ease-out) var(--writing-end) both}
 .rue-writing-complete .rue-ink-drawing{opacity:0}
 .rue-writing-complete .rue-ink-complete{opacity:1}
 @keyframes rue-write{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
 @keyframes rue-finish{from{opacity:0}to{opacity:1}}
}
.table-story{background:var(--paper)}
.table-story.story-enhanced{pointer-events:none}
.story-enhanced .story-stage::before{background:var(--concrete)}
.story-copy h2{font-weight:400;font-size:clamp(3rem,2.2rem + 3vw,5.5rem);line-height:1.03;letter-spacing:var(--tracking-tight)}
.story-copy>p:last-child{font-size:var(--text-small);line-height:1.65;max-width:27ch}
.story-copy .kicker{color:var(--green);font-size:var(--text-detail)}
.story-enhanced .story-copy{top:calc(4rem + var(--space-6));bottom:auto}
.story-figure figcaption strong{font-family:var(--font-body);font-weight:500;font-size:clamp(1.3rem,1rem + .7vw,1.8rem);letter-spacing:-.025em}
.story-figure figcaption small{font-family:var(--font-body);font-size:var(--text-small);color:var(--charcoal)}
.story-figure figcaption span{color:var(--green)}
.image-shell.is-missing{background:transparent;border:1px solid var(--line-strong);padding:var(--space-6)}
.image-shell.is-missing::after{content:'Photo momentanément indisponible.';font:400 var(--text-small)/1.5 var(--font-body);letter-spacing:0;color:var(--muted);text-align:center}
html[lang^='en'] .image-shell.is-missing::after{content:'Photo temporarily unavailable.'}
.image-shell.is-missing figcaption{opacity:1!important;width:100%;margin:0;border:0}
.menu-section{padding-block:var(--rue-section-gap)}
.menu-heading{align-items:center;grid-template-columns:1fr 1fr;padding-bottom:var(--space-12)}
.menu-heading h2{max-width:none;font-size:var(--rue-menu-title);font-weight:400;line-height:1;letter-spacing:var(--tracking-tight)}
.menu-note{max-width:28ch;font-size:var(--text-small);line-height:1.6;margin-top:var(--space-4)}
.menu-catalog{margin-top:var(--space-10)}
.menu-category{grid-template-columns:minmax(12rem,.65fr) minmax(0,1.35fr);gap:var(--space-16);padding-block:var(--space-16)}
.category-heading h3,.specials-heading h3{font-weight:400;letter-spacing:var(--tracking-tight);margin-top:var(--space-4)}
.category-heading p,.specials-heading p{font-size:var(--text-small);max-width:27ch;line-height:1.6}
.menu-list{border-top:0}
.menu-row{gap:var(--rue-row-gap);padding-block:var(--space-4);border-bottom:0}
.menu-row h4{display:flex;max-width:none;gap:var(--rue-row-gap);align-items:baseline;font-family:var(--font-body);font-size:clamp(1.08rem,1rem + .28vw,1.3rem);font-weight:500;letter-spacing:-.018em;line-height:1.35}
.menu-row:not(.special-row) h4::after{content:'........................................................................................................................................................................................................................................................................................';display:block;flex:1;min-width:1rem;width:0;overflow:hidden;white-space:nowrap;color:var(--muted);font-weight:400;font-size:inherit;letter-spacing:.12em;line-height:inherit}
.menu-row p{font-size:var(--text-small);margin-top:var(--space-1);line-height:1.55}
.menu-price{font:500 clamp(1.08rem,1rem + .28vw,1.3rem)/1.35 var(--font-body);padding-top:0;color:var(--ink);font-variant-numeric:tabular-nums}
.menu-specials{margin:var(--space-8) 0 0;padding:var(--space-12);background:var(--concrete);color:var(--ink);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:minmax(12rem,.65fr) minmax(0,1.35fr);gap:var(--space-16)}
.specials-heading .category-index,.menu-specials .menu-price{color:var(--green)}
.specials-heading p,.special-row p{color:var(--muted)}
.specials-list{border-top:0}.special-row{border-bottom:1px solid var(--line)}.special-row:last-child{border-bottom:0}
.special-row h4{font-family:var(--font-display);font-size:clamp(1.5rem,1.3rem + .4vw,1.9rem);font-weight:400;line-height:1.18}
.philosophy{padding-block:var(--rue-section-gap);background:var(--paper)}
.philosophy-thesis{padding-left:0}.philosophy-body{padding-right:0}
.philosophy-thesis h2,.location-copy h2{font-weight:400;line-height:1.06;letter-spacing:var(--tracking-tight)}
.philosophy-thesis h2 em{font-style:italic}
.philosophy-copy{font-family:var(--font-body);font-size:var(--text-body)}
.philosophy-values{grid-template-columns:1fr 1fr;margin-top:var(--space-8);gap:var(--space-4)}
.philosophy-value{border-right:0;padding:var(--space-4) 0 0;grid-template-columns:1.75rem 1fr;grid-template-rows:auto;align-items:center;min-height:3.5rem;gap:var(--space-3)}
.philosophy-value strong{font-size:var(--text-detail);font-weight:500;letter-spacing:.04em;text-transform:none;max-width:18ch}
.value-icon{color:var(--hospitality)}
.location{padding-block:var(--rue-section-gap)}
.location-copy{padding-left:0}
.location-copy .kicker,.location-cue{color:var(--green)}
.hours-row dt,.hours-row dd{font-size:var(--text-small);font-weight:400;line-height:1.6}
.hours-card h3{font-size:var(--text-detail);font-weight:500;letter-spacing:var(--tracking-wide)}
.location-button{font-family:var(--font-body);font-size:var(--text-detail);font-weight:500;letter-spacing:.07em;border-radius:var(--radius-control)}
.location-map{background:var(--concrete)}
.franchise{background:var(--concrete);padding-block:var(--rue-section-gap)}
.franchise-copy h2{font-weight:400;line-height:1.03;font-size:clamp(3rem,2rem + 4vw,6.4rem)}
.franchise-copy>p:not(.kicker){font-size:var(--text-body);line-height:1.7}
.franchise-form{border:0;border-top:1px solid var(--line-strong);padding:var(--space-8) 0;background:transparent}
.field-group input{font-family:var(--font-body);font-size:var(--text-body)}
.submit-button{border-radius:var(--radius-control);font-family:var(--font-body);font-size:var(--text-detail);letter-spacing:.08em}
.footer{background:var(--paper);color:var(--ink);border-top:1px solid var(--line);padding-top:var(--space-16)}
.footer .brand{color:var(--green)}
.footer h4{font-family:var(--font-body);font-size:var(--text-detail);font-weight:500}
.footer-brand p,.footer li,.footer address,.footer-hours,.footer-social a,.footer-bottom{color:var(--muted);font-family:var(--font-body);font-size:var(--text-small)}
.footer-hours-label{color:var(--ink);font-weight:500}
.footer-column a:hover,.footer-social a:hover{color:var(--green)}
.footer-column a{display:inline-flex;align-items:center;min-height:2.75rem}
.footer-social a{width:2.75rem;height:2.75rem;align-items:center;justify-content:center}
.footer-bottom{border-top:1px solid var(--line);font-size:var(--text-detail);padding-bottom:var(--space-6)}
.footer-social a:focus-visible{outline-color:var(--green)}
.kh-nav{font-family:var(--font-body)}
.kh-nav__link{font-family:var(--font-body);font-weight:500;letter-spacing:.045em}
.kh-nav__directions{background:var(--hospitality)}
.kh-nav__status-dot{background:var(--hospitality)}
.kh-nav__backdrop{position:fixed;inset:0;z-index:1199;width:100%;height:100%;margin:0}
body.kh-nav-open>.kh-nav__backdrop{visibility:visible;pointer-events:auto;opacity:1;transition-delay:0s}
html:not(.js) .kh-nav__popover,html:not(.js) .kh-nav__hours{display:none!important}
@media(min-width:961px){
 .story-enhanced .story-copy{grid-template-columns:.65fr 1.25fr .65fr;align-items:start}
 .story-enhanced .story-copy h2{max-width:12ch}
}
@media(max-width:960px){
 .story-copy h2{font-size:clamp(2.4rem,5.2vw,4.5rem)}
 .menu-heading{grid-template-columns:1fr 1fr;gap:var(--space-6)}
 .menu-category,.menu-specials{grid-template-columns:minmax(10rem,.55fr) minmax(0,1.45fr);gap:var(--space-8)}
 .philosophy-thesis,.philosophy-body,.location-copy{padding:var(--space-8) 0}
 .philosophy-thesis{border-right:0}
 .philosophy-values{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 :root{--page-gutter:1.5rem;--rue-header-logo:6rem;--rue-logo-width:92vw;--rue-label-gap:3rem;--rue-menu-title:4.7rem}
 .rue-arrival-footer{bottom:calc(var(--kh-nav-height) + var(--space-10));font-size:var(--text-detail)}
 .hero-lockup{padding-inline:var(--space-3)}
 .menu-heading{grid-template-columns:1fr;gap:var(--space-6);padding-bottom:0}
 .menu-heading h2{justify-self:start;order:-1}
 .menu-note{max-width:28ch;margin-top:var(--space-2)}
 .menu-category,.menu-specials{grid-template-columns:1fr;gap:var(--space-8);padding-block:var(--space-10)}
 .category-heading{display:grid;grid-template-columns:1.6rem 1fr;column-gap:var(--space-2);align-items:baseline}
 .category-heading h3{margin:0;font-size:3rem}.category-heading p{grid-column:2;max-width:28ch;margin-top:var(--space-3)}
 .menu-specials{padding:var(--space-8) var(--space-6);margin-inline:calc(-1 * var(--space-6))}
 .special-row h4{font-size:1.55rem}
 .story-figure figcaption strong{font-size:1.45rem}
 .story-enhanced .story-copy h2{font-size:2.65rem}
 .location-copy h2{font-size:3.3rem}.location-copy{border-right:0}
 .location-map{min-height:22rem}
 .philosophy-values{gap:var(--space-3)}
 .philosophy-value strong{letter-spacing:0;font-size:.78rem}
 .franchise-layout{gap:var(--space-10)}
 .footer-grid{gap:var(--space-8)}
 .footer-bottom{flex-direction:column;gap:var(--space-3)}
 .rue-static-wordmark{width:11rem}
}
@media(prefers-reduced-motion:reduce){.rue-handwriting path{stroke-dashoffset:0!important;animation:none!important}.rue-ink-finish{opacity:1;animation:none!important}.hero-lockup{will-change:auto}.story-figure figcaption{opacity:1!important}}
@media print{.rue-handwriting path{stroke-dashoffset:0!important;animation:none!important}.rue-ink-finish{opacity:1!important}.rue-ink-drawing{opacity:0!important}.rue-ink-complete{opacity:1!important}.hero{min-height:0;padding-block:2rem}.rue-arrival-note,.rue-arrival-footer{display:none}.rue-handwriting{width:18rem}}
/* Story composition: typography, photography and captions have separate space. */
.table-story {
  --story-copy-gap: 40px;
  --story-caption-gap: 24px;
  --story-floor-clearance: 112px;
}
.table-story .story-copy h2,
.table-story.story-enhanced .story-copy h2 {
  max-width: 12ch;
  font-size: clamp(3rem, 4.2vw, 4.75rem);
  line-height: 1.04;
  letter-spacing: -.035em;
}
.table-story.story-enhanced .story-copy {
  top: clamp(4.5rem, 9vh, 6rem);
  grid-template-columns: minmax(8rem, .6fr) minmax(0, 1.4fr) minmax(10rem, .7fr);
  column-gap: clamp(2rem, 4vw, 4rem);
  align-items: start;
}
.table-story .story-copy > p:last-child { padding-top: .4rem; max-width: 23ch; }
.table-story .story-copy .kicker { padding-top: .6rem; }
.table-story .story-figure img {
  aspect-ratio: 1;
  object-fit: contain;
  /* Menu-referenced display grade. Original pixels and alpha stay untouched. */
  filter: saturate(.965) contrast(1.015) brightness(.995) drop-shadow(0 8px 14px rgba(37,38,37,.07));
}
.table-story .story-figure figcaption {
  margin-top: var(--story-caption-gap);
  column-gap: 12px;
  row-gap: 6px;
  padding-top: 16px;
}
.table-story .story-figure figcaption strong {
  font-size: 22px;
  line-height: 1.25;
}
.table-story .story-figure figcaption small { font-size: 15px; line-height: 1.5; }
.table-story .story-figure figcaption > span { font-size: 11px; line-height: 1.4; }
.table-story.story-enhanced .story-figure { aspect-ratio: 1; }
.table-story.story-enhanced .story-figure img {
  display: block;
  transform: scale(var(--figure-scale, 1)) rotate(var(--figure-rotation, 0deg));
  transform-origin: center;
}
.table-story.story-enhanced .story-figure figcaption {
  position: absolute;
  top: calc(50% + var(--figure-diameter, 300px) / 2 + var(--story-caption-gap));
  left: 50%;
  width: clamp(180px, calc(var(--figure-diameter, 300px) * .86), 280px);
  margin: 0;
  transform: translateX(-50%);
}
@media (max-width: 960px) {
  .table-story {
    --story-copy-gap: 28px;
    --story-caption-gap: 20px;
    --story-floor-clearance: 108px;
  }
  .table-story.story-enhanced .story-copy {
    top: max(4.5rem, calc(env(safe-area-inset-top, 0px) + 3.5rem));
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .table-story .story-copy h2,
  .table-story.story-enhanced .story-copy h2 { font-size: clamp(2.5rem, 7.8vw, 3.75rem); }
  .table-story .story-copy > p:last-child { font-size: 15px; padding: 0; max-width: 25ch; }
  .table-story .story-figure figcaption strong { font-size: 21px; }
  .table-story.story-enhanced .story-figure figcaption { width: min(260px, 85vw); }
  .table-story.story-enhanced .story-progress {
    bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    width: 64px;
  }
  .table-story.story-enhanced .story-release {
    bottom: calc(84px + env(safe-area-inset-bottom, 0px));
    font-size: 11px;
  }
  .table-story:not(.story-enhanced) .story-figure:nth-child(even) img,
  .table-story:not(.story-enhanced) .story-figure:nth-child(even) figcaption { order: initial; }
}
