/*
Theme Name: PetSquad Nova
Text Domain: petsquad-nova
Version: 0.1.0
Requires at least: 6.3
Tested up to: 6.6
Requires PHP: 7.4
Author: Jay Thornton
Author URI: https://jaythornton000.com
Description: WordPress theme based on Nova (Bootstrap 5) with block editor support.
*/

/* ===============================
   Variables & Global Guards
   =============================== */
:root{
  /* Container widths to mirror Bootstrap */
  --content-gutter: .75rem;
  --container-lg: 960px;     /* ≥992px  */
  --container-xl: 1140px;    /* ≥1200px */
  --container-xxl: 1320px;   /* ≥1400px */

  /* Navbar offsets */
  --navbar-height: 72px;
  --navbar-height-lg: 88px;
}

/* Never allow horizontal overflow */
html, body, .site-wrap, .site-main, .wp-site-blocks {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
html { scrollbar-gutter: stable both-edges; }

/* Media never pushes layout wider */
img, svg, video { max-width: 100%; height: auto; display: block; }

/* ===============================
   Navbar & Logo (always on white)
   =============================== */

/* Base navbar: white background, dark links */
.fbs__net-navbar {
  transition: box-shadow .2s ease, background-color .2s ease;
  background-color: #fff;
}
.fbs__net-navbar.active { box-shadow: 0 6px 18px rgba(0,0,0,.06); }

/* Logo: always show the dark logo; hide any leftover "light" asset */
.navbar-brand .logo { display: inline-block; vertical-align: middle; height: 40px; width: auto; }
.logo.light { display: none !important; }  /* safe if the light asset still exists */
@media (min-width: 992px) { .navbar-brand .logo { height: 48px; } }

/* Links */
.fbs__net-navbar .nav-link { padding: .5rem 1rem; font-weight: bold; color: #344054 !important; }
.fbs__net-navbar .nav-link:hover,
.fbs__net-navbar .nav-link.active { color: var(--bs-primary, #5cd615); }

/* CTA button in navbar */
.fbs__net-navbar .btn.btn-primary { padding: .5rem 1rem; border: 0; }

/* Toggler icons */
.fbs__net-navbar-toggler { display: inline-flex; width: 44px; height: 44px; border: 0; background: transparent; color: #344054; }
.fbs__net-navbar .fbs__net-navbar-toggler svg { stroke: currentColor; }
.fbs__net-icon-close { display: none; }
.fbs__net-navbar-toggler[aria-expanded="true"] .fbs__net-icon-menu { display: none; }
.fbs__net-navbar-toggler[aria-expanded="true"] .fbs__net-icon-close { display: inline-block; }

/* Flex children can shrink (prevents overflow in header) */
.fbs__net-navbar .container,
.fbs__net-navbar .navbar-brand,
.fbs__net-navbar .offcanvas-body { min-width: 0; }

/* Offcanvas spacing (mobile) */
.offcanvas#fbs__net-navbars { padding: 1rem; }
@media (max-width: 991.98px) {
  .offcanvas#fbs__net-navbars .navbar-nav .nav-link { padding: .6rem .25rem; }
}

/* Control offcanvas width via CSS var (ignore utility widths like .w-75) */
.offcanvas {
  --bs-offcanvas-width: min(90vw, 400px);
  width: var(--bs-offcanvas-width) !important;
  max-width: 100vw;
}
@media (min-width: 992px) {
  .offcanvas { --bs-offcanvas-width: 75vw; }
}

/* ===============================
   Gutenberg / Content Widths
   =============================== */

/* Constrained layouts */
.site-main .wp-site-blocks,
.site-main .entry-content {
  padding-left: var(--content-gutter);
  padding-right: var(--content-gutter);
}
.site-main .wp-site-blocks :where(.is-layout-constrained){
  margin-left: auto; margin-right: auto; max-width: var(--container-lg);
}
@media (min-width:1200px){
  .site-main .wp-site-blocks :where(.is-layout-constrained){ max-width: var(--container-xl); }
}
@media (min-width:1400px){
  .site-main .wp-site-blocks :where(.is-layout-constrained){ max-width: var(--container-xxl); }
}

/* Default blocks (no align) */
.site-main .wp-site-blocks > *:not(.alignwide):not(.alignfull),
.site-main .entry-content   > *:not(.alignwide):not(.alignfull){
  width: 100%;
  margin-left: auto; margin-right: auto;
  max-width: var(--container-lg);
}
@media (min-width:1200px){
  .site-main .wp-site-blocks > *:not(.alignwide):not(.alignfull),
  .site-main .entry-content   > *:not(.alignwide):not(.alignfull){
    max-width: var(--container-xl);
  }
}
@media (min-width:1400px){
  .site-main .wp-site-blocks > *:not(.alignwide):not(.alignfull),
  .site-main .entry-content   > *:not(.alignwide):not(.alignfull){
    max-width: var(--container-xxl);
  }
}

/* Wide width == container width */
.site-main :where(.alignwide){
  width: 100%;
  margin-left: auto; margin-right: auto;
  padding-left: var(--content-gutter); padding-right: var(--content-gutter);
  max-width: var(--container-lg);
}
@media (min-width:1200px){ .site-main :where(.alignwide){ max-width: var(--container-xl); } }
@media (min-width:1400px){ .site-main :where(.alignwide){ max-width: var(--container-xxl); } }

/* Full width (true edge-to-edge, no horizontal scroll) */
.site-main :where(.alignfull){
  width: 100vw; max-width: 100vw;
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  padding-left: var(--content-gutter); padding-right: var(--content-gutter);
  overflow-x: clip;
}

/* Media inside wide/full stays within container width */
:where(.alignwide, .alignfull) > img,
:where(.alignwide, .alignfull) .wp-block-image img{
  display:block; width:100%; height:auto; max-width:100%;
}

/* Optional: remove card look inside full-width bands */
.alignfull .card{ border:0; box-shadow:none; }

/* ===============================
   Content offset below fixed navbar
   =============================== */
.site-main,
.wp-site-blocks { padding-top: var(--navbar-height); }
@media (min-width: 992px) {
  .site-main,
  .wp-site-blocks { padding-top: var(--navbar-height-lg); }
}

.footer a {
  color: #5cd615;
}