/* Ellie: final layout consistency pass. Loaded last on homepage. */
.contra-home .contra-hero-brand,
.contra-home .contra-hero-brand img {
  filter:none!important;
  -webkit-filter:none!important;
  box-shadow:none!important;
  text-shadow:none!important;
}
.contra-home .instagram-heading h2,
.contra-home .instagram-heading h2 span,
.contra-home .wild-feature h2,
.contra-home .contra-visit h2,
.contra-home .contact h2 {color:var(--dark,#303a33)!important;}
.contra-home .contra-intro h1 {color:var(--klein,#002fa7)!important;}
.contra-home .contra-banner-track span {color:var(--dark,#303a33)!important;}
.contra-home .contra-banner-track i {background:var(--dark,#303a33)!important;}
/* VISIT US should lead immediately into its image. */
.contra-home .contra-info .contra-visit > h2 {
  margin:0 0 clamp(16px,2.5vw,28px)!important;
}
.contra-home .contra-info .contra-visit > figure.visit-bar-image {
  margin:0 0 clamp(28px,4vw,48px)!important;
  padding:0!important;
  width:min(940px,100%)!important;
  border:0!important;
}
.contra-home .contra-visit .contra-info-hours {margin:25px 0 25px!important;}
.contra-home .contra-visit .contra-contact-links {gap:18px!important;}
/* Feature photo and copy: one continuous sage section, no mismatched frame. */
.contra-home section.wild-feature,
.contra-home section.wild-feature .wild-feature-text,
.contra-home section.wild-feature .wild-feature-visual,
.contra-home section.wild-feature .wild-feature-frame {
  background:var(--sage,#b6c4b8)!important;
  background-image:none!important;
}
.contra-home section.wild-feature .wild-feature-frame {
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  box-shadow:none!important;
}
.contra-home section.wild-feature .wild-feature-frame::before,
.contra-home section.wild-feature .wild-feature-frame::after {display:none!important;content:none!important;}
.contra-home section.wild-feature .wild-feature-frame img {
  display:block;width:100%;height:100%;object-fit:cover;border:0!important;box-shadow:none!important;
}
/* Mobile CTAs fill the section content width, except the approved hero CTA. */
@media(max-width:850px) {
 .contra-home .contra-info .contra-visit > h2 {margin-bottom:16px!important;}
 .contra-home .contra-info .contra-visit > figure.visit-bar-image {margin:0 0 30px!important;}
 .contra-home section.wild-feature .wild-feature-text {padding-bottom:35px!important;}
 .contra-home section.wild-feature .wild-feature-visual {padding-top:0!important;padding-bottom:65px!important;}
 .contra-home a.ellie-button:not(.contra-hero-cta) {
   width:100%!important;max-width:100%!important;min-width:0!important;
   display:flex!important;justify-content:center!important;align-items:center!important;
   align-self:stretch!important;margin-left:auto!important;margin-right:auto!important;
   box-sizing:border-box!important;
 }
 .contra-home a.ellie-button:not(.contra-hero-cta) > span:first-child {
   justify-content:center!important;text-align:center!important;width:100%!important;
 }
 .contra-home .instagram-heading,.contra-home .wild-feature-text {width:100%;}
}
.contra-home .contra-hero a.ellie-button.contra-hero-cta {
 max-width:286px!important;width:min(286px,100%)!important;margin:0 auto!important;
}


/* November 11: final spacing, caption and footer color refinement.
   All changes are additive overrides so the approved structure remains intact. */
:root{
  --ellie-footer-sage:#bdcdc4;
  --ellie-caption:var(--ellie-mono,'IBM Plex Mono',ui-monospace,monospace);
  --ellie-text:#303a33;
}
/* The warm-plaster contact section has its own finish; the footer gets sage. */
body .contra-home section.contact{
  background:#f3efe5!important;
  padding-top:clamp(74px,7vw,110px)!important;
  padding-bottom:clamp(80px,8vw,120px)!important;
}
body .contra-home section.contact .section-number{
  margin-bottom:clamp(24px,3vw,42px)!important;
}
body .contra-home section.contact h2{
  margin:0 0 clamp(36px,4vw,60px)!important;
}
body .contra-home section.contact .contact-links{
  padding:clamp(19px,2.6vw,31px) 0!important;
  gap:clamp(18px,3vw,32px)!important;
}
body .contra-home section.contact .contact-links a{
  overflow-wrap:anywhere;
  font-weight:600;
  text-decoration:none;
  line-height:1.2;
}
body .contra-home section.contact > p:last-child{
  margin:clamp(25px,3vw,40px) 0 0!important;
  max-width:540px;
}
/* Distinct footer surface, consistent across both pages. */
body footer.footer,
body .contra-home + footer.footer,
body.menu-page footer.footer{
  background:var(--ellie-footer-sage)!important;
  color:var(--ellie-text)!important;
  border-top:1px solid rgba(48,58,51,.19);
  padding:clamp(45px,5vw,78px) clamp(24px,5.4vw,88px)!important;
  gap:clamp(20px,3vw,35px);
}
body footer.footer .brand{
  width:clamp(118px,12vw,166px);
  margin-bottom:clamp(8px,1.2vw,15px);
}
body footer.footer .brand img{
  filter:none!important;
  box-shadow:none!important;
}
body footer.footer span{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:clamp(11px,1.05vw,13px);
  line-height:1.65;
  letter-spacing:-.028em;
}
body footer.footer span a{
  text-decoration:underline;
  text-underline-offset:3px;
}
/* Site spacing: more consistent breathing room from one section to the next. */
.contra-home .contra-info{
  padding-bottom:clamp(75px,8vw,120px)!important;
}
.contra-home .contra-intro{
  padding-top:clamp(55px,5.8vw,88px)!important;
  padding-bottom:clamp(72px,9vw,120px)!important;
}
.contra-home .contra-intro>p{
  margin-top:clamp(27px,3.8vw,52px)!important;
}
.contra-home section.wild-feature .wild-feature-text{
  padding-top:clamp(74px,7vw,125px);
  padding-bottom:clamp(72px,7vw,122px);
}
.contra-home section.wild-feature .wild-feature-text .wild-kicker{
  margin-bottom:clamp(33px,4vw,55px)!important;
}
.contra-home section.wild-feature .wild-feature-visual{
  padding-top:clamp(40px,5vw,75px);
  padding-bottom:clamp(40px,5vw,75px);
}
.contra-home section.instagram-section{
  padding-top:clamp(75px,7vw,110px)!important;
  padding-bottom:clamp(85px,8vw,125px)!important;
}
.contra-home .instagram-topline{
  margin-bottom:clamp(34px,4vw,55px)!important;
}
.contra-home .instagram-heading{
  margin-bottom:clamp(26px,3vw,44px)!important;
}
/* Supporting text and menu microtypography: one monospaced system.
   Button font remains the already-approved DM Sans. */
.menu-page .menu-nav-label,
.menu-page .menu-category-nav a,
.menu-page .menu-category-note,
.menu-page .menu-legend,
.menu-page .menu-item p,
.menu-page .menu-item h3 small,
.menu-page .menu-item .price,
.menu-page .menu-photo-kicker{
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace!important;
  font-weight:400;
  font-variant-emoji:text;
}
.menu-page .menu-category-nav a,
.menu-page .menu-nav-label{
  font-size:12px!important;
  letter-spacing:-.035em!important;
  line-height:1.4!important;
}
.menu-page .menu-category-note,
.menu-page .menu-item p,
.menu-page .menu-legend{
  font-size:clamp(12px,1.1vw,14px)!important;
  line-height:1.6!important;
  letter-spacing:-.024em;
}
.menu-page .menu-item h3 small{
  font-size:11px!important;
  font-weight:400!important;
  margin-left:4px;
}
.menu-page .menu-item .price{
  font-size:clamp(13px,1.2vw,17px)!important;
  font-weight:500!important;
}
.menu-page .menu-category{
  padding-bottom:clamp(32px,4vw,60px)!important;
  margin-bottom:clamp(40px,4.8vw,70px)!important;
}
/* Keep directional links free from platform emoji ornaments. */
.overlay-bottom a,.contra-home .social-text-link,
.contra-home .contact-links a{
  font-variant-emoji:text;
}
@media(max-width:850px){
  body .contra-home section.contact{
    padding:75px 24px 87px!important;
  }
  body .contra-home section.contact .section-number{
    margin-bottom:28px!important;
  }
  body .contra-home section.contact h2{
    margin-bottom:36px!important;
  }
  body .contra-home section.contact .contact-links{
    padding:24px 0!important;
    gap:21px!important;
  }
  body .contra-home section.contact .contact-links a{
    font-size:clamp(22px,5.7vw,31px);
  }
  body .contra-home section.contact>p:last-child{
    margin-top:28px!important;
    font-size:13px!important;
    line-height:1.6!important;
  }
  body footer.footer,
  body .contra-home + footer.footer,
  body.menu-page footer.footer{
    padding:52px 24px 67px!important;
    align-items:flex-start;
    gap:16px;
  }
  body footer.footer .brand{
    width:132px;
    margin-bottom:20px;
  }
  body footer.footer span{
    font-size:12px;
    line-height:1.6;
  }
  .contra-home .contra-intro{
    padding:64px 0 82px!important;
  }
  .contra-home .contra-intro>p{margin-top:30px!important;}
  .contra-home section.wild-feature .wild-feature-text{
    padding-top:77px!important;
    padding-bottom:31px!important;
  }
  .contra-home section.wild-feature .wild-feature-visual{
    padding-top:0!important;
    padding-bottom:61px!important;
  }
  .contra-home section.instagram-section{
    padding:78px 24px 90px!important;
  }
  .contra-home .instagram-topline{margin-bottom:35px!important;}
  .contra-home .instagram-heading{margin-bottom:28px!important;}
  .menu-page .menu-category{padding-bottom:37px!important;margin-bottom:47px!important;}
  .menu-page .menu-category-note,.menu-page .menu-item p,.menu-page .menu-legend{font-size:12px!important;}
}


/* A consistent surface color around mobile browser safe areas. The JS theme
   observer adjusts --chrome-color to the section currently in view. */
html{background:#bdcdc4;}

/* Keep logo centered geometrically. Only the IMAGE gets the reveal motion.
   Centering and entrance animation must never compete for translateX. */
.contra-home .contra-hero .contra-hero-brand{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:47%!important;
  transform:translateY(-50%)!important;
  margin:0 auto!important;
  width:min(71.4vw,697px)!important;
  max-width:697px!important;
  display:flex;
  justify-content:center;
  align-items:center;
}
.contra-home .contra-hero .contra-hero-brand img{
  display:block;
  width:100%;
  height:auto;
  filter:none!important;
  -webkit-filter:none!important;
}
/* The original top bar floats over the hero, inheriting its photographic
   appearance. The menu's actual site header is warm plaster, not olive. */
body:not(.menu-page)>header.header.wild-header{
  background:transparent!important;
}
body.menu-page>header.header.wild-header{
  background:#f3efe5!important;
  background-color:#f3efe5!important;
}
body.menu-page .menu-category-nav,
body.menu-page .menu-layout{
  background:#f3efe5!important;
}
/* No colored seams or background slivers between the footer and its section. */
body>footer.footer{
  background-color:var(--ellie-footer-sage,#bdcdc4)!important;
}
@media(prefers-reduced-motion:no-preference){
  .js-motion .contra-home .contra-hero .contra-hero-brand img[data-reveal]{
    opacity:0;
    transform:translate3d(0,-24px,0)!important;
    transition:opacity .95s ease,transform .95s cubic-bezier(.17,.67,.28,1)!important;
  }
  .js-motion .contra-home .contra-hero .contra-hero-brand img[data-reveal].is-visible{
    opacity:1;
    transform:translate3d(0,0,0)!important;
  }
}
@media(max-width:850px){
  .contra-home .contra-hero .contra-hero-brand{
    top:43%!important;
    width:min(69.7vw,519px)!important;
  }
}
@media(max-width:440px){
  .contra-home .contra-hero .contra-hero-brand{
    top:42%!important;
    width:74vw!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .contra-home .contra-hero .contra-hero-brand img[data-reveal]{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}


/* Ellie, 11 Nov: final brand and mobile-edge settings.
   Centered hero mark reduced exactly 15% from its prior CSS widths. */
:root{
  --ellie-top-blue:#c8dee5;
  --ellie-bottom-green:#bdcdc4;
}
html{background-color:var(--ellie-bottom-green)!important;}
/* Consistent sage at the web page's bottom/overscroll; upper browser UI
   receives a blue theme-color hint in HTML, subject to browser support. */
body>footer.footer{
  background-color:var(--ellie-bottom-green)!important;
  border-bottom:0!important;
}
/* Reduce logo 15% only — no changes to the hero button. */
.contra-home .contra-hero .contra-hero-brand{
  width:min(60.69vw,592.45px)!important;
  max-width:592.45px!important;
}
@media(max-width:850px){
  .contra-home .contra-hero .contra-hero-brand{
    width:min(59.245vw,441px)!important;
    max-width:441px!important;
  }
}
@media(max-width:440px){
  .contra-home .contra-hero .contra-hero-brand{
    width:62.9vw!important;
    max-width:62.9vw!important;
  }
}
/* One email action and a hand-drawn SVG line arrow, independent of emoji fonts. */
.contra-home .contact .contact-links{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
}
.contra-home .contact .contact-email-link{
  display:inline-flex!important;
  align-items:baseline!important;
  justify-content:flex-start!important;
  gap:clamp(7px,1.3vw,15px)!important;
  max-width:100%;
  width:fit-content;
  text-decoration:none!important;
  overflow-wrap:anywhere;
  color:var(--dark,#303a33);
}
.contra-home .contact .contact-email-link span{
  min-width:0;
  overflow-wrap:anywhere;
  line-height:1.3;
}
.contra-home .contact .contact-email-arrow{
  width:clamp(19px,2.5vw,29px);
  height:clamp(19px,2.5vw,29px);
  flex:0 0 auto;
  transform:translateY(1px);
}
.contra-home .contact .contact-email-link:hover,
.contra-home .contact .contact-email-link:focus-visible{
  color:var(--klein,#002fa7);
}
@media(max-width:850px){
  .contra-home .contact .contact-email-link{font-size:clamp(19px,5.2vw,30px)!important;}
  .contra-home .contact .contact-email-arrow{width:22px;height:22px;}
}


/* Final team-review footer: eliminate excess vertical whitespace.
   Brand, address, and credit remain left-aligned and preserve the sage surface. */
body>footer.footer{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:12px!important;
  min-height:0!important;
  height:auto!important;
  padding:40px clamp(24px,5.4vw,88px) 40px!important;
  background:#bdcdc4!important;
}
body>footer.footer>a.brand{
  display:block!important;
  width:clamp(118px,12vw,152px)!important;
  flex:0 0 auto!important;
  margin:0 0 8px!important;
}
body>footer.footer>span{
  display:block;
  margin:0!important;
  font-size:12px!important;
  line-height:1.45!important;
}
@media(max-width:850px){
  body>footer.footer{
    gap:10px!important;
    padding:30px 24px max(30px,calc(env(safe-area-inset-bottom) + 12px))!important;
  }
  body>footer.footer>a.brand{
    width:120px!important;
    margin:0 0 7px!important;
  }
  body>footer.footer>span{
    font-size:12px!important;
    line-height:1.4!important;
  }
}


/* Restore the approved all-plaster lunch menu independently of the homepage.
   The experimental mobile edge bars are not used on menu.html. */
html.menu-document,
html.menu-document body.menu-page{
  background:#f3efe5!important;
  background-color:#f3efe5!important;
  --chrome-color:#f3efe5!important;
}
html.menu-document body.menu-page > header.header.wild-header,
html.menu-document body.menu-page .menu-category-nav,
html.menu-document body.menu-page .menu-layout,
html.menu-document body.menu-page .menu-content,
html.menu-document body.menu-page > footer.footer{
  background:#f3efe5!important;
  background-color:#f3efe5!important;
}

html.menu-document body.menu-page > footer.footer{
  border-top:1px solid rgba(48,58,51,.16);
}


/* Page-to-page transition
   A neutral plaster veil briefly crossfades homepage <-> menu without
   shifting layout, covering the underlying full-bleed photo changes. */
body::after {
  content:"";
  position:fixed;
  inset:0;
  z-index:5000;
  background:#f3efe5;
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease-in-out;
}
html.page-arriving body::after,
html.page-leaving body::after {
  opacity:1;
}
html.page-leaving body::after { pointer-events:auto; }

/* Final compact footer: maintain the approved colors and readable credits. */
body>footer.footer{
  gap:8px!important;
  padding:26px clamp(24px,5.4vw,88px) 28px!important;
}
body>footer.footer>a.brand{
  width:124px!important;
  margin:0 0 3px!important;
}
body>footer.footer>span {
  margin:0!important;
  font-size:11px!important;
  line-height:1.4!important;
}
@media(max-width:850px){
  body>footer.footer{
    gap:6px!important;
    padding:20px 24px max(23px,env(safe-area-inset-bottom))!important;
  }
  body>footer.footer>a.brand{
    width:108px!important;
    margin:0 0 2px!important;
  }
  body>footer.footer>span{
    font-size:11px!important;
    line-height:1.35!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body::after{transition:none!important;opacity:0!important;pointer-events:none!important;}
}


/* Approved foundation colors — one natural surface per page.
   No simulated browser chrome, fixed strips, or scroll color changes.
   Home: powder blue foundation and footer, with intentional section blocks.
   Menu: warm plaster everywhere outside the photo hero. */
html:not(.menu-document),
html:not(.menu-document) body,
html:not(.menu-document) body .contra-home,
html:not(.menu-document) body > footer.footer {
  background:#c8dee5!important;
  background-color:#c8dee5!important;
}
html:not(.menu-document) body > footer.footer {
  color:#303a33!important;
  border-top:1px solid rgba(48,58,51,.16);
}
html.menu-document,
html.menu-document body.menu-page,
html.menu-document body.menu-page > footer.footer,
html.menu-document body.menu-page > header.header.wild-header,
html.menu-document body.menu-page .menu-category-nav,
html.menu-document body.menu-page .menu-layout,
html.menu-document body.menu-page .menu-content {
  background:#f3efe5!important;
  background-color:#f3efe5!important;
}


/* Shared full-bleed navigation — identical on homepage and menu page.
   Prevent underlying ticker/menu content from showing below Safari's toolbar. */
:root { --ellie-overlay-surface:#d7dfd2; }
html body .site-overlay,
html.menu-document body.menu-page .site-overlay,
html:not(.menu-document) body .site-overlay {
  position:fixed!important;
  inset:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  width:100%!important;
  height:100dvh!important;
  min-height:100dvh!important;
  max-height:none!important;
  background:var(--ellie-overlay-surface)!important;
  background-color:var(--ellie-overlay-surface)!important;
  background-image:none!important;
  color:#303a33!important;
  border:0!important;
  border-radius:0!important;
  z-index:9999!important;
  box-sizing:border-box;
  padding:clamp(24px,5vw,58px)!important;
  padding-top:max(28px,env(safe-area-inset-top))!important;
  padding-bottom:max(28px,env(safe-area-inset-bottom))!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
html body .site-overlay[hidden] {display:none!important;}
/* Reduce the upper-left overlay logo by 20%, not the homepage hero mark. */
html body .site-overlay .overlay-logo{
  display:block;
  width:clamp(96px,11.2vw,144px)!important;
  max-width:144px!important;
  flex:0 0 auto;
}
html body .site-overlay .overlay-logo img{
  display:block;
  width:100%;
  height:auto;
  filter:none!important;
}
html:has(body.overlay-open),
html:has(body.overlay-open) body{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
html.menu-document:has(body.overlay-open),
html.menu-document body.menu-page.overlay-open,
html:not(.menu-document):has(body.overlay-open),
html:not(.menu-document) body.overlay-open{
  background:var(--ellie-overlay-surface)!important;
  background-color:var(--ellie-overlay-surface)!important;
}
@media(max-width:850px){
  html body .site-overlay{
    padding:28px 25px!important;
    padding-top:max(28px,env(safe-area-inset-top))!important;
    padding-bottom:max(28px,env(safe-area-inset-bottom))!important;
  }
}


/* Ellie inquiry form — closed by default; native details keeps it keyboard
   accessible and functional even without JavaScript. */
.contra-home .contact .ellie-inquiry{
  display:block;
  width:100%;
  margin:clamp(29px,4vw,48px) 0 0;
  color:#303a33;
}
.contra-home .contact .ellie-inquiry-toggle{
  display:flex;
  width:min(286px,100%);
  min-height:54px;
  padding:15px 20px;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  border:1px solid currentColor;
  border-radius:0;
  background:transparent;
  color:inherit;
  list-style:none;
  cursor:pointer;
  user-select:none;
  text-align:center;
  font:600 11px/1.2 'DM Sans',Arial,sans-serif;
  letter-spacing:.11em;
  text-transform:uppercase;
  transition:background-color .2s ease;
}
.contra-home .contact .ellie-inquiry-toggle::-webkit-details-marker{
  display:none;
}
.contra-home .contact .ellie-inquiry-toggle::marker{content:"";}
.contra-home .contact .ellie-inquiry-toggle:hover,
.contra-home .contact .ellie-inquiry[open] > .ellie-inquiry-toggle{
  background:rgba(48,58,51,.06);
}
.contra-home .contact .ellie-inquiry-toggle:focus-visible,
.contra-home .contact .ellie-form-field input:focus-visible,
.contra-home .contact .ellie-form-field select:focus-visible,
.contra-home .contact .ellie-form-field textarea:focus-visible,
.contra-home .contact .ellie-form-submit:focus-visible{
  outline:2px solid #536e58;
  outline-offset:3px;
}
.contra-home .contact .ellie-inquiry-inner{
  width:min(660px,100%);
  padding:clamp(30px,4vw,52px) 0 0;
}
.contra-home .contact .ellie-inquiry-form{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(20px,2.5vw,28px);
  margin:0;
}
.contra-home .contact .ellie-form-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(16px,2vw,24px);
}
.contra-home .contact .ellie-form-field{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:9px;
}
.contra-home .contact .ellie-form-field label{
  font:500 12px/1.4 'IBM Plex Mono',ui-monospace,monospace;
  letter-spacing:-.03em;
  color:#303a33;
}
.contra-home .contact .ellie-form-field label span{
  color:#536e58;
}
.contra-home .contact .ellie-form-field input,
.contra-home .contact .ellie-form-field select,
.contra-home .contact .ellie-form-field textarea{
  display:block;
  width:100%;
  min-height:48px;
  border:1px solid rgba(48,58,51,.62);
  border-radius:0;
  padding:13px 14px;
  background:transparent;
  background-color:transparent;
  box-shadow:none;
  color:#303a33;
  font:400 14px/1.5 'IBM Plex Mono',ui-monospace,monospace;
  box-sizing:border-box;
  appearance:none;
  -webkit-appearance:none;
}
.contra-home .contact .ellie-form-field select{
  padding-right:36px;
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 7 6 6 6-6' fill='none' stroke='%23303a33' stroke-width='1.3'/%3E%3C/svg%3E");
  background-position:right 13px center;
  background-repeat:no-repeat;
  background-size:17px;
}
.contra-home .contact .ellie-form-field select option{
  color:#303a33;
  background:#f3efe5;
}
.contra-home .contact .ellie-form-field textarea{
  min-height:140px;
  resize:vertical;
}
.contra-home .contact .ellie-form-submit{
  display:flex;
  width:min(286px,100%);
  min-height:54px;
  padding:15px 20px;
  align-items:center;
  justify-content:center;
  border:1px solid #303a33;
  border-radius:0;
  background:#303a33;
  color:#f3efe5;
  font:600 11px/1.2 'DM Sans',Arial,sans-serif;
  letter-spacing:.11em;
  text-transform:uppercase;
  text-align:center;
  box-sizing:border-box;
  cursor:pointer;
  transition:background-color .2s ease,color .2s ease;
}
.contra-home .contact .ellie-form-submit:hover{
  background:transparent;
  color:#303a33;
}
.contra-home .contact .ellie-inquiry-note{
  max-width:540px;
  margin:0!important;
  color:#59665a;
  font:400 11px/1.55 'IBM Plex Mono',ui-monospace,monospace;
  letter-spacing:-.025em;
}
.contra-home .contact .ellie-form-honey{
  position:absolute!important;
  left:-9999px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
@media(max-width:850px){
  .contra-home .contact .ellie-inquiry{
    margin-top:30px;
  }
  .contra-home .contact .ellie-inquiry-toggle,
  .contra-home .contact .ellie-form-submit{
    width:100%;
    max-width:100%;
    min-height:52px;
  }
  .contra-home .contact .ellie-inquiry-inner{
    padding-top:31px;
  }
  .contra-home .contact .ellie-form-row{
    grid-template-columns:1fr;
    gap:20px;
  }
  .contra-home .contact .ellie-inquiry-form{
    gap:22px;
  }
}
@media(prefers-reduced-motion:reduce){
  .contra-home .contact .ellie-inquiry-toggle,
  .contra-home .contact .ellie-form-submit{
    transition:none;
  }
}


/* The contact introduction stays in the approved mono style even though a
   collapsible form now follows it (so it is no longer the last child). */
body .contra-home section.contact > p:not(.section-number){
  display:block;
  max-width:540px;
  margin:clamp(24px,3vw,40px) 0 0!important;
  color:#303a33;
  font:400 clamp(12px,1.2vw,15px)/1.65 'IBM Plex Mono',ui-monospace,monospace!important;
  letter-spacing:-.025em;
}
@media(max-width:850px){
  body .contra-home section.contact > p:not(.section-number){
    margin:27px 0 0!important;
    font-size:13px!important;
  }
}


/* Gentle inquiry-button response; the accordion height and content fade are
   animated in main.js, with a native no-motion fallback. */
.contra-home .contact .ellie-inquiry-toggle{
  transition:background-color .32s ease, border-color .32s ease, color .32s ease!important;
  -webkit-tap-highlight-color:transparent;
}
.contra-home .contact .ellie-inquiry-inner{
  transform-origin:top center;
}
@media(prefers-reduced-motion:reduce){
  .contra-home .contact .ellie-inquiry-toggle,
  .contra-home .contact .ellie-inquiry-inner{
    transition:none!important;
    animation:none!important;
  }
}
