/* ===========================================================================
   Chrome: the top bar, the header and its menu, the drawer, the phone call
   bar, the footer.

   The header and footer are ONE design in two renders: the theme prints the
   Elementor-shaped markup generated from src/pages.py (tb_header / tb_footer),
   and with Elementor Pro the same trees are Theme Builder templates the owner
   edits. Both sit inside `.site-header` / `.site-footer`, which the theme
   always prints, so every rule below serves both.
   =========================================================================== */

:root{--topbar-h:40px}

/* -------------------------------------------------------- the header shell */

/* Sticky with the top bar's height above the fold: the bar scrolls away, the
   header stays. (Fixed would need a spacer; sticky keeps the flow honest.) */
.bp .site-header{
  position:sticky;z-index:200;
  top:calc(var(--wp-admin--admin-bar--height, 0px) - var(--topbar-h));
}
@media (max-width:600px){ .bp.admin-bar .site-header{top:calc(0px - var(--topbar-h))} }
@media (max-width:767px){
  :root{--topbar-h:0px}
  .bp .site-header{top:var(--wp-admin--admin-bar--height, 0px)}
}
@media (max-width:600px){ .bp.admin-bar .site-header{top:0} }

/* ---------------------------------------------------------------- top bar */

body .elementor .bp-el-topbar{
  height:var(--topbar-h);overflow:hidden;background:var(--navy-deep);color:var(--on-dark-2);
  background-image:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.04) 50%,rgba(255,255,255,0));
}
body .elementor .bp-el-topbar > .elementor-container{max-width:min(1480px,100%);padding-inline:var(--gutter);height:100%}
body .elementor .bp-el-topbar .elementor-widget-wrap{height:100%;align-content:center}
@media (max-width:767px){ body .elementor .bp-el-topbar{display:none} }

.bp .topbar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-width:0;
  font-size:.8rem;letter-spacing:.03em;white-space:nowrap}
.bp .topbar a{color:var(--on-dark-2);text-decoration:none}
.bp .topbar a:hover{color:var(--white)}
.bp .topbar-l,.bp .topbar-r{display:flex;align-items:center;gap:1.4rem;min-width:0}
.bp .topbar-c{flex:1;min-width:0;display:flex;justify-content:center;align-items:baseline;gap:.5em;overflow:hidden}
.bp .topbar-c a.topbar-link{flex:none;color:var(--brass-hi);font-weight:700}
.bp .topbar-announce{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--on-dark)}
.bp .topbar .ico{width:14px;height:14px;color:var(--brass);margin-right:.45rem;vertical-align:-2px}
.bp .topbar-tel{font-weight:700}
.bp .topbar-social{display:inline-flex;gap:.9rem}
.bp .topbar-social a{display:inline-grid;place-items:center}
.bp .topbar-social .ico{margin:0;width:15px;height:15px;color:var(--on-dark-2)}
.bp .topbar-social a:hover .ico{color:var(--white)}
@media (max-width:1280px){ .bp .topbar-addr{display:none} }
@media (max-width:1024px){ .bp .topbar-c{display:none} }

/* open / closed — the dot used in the top bar, the tonight bar, the hours */
.bp .open-status{display:inline-flex;align-items:center;gap:.55rem;font-weight:600}
.bp .open-status .dot{width:8px;height:8px;border-radius:50%;background:var(--on-dark-3);flex:none}
.bp .open-status.is-open .dot{background:var(--leaf-hi);box-shadow:0 0 0 3px rgba(72,179,138,.22),0 0 12px rgba(72,179,138,.6)}
.bp .open-status.is-closed .dot{background:#D5707F}
.bp .open-status-t{min-width:0}

/* ------------------------------------------------------------- main header */

body .elementor .bp-el-header{
  background:rgba(255,249,241,.97);
  box-shadow:0 1px 0 var(--line);
  transition:box-shadow .3s var(--ease),background-color .3s var(--ease);
}
/* the willow trim along the header's foot: a thin line of the decor box */
body .elementor .bp-el-header::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;pointer-events:none;
  background:linear-gradient(90deg,var(--navy) 0 33%,var(--rose) 33% 34%,var(--navy) 34% 66%,var(--rose) 66% 67%,var(--navy) 67%);
  opacity:.9;
}
.bp .site-header.is-scrolled .bp-el-header{
  background:rgba(255,249,241,.93);
  -webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px);
  box-shadow:0 1px 0 var(--line),0 18px 40px -28px rgba(12,27,62,.55);
}
body .elementor .bp-el-header > .elementor-container{
  max-width:min(1480px,100%);padding-inline:var(--gutter);min-height:var(--header-h);
  align-items:center;flex-wrap:nowrap;transition:min-height .3s var(--ease);
}
.bp .site-header.is-scrolled .bp-el-header > .elementor-container{min-height:70px}
body .elementor .bp-el-header .elementor-widget-wrap{align-items:center;align-content:center;flex-wrap:nowrap;gap:.9rem}
body .elementor .bp-el-header .elementor-widget:not(:last-child){margin-bottom:0}
body .elementor .bp-el-header .elementor-widget{width:auto}
/* The three columns size themselves: the logo and the actions to their
   content, the menu takes the rest. Deliberate — the header must never stack
   the way Elementor stacks columns on phones. */
body .elementor .bp-el-header .elementor-column{width:auto}
body .elementor .elementor-section.bp-el-header > .elementor-container > .elementor-column + .elementor-column{margin-top:0}
body .elementor .bp-el-header .elementor-column:first-child{flex:0 0 auto}
body .elementor .bp-el-header .bp-el-nav{flex:1 1 auto}
body .elementor .bp-el-header .bp-el-act{flex:0 0 auto}
body .elementor .bp-el-nav > .elementor-widget-wrap{justify-content:center}
body .elementor .bp-el-act > .elementor-widget-wrap{justify-content:flex-end}

body .elementor .bp-el-logo img{display:block;width:clamp(170px, 9vw + 90px, 250px);height:auto;transition:width .3s var(--ease)}
.bp .site-header.is-scrolled .bp-el-logo img{width:clamp(160px, 7vw + 80px, 210px)}
body .elementor .bp-el-logo a{display:block}
@media (max-width:1024px){
  body .elementor .bp-el-nav{display:none}
  body .elementor .bp-el-header .elementor-column:first-child{flex:1 1 auto}
}
@media (max-width:600px){
  body .elementor .bp-el-logo img,.bp .site-header.is-scrolled .bp-el-logo img{width:158px}
  body .elementor .bp-el-header .bp-el-cta{display:none}
  :root{--header-h:68px}
}

/* ------------------------------------------------------------------- nav */

.bp .mainnav{display:flex;justify-content:center}
.bp .mainnav-list,.bp .mainnav > ul{display:flex;align-items:center;gap:.1rem;list-style:none;margin:0;padding:0}
.bp .mainnav li{position:relative;list-style:none}
.bp .mainnav-link,.bp .mainnav > ul > li > a{
  display:inline-flex;align-items:center;gap:.4rem;padding:.7rem .85rem;
  font-family:var(--font-text);font-size:.76rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--navy);text-decoration:none;white-space:nowrap;position:relative;
}
/* a willow leaf grows under the item you're on, and the one you point at */
.bp .mainnav-link::after{
  content:"";position:absolute;left:50%;bottom:.15rem;width:26px;height:10px;margin-left:-13px;
  background:var(--rose);-webkit-mask:var(--leaf-mark) center / contain no-repeat;mask:var(--leaf-mark) center / contain no-repeat;
  transform:scale(0);transition:transform .3s var(--ease-out);
}
.bp .mainnav-link:hover,.bp .mainnav li:focus-within > .mainnav-link{color:var(--rose)}
.bp .mainnav-link:hover::after,.bp .mainnav .is-current > .mainnav-link::after{transform:scale(1)}
.bp .mainnav .is-current > .mainnav-link{color:var(--rose)}
.bp .mainnav-link .ico{width:9px;height:9px;opacity:.75;transition:transform .25s var(--ease)}
.bp .mainnav .has-sub:hover > .mainnav-link .ico,.bp .mainnav .has-sub.is-open > .mainnav-link .ico{transform:rotate(180deg)}

.bp .mainnav-sub{
  position:absolute;left:50%;top:calc(100% + 8px);min-width:220px;z-index:5;
  margin:0;padding:.6rem;list-style:none;
  background:var(--cream);border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:0 28px 60px -24px rgba(12,27,62,.5);
  opacity:0;visibility:hidden;transform:translate(-50%,8px);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s linear .22s;
}
.bp .mainnav-sub::after{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.bp .mainnav .has-sub.is-open > .mainnav-sub,
.bp .mainnav .has-sub:focus-within > .mainnav-sub{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
@media (hover:hover){
  .bp .mainnav .has-sub:hover > .mainnav-sub{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
}
.bp .mainnav-sub a{display:block;padding:.6rem .8rem;border-radius:var(--r-xs);color:var(--navy);text-decoration:none;font-weight:600;white-space:nowrap}
.bp .mainnav-sub a:hover,.bp .mainnav-sub .is-current a{background:var(--linen);color:var(--rose)}

/* --------------------------------------------------- the header's actions */

body .elementor .bp-el-cta .elementor-button{min-height:44px}
.bp .cart-btn{
  position:relative;display:none;place-items:center;width:44px;height:44px;border-radius:50%;
  color:var(--navy);text-decoration:none;border:1px solid var(--line-strong);background:var(--white);
}
.bp .cart-btn.has-items{display:grid}
.bp .cart-btn .ico{width:20px;height:20px}
.bp .cart-btn:hover{border-color:var(--navy)}
.bp .cart-count{
  position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;
  background:var(--rose);color:var(--white);font-size:.68rem;font-weight:800;line-height:20px;text-align:center;
}

.bp .burger{
  display:none;position:relative;width:46px;height:46px;border-radius:50%;
  border:1px solid var(--line-strong);background:var(--white);flex:none;
}
.bp .burger span,.bp .burger span::before,.bp .burger span::after{
  position:absolute;left:50%;width:20px;height:2px;margin-left:-10px;border-radius:2px;background:var(--navy);content:"";
  transition:transform .3s var(--ease),opacity .2s var(--ease);
}
.bp .burger span{top:50%;margin-top:-1px}
.bp .burger span::before{top:-6px;left:0;margin:0}
.bp .burger span::after{top:6px;left:0;margin:0}
.bp .burger:hover{border-color:var(--navy)}
@media (max-width:1024px){ .bp .burger{display:block} }

/* ------------------------------------------------------------------ drawer */

.bp .drawer{position:fixed;inset:0;z-index:400;visibility:hidden;pointer-events:none}
.bp .drawer.is-open,.bp .drawer:target{visibility:visible;pointer-events:auto}
.bp .drawer-shade{position:absolute;inset:0;border:0;padding:0;background:rgba(8,19,48,.55);opacity:0;transition:opacity .35s var(--ease);cursor:pointer}
.bp .drawer.is-open .drawer-shade,.bp .drawer:target .drawer-shade{opacity:1}
.bp .drawer-panel{
  position:absolute;top:0;right:0;bottom:0;width:min(420px,92vw);overflow-y:auto;overscroll-behavior:contain;
  display:flex;flex-direction:column;gap:1.4rem;padding:1.2rem 1.4rem calc(1.6rem + env(safe-area-inset-bottom));
  background:var(--navy-deep) var(--damask) center / cover;color:var(--on-dark);
  box-shadow:-30px 0 60px -30px rgba(0,0,0,.6);
  transform:translateX(102%);transition:transform .45s var(--ease-out);
}
.bp .drawer.is-open .drawer-panel,.bp .drawer:target .drawer-panel{transform:none}
.bp .drawer-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line-dark)}
.bp .drawer-brand img{display:block;width:180px;height:auto}
.bp .drawer-close{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-dark-strong);color:var(--on-dark)}
.bp .drawer-close .ico{width:20px;height:20px}
.bp .drawer-note{margin:0;padding:.85rem 1rem;border-radius:var(--r-sm);background:rgba(164,34,56,.35);border:1px solid rgba(255,255,255,.12);font-size:.92rem}
.bp .drawer-note a{color:var(--brass-hi);font-weight:700}
.bp .drawer-nav ul{list-style:none;margin:0;padding:0}
.bp .drawer-nav > ul > li{border-bottom:1px solid var(--line-dark)}
.bp .drawer-nav a{
  display:block;padding:.8rem 0;color:var(--on-dark);text-decoration:none;
  font-family:var(--font-display);font-stretch:var(--stretch-display);font-size:2.05rem;font-weight:500;line-height:1.05;text-transform:uppercase;letter-spacing:.01em;
}
.bp .drawer-nav li li a{font-family:var(--font-text);font-stretch:100%;font-size:1rem;font-weight:600;text-transform:none;padding:.35rem 0 .35rem 1rem;color:var(--on-dark-2)}
.bp .drawer-nav .is-current > a{color:var(--brass-hi)}
.bp .drawer-nav a:hover{color:var(--brass-hi)}
.bp .drawer-cta{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.bp .drawer-cta .btn{padding-inline:.8rem;font-size:.7rem}
.bp .drawer-foot{display:grid;gap:.8rem;font-size:.95rem;color:var(--on-dark-2)}
.bp .drawer-foot p{display:flex;gap:.7rem;margin:0;align-items:flex-start}
.bp .drawer-foot .ico{width:18px;height:18px;margin-top:.2rem;color:var(--brass)}
.bp .drawer-foot a{color:var(--on-dark);text-decoration:none}
.bp .drawer-foot small{color:var(--on-dark-3)}
.bp .drawer-sketch{
  margin-top:auto;height:120px;opacity:.22;background:var(--on-dark);
  -webkit-mask:var(--sketch) center bottom / contain no-repeat;mask:var(--sketch) center bottom / contain no-repeat;
}
body.drawer-open{overflow:hidden}

/* ---------------------------------------------------------------- call bar */

.bp .callbar{
  position:fixed;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:150;
  display:none;grid-template-columns:1fr 1fr 1.4fr;gap:.45rem;padding:.45rem;
  background:rgba(12,27,62,.94);border:1px solid var(--line-dark);border-radius:14px;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 20px 40px -18px rgba(0,0,0,.6);
  transform:translateY(140%);transition:transform .4s var(--ease-out);
}
.bp .callbar .btn{min-height:46px;padding:.5rem .6rem;font-size:.66rem;letter-spacing:.1em;border-radius:10px}
.bp .callbar.is-on{transform:none}
@media (max-width:767px){
  .bp .callbar{display:grid}
}

/* ------------------------------------------------------- page head (plain) */

/* The shop, cart, checkout, account, 404 and search: a navy head, then the
   page on cream. */
.bp .page-head{
  position:relative;isolation:isolate;padding:clamp(3.2rem, 2rem + 5vw, 6rem) 0 clamp(3.6rem, 2.4rem + 5vw, 6.4rem);
  background:var(--navy-deep) var(--damask) center / cover;color:var(--on-dark);text-align:center;
}
.bp .page-head::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 90% at 50% 0%,rgba(29,54,114,.55),rgba(12,27,62,.85))}
.bp .page-head .kick{margin:0 0 .9rem;font-size:var(--fs-kicker);font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-hi)}
.bp .page-head h1,.bp .page-head .page-head-title{margin:0 auto;max-width:18ch;font-size:var(--fs-h1);font-weight:500;text-transform:uppercase;color:var(--cream)}
.bp .page-head-lede{max-width:52ch;margin:1.2rem auto 0;font-family:var(--font-display);font-stretch:var(--stretch-italic);font-style:italic;font-size:var(--fs-lede);color:var(--on-dark)}
.bp .page-head-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin:2rem 0 0}

/* ------------------------------------------------------------------ footer */

.bp .site-footer{position:relative;background:var(--navy-deep)}

/* the invitation: the decor box on cream, before the navy */
body .elementor .bp-el-invite{
  padding-block:var(--section-y-tight);background:var(--linen);
}
body .elementor .bp-el-invite > .elementor-container{max-width:min(980px,100%)}
body .elementor .bp-el-invite .invite-copy > .elementor-widget-wrap{
  position:relative;isolation:isolate;justify-content:center;
  padding:clamp(2rem, 1.4rem + 2.2vw, 3.2rem) clamp(1.3rem, .8rem + 3vw, 3.6rem);
  background:var(--cream);box-shadow:var(--shadow-2);
}
body .elementor .bp-el-invite .invite-copy > .elementor-widget-wrap::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--navy);
  -webkit-mask:var(--willow-top) left top / auto var(--frame) repeat-x,var(--willow-bottom) left bottom / auto var(--frame) repeat-x,
               var(--willow-left) left top / var(--frame) auto repeat-y,var(--willow-right) right top / var(--frame) auto repeat-y;
          mask:var(--willow-top) left top / auto var(--frame) repeat-x,var(--willow-bottom) left bottom / auto var(--frame) repeat-x,
               var(--willow-left) left top / var(--frame) auto repeat-y,var(--willow-right) right top / var(--frame) auto repeat-y;
}
body .elementor .bp-el-invite .invite-copy > .elementor-widget-wrap::after{
  content:"";position:absolute;inset:calc(var(--frame) + 4px);z-index:-1;pointer-events:none;border:1.5px solid var(--navy-ink);
}
body .elementor .bp-el-invite .elementor-widget.btnw{margin-inline:.35rem}
body .elementor .invite-emblem img{width:clamp(64px, 3vw + 44px, 96px);margin-inline:auto}
body .elementor .bp-el-invite .title .elementor-heading-title{font-size:clamp(2rem, 1.4rem + 2vw, 3.2rem)}
body .elementor .bp-el-invite .lede{margin-bottom:1.2rem}

/* the badge on its plate, the building drawn behind it */
/* The badge on its plate with the building drawn in pen and ink behind it,
   then the columns — Visit, Hours, Explore. The band and the columns share one
   plain navy ground (the drawing is the texture): no seam between them. */
body .elementor .bp-el-footer-top,body .elementor .bp-el-footer{background:var(--navy-deep)}
body .elementor .bp-el-footer-top{
  position:relative;isolation:isolate;padding:clamp(4.4rem, 3.4rem + 4vw, 7rem) 0 2.8rem;text-align:center;color:var(--on-dark-2);
}
/* a soft light behind the badge, gone well before the band's edges */
body .elementor .bp-el-footer-top::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(40% 48% at 50% 36%,rgba(29,54,114,.6),rgba(29,54,114,0));
}
body .elementor .bp-el-footer-top > .elementor-container{position:relative}
body .elementor .bp-el-footer-top > .elementor-container::before{
  content:"";position:absolute;left:50%;top:-1.6rem;width:min(1100px,96vw);aspect-ratio:2000 / 914;transform:translateX(-50%);z-index:-1;
  background:var(--on-dark);opacity:.13;pointer-events:none;
  -webkit-mask:var(--sketch) center top / contain no-repeat;mask:var(--sketch) center top / contain no-repeat;
}
body .elementor .bp-el-footer-top .elementor-widget-wrap{justify-content:center}
/* on a phone the badge and the words would cover the drawing: it gets its own
   room under the social links instead, drawn a little stronger */
@media (max-width:767px){
  body .elementor .bp-el-footer-top{--sketch-h:calc(96vw * .457);padding-bottom:calc(var(--sketch-h) + 2.6rem)}
  body .elementor .bp-el-footer-top > .elementor-container::before{top:calc(100% + 1.4rem);width:96vw;opacity:.26}
}
/* The badge on a round cream plate. The plate is the link around the image:
   an image's own rounding trims its picture to a circle inside its padding,
   which cut "RESTAURANTS" off the badge's foot. At 70% of the plate the
   badge's corners sit just inside the disc. */
body .elementor .bp-el-badge a{
  --badge:clamp(176px, 10vw + 110px, 256px);
  display:inline-grid;place-items:center;width:var(--badge);aspect-ratio:1;border-radius:50%;vertical-align:top;
  background:radial-gradient(circle at 50% 42%,#FFFDF8 0 58%,#F1E6D1 70%,#E7D8BC 100%);
  box-shadow:0 0 0 2px var(--brass),0 0 0 9px rgba(255,249,241,.06),0 0 0 10px rgba(196,160,98,.35),0 30px 60px -20px rgba(0,0,0,.6);
}
body .elementor .bp-el-badge a img{width:70%;height:auto;max-width:none;border-radius:0}
/* without a link: the badge on a rounded cream card instead */
body .elementor .bp-el-badge .elementor-widget-container > img{
  width:clamp(150px, 8vw + 100px, 210px);height:auto;padding:22px;border-radius:16px;background:#FFFDF8;
  box-shadow:0 0 0 2px var(--brass),0 30px 60px -20px rgba(0,0,0,.6);
}
body .elementor .bp-el-blurb{max-width:46ch;margin:1.6rem auto 0}
body .elementor .bp-el-blurb p{font-family:var(--font-display);font-stretch:var(--stretch-italic);font-style:italic;font-size:1.22rem;line-height:1.45;color:var(--on-dark);text-align:center}
.bp .social{display:inline-flex;gap:.7rem}
.bp .social-foot{margin-top:1.3rem}
.bp .social-foot a{
  display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line-dark-strong);color:var(--on-dark);transition:all .2s var(--ease);
}
.bp .social-foot a:hover{background:var(--cream);color:var(--navy);border-color:var(--cream)}
.bp .social-foot .ico{width:18px;height:18px}

body .elementor .bp-el-footer{color:var(--on-dark-2);padding:2.6rem 0 3.6rem}
body .elementor .bp-el-footer > .elementor-container{border-top:1px solid var(--line-dark);padding-top:3rem}
body .elementor .bp-el-fcol > .elementor-widget-wrap{align-content:flex-start}
/* the gutter between columns: on the column's right (its width includes it) */
body .elementor .bp-el-footer .bp-el-fcol:not(:last-child){padding-right:clamp(1.4rem, 1rem + 1.6vw, 2.8rem)}
/* the column heads: the display face with a short gilt rule under each */
body .elementor .bp-el-footer .foot-k{margin-bottom:1.3rem}
body .elementor .bp-el-footer .foot-k .elementor-heading-title{
  font-family:var(--font-display);font-stretch:var(--stretch-display);font-size:1.7rem;font-weight:500;line-height:1;letter-spacing:.03em;text-transform:uppercase;color:var(--cream);
}
body .elementor .bp-el-footer .foot-k .elementor-heading-title::after{content:"";display:block;width:30px;height:2px;margin-top:.75rem;background:var(--brass)}
/* (0,4,1): over the text widget's own colour for paper (30-elementor, loaded later) */
body .elementor .bp-el-footer .elementor-widget.elementor-widget-text-editor{color:var(--on-dark-2);font-size:.98rem;line-height:1.65}
body .elementor .bp-el-footer .elementor-widget-text-editor p{margin:0 0 .9rem}
body .elementor .bp-el-footer .elementor-widget-text-editor a{color:var(--on-dark);text-decoration:none;overflow-wrap:anywhere}
body .elementor .bp-el-footer .elementor-widget-text-editor a:hover{color:var(--brass-hi)}
/* "Call", "Email": a small gilt label over each */
body .elementor .bp-el-footer .elementor-widget-text-editor strong{display:block;margin-top:.5rem;color:var(--brass-hi);font-weight:700;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase}
body .elementor .bp-el-footer .link-arrow{color:var(--brass-hi)}
body .elementor .bp-el-links .elementor-icon-list-items{display:grid;grid-template-columns:1fr 1fr;gap:.1rem 1rem}
body .elementor .bp-el-links .elementor-icon-list-item a{display:flex;gap:.6rem;align-items:center;padding:.3rem 0;color:var(--on-dark);text-decoration:none;font-weight:600}
body .elementor .bp-el-links .elementor-icon-list-item a:hover{color:var(--brass-hi)}
body .elementor .bp-el-links .elementor-icon-list-icon{width:16px;height:7px;flex:none;background:var(--brass);-webkit-mask:var(--leaf-mark) center / contain no-repeat;mask:var(--leaf-mark) center / contain no-repeat}
body .elementor .bp-el-links .elementor-icon-list-icon i,body .elementor .bp-el-links .elementor-icon-list-icon svg{display:none}
body .elementor .bp-el-links .elementor-icon-list-text{color:inherit}

/* the footer's certificate: a small ivy card */
.bp .foot-cert{
  display:flex;align-items:center;gap:.9rem;margin-top:1.4rem;padding:.8rem 1rem;border-radius:var(--r-sm);
  border:1px solid var(--line-dark-strong);background:rgba(255,249,241,.04);color:var(--on-dark);text-decoration:none;
  transition:background-color .2s var(--ease),border-color .2s var(--ease);
}
.bp .foot-cert:hover{background:rgba(255,249,241,.08);border-color:var(--brass)}
.bp .foot-cert-art{flex:none;width:76px;aspect-ratio:1500 / 800;border-radius:2px;background:#fff url("../img/cert-sm.webp") center / cover no-repeat;box-shadow:0 6px 14px -6px rgba(0,0,0,.6)}
.bp .foot-cert-t{display:grid;gap:.1rem;line-height:1.3}
.bp .foot-cert-t strong{font-size:.95rem}
.bp .foot-cert-t small{color:var(--on-dark-3)}
.bp .foot-cert > .ico{margin-left:auto;width:18px;height:18px;color:var(--brass-hi)}

/* hours, the footer's compact version: on navy, over .hours-card's colours
   for paper (40-components) — hence .hours-card.hours-footer */
.bp .hours-card.hours-footer .hours-status{margin:0 0 .9rem}
/* the open-now line, plain on navy (no pill) */
.bp .hours-card.hours-footer .hours-status .open-status{padding:0;border:0;background:none;font-size:.92rem;line-height:1.45;color:var(--on-dark)}
.bp .hours-card.hours-footer .hours{width:100%;max-width:360px;border-collapse:collapse;font-size:.95rem}
.bp .hours-card.hours-footer .hours th,.bp .hours-card.hours-footer .hours td{padding:.6rem 0;border-bottom:1px solid var(--line-dark);vertical-align:top}
.bp .hours-card.hours-footer .hours tr:last-child th,.bp .hours-card.hours-footer .hours tr:last-child td{border-bottom:0}
.bp .hours-card.hours-footer .hours th{width:auto;padding-right:1.2rem;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1.9;color:var(--brass-hi);white-space:nowrap}
.bp .hours-card.hours-footer .hours td{color:var(--on-dark)}
.bp .hours-card.hours-footer .hours td span{display:block}
.bp .hours-card.hours-footer .hours tr.is-today th,.bp .hours-card.hours-footer .hours tr.is-today td{color:var(--white)}
.bp .hours-card.hours-footer .hours tr.is-today th::before{background:var(--brass-hi)}
.bp .hours-card.hours-footer .hours-note{margin:.7rem 0 0;font-size:.85rem;color:var(--on-dark-3)}


body .elementor .bp-el-footer-bottom{background:var(--navy-ink);color:var(--on-dark-3);padding:1.1rem 0;font-size:.85rem}
body .elementor .bp-el-footer-bottom .elementor-widget.elementor-widget-text-editor{color:var(--on-dark-3);font-size:.85rem}
body .elementor .bp-el-footer-bottom .elementor-widget-text-editor p{margin:0}
body .elementor .bp-el-footer-bottom .elementor-widget-wrap{align-content:center}
body .elementor .bp-el-credit > .elementor-widget-wrap{justify-content:flex-end}
.bp .foot-legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem 1.4rem}
.bp .foot-legal a{color:var(--on-dark-2);text-decoration:none}
.bp .foot-legal a:hover{color:var(--white)}
/* the agency's credit: a rose heart that beats, a gilt light that runs across the name */
.bp .ssq-credit{display:inline-flex;align-items:center;gap:.35em;color:var(--on-dark-2);text-decoration:none;transition:color .2s var(--ease)}
.bp .ssq-credit:hover{color:var(--white)}
.bp .ssq-heart{display:inline-grid;width:1.05em;height:1.05em;color:#E8566C;transform-origin:50% 60%;animation:bp-beat 1.8s ease-in-out infinite}
.bp .ssq-heart svg{width:100%;height:100%;fill:currentColor;filter:drop-shadow(0 0 5px rgba(232,86,108,.5))}
.bp .ssq-name{
  font-weight:700;color:var(--brass-hi);
  background:linear-gradient(100deg,var(--on-dark) 0 38%,var(--brass-hi) 46%,#FFF3D6 50%,var(--brass-hi) 54%,var(--on-dark) 62% 100%) 0 0 / 260% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:bp-shine 5s linear infinite;
}
.bp .ssq-credit:hover .ssq-heart{animation-duration:.9s}
@keyframes bp-beat{0%,52%,100%{transform:scale(1)}10%{transform:scale(1.24)}20%{transform:scale(1)}30%{transform:scale(1.16)}40%{transform:scale(1)}}
@keyframes bp-shine{from{background-position:100% 0}to{background-position:-160% 0}}
@media (prefers-reduced-motion:reduce){
  .bp .ssq-heart,.bp .ssq-name{animation:none}
  .bp .ssq-name{background:none;-webkit-text-fill-color:currentColor}
}

@media (max-width:1024px){
  body .elementor .bp-el-footer > .elementor-container{flex-wrap:wrap}
  body .elementor .bp-el-footer .bp-el-fcol{width:50%}
  body .elementor .bp-el-footer .bp-el-fcol:nth-child(2){padding-right:0}
  body .elementor .bp-el-footer .bp-el-fcol:last-child{width:100%;margin-top:2.6rem}
}
@media (max-width:767px){
  body .elementor .bp-el-footer .bp-el-fcol{width:100%;padding-right:0}
  body .elementor .bp-el-footer .bp-el-fcol:nth-child(n+2){margin-top:2.4rem}
  body .elementor .bp-el-fcol > .elementor-widget-wrap{padding-inline:0}
  body .elementor .bp-el-credit > .elementor-widget-wrap{justify-content:flex-start}
  .bp .foot-legal{justify-content:flex-start}
  body .elementor .bp-el-footer-bottom .elementor-column + .elementor-column{margin-top:.6rem}
  /* the room the fixed call bar needs at the foot of the page is the footer bar's own (the page
     ends in navy) — after its own padding above, or that one wins and the bar hides the credit */
  body .elementor .bp-el-footer-bottom{padding-bottom:calc(1.1rem + 5.8rem + env(safe-area-inset-bottom))}
}
