/* ===========================================================================
   Elementor layer: structure guards, the section tones, and the widget
   vocabulary (kicker / script / title / lede / body / buttons / lists /
   frames) 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, the intrinsic width
   of anything wide inside one — the menu's scrolling tab strip, a table —
   propagates up and blows the column out past the screen on phones. */
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(--mh-gap) / 2)}
body .elementor .elementor-section.cols-gap > .elementor-container{padding-inline:calc(var(--gutter) - var(--mh-gap) / 2)}
body .elementor .cols-gap-lg > .elementor-container > .elementor-column{padding-inline:clamp(1rem, 2.6vw, 3rem)}
body .elementor .elementor-section.cols-gap-lg > .elementor-container{padding-inline:calc(var(--gutter) - clamp(1rem, 2.6vw, 3rem))}

/* 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:2.75rem}
}
@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}

body .elementor .sec-cream{background-color:var(--cream);background-image:var(--grain);color:var(--text)}
body .elementor .sec-paper{background-color:var(--paper);background-image:var(--grain);color:var(--text)}
body .elementor .sec-walnut{background-color:var(--walnut);background-image:var(--glow-gold);color:var(--on-dark)}
body .elementor .sec-ink{background-color:var(--ink);background-image:var(--glow-amber);color:var(--on-dark)}
body .elementor .sec-oxblood{background-color:var(--oxblood);background-image:radial-gradient(80% 70% at 50% 0%,rgba(138,30,35,.55),rgba(138,30,35,0) 70%);color:var(--on-dark)}

/* the room itself behind a section: the restaurant's own photograph (the
   section's Elementor background, so it can be swapped), dimmed. On a
   desktop it stays put while the content scrolls over it; on a touch screen it
   sits at the top of the section and the ink takes over below. */
body .elementor .sec-amb{position:relative;isolation:isolate;background-color:var(--ink);background-size:cover;background-position:center}
body .elementor .sec-amb::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(70% 60% at 50% 30%,rgba(12,12,13,.62),rgba(12,12,13,.86) 100%),
    linear-gradient(180deg,rgba(12,12,13,.35),rgba(12,12,13,.55));
}
body .elementor .sec-amb > .elementor-container{position:relative;z-index:1}
@media (hover:hover) and (pointer:fine){ body .elementor .sec-amb{background-attachment:fixed} }
@media (hover:none){ body .elementor .sec-amb{background-size:auto 100vh;background-position:center top;background-repeat:no-repeat} }
/* where small text sits right on the photograph, it is dimmed further */
body .elementor .sec-bl.sec-amb::before{background:rgba(12,12,13,.88)}

/* a band that runs on into a flush-top band of the same tone: no glow on
   either side of the join, or the glow's edge would draw a line across it */
body .elementor .sec-walnut:has(+ :where(.sec-walnut.sec-flush-top)),
body .elementor .sec-ink:has(+ :where(.sec-ink.sec-flush-top)),
body .elementor .sec-walnut + :where(.sec-walnut.sec-flush-top),
body .elementor .sec-ink + :where(.sec-ink.sec-flush-top){background-image:none}

/* a gilt hairline where two dark bands meet */
body .elementor .sec-walnut + .sec-ink,body .elementor .sec-ink + .sec-walnut,
body .elementor .sec-ink + .sec-oxblood,body .elementor .sec-oxblood + .sec-ink{box-shadow:inset 0 1px 0 var(--line-dark)}

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

body .elementor .elementor-widget-heading .elementor-heading-title{
  font-family:var(--font-serif);font-weight:600;line-height:var(--lh-display);letter-spacing:-.005em;
  text-transform:none;color:var(--ink);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(--text-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(--claret);font-weight:500}
body .elementor .elementor-widget-text-editor a:hover{color:var(--oxblood)}
body .elementor .elementor-widget-text-editor strong{color:var(--text);font-weight:600}

/* kicker: Cinzel caps with the gilt diamond */
body .elementor .kicker .elementor-heading-title{
  display:inline-flex;align-items:center;gap:.85rem;
  font-family:var(--font-display);font-size:var(--fs-kicker);font-weight:700;line-height:1.3;letter-spacing:.3em;text-transform:uppercase;
  color:var(--brass);
}
body .elementor .kicker .elementor-heading-title::before{content:"";width:7px;height:7px;flex:none;background:currentColor;transform:rotate(45deg)}
body .elementor .elementor-widget.kicker{margin-bottom:.9rem}
body .elementor .center.kicker .elementor-heading-title::after{content:"";width:7px;height:7px;flex:none;background:currentColor;transform:rotate(45deg)}

/* the hand-lettered line: "Welcome to", a signature */
body .elementor .script .elementor-heading-title{
  font-family:var(--font-script);font-weight:400;font-size:var(--fs-script);line-height:1;letter-spacing:0;color:var(--brass);
}
body .elementor .elementor-widget.script{margin-bottom:.2rem}

body .elementor .title .elementor-heading-title{font-size:var(--fs-h2);max-width:22ch;text-wrap:balance}
body .elementor .title .elementor-heading-title em{font-style:italic;font-weight:500;color:var(--claret)}
body .elementor .title-page .elementor-heading-title{font-size:var(--fs-h1);line-height:.98;max-width:16ch;text-wrap:balance}
body .elementor .title-sm .elementor-heading-title{font-size:var(--fs-h3);line-height:1.1}
body .elementor .elementor-widget.title{margin-bottom:1.1rem}

body .elementor .lede{font-family:var(--font-serif);font-size:var(--fs-lede);font-weight:500;font-style:italic;line-height:1.45;color:var(--text)}
body .elementor .lede p{max-width:46ch}
body .elementor .body p{max-width:min(64ch,100%)}
body .elementor .elementor-widget.lede{margin-bottom:2rem}
body .elementor .fine{font-size:.86rem;color:var(--muted)}
body .elementor .fine p{max-width:60ch}

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}

/* the logo's filigree above a centred heading (an empty heading drawn as the crest) */
body .elementor .crest .elementor-heading-title{
  display:block;width:min(200px,56%);aspect-ratio:640 / 210;margin:0 auto;font-size:0;line-height:0;color:transparent;
  background:var(--gold-lo);-webkit-mask:var(--filigree) center / contain no-repeat;mask:var(--filigree) center / contain no-repeat;
}
body .elementor .elementor-widget.crest{margin-bottom:1rem}

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

body .elementor .sec-walnut .elementor-heading-title,
body .elementor .sec-ink .elementor-heading-title,
body .elementor .sec-oxblood .elementor-heading-title,
body .elementor .hero .elementor-heading-title,
body .elementor .page-hero .elementor-heading-title{color:var(--white)}
body .elementor .sec-walnut .kicker .elementor-heading-title,
body .elementor .sec-ink .kicker .elementor-heading-title,
body .elementor .sec-oxblood .kicker .elementor-heading-title,
body .elementor .hero .kicker .elementor-heading-title,
body .elementor .page-hero .kicker .elementor-heading-title{color:var(--gold)}
body .elementor .sec-walnut .script .elementor-heading-title,
body .elementor .sec-ink .script .elementor-heading-title,
body .elementor .sec-oxblood .script .elementor-heading-title,
body .elementor .hero .script .elementor-heading-title,
body .elementor .page-hero .script .elementor-heading-title{color:var(--gold-hi)}
body .elementor .sec-walnut .title .elementor-heading-title em,
body .elementor .sec-ink .title .elementor-heading-title em,
body .elementor .sec-oxblood .title .elementor-heading-title em,
body .elementor .page-hero .elementor-heading-title em{color:var(--gold)}
body .elementor .sec-walnut .elementor-widget-text-editor,
body .elementor .sec-ink .elementor-widget-text-editor,
body .elementor .sec-oxblood .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-walnut .lede,body .elementor .sec-ink .lede,body .elementor .sec-oxblood .lede,
body .elementor .hero .lede,body .elementor .page-hero .lede{color:var(--on-dark)}
body .elementor .sec-walnut .elementor-widget-text-editor strong,
body .elementor .sec-ink .elementor-widget-text-editor strong,
body .elementor .sec-oxblood .elementor-widget-text-editor strong{color:var(--white)}
body .elementor .sec-walnut .elementor-widget-text-editor a,
body .elementor .sec-ink .elementor-widget-text-editor a,
body .elementor .sec-oxblood .elementor-widget-text-editor a,
body .elementor .page-hero .elementor-widget-text-editor a{color:var(--gold-hi)}
body .elementor .sec-walnut .fine,body .elementor .sec-ink .fine,body .elementor .sec-oxblood .fine{color:var(--on-dark-3)}
body .elementor .sec-walnut .crest .elementor-heading-title,
body .elementor .sec-ink .crest .elementor-heading-title,
body .elementor .sec-oxblood .crest .elementor-heading-title{background:var(--gold)}

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

body .elementor .elementor-widget-button .elementor-button{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  min-height:52px;padding:.85rem 1.65rem;
  border:1px solid var(--gold);border-radius:var(--r-sm);
  background:var(--gold);color:var(--ink);
  font-family:var(--font-display);font-size:.8rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;line-height:1.1;
  text-decoration:none;position:relative;overflow:hidden;isolation:isolate;
  box-shadow:0 16px 34px -18px rgba(216,192,152,.7);
  transition:transform .2s var(--ease),background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);
}
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,.55) 48%,transparent 66%);
  transform:translateX(-120%);transition:transform .75s var(--ease);
}
body .elementor .elementor-widget-button .elementor-button:hover{background:var(--gold-hi);border-color:var(--gold-hi);color:var(--ink);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:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E") 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-gold .elementor-button{background:var(--gold);border-color:var(--gold);color:var(--ink)}
body .elementor .btnw-ghost-light .elementor-button{background:transparent;border-color:rgba(216,192,152,.62);color:var(--gold-hi);box-shadow:none}
body .elementor .btnw-ghost-light .elementor-button:hover{background:rgba(216,192,152,.12);border-color:var(--gold);color:var(--white)}
body .elementor .btnw-ghost .elementor-button{background:transparent;border-color:var(--line-strong);color:var(--text);box-shadow:none}
body .elementor .btnw-ghost .elementor-button:hover{background:transparent;border-color:var(--text);color:var(--text)}
body .elementor .btnw-ink .elementor-button{background:var(--ink);border-color:var(--ink);color:var(--gold-hi);box-shadow:0 16px 34px -20px rgba(17,17,18,.8)}
body .elementor .btnw-ink .elementor-button:hover{background:var(--walnut);border-color:var(--walnut);color:var(--gold-hi)}
body .elementor .btnw-link .elementor-button{
  min-height:0;padding:.5rem 0;background:transparent;border:0;box-shadow:none;border-radius:0;
  color:var(--brass);letter-spacing:.18em;
}
body .elementor .btnw-link .elementor-button::before{content:none}
body .elementor .btnw-link .elementor-button:hover{background:transparent;color:var(--claret);transform:none}
body .elementor .hero .btnw-link .elementor-button,
body .elementor .sec-ink .btnw-link .elementor-button,
body .elementor .sec-walnut .btnw-link .elementor-button,
body .elementor .sec-oxblood .btnw-link .elementor-button{color:var(--gold)}
body .elementor .hero .btnw-link .elementor-button:hover,
body .elementor .sec-ink .btnw-link .elementor-button:hover,
body .elementor .sec-walnut .btnw-link .elementor-button:hover,
body .elementor .sec-oxblood .btnw-link .elementor-button:hover{color:var(--white)}
body .elementor .btnw-sm .elementor-button{min-height:44px;padding:.6rem 1.15rem;font-size:.72rem}

/* 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}

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

/* `ticks`: a list with gilt diamonds. The kit colours the <i> directly, so
   the marker 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:.85rem}
body .elementor .ticks .elementor-icon-list-item{display:flex;align-items:flex-start;gap:.95rem;font-size:var(--fs-body);line-height:1.5}
body .elementor .ticks .elementor-icon-list-icon{
  flex:none;width:9px;height:9px;margin-top:.55em;background:var(--gold-lo);transform:rotate(45deg);
  box-shadow:0 0 0 3px rgba(184,149,92,.18);
}
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(--text);font-family:var(--font-text)}
body .elementor .sec-walnut .ticks .elementor-icon-list-text,
body .elementor .sec-ink .ticks .elementor-icon-list-text,
body .elementor .sec-oxblood .ticks .elementor-icon-list-text,
body .elementor .page-hero .ticks .elementor-icon-list-text{color:var(--on-dark)}
body .elementor .sec-walnut .ticks .elementor-icon-list-icon,
body .elementor .sec-ink .ticks .elementor-icon-list-icon,
body .elementor .sec-oxblood .ticks .elementor-icon-list-icon{background:var(--gold)}
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:.55rem}
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:.5rem;padding:.5rem 1rem;border-radius:var(--pill);
  border:1px solid var(--line-strong);background:rgba(255,255,255,.5);
  font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text);
}
body .elementor .pills .elementor-icon-list-icon{width:6px;height:6px;flex:none;background:var(--gold-lo);transform:rotate(45deg)}
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-display)}
body .elementor .sec-walnut .pills .elementor-icon-list-item,
body .elementor .sec-ink .pills .elementor-icon-list-item,
body .elementor .sec-oxblood .pills .elementor-icon-list-item,
body .elementor .hero .pills .elementor-icon-list-item,
body .elementor .page-hero .pills .elementor-icon-list-item{background:rgba(17,17,18,.35);border-color:var(--line-dark-strong);color:var(--on-dark)}
body .elementor .sec-walnut .pills .elementor-icon-list-icon,
body .elementor .sec-ink .pills .elementor-icon-list-icon,
body .elementor .sec-oxblood .pills .elementor-icon-list-icon,
body .elementor .page-hero .pills .elementor-icon-list-icon{background:var(--gold)}

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

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

/* frame: a photograph with a gilt keyline set inside it, like a print in a mount.
   Prefixed `body .elementor` because Elementor's frontend resets
   `.elementor img{border-radius:0;box-shadow:none}` at equal weight. */
body .elementor .frame{position:relative}
body .elementor .frame img{width:100%;border-radius:var(--r-sm);box-shadow:var(--shadow-2);object-fit:cover}
body .elementor .frame::after{content:"";position:absolute;inset:12px;border:1px solid rgba(236,221,188,.55);pointer-events:none;border-radius:2px}
body .elementor .frame-tall img{aspect-ratio:4 / 5}
body .elementor .frame-wide img{aspect-ratio:3 / 2}

/* arch: a tall window-shaped photo — the arched windows of the house */
body .elementor .arch{position:relative;max-width:520px;margin-inline:auto;width:100%}
body .elementor .arch img{
  display:block;width:100%;aspect-ratio:4 / 5.4;object-fit:cover;   /* block: the widget's box IS the photo's box */
  border-radius:999px 999px var(--r-sm) var(--r-sm);
  box-shadow:var(--shadow-2);
}
/* a gilt arch traced around the photo, the same 12px out on every side. The
   999px radii resolve to half of each box's width, so the two arches share a
   centre and the line follows the photo's curve at an even distance. */
body .elementor .arch::before{
  content:"";position:absolute;inset:-12px;z-index:-1;
  border:1px solid var(--gold-lo);border-radius:999px 999px var(--r-sm) var(--r-sm);opacity:.75;
}
body .elementor .arch{isolation:isolate}
body .elementor .sec-walnut .arch::before,body .elementor .sec-ink .arch::before{border-color:var(--gold)}

/* seal: the Tasting Table medallion */
body .elementor .seal img{width:clamp(130px, 8vw + 70px, 200px);filter:drop-shadow(0 10px 26px rgba(0,0,0,.55));transform:rotate(-8deg)}

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

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