/* ============================================================
   NOM Catering Co. - Core Design System
   Self-hosted. Referenced by every page's Divi Code Module.
   Fonts resolve relative to this file: /wp-content/uploads/nom/
   ============================================================ */

/* ---------- Fonts (self-hosted, latin subset) ---------- */
@font-face{
  font-family:'Baskervville';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/baskervville-regular.woff2) format('woff2');
}
@font-face{
  font-family:'Baskervville';font-style:italic;font-weight:400;font-display:swap;
  src:url(fonts/baskervville-italic.woff2) format('woff2');
}
@font-face{
  font-family:'Jost';font-style:normal;font-weight:300 600;font-display:swap;
  src:url(fonts/jost-variable.woff2) format('woff2');
}
@font-face{
  font-family:'Sacramento';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/sacramento-regular.woff2) format('woff2');
}

/* ---------- Design tokens ---------- */
:root{
  /* palette */
  --nom-cream:#F7F4EF;
  --nom-cream-2:#EFE9DF;      /* alternate section bg */
  --nom-white:#FFFFFF;
  --nom-olive:#565A3D;        /* deep sage band */
  --nom-olive-2:#474A31;
  --nom-gold:#8C7A4E;         /* primary accent / buttons */
  --nom-gold-2:#6F6039;       /* button hover */
  --nom-tan:#C7A877;          /* light accent */
  --nom-ink:#3B342B;          /* headings */
  --nom-body:#5C5347;         /* body text (warm) */
  --nom-muted:#8B8378;
  --nom-line:rgba(59,52,43,.14);
  --nom-line-soft:rgba(59,52,43,.08);

  /* type */
  --font-display:'Baskervville',Georgia,'Times New Roman',serif;
  --font-sans:'Jost','Century Gothic',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-script:'Sacramento','Segoe Script',cursive;

  /* fluid type scale */
  --fs-hero:clamp(2.7rem,1.6rem + 4.3vw,4.6rem);
  --fs-h1:clamp(2.1rem,1.4rem + 2.9vw,3.4rem);
  --fs-h2:clamp(1.75rem,1.3rem + 1.9vw,2.6rem);
  --fs-h3:clamp(1.25rem,1.05rem + .8vw,1.6rem);
  --fs-lead:clamp(1.05rem,1rem + .35vw,1.25rem);
  --fs-body:1.05rem;
  --fs-eyebrow:.78rem;
  --fs-small:.9rem;

  /* rhythm */
  --space-section:clamp(4rem,3rem + 5vw,7.5rem);
  --container:1200px;
  --container-narrow:820px;
  --radius:14px;
  --radius-sm:8px;
  --shadow-sm:0 4px 18px rgba(59,52,43,.08);
  --shadow-md:0 14px 40px rgba(59,52,43,.14);
  --shadow-lg:0 26px 60px rgba(59,52,43,.18);
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --header-h:76px;
}

/* ---------- Reset / base (scoped, WP-safe) ---------- */
.nom{
  font-family:var(--font-sans);
  color:var(--nom-body);
  font-size:var(--fs-body);
  line-height:1.75;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.nom *,.nom *::before,.nom *::after{box-sizing:border-box;}
.nom img{max-width:100%;height:auto;display:block;}
.nom h1,.nom h2,.nom h3,.nom h4{
  font-family:var(--font-display);
  color:var(--nom-ink);
  font-weight:400;
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:.005em;
}
.nom h1{font-size:var(--fs-h1);}
.nom h2{font-size:var(--fs-h2);}
.nom h3{font-size:var(--fs-h3);line-height:1.2;}
.nom p{margin:0 0 1.15em;}
.nom a{color:inherit;text-decoration:none;}
.nom strong{font-weight:500;color:var(--nom-ink);}
.nom blockquote{margin:0;padding:0;border:0!important;}

/* ---------- Layout helpers ---------- */
.nom-container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(20px,5vw,48px);}
.nom-narrow{max-width:var(--container-narrow);}
.nom-section{padding-block:var(--space-section);position:relative;}
.nom-section--cream{background:var(--nom-cream);}
.nom-section--cream2{background:var(--nom-cream-2);}
.nom-section--white{background:var(--nom-white);}
.nom-center{text-align:center;}

/* ---------- Eyebrow / kickers ---------- */
.nom-eyebrow{
  font-family:var(--font-sans);
  font-size:var(--fs-eyebrow);
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--nom-gold);
  display:inline-flex;align-items:center;gap:.9em;
  margin:0 0 1.1rem;
}
.nom-eyebrow::before,.nom-eyebrow--flanked::after{
  content:"";width:34px;height:1px;background:currentColor;opacity:.55;
}
.nom-eyebrow--center{justify-content:center;}
.nom-eyebrow--center.nom-eyebrow--flanked::after,
.nom-eyebrow--center::before{display:inline-block;}

.nom-script{
  font-family:var(--font-script);
  font-weight:400;
  color:var(--nom-gold);
  line-height:1;
  font-size:clamp(1.9rem,1.4rem + 1.6vw,2.9rem);
}

/* section heading block */
.nom-head{max-width:640px;}
.nom-head--center{margin-inline:auto;text-align:center;}
.nom-head .nom-lead{font-size:var(--fs-lead);color:var(--nom-muted);}

/* thin ornamental rule with center flame dot */
.nom-rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto;}
.nom-rule::before,.nom-rule::after{content:"";height:1px;width:60px;background:var(--nom-line);}
.nom-rule span{width:6px;height:6px;border-radius:50%;background:var(--nom-tan);transform:rotate(45deg);}

/* ---------- Buttons ---------- */
.nom-btn{
  --btn-bg:var(--nom-gold);--btn-fg:#fff;--btn-bg-h:var(--nom-gold-2);
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--font-sans);font-weight:500;font-size:.82rem;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--btn-fg)!important;background:var(--btn-bg);
  padding:16px 34px;border:1px solid var(--btn-bg);border-radius:3px;cursor:pointer;
  transition:background .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease),color .35s var(--ease);
  position:relative;overflow:hidden;
}
.nom-btn:hover{background:var(--btn-bg-h);border-color:var(--btn-bg-h);transform:translateY(-2px);box-shadow:0 12px 26px rgba(59,52,43,.2);}
.nom-btn:active{transform:translateY(0);}
.nom-btn--outline{--btn-bg:transparent;--btn-fg:var(--nom-ink);border-color:var(--nom-ink);}
.nom-btn--outline:hover{--btn-fg:#fff;background:var(--nom-ink);border-color:var(--nom-ink);}
.nom-btn--light{--btn-bg:transparent;--btn-fg:#fff;border-color:rgba(255,255,255,.65);}
.nom-btn--light:hover{background:#fff;--btn-fg:var(--nom-ink);border-color:#fff;}
.nom-btn--solid-light{--btn-bg:#fff;--btn-fg:var(--nom-ink);--btn-bg-h:#f0ece3;border-color:#fff;}

/* text link with arrow */
.nom-link{
  display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-sans);
  font-weight:500;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--nom-gold)!important;
}
.nom-link svg{transition:transform .35s var(--ease);}
.nom-link:hover svg{transform:translateX(5px);}

/* ---------- Reveal animation base (rest state visible if JS/GSAP absent) ---------- */
.nom [data-reveal]{opacity:1;}
.nom.nom-anim-ready [data-reveal]{opacity:0;will-change:transform,opacity;}
@media (prefers-reduced-motion:reduce){
  .nom.nom-anim-ready [data-reveal]{opacity:1!important;transform:none!important;}
}

/* ---------- Checklist ---------- */
.nom-check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem;}
.nom-check li{display:flex;align-items:flex-start;gap:.7em;font-family:var(--font-sans);font-size:.98rem;color:var(--nom-body);}
.nom-check li::before{
  content:"";flex:0 0 auto;width:20px;height:20px;margin-top:1px;border-radius:50%;
  background:rgba(140,122,78,.14);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238C7A4E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;
}
.nom-check--light li{color:#e9e6da;}
.nom-check--light li::before{background:rgba(255,255,255,.16);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;}

/* ---------- Split (text + media) ---------- */
.nom-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center;}
.nom-split--media-left .nom-split__media{order:-1;}
.nom-split__media{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);}
.nom-split__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.4;}
/* portrait variant: taller frame + top-anchored so faces/foreheads aren't cropped */
.nom-split--portrait .nom-split__media img{aspect-ratio:4/5;object-position:center top;}
@media (max-width:820px){.nom-split{grid-template-columns:1fr;gap:36px;}
  .nom-split--media-left .nom-split__media{order:0;}}

/* ---------- Cards (2-up experience) ---------- */
.nom-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(22px,3vw,36px);}
.nom-card{
  background:var(--nom-white);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-sm);display:flex;flex-direction:column;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.nom-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.nom-card__media{overflow:hidden;aspect-ratio:16/10;}
.nom-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.nom-card:hover .nom-card__media img{transform:scale(1.06);}
.nom-card__body{padding:clamp(26px,3vw,38px);display:flex;flex-direction:column;gap:16px;flex:1;}
.nom-card__body h3{margin:0;}
.nom-card__body .nom-check{margin:2px 0 6px;}
.nom-card__body .nom-btn{margin-top:auto;align-self:flex-start;}

/* ---------- Image tiles (featured moments / galleries) ---------- */
.nom-tiles{display:grid;gap:clamp(16px,2vw,24px);}
.nom-tiles--3{grid-template-columns:repeat(3,1fr);}
.nom-tiles--4{grid-template-columns:repeat(4,1fr);}
.nom-tile{
  position:relative;display:block;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:3/3.4;box-shadow:var(--shadow-sm);
}
.nom-tile img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.nom-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(30,26,18,.72),rgba(30,26,18,.05) 55%,transparent);transition:opacity .5s var(--ease);}
.nom-tile__label{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px 24px;color:#fff;
  font-family:var(--font-display);font-size:1.35rem;transition:transform .5s var(--ease);
}
.nom-tile__label small{display:block;font-family:var(--font-sans);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--nom-tan);margin-bottom:6px;}
.nom-tile:hover img{transform:scale(1.07);}
.nom-tile[href]:hover .nom-tile__label{transform:translateY(-4px);}
@media (max-width:820px){.nom-tiles--4{grid-template-columns:repeat(2,1fr);}
  .nom-tiles--3{grid-template-columns:1fr;}}

/* ---------- Feature row (icon + label + text) ---------- */
.nom-features{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);}
.nom-feature{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;}
.nom-feature__icon{width:52px;height:52px;color:var(--nom-gold);display:flex;align-items:center;justify-content:center;}
.nom-feature__icon svg{width:38px;height:38px;stroke-width:1.3;}
.nom-feature h4{font-family:var(--font-sans);font-weight:500;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--nom-ink);margin:0;}
.nom-feature p{font-size:.92rem;color:var(--nom-muted);margin:0;max-width:22ch;}
.nom-features--auto{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
@media (max-width:820px){.nom-features{grid-template-columns:repeat(2,1fr);gap:30px;}}
@media (max-width:420px){.nom-features{grid-template-columns:1fr;}}

/* ---------- Quote band ---------- */
.nom-quote{background:var(--nom-olive);color:#f3f1e8;text-align:center;position:relative;overflow:hidden;}
.nom-quote__inner{max-width:900px;margin-inline:auto;position:relative;z-index:2;}
.nom-quote__mark{font-family:var(--font-display);font-size:5rem;line-height:.6;color:var(--nom-tan);opacity:.5;display:block;margin-bottom:.1em;}
.nom-quote blockquote{font-family:var(--font-display);font-size:clamp(1.4rem,1rem + 1.6vw,2.15rem);line-height:1.4;margin:0 0 1.2rem;font-style:italic;}
.nom-quote cite{font-style:normal;font-family:var(--font-sans);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--nom-tan);}

/* ---------- CTA band ---------- */
.nom-cta{text-align:center;}
.nom-cta .nom-btn{margin-top:1.6rem;}

/* ---------- Page hero (landing + interior pages) ---------- */
.nom-pagehero{position:relative;display:flex;align-items:center;overflow:hidden;
  min-height:clamp(420px,68vh,680px);}
.nom-pagehero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.nom-pagehero__scrim{position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(100deg,rgba(22,19,13,.88) 0%,rgba(22,19,13,.62) 46%,rgba(22,19,13,.38) 100%),
    linear-gradient(to top,rgba(22,19,13,.4) 0%,rgba(22,19,13,0) 42%);}
.nom-pagehero__inner{position:relative;z-index:2;max-width:720px;padding-block:clamp(2.6rem,7vh,5rem);}
.nom-pagehero .nom-pagehero__title{color:#fff;font-size:var(--fs-hero);line-height:1.06;margin:0 0 1.1rem;max-width:16ch;text-shadow:0 2px 30px rgba(0,0,0,.4);}
.nom-pagehero__lead{color:rgba(255,255,255,.92);font-size:var(--fs-lead);max-width:52ch;margin:0 0 2rem;text-shadow:0 1px 18px rgba(0,0,0,.35);}
.nom-pagehero__actions{display:flex;gap:16px;flex-wrap:wrap;}
.nom-pagehero .nom-eyebrow{color:var(--nom-tan);}
@media (max-width:600px){.nom-pagehero__actions .nom-btn{width:100%;}}

/* ---------- Olive CTA band ---------- */
.nom-ctaband{background:var(--nom-olive);color:#f3f1e8;text-align:center;}
.nom-ctaband h2{color:#fff;}
.nom-ctaband p{color:#d9d6c9;font-size:var(--fs-lead);max-width:56ch;margin-inline:auto;}
.nom-ctaband .nom-eyebrow{color:var(--nom-tan);}
.nom-ctaband .nom-btn{margin-top:1.5rem;}

/* ---------- Video facade (YouTube, click-to-load) ---------- */
.nom-video{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-md);background:#1c1811;cursor:pointer;border:0;padding:0;display:block;}
.nom-video__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .5s var(--ease);}
.nom-video::after{content:"";position:absolute;inset:0;background:rgba(28,24,17,.28);transition:background .4s var(--ease);}
.nom-video:hover .nom-video__poster{transform:scale(1.04);}
.nom-video:hover::after{background:rgba(28,24,17,.12);}
.nom-video__btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;
  width:78px;height:78px;border-radius:50%;background:rgba(255,255,255,.92);
  display:flex;align-items:center;justify-content:center;transition:transform .4s var(--ease),background .4s var(--ease);}
.nom-video__btn svg{width:26px;height:26px;margin-left:4px;fill:var(--nom-gold);}
.nom-video:hover .nom-video__btn{transform:translate(-50%,-50%) scale(1.08);background:#fff;}
.nom-video__frame{position:absolute;inset:0;width:100%;height:100%;border:0;}
.nom-video.is-playing{cursor:default;}
.nom-video.is-playing::after,.nom-video.is-playing .nom-video__btn{display:none;}

/* ---------- Menu sections (buffet / delivery / receptions) ---------- */
.nom-menu{scroll-margin-top:96px;}
.nom-menu + .nom-menu{margin-top:clamp(3rem,5vw,5rem);}
.nom-menu__media{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);}
.nom-menu__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.2;}
.nom-menu__head{margin-bottom:1.2rem;}
.nom-menu__price{font-family:var(--font-sans);font-weight:500;font-size:.85rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--nom-gold);display:inline-block;margin-bottom:.7rem;}
.nom-menu__desc{color:var(--nom-muted);}
.nom-menu__note{font-size:.85rem;color:var(--nom-muted);font-style:italic;margin-top:1.3rem;
  padding-top:1rem;border-top:1px solid var(--nom-line-soft);}

/* menu item columns + lists */
.nom-menu-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:24px 40px;}
.nom-menu-group h4{font-family:var(--font-sans);font-weight:500;font-size:.76rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--nom-gold);margin:0 0 1rem;padding-bottom:.6rem;
  border-bottom:1px solid var(--nom-line-soft);}
.nom-dishlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.05rem;}
.nom-dish__head{display:flex;justify-content:space-between;gap:14px;align-items:baseline;}
.nom-dish__name{font-family:var(--font-display);font-size:1.12rem;color:var(--nom-ink);line-height:1.25;}
.nom-dish__price{font-family:var(--font-sans);font-weight:500;font-size:.95rem;color:var(--nom-gold);white-space:nowrap;}
.nom-dish__desc{font-size:.92rem;color:var(--nom-muted);margin-top:4px;line-height:1.55;}
.nom-dish__meta{font-size:.8rem;color:var(--nom-muted);font-style:italic;margin-top:4px;}
/* simple two-column plain list (buffet proteins/sides) */
.nom-itemlist{list-style:none;margin:0;padding:0;columns:2;column-gap:40px;}
.nom-itemlist li{break-inside:avoid;padding:9px 0 9px 20px;position:relative;color:var(--nom-body);font-size:1rem;}
.nom-itemlist li::before{content:"";position:absolute;left:0;top:16px;width:7px;height:7px;border-radius:50%;
  background:var(--nom-tan);transform:rotate(45deg);}
@media (max-width:520px){.nom-itemlist{columns:1;}}

/* anchor pill nav */
.nom-anchornav{border-block:1px solid var(--nom-line-soft);background:var(--nom-cream);}
.nom-anchornav__inner{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:18px 0;}
.nom-anchornav a{white-space:nowrap;font-family:var(--font-sans);font-weight:500;font-size:.74rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--nom-body);padding:9px 18px;border-radius:999px;
  border:1px solid var(--nom-line);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);}
.nom-anchornav a:hover{background:var(--nom-gold);color:#fff!important;border-color:var(--nom-gold);}

/* ---------- Gallery (uniform grid + lightbox) ---------- */
.nom-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.nom-gallery__item{display:block;width:100%;border:0;padding:0;margin:0;background:none;cursor:zoom-in;
  border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm);aspect-ratio:4/5;}
.nom-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .7s var(--ease),filter .4s var(--ease);}
.nom-gallery__item:hover img{transform:scale(1.05);filter:brightness(1.03);}
@media (max-width:520px){.nom-gallery{grid-template-columns:repeat(2,1fr);gap:12px;}}

.nom-lightbox{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;
  background:rgba(24,20,14,.92);opacity:0;visibility:hidden;transition:opacity .35s var(--ease);padding:5vh 4vw;}
.nom-lightbox.is-open{opacity:1;visibility:visible;}
.nom-lightbox img{max-width:100%;max-height:90vh;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.5);}
.nom-lightbox__btn{position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;cursor:pointer;
  width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  transition:background .3s var(--ease);}
.nom-lightbox__btn:hover{background:rgba(255,255,255,.24);}
.nom-lightbox__btn svg{width:24px;height:24px;}
.nom-lightbox__close{top:24px;right:24px;}
.nom-lightbox__prev{left:2vw;top:50%;transform:translateY(-50%);}
.nom-lightbox__next{right:2vw;top:50%;transform:translateY(-50%);}
@media (max-width:600px){.nom-lightbox__prev{left:8px;}.nom-lightbox__next{right:8px;}
  .nom-lightbox__btn{width:44px;height:44px;}}

/* ---------- Contact (stacked: info row, then form on its own row) ---------- */
.nom-contact-intro{max-width:760px;margin-inline:auto;text-align:center;}
.nom-contact-intro .nom-lead{color:var(--nom-muted);}
.nom-contact-list{list-style:none;margin:2rem 0 0;padding:0;
  display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem clamp(1.5rem,4vw,3rem);}
.nom-contact-list li{display:flex;gap:.7em;align-items:flex-start;text-align:left;}
.nom-contact-list svg{flex:0 0 auto;margin-top:3px;color:var(--nom-gold);}
.nom-contact-list a,.nom-contact-list span{color:var(--nom-body);font-size:1rem;}
.nom-contact-list li:nth-child(3){flex-basis:100%;justify-content:center;}
.nom-contact-list li:nth-child(3) span span{max-width:34ch;}
.nom-contact-list .lbl{display:block;font-family:var(--font-sans);font-size:.68rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--nom-muted);margin-bottom:2px;}
.nom-contact__socials{display:flex;gap:12px;margin-top:1.8rem;justify-content:center;}
.nom-contact__socials a{width:44px;height:44px;border:1px solid var(--nom-line);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--nom-ink);transition:all .3s var(--ease);}
.nom-contact__socials a:hover{background:var(--nom-gold);border-color:var(--nom-gold);color:#fff;transform:translateY(-3px);}
.nom-contact__form{background:var(--nom-white);border-radius:var(--radius);
  padding:clamp(24px,3.5vw,44px);box-shadow:var(--shadow-sm);max-width:760px;margin-inline:auto;}

/* ---------- Full-bleed image band ---------- */
.nom-imgband{width:100%;height:clamp(240px,32vw,420px);overflow:hidden;}
.nom-imgband img{width:100%;height:100%;object-fit:cover;}

/* ============================================================
   HEADER
   ============================================================ */
.nom-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(247,244,239,.82);
  backdrop-filter:saturate(140%) blur(12px);
  -webkit-backdrop-filter:saturate(140%) blur(12px);
  border-bottom:1px solid var(--nom-line-soft);
  transition:box-shadow .4s var(--ease),background .4s var(--ease),padding .4s var(--ease);
}
.nom-header.is-stuck{box-shadow:0 6px 24px rgba(59,52,43,.08);background:rgba(247,244,239,.94);}
.nom-header__bar{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  height:var(--header-h);transition:height .4s var(--ease);
}
.nom-header.is-stuck .nom-header__bar{height:64px;}
.nom-header__logo{display:flex;align-items:center;flex:0 0 auto;}
.nom-header__logo img{height:52px;width:auto;transition:height .4s var(--ease);}
.nom-header.is-stuck .nom-header__logo img{height:44px;}
.nom-nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px);}
.nom-nav a{
  font-family:var(--font-sans);font-weight:400;font-size:.82rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--nom-ink);
  position:relative;padding:6px 0;transition:color .3s var(--ease);white-space:nowrap;
}
.nom-nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--nom-gold);transform:scaleX(0);transform-origin:right;
  transition:transform .38s var(--ease);
}
.nom-nav a:hover{color:var(--nom-gold);}
.nom-nav a:hover::after,.nom-nav a.is-active::after{transform:scaleX(1);transform-origin:left;}
.nom-header__cta{display:flex;align-items:center;gap:14px;}
.nom-header__cta .nom-btn{padding:12px 26px;font-size:.76rem;}
.nom-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:0;cursor:pointer;padding:10px;}
.nom-burger span{display:block;height:2px;width:100%;background:var(--nom-ink);border-radius:2px;transition:transform .35s var(--ease),opacity .3s var(--ease);}
.nom-drawer{position:fixed;inset:0;z-index:100000;visibility:hidden;pointer-events:none;}
.nom-drawer__scrim{position:absolute;inset:0;background:rgba(30,26,20,.45);opacity:0;transition:opacity .4s var(--ease);}
.nom-drawer__panel{
  position:absolute;top:0;right:0;height:100%;width:min(86vw,380px);
  background:var(--nom-cream);box-shadow:-20px 0 60px rgba(0,0,0,.2);
  transform:translateX(100%);transition:transform .45s var(--ease-out);
  display:flex;flex-direction:column;padding:calc(var(--header-h) + 20px) 34px 40px;gap:6px;overflow-y:auto;
}
.nom-drawer__panel a{
  font-family:var(--font-sans);font-size:1rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--nom-ink);padding:16px 0;border-bottom:1px solid var(--nom-line-soft);
}
.nom-drawer__close{
  position:absolute;top:20px;right:24px;width:44px;height:44px;border:0;background:none;
  color:var(--nom-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;
  border-radius:50%;transition:background .3s var(--ease),transform .3s var(--ease);
}
.nom-drawer__close:hover{background:rgba(59,52,43,.07);transform:rotate(90deg);}
.nom-drawer__panel .nom-btn{margin-top:22px;}
.nom-drawer.is-open{visibility:visible;pointer-events:auto;}
.nom-drawer.is-open .nom-drawer__scrim{opacity:1;}
.nom-drawer.is-open .nom-drawer__panel{transform:translateX(0);}
body.nom-drawer-open{overflow:hidden;}
.nom-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nom-burger.is-open span:nth-child(2){opacity:0;}
.nom-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:960px){
  .nom-nav,.nom-header__cta .nom-btn{display:none;}
  .nom-burger{display:flex;}
}

/* ============================================================
   FOOTER
   ============================================================ */
.nom-footer{background:var(--nom-olive);color:#e9e6da;font-family:var(--font-sans);}
.nom-footer a{color:#e9e6da;transition:color .3s var(--ease);}
.nom-footer a:hover{color:#fff;}
.nom-footer__top{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:clamp(28px,4vw,56px);
  padding-block:clamp(3.2rem,2.4rem + 3vw,5rem);
}
.nom-footer__brand img{height:104px;width:auto;margin-bottom:18px;opacity:.95;}
.nom-footer__brand p{color:#cfccbe;font-size:.95rem;max-width:32ch;}
.nom-footer__col h4{font-family:var(--font-display);color:#fff;font-size:1.15rem;margin:0 0 1.1rem;font-weight:400;}
.nom-footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem;}
.nom-footer__col a{font-size:.92rem;letter-spacing:.02em;color:#d7d4c6;}
.nom-footer__contact li{display:flex;gap:.7em;align-items:flex-start;margin-bottom:.8rem;font-size:.92rem;color:#d7d4c6;}
.nom-footer__contact svg{flex:0 0 auto;margin-top:3px;opacity:.8;}
.nom-footer__social{display:flex;gap:12px;margin-top:6px;}
.nom-footer__social a{
  width:40px;height:40px;border:1px solid rgba(255,255,255,.28);border-radius:50%;
  display:flex;align-items:center;justify-content:center;transition:all .35s var(--ease);
}
.nom-footer__social a:hover{background:var(--nom-tan);border-color:var(--nom-tan);color:var(--nom-olive-2);transform:translateY(-3px);}
.nom-footer__area{font-style:italic;font-family:var(--font-display);color:#cfccbe;margin-top:1.4rem;font-size:.98rem;}
.nom-footer__bottom{
  border-top:1px solid rgba(255,255,255,.14);padding-block:22px;
  display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  font-size:.82rem;color:#b6b3a6;letter-spacing:.04em;
}
.nom-footer__bottom a{color:#b6b3a6;}
@media (max-width:860px){.nom-footer__top{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.nom-footer__top{grid-template-columns:1fr;text-align:center;}
  .nom-footer__brand img{margin-inline:auto;}.nom-footer__brand p{margin-inline:auto;}
  .nom-footer__social{justify-content:center;}.nom-footer__contact li{justify-content:center;}}

/* ============================================================
   GRAVITY FORMS - scoped restyle
   ============================================================ */
.nom-form .gform_wrapper{font-family:var(--font-sans);}
.nom-form .gfield_label{
  font-family:var(--font-sans)!important;font-weight:500!important;font-size:.74rem!important;
  letter-spacing:.14em;text-transform:uppercase;color:var(--nom-muted)!important;margin-bottom:8px!important;
}
.nom-form .ginput_container input:not([type=checkbox]):not([type=radio]),
.nom-form .ginput_container select,
.nom-form .ginput_container textarea{
  width:100%;font-family:var(--font-sans);font-size:1rem;color:var(--nom-ink);
  background:var(--nom-white);border:1px solid var(--nom-line);border-radius:var(--radius-sm);
  padding:14px 16px;transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.nom-form .ginput_container textarea{min-height:130px;resize:vertical;}
.nom-form .ginput_container input:not([type=checkbox]):not([type=radio]):focus,
.nom-form .ginput_container select:focus,
.nom-form .ginput_container textarea:focus{
  outline:none;border-color:var(--nom-gold);box-shadow:0 0 0 3px rgba(140,122,78,.16);
}
/* focus ring needs room + must not be clipped by ancestors */
.nom-form .gform_wrapper,.nom-form .gform_body,.nom-form .gform_fields,
.nom-form .gfield,.nom-form .ginput_container,.nom-form .gfield_checkbox,
.nom-form .gfield_radio{overflow:visible!important;}
.nom-form .gfield{margin-bottom:22px!important;}
/* The GF <form> (gppt page-transitions) has overflow:hidden + 0 padding, so the 3px
   :focus ring on edge fields gets clipped. Padding gives the ring room inside the clip. */
.nom-form form{padding:0.6rem!important;}

/* ---- Checkboxes & radios: real box, not a stretched strip ---- */
.nom-form input[type=checkbox],
.nom-form input[type=radio]{
  width:20px!important;height:20px!important;min-width:20px;flex:0 0 auto;margin:2px 10px 0 0!important;
  accent-color:var(--nom-gold);cursor:pointer;
}
.nom-form .gfield_checkbox .gchoice,
.nom-form .gfield_radio .gchoice,
.nom-form .gfield-choice-input + label,
.nom-form .ginput_container_consent{display:flex;align-items:flex-start;gap:2px;}
.nom-form .gfield_checkbox label,
.nom-form .gfield_radio label,
.nom-form .ginput_container_consent label{
  font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:normal!important;
  font-size:.95rem!important;color:var(--nom-body)!important;font-weight:400!important;
  line-height:1.5;cursor:pointer;padding-top:1px;
}

/* ---- Tom Select enhanced dropdowns (GF 2.7+ / Gravity Wiz) ---- */
.nom-form .ts-wrapper{font-family:var(--font-sans);}
.nom-form .ts-wrapper .ts-control{
  background:var(--nom-white)!important;border:1px solid var(--nom-line)!important;
  border-radius:var(--radius-sm)!important;padding:13px 16px!important;min-height:auto!important;
  color:var(--nom-ink)!important;font-size:1rem!important;box-shadow:none!important;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.nom-form .ts-wrapper.focus .ts-control,
.nom-form .ts-wrapper .ts-control:focus{
  border-color:var(--nom-gold)!important;box-shadow:0 0 0 3px rgba(140,122,78,.16)!important;
}
.nom-form .ts-wrapper .ts-dropdown{
  border:1px solid var(--nom-line)!important;border-radius:var(--radius-sm)!important;
  box-shadow:var(--shadow-md)!important;margin-top:6px!important;overflow:hidden;font-family:var(--font-sans);
}
.nom-form .ts-dropdown .option{padding:11px 16px!important;color:var(--nom-body)!important;}
.nom-form .ts-dropdown .option.active,
.nom-form .ts-dropdown .active{background:rgba(140,122,78,.12)!important;color:var(--nom-ink)!important;}
.nom-form .ts-dropdown .option[aria-selected=true]{background:rgba(140,122,78,.18)!important;}

/* ---- Native select fallback (arrow + padding) ---- */
.nom-form .ginput_container select{
  appearance:none;-webkit-appearance:none;padding-right:44px!important;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238C7A4E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;
}

/* ---- Multi-page progress bar: brand it ---- */
.nom-form .gf_progressbar_wrapper .gf_progressbar{background:var(--nom-cream-2)!important;border-radius:999px!important;overflow:hidden;}
.nom-form .gf_progressbar_percentage,
.nom-form .gf_progressbar .gf_progressbar_percentage{
  background:linear-gradient(90deg,var(--nom-gold),var(--nom-tan))!important;color:#fff!important;
  border-radius:999px!important;font-family:var(--font-sans)!important;font-weight:500!important;
}
.nom-form .gf_progressbar_title{font-family:var(--font-sans)!important;color:var(--nom-muted)!important;
  letter-spacing:.06em;text-transform:uppercase;font-size:.72rem!important;}

/* ---- Two-column rows: a bit more gutter so they don't feel cramped ---- */
.nom-form .gform_fields{grid-column-gap:26px!important;grid-row-gap:6px!important;}
.nom-form .gfield.gsection{border:0;margin-top:.5rem;}
/* Buttons - covers single- AND multi-page (Gravity Wiz) forms; beats Divi's .button */
.nom-form .gform_wrapper input[type=submit],
.nom-form .gform_wrapper button.gform_button,
.nom-form .gform_wrapper .gform_button,
.nom-form .gform_wrapper .gform_next_button,
.nom-form .gform_wrapper .gform_previous_button,
.nom-form .gform_footer input[type=submit],
.nom-form .gform_footer button,
.nom-form .gform_page_footer input[type=submit],
.nom-form .gform_page_footer button{
  font-family:var(--font-sans)!important;font-weight:500!important;font-size:.82rem!important;
  letter-spacing:.16em!important;text-transform:uppercase!important;
  color:#fff!important;background:var(--nom-gold)!important;border:1px solid var(--nom-gold)!important;
  border-radius:3px!important;padding:16px 40px!important;cursor:pointer;
  transition:all .35s var(--ease);width:auto!important;
}
.nom-form .gform_wrapper input[type=submit]:hover,
.nom-form .gform_wrapper .gform_button:hover,
.nom-form .gform_wrapper .gform_next_button:hover,
.nom-form .gform_wrapper .gform_previous_button:hover,
.nom-form .gform_footer input[type=submit]:hover,
.nom-form .gform_footer button:hover,
.nom-form .gform_page_footer input[type=submit]:hover,
.nom-form .gform_page_footer button:hover{
  background:var(--nom-gold-2)!important;border-color:var(--nom-gold-2)!important;
  transform:translateY(-2px);box-shadow:0 12px 26px rgba(59,52,43,.2);
}
/* the "Back"/previous button reads as a quieter outline */
.nom-form .gform_wrapper .gform_previous_button{
  background:transparent!important;color:var(--nom-ink)!important;border-color:var(--nom-ink)!important;
}
.nom-form .gform_wrapper .gform_previous_button:hover{
  background:var(--nom-ink)!important;color:#fff!important;border-color:var(--nom-ink)!important;
}
.nom-form .gform_required_legend{display:none;}
/* previous button sits inline with next; keep footers tidy */
.nom-form .gform_page_footer{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}

/* ---------- Accessibility ---------- */
.nom :focus-visible{outline:2px solid var(--nom-gold);outline-offset:3px;border-radius:2px;}
.nom-skip{position:absolute;left:-9999px;}
.nom-skip:focus{left:16px;top:16px;background:#fff;padding:10px 16px;z-index:2000;border-radius:6px;box-shadow:var(--shadow-md);}
