/* WordPress and Elementor integration */
:root { --cb-admin-offset: 0px; }
body.admin-bar { --cb-admin-offset: 32px; }
body.admin-bar .site-header { top: var(--cb-admin-offset); }
body.admin-bar .mobile-drawer,
body.admin-bar .drawer-backdrop { top: var(--cb-admin-offset); height: calc(100dvh - var(--cb-admin-offset)); }

.cb-elementor-section-widget > .elementor-widget-container,
.elementor-widget-crab-boil-section > .elementor-widget-container { display: contents; }
.elementor-page .elementor-section-wrap,
.elementor-page .elementor-location-single { width: 100%; }
.elementor-page main#main-content > .elementor { width: 100%; }
.elementor-editor-active .site-header { pointer-events: none; }
.elementor-editor-active .cb-section-edit-label { display: block; }
.cb-section-edit-label { display: none; position: absolute; z-index: 100; top: 6px; left: 6px; padding: 4px 8px; border-radius: 4px; background: #ee792b; color: #080c15; font: 600 11px/1.3 Inter, sans-serif; }
.cb-section-widget-wrap { position: relative; }
.cb-section-widget-wrap[hidden] { display: none !important; }

/* Native blog, recipe and utility templates */
.cb-content-shell { min-height: 72vh; padding: 9rem 1.5rem 5rem; background: hsl(var(--background)); }
.cb-content-inner { width: min(1180px, 100%); margin: 0 auto; }
.cb-page-hero { margin-bottom: 3rem; text-align: center; }
.cb-eyebrow { color: hsl(var(--primary)); font-size: .82rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.cb-page-title { margin-top: .7rem; font-size: clamp(2.8rem, 7vw, 5.6rem); line-height: .95; color: hsl(var(--foreground)); }
.cb-page-intro { max-width: 720px; margin: 1.25rem auto 0; color: hsl(var(--foreground) / .7); font-size: 1.08rem; }
.cb-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.cb-post-card { overflow: hidden; border: 1px solid hsl(var(--border)); border-radius: 1rem; background: hsl(var(--card)); transition: transform .3s ease, border-color .3s ease; }
.cb-post-card:hover { transform: translateY(-5px); border-color: hsl(var(--primary) / .65); }
.cb-post-card-media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: hsl(var(--ocean-dark)); }
.cb-post-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.cb-post-card:hover .cb-post-card-media img { transform: scale(1.055); }
.cb-post-card-body { padding: 1.35rem; }
.cb-post-meta { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: .75rem; color: hsl(var(--primary)); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.cb-post-card-title { margin: 0; font-size: 1.7rem; line-height: 1.1; }
.cb-post-card-title a:hover { color: hsl(var(--primary)); }
.cb-post-excerpt { margin-top: .8rem; color: hsl(var(--foreground) / .67); }
.cb-read-more { display: inline-flex; margin-top: 1rem; color: hsl(var(--primary)); font-weight: 700; }
.cb-pagination { margin-top: 3rem; display: flex; justify-content: center; gap: .5rem; }
.cb-pagination .page-numbers { min-width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid hsl(var(--border)); border-radius: 999px; }
.cb-pagination .current, .cb-pagination a:hover { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: hsl(var(--primary)); }
.cb-single { width: min(920px, 100%); margin: 0 auto; }
.cb-single-featured { overflow: hidden; margin: 2rem 0; border-radius: 1.25rem; }
.cb-single-featured img { width: 100%; max-height: 620px; object-fit: cover; }
.cb-entry-content { color: hsl(var(--foreground) / .82); font-size: 1.06rem; line-height: 1.8; }
.cb-entry-content h2, .cb-entry-content h3 { margin: 2rem 0 .8rem; color: hsl(var(--foreground)); }
.cb-entry-content p, .cb-entry-content ul, .cb-entry-content ol { margin: 0 0 1.2rem; }
.cb-entry-content ul { list-style: disc; padding-left: 1.25rem; }
.cb-entry-content ol { list-style: decimal; padding-left: 1.25rem; }
.cb-recipe-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1.5rem 0 2rem; }
.cb-recipe-meta-item { padding: 1rem; border: 1px solid hsl(var(--border)); border-radius: .85rem; background: hsl(var(--card)); text-align: center; }
.cb-recipe-meta-item strong { display: block; color: hsl(var(--primary)); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.cb-recipe-meta-item span { display: block; margin-top: .35rem; color: hsl(var(--foreground)); }
.cb-recipe-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr); gap: 1.5rem; }
.cb-recipe-panel { padding: 1.5rem; border: 1px solid hsl(var(--border)); border-radius: 1rem; background: hsl(var(--card)); }
.cb-recipe-panel h2 { margin: 0 0 1rem; font-size: 2rem; color: hsl(var(--foreground)); }
.cb-recipe-panel li { margin-bottom: .7rem; color: hsl(var(--foreground) / .78); }
.cb-recipe-panel ol { counter-reset: cb-step; list-style: none; padding: 0; }
.cb-recipe-panel ol li { position: relative; padding-left: 2.6rem; }
.cb-recipe-panel ol li::before { counter-increment: cb-step; content: counter(cb-step); position: absolute; left: 0; top: -.1rem; width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border-radius: 50%; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); font-weight: 800; }
.cb-empty-state { padding: 3rem; border: 1px dashed hsl(var(--border)); border-radius: 1rem; text-align: center; color: hsl(var(--foreground) / .68); }
.cb-comments { margin-top: 3rem; }
.cb-comments input, .cb-comments textarea { width: 100%; padding: .8rem 1rem; border: 1px solid hsl(var(--border)); border-radius: .65rem; background: hsl(var(--card)); color: hsl(var(--foreground)); }
.cb-comments .submit { width: auto; border: 0; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); font-weight: 800; cursor: pointer; }

@media (max-width: 900px) {
  body.admin-bar { --cb-admin-offset: 46px; }
  .cb-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cb-recipe-layout { grid-template-columns: 1fr; }
}
@media (max-width: 782px) {
  body.admin-bar { --cb-admin-offset: 46px; }
}
@media (max-width: 620px) {
  .cb-content-shell { padding: 7rem 1rem 3.5rem; }
  .cb-post-grid { grid-template-columns: 1fr; }
  .cb-recipe-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.crab-boil-imported-page .elementor-section.elementor-section-boxed > .elementor-container,
.crab-boil-imported-page .elementor-section > .elementor-container { max-width: none; width: 100%; }
.crab-boil-imported-page .elementor-column-gap-default > .elementor-column > .elementor-element-populated,
.crab-boil-imported-page .elementor-column-gap-no > .elementor-column > .elementor-element-populated { padding: 0; }
.crab-boil-imported-page .elementor-widget:not(:last-child) { margin-bottom: 0; }
.crab-boil-imported-page .elementor-element { --widgets-spacing: 0px; }

/* V1.2 frontend recovery: Elementor starter pages must always be true full width. */
html,
body,
body.crab-boil-elementor-page,
body.crab-boil-imported-page {
  background: hsl(var(--background)) !important;
}
body.crab-boil-elementor-page main#main-content,
body.crab-boil-imported-page main#main-content,
body.crab-boil-elementor-page main#main-content > .elementor,
body.crab-boil-imported-page main#main-content > .elementor,
body.crab-boil-elementor-page .elementor-section-wrap,
body.crab-boil-imported-page .elementor-section-wrap {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: clip;
  background: hsl(var(--background));
}
body.crab-boil-elementor-page .elementor-section.elementor-section-boxed > .elementor-container,
body.crab-boil-elementor-page .elementor-section > .elementor-container,
body.crab-boil-imported-page .elementor-section.elementor-section-boxed > .elementor-container,
body.crab-boil-imported-page .elementor-section > .elementor-container,
body.crab-boil-elementor-page .e-con,
body.crab-boil-imported-page .e-con {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}
body.crab-boil-elementor-page .elementor-column,
body.crab-boil-elementor-page .elementor-widget-wrap,
body.crab-boil-imported-page .elementor-column,
body.crab-boil-imported-page .elementor-widget-wrap,
.elementor-widget[class*="elementor-widget-crab-boil-"] {
  width: 100% !important;
  max-width: none !important;
}
body.crab-boil-elementor-page .elementor-widget-wrap > .elementor-element,
body.crab-boil-imported-page .elementor-widget-wrap > .elementor-element {
  margin-bottom: 0 !important;
}
.cbn-icon-fallback {
  display: inline-grid;
  place-items: center;
  width: 1.15em;
  height: 1.15em;
  color: currentColor;
  font: 700 1em/1 sans-serif;
}

/* V1.3 exact-page widgets: one Elementor widget owns each complete static page. */
.elementor-widget-crab-boil-home-page > .elementor-widget-container,
.elementor-widget-crab-boil-about-page > .elementor-widget-container,
.elementor-widget-crab-boil-franchise-page > .elementor-widget-container,
.elementor-widget-crab-boil-locations-page > .elementor-widget-container {
  display: contents;
}
.elementor-widget-crab-boil-home-page,
.elementor-widget-crab-boil-about-page,
.elementor-widget-crab-boil-franchise-page,
.elementor-widget-crab-boil-locations-page {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
