/* ===========================================================================
   Elementor layer: structure guards, the section tones, the willow edges, and
   the widget vocabulary (kicker / title / lede / body / buttons / lists /
   frames / plates) every page is written in.

   The PHP fallback templates emit Elementor-shaped markup inside `.elementor`,
   so every rule here serves the builder page and the fallback alike.

   Specificity: Elementor's kit styles headings, text and buttons at (0,3,0)
   and, inside the editor iframe, loads AFTER the theme. `body .elementor …`
   reaches (0,3,1): enough to beat the kit, not enough to beat the owner's own
   per-widget style controls at (0,4,0). No !important here — it would
   silently break those controls.

   Elementor 4 ("optimized markup") drops `.elementor-widget-container`, so no
   rule below depends on it: measures and alignment sit on the heading, the
   paragraphs and the button wrapper, which exist in both versions.
   =========================================================================== */

/* --------------------------------------------------------------- structure */

/* Sections and columns stay `relative`: the editor gives every section an
   absolutely-positioned .elementor-background-overlay, and releasing those to
   the .elementor wrapper stacks invisible sheets over the page. */
body .elementor .elementor-section{position:relative}
body .elementor .elementor-column{position:relative}
body .elementor .elementor-section.elementor-section-boxed > .elementor-container{
  max-width:var(--container);padding-inline:var(--gutter);position:relative;z-index:2;
}
body .elementor .elementor-section.elementor-section-full_width > .elementor-container{max-width:none}
body .elementor .elementor-column > .elementor-widget-wrap{padding:0;align-content:flex-start}
body .elementor .elementor-widget:not(:last-child){margin-bottom:1.25rem}
/* Widgets are flex items (min-width:auto): without this, anything wide inside
   one (the menu's chip strip, a table) blows the column out past the screen. */
body .elementor .elementor-widget,body .elementor .elementor-column{min-width:0}
/* The text-editor wrapper exists only in the editor; on the live page the
   HTML is the widget's direct child. Never put layout on the widget itself. */
body .elementor .elementor-widget-text-editor{display:block}

body .elementor .col-middle > .elementor-widget-wrap{align-content:center;height:100%}

/* gutters between side-by-side columns; the container gives back what the
   columns take, so outer edges line up with every other band */
body .elementor .cols-gap > .elementor-container > .elementor-column{padding-inline:calc(var(--bp-gap) / 2)}
body .elementor .elementor-section.cols-gap > .elementor-container{padding-inline:calc(var(--gutter) - var(--bp-gap) / 2)}
body .elementor .cols-gap-lg > .elementor-container > .elementor-column{padding-inline:clamp(1rem, 2.8vw, 3.4rem)}
body .elementor .elementor-section.cols-gap-lg > .elementor-container{padding-inline:calc(var(--gutter) - clamp(1rem, 2.8vw, 3.4rem))}

/* Elementor stacks columns at 767. Two-column story sections are cramped
   between 768 and 1024, so these stack at Elementor's tablet breakpoint too. */
@media (max-width:1024px){
  body .elementor .stack-tablet > .elementor-container{flex-wrap:wrap}
  body .elementor .stack-tablet > .elementor-container > .elementor-column{width:100%}
  body .elementor .stack-tablet > .elementor-container > .elementor-column + .elementor-column{margin-top:3rem}
}
@media (max-width:767px){
  body .elementor .elementor-section > .elementor-container > .elementor-column + .elementor-column{margin-top:2.25rem}
  body .elementor .cols-gap > .elementor-container > .elementor-column{padding-inline:0}
  body .elementor .elementor-section.cols-gap > .elementor-container{padding-inline:var(--gutter)}
  body .elementor .cols-gap-lg > .elementor-container > .elementor-column{padding-inline:0}
  body .elementor .elementor-section.cols-gap-lg > .elementor-container{padding-inline:var(--gutter)}
}

/* ------------------------------------------------------------------ tones */

body .elementor .sec{padding-block:var(--section-y)}
body .elementor .sec-tight{padding-block:var(--section-y-tight)}
body .elementor .sec-flush-top{padding-top:0}
/* a band that runs on into the next (a head and its cards, the steaks and their button): a short gap, not two bands' worth */
body .elementor .sec:has(+ .sec-flush-top){padding-bottom:var(--section-y-tight)}

body .elementor .sec-cream{background-color:var(--cream);color:var(--ink)}
body .elementor .sec-linen{background-color:var(--linen);color:var(--ink)}
/* navy: the restaurant's own willow damask on one even ground, the same
   scale in every band — navy bands that follow one another read as one */
body .elementor .sec-navy{
  background-color:var(--navy-deep);color:var(--on-dark);
  background-image:linear-gradient(rgba(12,27,62,.38),rgba(12,27,62,.38)),var(--damask);
  background-size:auto,1920px auto;background-position:center top;background-repeat:repeat;
}
/* with a mouse, the pattern holds still and the bands slide over it, so it
   runs on unbroken from one band into the next (touch screens scroll it) */
@media (hover:hover) and (pointer:fine){
  body .elementor .sec-navy{background-attachment:fixed;background-size:auto,cover}
}
/* rose: the rose's red over the same damask */
body .elementor .sec-rose{
  background-color:var(--rose-deep);color:var(--on-dark);
  background-image:linear-gradient(120deg,rgba(164,34,56,.93),rgba(110,18,38,.95) 60%,rgba(84,12,30,.97)),var(--damask);
  background-size:cover,cover;background-position:center,center;
}

/* (the bands meet on a straight edge: no leaves growing across the join) */

/* ------------------------------------------------------------- typography */

body .elementor .elementor-widget-heading .elementor-heading-title{
  font-family:var(--font-display);font-stretch:var(--stretch-display);font-weight:500;line-height:var(--lh-display);
  letter-spacing:.005em;text-transform:none;color:var(--navy);margin:0;
}
/* (0,3,1): the kit sets text-widget colour AND font family (Roboto by default) */
body .elementor .elementor-widget.elementor-widget-text-editor{
  color:var(--ink-2);font-family:var(--font-text);font-size:var(--fs-body);font-weight:400;line-height:1.75;
}
body .elementor .elementor-widget-text-editor p{text-wrap:pretty}
body .elementor .elementor-widget-text-editor p:last-child{margin-bottom:0}
body .elementor .elementor-widget-text-editor a{color:var(--rose);font-weight:600}
body .elementor .elementor-widget-text-editor a:hover{color:var(--rose-deep)}
body .elementor .elementor-widget-text-editor strong{color:var(--ink);font-weight:700}

/* kicker: small capitals behind a willow leaf */
body .elementor .kicker .elementor-heading-title{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--font-text);font-stretch:100%;font-size:var(--fs-kicker);font-weight:800;line-height:1.35;letter-spacing:.24em;text-transform:uppercase;
  color:var(--rose);
}
body .elementor .kicker .elementor-heading-title::before{
  content:"";width:28px;height:11px;flex:none;background:currentColor;
  -webkit-mask:var(--leaf-mark) center / contain no-repeat;mask:var(--leaf-mark) center / contain no-repeat;
}
body .elementor .center.kicker .elementor-heading-title::after{
  content:"";width:28px;height:11px;flex:none;background:currentColor;transform:scaleX(-1);
  -webkit-mask:var(--leaf-mark) center / contain no-repeat;mask:var(--leaf-mark) center / contain no-repeat;
}
body .elementor .elementor-widget.kicker{margin-bottom:1rem}

/* titles: tall condensed capitals, an italic word in the rose */
body .elementor .title .elementor-heading-title{font-size:var(--fs-h2);text-transform:uppercase;max-width:20ch;text-wrap:balance}
body .elementor .title .elementor-heading-title em{
  font-style:italic;font-stretch:var(--stretch-italic);font-weight:400;text-transform:none;letter-spacing:0;color:var(--rose);
}
body .elementor .title-page .elementor-heading-title{font-size:var(--fs-h1);line-height:.92;max-width:16ch}
body .elementor .title-hero .elementor-heading-title{font-size:var(--fs-hero);line-height:.88;max-width:10em;text-wrap:balance}
body .elementor .elementor-widget.title{margin-bottom:1.3rem}
body .elementor .title-sm .elementor-heading-title,
body .elementor .form-title .elementor-heading-title{font-size:var(--fs-h3);text-transform:uppercase;line-height:1}

body .elementor .lede{font-family:var(--font-display);font-stretch:var(--stretch-italic);font-size:var(--fs-lede);font-weight:400;font-style:italic;line-height:1.42;color:var(--ink)}
body .elementor .lede p{max-width:46ch;text-wrap:pretty}
body .elementor .body p{max-width:min(62ch,100%)}
body .elementor .elementor-widget.lede{margin-bottom:2rem}

body .elementor .center{text-align:center}
body .elementor .center .elementor-heading-title{margin-inline:auto}
body .elementor .center p{margin-inline:auto}
body .elementor .center .elementor-button-wrapper{text-align:center}
body .elementor .kicker.center{text-align:center}
body .elementor .kicker.center .elementor-heading-title{justify-content:center}
body .elementor .head-block .elementor-widget-wrap{justify-content:center}
body .elementor .center-block .elementor-widget-wrap{justify-content:center}

/* ------------------------------------------------------- tones: dark grounds */

body .elementor .sec-navy .elementor-heading-title,body .elementor .sec-rose .elementor-heading-title,
body .elementor .hero .elementor-heading-title,body .elementor .page-hero .elementor-heading-title{color:var(--cream)}
body .elementor .sec-navy .kicker .elementor-heading-title,body .elementor .hero .kicker .elementor-heading-title,
body .elementor .page-hero .kicker .elementor-heading-title{color:var(--brass-hi)}
body .elementor .sec-rose .kicker .elementor-heading-title{color:#FFD9C9}
body .elementor .sec-navy .title .elementor-heading-title em,body .elementor .hero .elementor-heading-title em,
body .elementor .page-hero .elementor-heading-title em{color:var(--brass-hi)}
body .elementor .sec-rose .title .elementor-heading-title em{color:#FFD9C9}
body .elementor .sec-navy .elementor-widget-text-editor,body .elementor .sec-rose .elementor-widget-text-editor,
body .elementor .hero .elementor-widget-text-editor,body .elementor .page-hero .elementor-widget-text-editor{color:var(--on-dark-2)}
body .elementor .sec-navy .lede,body .elementor .sec-rose .lede,body .elementor .hero .lede,body .elementor .page-hero .lede{color:var(--on-dark)}
body .elementor .sec-navy .elementor-widget-text-editor strong,body .elementor .sec-rose .elementor-widget-text-editor strong{color:var(--white)}
body .elementor .sec-navy .elementor-widget-text-editor a,body .elementor .sec-rose .elementor-widget-text-editor a,
body .elementor .page-hero .elementor-widget-text-editor a{color:var(--brass-hi)}
body .elementor .sec-rose .elementor-widget.elementor-widget-text-editor{color:#F6E3E3}

/* ----------------------------------------------------------------- buttons */

body .elementor .elementor-widget-button .elementor-button{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  min-height:52px;padding:.88rem 1.65rem;
  border:1px solid var(--rose);border-radius:var(--r-xs);
  background:var(--rose);color:var(--cream);
  font-family:var(--font-text);font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;line-height:1.1;
  text-decoration:none;position:relative;overflow:hidden;isolation:isolate;
  box-shadow:0 16px 32px -18px rgba(164,34,56,.85);
  transition:transform .2s var(--ease),background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease);
}
/* a sheen across on hover, like light on a polished plate */
body .elementor .elementor-widget-button .elementor-button::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.4) 48%,transparent 66%);
  transform:translateX(-120%);transition:transform .75s var(--ease);
}
body .elementor .elementor-widget-button .elementor-button:hover{transform:translateY(-2px)}
body .elementor .elementor-widget-button .elementor-button:hover::before{transform:translateX(120%)}
body .elementor .elementor-button .elementor-button-text{display:inline-flex;align-items:center;gap:.55rem}
body .elementor .btnw-arrow .elementor-button .elementor-button-text::after{
  content:"";width:1.05em;height:1.05em;flex:none;background:currentColor;
  -webkit-mask:var(--arrow-mark) center / contain no-repeat;mask:var(--arrow-mark) center / contain no-repeat;
  transition:transform .2s var(--ease);
}
body .elementor .btnw-arrow .elementor-button:hover .elementor-button-text::after{transform:translateX(3px)}

body .elementor .btnw-rose .elementor-button:hover{background:var(--rose-deep);border-color:var(--rose-deep);color:var(--white)}
body .elementor .btnw-navy .elementor-button{background:var(--navy);border-color:var(--navy);color:var(--cream);box-shadow:0 16px 32px -20px rgba(12,27,62,.9)}
body .elementor .btnw-navy .elementor-button:hover{background:var(--navy-deep);border-color:var(--navy-deep);color:var(--white)}
body .elementor .btnw-cream .elementor-button{background:var(--cream);border-color:var(--cream);color:var(--navy);box-shadow:0 16px 32px -20px rgba(0,0,0,.6)}
body .elementor .btnw-cream .elementor-button:hover{background:var(--white);border-color:var(--white);color:var(--rose)}
body .elementor .btnw-ghost .elementor-button{background:transparent;border-color:var(--line-strong);color:var(--navy);box-shadow:none}
body .elementor .btnw-ghost .elementor-button:hover{border-color:var(--navy);color:var(--navy)}
body .elementor .btnw-ghost-light .elementor-button{background:rgba(8,19,48,.18);border-color:rgba(247,239,225,.55);color:var(--cream);box-shadow:none}
body .elementor .btnw-ghost-light .elementor-button:hover{background:rgba(255,249,241,.12);border-color:var(--cream);color:var(--white)}
body .elementor .btnw-link .elementor-button{
  min-height:0;padding:.55rem 0;background:transparent;border:0;box-shadow:none;border-radius:0;color:var(--rose);
}
body .elementor .btnw-link .elementor-button::before{content:none}
body .elementor .btnw-link .elementor-button .elementor-button-text{border-bottom:1px solid currentColor;padding-bottom:.15rem}
body .elementor .btnw-link .elementor-button:hover{background:transparent;color:var(--rose-deep);transform:none}
body .elementor .sec-navy .btnw-link .elementor-button,body .elementor .sec-rose .btnw-link .elementor-button,
body .elementor .hero .btnw-link .elementor-button{color:var(--brass-hi)}
body .elementor .sec-navy .btnw-link .elementor-button:hover,body .elementor .sec-rose .btnw-link .elementor-button:hover{color:var(--white)}
body .elementor .btnw-sm .elementor-button{min-height:44px;padding:.6rem 1.15rem;font-size:.7rem}

/* side-by-side buttons: widgets meant to share a row */
body .elementor .elementor-widget.btnw{width:auto;max-width:100%;margin:0 .7rem .7rem 0}
body .elementor .elementor-widget.btnw:last-child{margin-right:0}
body .elementor .center.btnw{margin-inline:.35rem}
body .elementor .head-block .elementor-widget.btnw,body .elementor .center-block .elementor-widget.btnw{margin-inline:.35rem}

/* ------------------------------------------------------------------- lists */

/* ticks: a list with willow-leaf bullets. The kit colours the <i> directly,
   so the mark is drawn on the icon box itself and the glyph is hidden. */
body .elementor .ticks .elementor-icon-list-items{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
body .elementor .ticks .elementor-icon-list-item{display:flex;align-items:flex-start;gap:.9rem;font-size:var(--fs-body);line-height:1.5}
body .elementor .ticks .elementor-icon-list-icon{
  flex:none;width:22px;height:22px;margin-top:.05em;border-radius:50%;background:var(--navy);position:relative;
}
body .elementor .ticks .elementor-icon-list-icon::after{
  content:"";position:absolute;inset:5px;background:var(--cream);
  -webkit-mask:var(--check-mark) center / contain no-repeat;mask:var(--check-mark) center / contain no-repeat;
}
body .elementor .ticks .elementor-icon-list-icon i,
body .elementor .ticks .elementor-icon-list-icon svg{display:none}
body .elementor .ticks .elementor-icon-list-text{color:var(--ink);font-family:var(--font-text);font-weight:500}
body .elementor .sec-navy .ticks .elementor-icon-list-text,body .elementor .sec-rose .ticks .elementor-icon-list-text{color:var(--on-dark)}
body .elementor .sec-navy .ticks .elementor-icon-list-icon{background:var(--brass)}
body .elementor .sec-navy .ticks .elementor-icon-list-icon::after{background:var(--navy-deep)}
body .elementor .elementor-widget.ticks{margin-bottom:2rem}

/* pills: the same widget as a row of chips */
body .elementor .pills .elementor-icon-list-items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
body .elementor .center.pills .elementor-icon-list-items{justify-content:center}
body .elementor .pills .elementor-icon-list-item{
  display:inline-flex;align-items:center;gap:.55rem;padding:.55rem 1rem;border-radius:var(--pill);
  border:1px solid var(--line-strong);background:var(--white);
  font-family:var(--font-text);font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);
}
body .elementor .pills .elementor-icon-list-icon{width:18px;height:7px;flex:none;background:var(--rose);-webkit-mask:var(--leaf-mark) center / contain no-repeat;mask:var(--leaf-mark) center / contain no-repeat}
body .elementor .pills .elementor-icon-list-icon i,
body .elementor .pills .elementor-icon-list-icon svg{display:none}
body .elementor .pills .elementor-icon-list-text{color:inherit;font-family:var(--font-text)}
body .elementor .elementor-widget.pills{margin-bottom:2rem}

/* ------------------------------------------------------------------ images */

body .elementor .elementor-widget-image img{display:block;max-width:100%;height:auto}

/* frame-willow: a photograph inside the decor box — cream mat, the willow
   leaves round it, the black rule. Prefixed `body .elementor` because
   Elementor's frontend resets `.elementor img{border-radius:0;box-shadow:none}`
   at equal weight. */
body .elementor .frame-willow{--fw:clamp(14px, .6rem + 1vw, 26px)}
body .elementor .frame-willow img{
  width:100%;aspect-ratio:3 / 2;object-fit:cover;
  padding:var(--fw);background:var(--cream);
  box-shadow:inset 0 0 0 calc(var(--fw) - 1px) var(--cream),inset 0 0 0 var(--fw) var(--navy-ink),var(--shadow-3);
}
body .elementor .frame-willow > *,body .elementor .frame-willow{position:relative}
body .elementor .elementor-widget.frame-willow::after{
  content:"";position:absolute;inset:0;pointer-events:none;background:var(--navy);
  -webkit-mask:var(--willow-top) left top / auto var(--fw) repeat-x,var(--willow-bottom) left bottom / auto var(--fw) repeat-x,
               var(--willow-left) left top / var(--fw) auto repeat-y,var(--willow-right) right top / var(--fw) auto repeat-y;
          mask:var(--willow-top) left top / auto var(--fw) repeat-x,var(--willow-bottom) left bottom / auto var(--fw) repeat-x,
               var(--willow-left) left top / var(--fw) auto repeat-y,var(--willow-right) right top / var(--fw) auto repeat-y;
}

/* plate: a round photograph on a cream rim with a brass line — the plate in the emblem */
body .elementor .plate img{
  width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;
  box-shadow:0 0 0 clamp(7px, .5vw + 4px, 12px) var(--cream),0 0 0 calc(clamp(7px, .5vw + 4px, 12px) + 1.5px) var(--brass),var(--shadow-3);
}
body .elementor .plate-lg{max-width:460px;margin-inline:auto}

/* the building in pen and ink */
body .elementor .sketch-art img{width:100%;opacity:.9;filter:brightness(0) saturate(100%) invert(14%) sepia(42%) saturate(2300%) hue-rotate(209deg) brightness(92%) contrast(97%)}

/* --------------------------------------------------------- shortcode slots */

body .elementor .elementor-widget-shortcode{width:100%}
body .elementor .plugmatrix-form-embed{width:100%}
