/* ===== NoirBite Global Design System ===== */
:root{
 --nb-bg:#080A0D; --nb-bg-2:#11151A; --nb-surface:#191F26;
 --nb-gold:#E8B04A; --nb-ember:#FF6B35; --nb-heading:#F7F3EA;
 --nb-body:#A8ADB4; --nb-border:#2A313A; --nb-success:#43C59E;
 --nb-radius-card:16px; --nb-radius-btn:8px; --nb-gap:24px;
 --nb-maxw:1240px; --nb-narrow:720px;
}
body{background-color:var(--nb-bg);color:var(--nb-body);}
h1,h2,h3,h4,h5,h6,.elementor-heading-title{font-family:"Space Grotesk",sans-serif;color:var(--nb-heading);line-height:1.15;font-weight:600;}
h1{font-size:72px;} h2{font-size:52px;} h3{font-size:32px;}
@media(max-width:1024px){h1{font-size:54px;}h2{font-size:42px;}h3{font-size:28px;}}
@media(max-width:767px){h1{font-size:40px;}h2{font-size:34px;}h3{font-size:24px;}}
/* Utility helpers for buyers */
.nb-narrow{max-width:var(--nb-narrow);margin-left:auto;margin-right:auto;}
.nb-card{background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:var(--nb-radius-card);}
.nb-eyebrow{font-family:"DM Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;font-size:14px;color:var(--nb-gold);}
.nb-small{font-size:14px;} @media(max-width:767px){.nb-small{font-size:13px;}}
/* Respect reduced motion */
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}}
/* ===== Components ===== */
.nb-header{transition:background-color .35s ease, box-shadow .35s ease;}
.nb-header.elementor-sticky--effects{background-color:rgba(8,10,13,0.92)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--nb-border);}
.nb-header .elementor-nav-menu .elementor-item{font-weight:500;}
.nb-mobile-nav .elementor-nav-menu--main .elementor-item{padding:10px 0;}
/* Newsletter inline */
.elementor-widget-form .elementor-field-group{margin-bottom:12px;}

/* Interactive lock */
.elementor-field-textual,.elementor-field-group input:not([type=submit]),.elementor-field-group textarea,.elementor-field-group select{background-color:#191F26!important;color:#F7F3EA!important;border:1px solid #2A313A!important;border-radius:8px!important;}
.elementor-field-textual::placeholder{color:#7d838b;opacity:1;}
.elementor-field-group input:focus,.elementor-field-textual:focus{border-color:#E8B04A!important;outline:none;}
.elementor-widget-form .elementor-button[type="submit"]{color:#080A0D!important;}

/* ===== Page components ===== */
.nb-btn-ghost .elementor-button{background-color:transparent!important;color:#F7F3EA!important;border:1px solid #3a434e!important;}
.nb-btn-ghost .elementor-button:hover{border-color:#E8B04A!important;color:#E8B04A!important;background-color:rgba(232,176,74,.06)!important;}
.nb-card{transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;overflow:hidden;}
.nb-card:hover{border-color:#3a434e;transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(0,0,0,.8);}
.nb-card img{transition:transform .6s ease;display:block;width:100%;}
.nb-card:hover img{transform:scale(1.05);}
.nb-dish .nb-name .elementor-heading-title{color:#F7F3EA;}
.nb-dish .nb-price .elementor-heading-title{color:#E8B04A;white-space:nowrap;}
.nb-lead .elementor-widget-container{font-size:20px;line-height:1.6;color:#c9ccd1;}
@media(max-width:767px){.nb-lead .elementor-widget-container{font-size:17px;}}
.nb-stat .elementor-heading-title{font-family:'Space Grotesk';font-weight:700;color:#E8B04A;}
.nb-hero-overlay{}

.nb-map-ph{background:#191F26;border:1px dashed #3a434e;border-radius:16px;min-height:360px;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:#7d838b;font-family:'DM Sans';}

/* ===== Inner page components ===== */
html{scroll-padding-top:110px;}
.nb-catnav .elementor-widget-container{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.nb-catnav a{display:inline-block;padding:10px 18px;border:1px solid #2A313A;border-radius:999px;color:#A8ADB4;font-family:'DM Sans',sans-serif;font-size:14px;text-decoration:none;transition:border-color .25s,color .25s,background-color .25s;}
.nb-catnav a:hover,.nb-catnav a:focus-visible{border-color:#E8B04A;color:#E8B04A;background-color:rgba(232,176,74,.07);}
.nb-note .elementor-widget-container{border-left:3px solid #E8B04A;background:#11151A;border-radius:8px;padding:20px 22px;}
.nb-press .elementor-widget-container{border:1px dashed #3a434e;border-radius:12px;min-height:92px;display:flex;align-items:center;justify-content:center;}
.nb-press .elementor-heading-title{color:#7d838b;font-family:'DM Sans',sans-serif;font-size:14px;letter-spacing:1.6px;text-transform:uppercase;}
.nb-milestone{border-top:2px solid #E8B04A;padding-top:18px;}
.nb-row:last-child{border-bottom:none!important;}
.nb-team-role .elementor-heading-title{color:#E8B04A;}
.nb-info-row{border-bottom:1px solid #2A313A;}
.nb-info-row:last-child{border-bottom:none;}
/* Accordion polish */
.elementor-accordion .elementor-accordion-item{border-radius:12px;overflow:hidden;margin-bottom:12px;border:1px solid #2A313A!important;}
/* Gallery lightbox-friendly images */
.gallery-item img{border-radius:16px;}
/* Focus visibility for keyboard users */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #E8B04A;outline-offset:2px;}

/* ===== Post cards ===== */
.elementor-posts .elementor-post{background:#191F26;border:1px solid #2A313A;border-radius:16px;overflow:hidden;transition:transform .35s ease,border-color .35s ease;}
.elementor-posts .elementor-post:hover{transform:translateY(-4px);border-color:#3a434e;}
.elementor-posts .elementor-post__thumbnail__link{margin:0;}
.elementor-posts .elementor-post__text{padding:0 22px 24px;}
.elementor-posts .elementor-post__title,.elementor-posts .elementor-post__title a{color:#F7F3EA;font-family:'Space Grotesk',sans-serif;font-size:19px;font-weight:600;line-height:1.35;}
.elementor-posts .elementor-post__title a:hover{color:#E8B04A;}
.elementor-posts .elementor-post__excerpt p{color:#A8ADB4;font-size:14px;line-height:1.7;}
.elementor-posts .elementor-post__meta-data{color:#7d838b;font-family:'DM Sans',sans-serif;font-size:13px;padding:18px 22px 6px;}
.elementor-posts .elementor-post__read-more{color:#E8B04A;font-family:'DM Sans',sans-serif;font-weight:600;font-size:14px;}
.elementor-posts .elementor-post__read-more:hover{color:#FF6B35;}

/* ===== Article & archive ===== */
.nb-post-content h2{font-family:'Space Grotesk',sans-serif;color:#F7F3EA;font-size:32px;font-weight:600;line-height:1.25;margin:40px 0 14px;}
.nb-post-content h3{font-family:'Space Grotesk',sans-serif;color:#F7F3EA;font-size:24px;font-weight:600;margin:32px 0 12px;}
.nb-post-content p{color:#A8ADB4;font-size:18px;line-height:1.75;margin-bottom:20px;}
.nb-post-content a{color:#E8B04A;text-decoration:underline;text-underline-offset:3px;}
.nb-post-content ul,.nb-post-content ol{color:#A8ADB4;padding-left:22px;margin-bottom:20px;}
.nb-post-content li{margin-bottom:8px;line-height:1.7;}
.nb-post-content blockquote{border-left:3px solid #E8B04A;padding:4px 0 4px 20px;margin:28px 0;color:#F7F3EA;font-size:20px;font-style:italic;}
.nb-post-content img{border-radius:16px;height:auto;}
@media(max-width:767px){.nb-post-content h2{font-size:26px;}.nb-post-content h3{font-size:21px;}.nb-post-content p{font-size:16px;}}
/* Pagination */
.elementor-pagination{margin-top:44px;text-align:center;}
.elementor-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;margin:0 4px;border:1px solid #2A313A;border-radius:8px;color:#A8ADB4;font-family:'DM Sans',sans-serif;font-size:15px;text-decoration:none;transition:border-color .25s,color .25s;}
.elementor-pagination .page-numbers.current{background:#E8B04A;color:#080A0D;border-color:#E8B04A;}
.elementor-pagination a.page-numbers:hover{border-color:#E8B04A;color:#E8B04A;}
/* Search form */
.elementor-search-form__input,.elementor-search-form input[type=search]{background:#191F26!important;color:#F7F3EA!important;border:1px solid #2A313A!important;border-radius:8px!important;}
.elementor-search-form__input::placeholder{color:#7d838b;}
/* Author box */
.elementor-author-box{background:#191F26;border:1px solid #2A313A;border-radius:16px;padding:28px;}
.elementor-author-box__name{color:#F7F3EA!important;font-family:'Space Grotesk',sans-serif;}
.elementor-author-box__bio{color:#A8ADB4!important;}
/* Post navigation */
.elementor-post-navigation{border-top:1px solid #2A313A;padding-top:26px;}
.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__next--label{color:#7d838b;font-family:'DM Sans',sans-serif;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;}
.elementor-post-navigation .post-navigation__prev--title,.elementor-post-navigation .post-navigation__next--title{color:#F7F3EA;font-family:'Space Grotesk',sans-serif;font-size:16px;}
.elementor-post-navigation a:hover .post-navigation__prev--title,.elementor-post-navigation a:hover .post-navigation__next--title{color:#E8B04A;}
/* Comments (native WP) */
#comments,.comments-area{color:#A8ADB4;}
.comments-area .comment-reply-title,.comments-area .comments-title{color:#F7F3EA;font-family:'Space Grotesk',sans-serif;}
.comments-area input[type=text],.comments-area input[type=email],.comments-area input[type=url],.comments-area textarea{background:#191F26;color:#F7F3EA;border:1px solid #2A313A;border-radius:8px;padding:12px 14px;width:100%;}
.comments-area .submit{background:#E8B04A;color:#080A0D;border:none;border-radius:8px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-weight:600;cursor:pointer;}
.comments-area .comment-body{border-bottom:1px solid #2A313A;padding:18px 0;}
/* 404 numeral */
.nb-404 .elementor-heading-title{font-family:'Space Grotesk',sans-serif;font-weight:700;color:#E8B04A;line-height:1;letter-spacing:-2px;}

/* ===== Touch targets (WCAG 2.5.5) ===== */
.nb-header .elementor-widget-icon a,.nb-header .elementor-icon{display:inline-flex;align-items:center;justify-content:center;min-width:46px;min-height:46px;}
.elementor-social-icon{width:42px!important;height:42px!important;}
@media(max-width:1024px){.elementor-social-icon{width:46px!important;height:46px!important;}}
.nb-catnav a{min-height:44px;display:inline-flex;align-items:center;}
/* Inline contact links: enlarge tap area without changing layout */
.nb-info-row a,.elementor-widget-text-editor a[href^='tel'],.elementor-widget-text-editor a[href^='mailto']{padding:4px 0;display:inline-block;}
/* Skip link visible on focus */
.skip-link:focus{position:fixed!important;top:12px!important;left:12px!important;width:auto!important;height:auto!important;padding:12px 18px!important;background:#E8B04A!important;color:#080A0D!important;border-radius:8px!important;z-index:2147483647!important;clip:auto!important;clip-path:none!important;}

/* ===== Touch targets 2 ===== */
.nb-header .elementor-widget-heading a{display:inline-flex;align-items:center;min-height:44px;}
.elementor-posts .elementor-post__read-more{display:inline-block;padding:10px 0;}
.elementor-accordion .elementor-tab-title{cursor:pointer;}

/* ===== Header mobile ===== */
.nb-header .e-con-inner{flex-wrap:nowrap!important;}
@media(max-width:767px){html{scroll-padding-top:84px;}}

/* ===== Mobile nav popup ===== */
.elementor-popup-modal .dialog-widget-content{width:100vw!important;max-width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:0!important;background:#080A0D!important;box-shadow:none!important;}
.elementor-popup-modal .dialog-message{width:100%!important;max-height:100vh!important;padding:0!important;display:flex;align-items:center;justify-content:center;}
.nb-mobile-nav .elementor-nav-menu,.nb-mobile-nav .elementor-nav-menu--main,.nb-mobile-nav .elementor-nav-menu--main .elementor-nav-menu{background:transparent!important;background-color:transparent!important;box-shadow:none!important;border:0!important;}
.nb-mobile-nav .elementor-nav-menu li{background:transparent!important;}
.nb-mobile-nav .elementor-nav-menu a.elementor-item{color:#F7F3EA!important;background:transparent!important;font-family:'DM Sans',sans-serif;font-size:22px;font-weight:500;padding:12px 0!important;justify-content:center;}
.nb-mobile-nav .elementor-nav-menu a.elementor-item:hover,.nb-mobile-nav .elementor-nav-menu a.elementor-item.elementor-item-active{color:#E8B04A!important;background:transparent!important;}
.elementor-popup-modal .dialog-close-button{color:#F7F3EA!important;top:18px!important;right:18px!important;min-width:44px;min-height:44px;display:flex!important;align-items:center;justify-content:center;}


/* ===== Mobile nav popup menu (Elementor renders the --dropdown variant below the breakpoint) ===== */
.nb-mobile-nav .elementor-nav-menu--dropdown{display:block!important;position:static!important;background-color:transparent!important;box-shadow:none!important;border:0!important;width:100%!important;max-width:340px;margin:0 auto!important;transform:none!important;opacity:1!important;visibility:visible!important;max-height:none!important;}
.nb-mobile-nav .elementor-nav-menu--dropdown ul,.nb-mobile-nav .elementor-nav-menu--dropdown li{background:transparent!important;border:0!important;}
.nb-mobile-nav .elementor-nav-menu--dropdown a.elementor-item{color:#F7F3EA!important;background-color:transparent!important;font-family:'DM Sans',sans-serif;font-size:21px;font-weight:500;padding:13px 0!important;text-align:center;justify-content:center;border:0!important;min-height:46px;}
.nb-mobile-nav .elementor-nav-menu--dropdown a.elementor-item:hover,.nb-mobile-nav .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{color:#E8B04A!important;background-color:transparent!important;}
.nb-mobile-nav .elementor-nav-menu--main{display:none!important;}
/* Keep the site-wide dropdown dark if a buyer enables the built-in toggle */
.elementor-nav-menu--dropdown{background-color:#11151A!important;}
.elementor-nav-menu--dropdown a.elementor-item{color:#F7F3EA!important;}

/* footer dropdown tone */
.elementor-location-footer .elementor-nav-menu--dropdown{background-color:transparent!important;}
.elementor-location-footer .elementor-nav-menu--dropdown a.elementor-item{color:#A8ADB4!important;padding:12px 0!important;font-size:15px;justify-content:flex-start;min-height:44px;}
.elementor-location-footer .elementor-nav-menu--dropdown a.elementor-item:hover,.elementor-location-footer .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{color:#E8B04A!important;}

/* ===== Media fill & tiles ===== */
@media(min-width:768px){
 /* Feature image fills the text column's height instead of dictating it: taken out of flow so the row is sized by the copy. */
 /* No .elementor-widget-container wrapper exists in this Elementor version, so position the widget itself. */
 .elementor-widget-image.nb-card{align-self:stretch;position:relative;min-height:400px;overflow:hidden;border-radius:16px;}
 .elementor-widget-image.nb-card>*{height:100%;}
 .elementor-widget-image.nb-card img{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;object-fit:cover;}
}
@media(max-width:767px){
 /* keep the browser's intrinsic width/height ratio so space is reserved before load (no CLS, no collapsed sliver) */
 .elementor-widget-image.nb-card img{width:100%;height:auto;object-fit:cover;}
 .elementor-widget-image.nb-card .elementor-widget-container{position:static;min-height:0;}
}
.nb-tile img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;}

/* ===== Card fill: ONLY media cards (image + caption) absorb leftover height. Scoped with the adjacent-sibling combinator so text-only cards (e.g. opening-hours rows) keep their own alignment. ===== */
.nb-card>.elementor-widget-image{flex:0 0 auto;}
.nb-card>.elementor-widget-image+.e-con:last-child{flex:1 1 auto;justify-content:center;}

/* ===== Footer polish ===== */
/* kill Elementor's grey active/hover block on dropdown menu items */
.elementor-location-footer .elementor-nav-menu--dropdown a.elementor-item,
.elementor-location-footer .elementor-nav-menu--dropdown a.elementor-item:hover,
.elementor-location-footer .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
.elementor-location-footer .elementor-nav-menu--dropdown a.elementor-item.highlighted,
.nb-mobile-nav .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
.nb-mobile-nav .elementor-nav-menu--dropdown a.elementor-item.highlighted{background-color:transparent!important;}
.elementor-location-footer .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{color:#E8B04A!important;}
/* keep the floating back-to-top button clear of the legal links */

/* footer bottom bar: keep clear of the floating back-to-top button */
.nb-footer-bottom{padding-bottom:84px!important;}
@media(min-width:1025px){.nb-footer-bottom{padding-bottom:22px!important;}}
@media(max-width:767px){.nb-footer-bottom .e-con-inner{flex-direction:column;align-items:center;text-align:center;gap:8px;}.nb-footer-bottom .elementor-widget-text-editor{text-align:center!important;}}

.elementor-widget-image:not(.nb-card) img[width][height]{height:auto;}

/* Meta link tap targets */
.elementor-widget-post-info .elementor-icon-list-item a{display:inline-block;padding:6px 0;}

/* ===== Gallery responsive columns =====
   Elementor's Image Gallery 'columns' control is NOT responsive, so galleries keep their
   desktop column count on tablet/mobile. Collapse them here. ===== */
@media(max-width:1024px){
 .elementor-image-gallery .gallery.gallery-columns-3 .gallery-item,
 .elementor-image-gallery .gallery.gallery-columns-4 .gallery-item,
 .elementor-image-gallery .gallery.gallery-columns-5 .gallery-item,
 .elementor-image-gallery .gallery.gallery-columns-6 .gallery-item,
 .elementor-image-gallery .gallery.gallery-columns-7 .gallery-item,
 .elementor-image-gallery .gallery.gallery-columns-8 .gallery-item{width:50%!important;max-width:50%!important;}
}

/* Footer nav tap catch-all: covers both --main and --dropdown variants on every template */
@media(max-width:1024px){
 .elementor-location-footer .elementor-nav-menu a.elementor-item{min-height:44px;display:flex;align-items:center;}
}

/* ===== Back-to-top button =====
   The global button padding (16px 32px) was inflating this to 66x46, so border-radius:50%
   rendered an ellipse. Reset padding and lock a true circle. ===== */
#nb-top{padding:0!important;width:46px!important;height:46px!important;min-width:0!important;min-height:0!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;font-size:20px!important;font-family:inherit;background:#191F26!important;color:#F7F3EA!important;border:1px solid #2A313A!important;box-shadow:none!important;text-shadow:none!important;letter-spacing:0!important;}
#nb-top.show{opacity:1;pointer-events:auto;}
/* hover only on devices that truly hover, so it never sticks gold after a tap */
@media(hover:hover){#nb-top:hover{background:#E8B04A!important;color:#080A0D!important;border-color:#E8B04A!important;}}
#nb-top:focus-visible{outline:2px solid #E8B04A;outline-offset:2px;}
@media(max-width:767px){#nb-top{width:44px!important;height:44px!important;right:16px!important;bottom:16px!important;}}

/* Post title colour lock: Elementor's posts widget defaults bind the title to
   --e-global-color-secondary (orange). Pin it to the heading colour. */
.elementor-widget-posts .elementor-post__title,.elementor-widget-posts .elementor-post__title a,
.elementor-widget-archive-posts .elementor-post__title,.elementor-widget-archive-posts .elementor-post__title a{color:#F7F3EA;}
.elementor-widget-posts .elementor-post__title a:hover,
.elementor-widget-archive-posts .elementor-post__title a:hover{color:#E8B04A;}
