/* ==========================================================================
   I LOVE GO — THEME OVERRIDES
   File: assets/css/gd-ilovego.css
   Depends on: Bootstrap (and your reset.css)
   ========================================================================== */

/* --------------------------------------------------------------------------
   0) CSS VARIABLES
   -------------------------------------------------------------------------- */
:root {
  --brand-red: #fc3847;
  --header-shadow: 0 8px 18px rgba(0,0,0,.06);
}

/* --------------------------------------------------------------------------
   1) GLOBAL / UTILITIES
   -------------------------------------------------------------------------- */
/* Keep images crisp by default */
img {
  height: auto;
  max-width: 100%;
  display: block;
}

/* Optional helper if you need full-bleed sections */
.full-bleed {
  width: 100%;
  margin-left: 50%;
  transform: translateX(-50%);
}



/* --------------------------------------------------------------------------
   BOOTSTRAP BTN OVERRIDE
   -------------------------------------------------------------------------- */

/* Base styles */
.btn {
  background-color: var(--brand-red) !important;
  color: #ffffff !important;
  border-radius: 0 !important;
  padding: 10px 20px !important;
  border: 2px solid #ae132a !important;
  font-size: 1em !important;
}

/* Hover state */
.btn:hover {
  background-color: #000 !important;
  color: #fff !important;
}

/* Focus state */
.btn:focus, .btn:active:focus {
  outline: none !important;
  box-shadow: none !important; /* Custom focus ring */
}

/* Active state */
.btn:active {
  background-color: #000 !important;
  border-color: #000 !important;
}

/* Disabled state */
.btn:disabled, .btn[disabled] {
  background-color: #e0e0e0 !important;
  color: #a0a0a0 !important;
  border-color: #d0d0d0 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

/* Button sizes */
.btn-sm {
  padding: 5px 10px !important;
  font-size: 0.875em !important;
}

.btn-lg {
  padding: 15px 30px !important;
  font-size: 1.25em !important;
}

/* Outline buttons */
.btn-outline-primary {
  background-color: transparent !important;
  border: 2px solid #404040 !important;
  color: #404040 !important;
}

.btn-outline-primary:hover {
  background-color: #007bff !important;
  color: #ffffff !important;
  border-color: #007bff !important;
}

/* Additional states for link buttons */
.btn-link {
  color: #007bff !important;
  text-decoration: underline !important;
}

.btn-link:hover {
  color: #0056b3 !important;
  text-decoration: none !important;
}

/* PRIMARY BUTTON STYLES */
.btn-primary {
  background-color: var(--brand-red) !important; /* Custom primary color */
  color: #ffffff !important;
  border: none !important;
}

.btn-primary:hover {
  background-color: #000 !important; /* Darker shade for hover */
  border-color: #000 !important;
  color: #ffffff !important;
}

.btn-primary:focus, .btn-primary:active:focus {
  outline: none !important;
  box-shadow: none !important; /* Custom focus ring */
}

.btn-primary:active {
  background-color: #000 !important; /* Even darker shade for active */
  border-color: #000 !important;
}

.btn-primary:disabled, .btn-primary[disabled] {
  background-color: #cce5ff !important; /* Lighter shade for disabled */
  color: #ffffff !important;
  border-color: #cce5ff !important;
  pointer-events: none !important;
}

/* PRIMARY BUTTON SIZES */
.btn-primary.btn-sm {
  padding: 5px 10px !important;
  font-size: 0.875em !important;
}

.btn-primary.btn-lg {
  padding: 15px 30px !important;
  font-size: 1.25em !important;
}

/* PRIMARY OUTLINE BUTTONS */
.btn-outline-primary {
  background-color: transparent !important;
  border: 1px solid #404040 !important;
  color: #404040 !important;
}

.btn-outline-primary:hover {
  background-color: rgba(21, 57, 64, 1) !important;
  color: #ffffff !important;
  border-color: rgba(21, 57, 64, 1) !important;
}

/* SECONDARY BUTTON STYLES */
.btn-secondary {
  background-color: #6c757d !important; /* Custom secondary color */
  color: #ffffff !important;
  border: 2px solid #6c757d !important;
}

.btn-secondary:hover {
  background-color: #5a6268 !important; /* Darker shade for hover */
  border-color: #5a6268 !important;
  color: #ffffff !important;
}

.btn-secondary:focus, .btn-secondary:active:focus {
  outline: none !important;
  box-shadow: none !important; /* Custom focus ring */
}

.btn-secondary:active {
  background-color: #4e555b !important; /* Even darker shade for active */
  border-color: #4e555b !important;
}

.btn-secondary:disabled, .btn-secondary[disabled] {
  background-color: #e2e6ea !important; /* Lighter shade for disabled */
  color: #ffffff !important;
  border-color: #e2e6ea !important;
  pointer-events: none !important;
}

/* SECONDARY BUTTON SIZES */
.btn-secondary.btn-sm {
  padding: 5px 10px !important;
  font-size: 0.875em !important;
}

.btn-secondary.btn-lg {
  padding: 15px 30px !important;
  font-size: 1.25em !important;
}

/* SECONDARY OUTLINE BUTTONS */
.btn-outline-secondary {
  background-color: transparent !important;
  border: 2px solid #6c757d !important;
  color: #6c757d !important;
}

.btn-outline-secondary:hover {
  background-color: #6c757d !important;
  color: #ffffff !important;
  border-color: #6c757d !important;
}


/* --------------------------------------------------------------------------
   	TYPOGRAPHY
   -------------------------------------------------------------------------- */

/*

font-family: "europa", sans-serif;
font-weight: 300;
font-style: normal;

font-family: "europa", sans-serif;
font-weight: 300;
font-style: italic;

font-family: "europa", sans-serif;
font-weight: 400;
font-style: normal;

font-family: "europa", sans-serif;
font-weight: 400;
font-style: italic;

font-family: "europa", sans-serif;
font-weight: 700;
font-style: normal;

font-family: "europa", sans-serif;
font-weight: 700;
font-style: italic;

*/

html, body {
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

#primary {
  flex: 1 0 auto;
}

.site-footer {
  flex-shrink: 0;
}




body {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
	font-weight: 300;
	font-style: normal;
	font-size: 20px;
	line-height: 1.25;
}

strong, b, .strong {
	font-weight: 700;
	font-style: normal;
	
}

/* Homepage title, fluid size */

.home h1, .home .h1 {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
	font-weight: 400;
	font-style: normal;
	/*font-size: 2.75em;*/
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--brand-red);
}

/* Enable container queries */
.cq-fit {
  container-type: inline-size;
  text-align: center; /* centers the inline content */
}

/* Fluid, single-line heading */
.fitline {
  display: inline-block;
  white-space: nowrap;
  line-height: 1;
  overflow: visible;
  font-size: clamp(16px, 4.5cqw, 160px);
  transform-origin: center;
}

/* Optional: adjust scaling for narrower containers */
@container (max-width: 420px) {
  .fitline {
    font-size: clamp(14px, 5.5cqw, 120px);
  }
}

/* Disable fluid scaling on mobile (Bootstrap sm breakpoint) */
@media (max-width: 576px) {
  .fitline {
    font-size: 2rem;   /* or whatever fixed size you want */
    white-space: normal; /* allow wrapping if needed */
  }
}







h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 {
	margin-bottom: 1rem !important;	
}


h1, .h1 {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
	font-weight: 400;
	font-style: normal;
	font-size: 2em;
}


h2, .h2 {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
	font-weight: 400;
	font-style: normal;
	font-size: 1.5em;
}

h3, .h3 {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
	font-weight: 400;
	font-style: normal;
	font-size: 1.25em;
	
}

h4, .h4 {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
    font-weight: 700;
    font-style: normal;
    font-size: .75em;
	margin-bottom: 0 !important;
}

h5, .h5 {
	
}

.superheader {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
    font-weight: 400;
    font-style: normal;
    font-size: .75em;
    margin-bottom: 0 !important;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.lead {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
	font-weight: 300;
	font-style: normal;
	font-size: 1.5em;
	line-height: 1.1;
}

.product-section a, .content a {
  	color: var(--brand-red);                    /* default link color */
  	text-decoration: none;          /* remove underline */
  	transition: color 0.25s ease, text-decoration-color 0.25s ease;
}

/* Hover */
.product-section a:hover, .content a:hover,
.product-section a:focus, .content a:focus {
  color: #000;
  text-decoration: none;
}

/* Active (mouse down) */
.product-section a:active, .content a:active {
  color: var(--brand-red);
  text-decoration: none;
}


/* Focus visible (keyboard navigation accessibility) */
.product-section a:focus-visible, .content a:focus-visible {
  outline: none;
}

.content-credits, .content-contact {
	
}

.footnote {
	font-size: .65em;
	font-style: italic;
}

/* custom <ol> numbers */

ol {
  list-style: none; /* remove default numbers */
  counter-reset: item;
  padding-left: 1.5em;
}

ol li {
  counter-increment: item;
  position: relative;
}

ol li::before {
  content: counter(item) ")";
  position: absolute;
  left: -1.5em;
}

.ilovego-red {
	color: #fc3847;
}


/* --------------------------------------------------------------------------
   2) HEADER
   Structure expected:
   <header id="masthead" class="site-header">
     .container-fluid > .header-inner
       .header-logo img
       .header-toggle .bi
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky;          /* default on non-home pages */
  top: 0;
  z-index: 1030;
  background: #fff;
  transition: transform .35s ease, box-shadow .25s ease, background-color .25s ease;
  box-shadow: 0 0 0 rgba(0,0,0,0);
}

.home .site-header {
  position: fixed;           /* hidden off-canvas at load on home */
  width: 100%;
  transform: translateY(-100%);
}

.home .site-header.header--reveal {
  transform: translateY(0);
  box-shadow: var(--header-shadow);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1rem;
}

.header-logo img {
  display: block;
  height: auto;
  width: 100%;
}

.header-logo {
    /* width: 80px; */
    font-weight: 400;
    font-size: 26px;
    letter-spacing: .025em;
}

.header-toggle {
  border: 0;
  background: transparent;
  padding: .5rem;
  line-height: 1;
}
.header-toggle .bi {
  font-size: 1.75rem;
}

/* --------------------------------------------------------------------------
   3) HOMEPAGE HERO
   Structure expected:
   <section class="home-hero" id="homeHero">
     .home-hero-inner > .home-hero-logo (desktop/mobile variants)
   -------------------------------------------------------------------------- */
.home-hero {
  position: relative;
  min-height: 100svh;        /* mobile-safe viewport */
  width: 100%;
  background: var(--brand-red);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.home-hero-inner {
  text-align: center;
}
.home-hero-logo {
  max-width: 400px;
  width: 70vw;
  height: auto;
  opacity: 1;
  transition: opacity .25s linear;
}

/* The content area after the hero */
.home-main {
  background: #fff;
}





/* Basic spacing/typography for the minimal menu */
.header-menu > li > a {
  /*text-decoration: none;
  display: inline-block;
  padding: .25rem .5rem;
  line-height: 1.2;*/
}

.header-menu > li.current-menu-item > a,
.header-menu > li.current_page_parent > a,
.header-menu > li.current-menu-ancestor > a {
  text-decoration: none;
	color: #000;
}

.header-menu > li > a:focus-visible {
  outline: none;
}

/* Optional: slightly tighter header look */
.site-header .header-inner { min-height: 64px; }
/* Optional: shrink the logo a bit on narrow screens */
@media (max-width: 576px) {
  .header-logo img { max-height: 36px; width: auto; height: auto; }
}


/* ------------------------------------------------------------
   Header Menu Link States — overrides all Bootstrap defaults
-------------------------------------------------------------*/
.header-menu a {
	font-family: "europa", Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
	font-weight: 700;
	font-style: normal;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .75em;
  	color: #000;                    /* default link color */
  	text-decoration: none;          /* remove underline */
  	transition: color 0.25s ease, text-decoration-color 0.25s ease;
}

/* Hover */
.header-menu a:hover,
.header-menu a:focus {
  color: var(--brand-red);
  text-decoration: none;
}

/* Active (mouse down) */
.header-menu a:active {
  color: var(--brand-red);
  text-decoration: none;
}

/* Current Page / Active Menu Item */
.header-menu .current-menu-item > a,
.header-menu .current-menu-ancestor > a,
.header-menu .current_page_parent > a {
  color: #000;
  text-decoration: none;
}

/* Focus visible (keyboard navigation accessibility) */
.header-menu a:focus-visible {
  outline: 2px solid #00bce4;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Optional: subdued color for inactive/disabled menu items */
.header-menu .disabled > a,
.header-menu a.disabled {
  color: #999 !important;
  pointer-events: none;
  opacity: 0.6;
}


/* --------------------------------------------------------------------------
   4) PRODUCTS (Repeater)
   Structure expected per row:
   <section class="product-section">
     .row
       .col-lg-7  -> carousel
       .col-lg-5  -> text (title/subtitle/specs/credits)
   -------------------------------------------------------------------------- */
.product-section {
  padding-top: 3rem;
  padding-bottom: 3rem;
  border-bottom: 4px solid #000;
}

/* Typography tweaks (optional, lean on Bootstrap otherwise) */
/*.product-section h2 {
  margin-bottom: .25rem;
}*/

/*.product-section p.text-muted {
  margin-bottom: 1rem;
}*/

/*.product-section .small {
  letter-spacing: .01em;
}*/

.product-section ul {
	margin-left: 0;
    padding-left: 1em;
    list-style: outside square;
}

.product-section:last-child {
	border-bottom: none;
}


.retail-price {
    border: solid 1px #000;
    display: inline-block;
    padding: .5rem 1rem;
}


.divider-row {
    border-bottom: solid 4px #000;
}

.divider-row:last-child {
    border-bottom: none;
}

/* --------------------------------------------------------------------------
   5) CAROUSEL (ACF Gallery + Bootstrap)
   Using Bootstrap controls with caret icons
   -------------------------------------------------------------------------- */
.carousel .carousel-item > img {
  width: 100%;
  height: auto;
}

.carousel-control-prev .bi,
.carousel-control-next .bi {
  font-size: 2rem;
}

/* Wider click targets but not too invasive */
.carousel-control-prev,
.carousel-control-next {
  width: 12%;
}

/* Optional: lighten default control backgrounds on hover (kept subtle) */
.carousel-control-prev:hover,
.carousel-control-next:hover {
  background: linear-gradient(to var(--dir, left), rgba(0,0,0,.05), transparent);
}
.carousel-control-prev { --dir: right; }
.carousel-control-next { --dir: left; }

.carousel-caption {
    position: absolute;
    right: 5%;
    bottom: .25rem;
    left: 5%;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    color: #fff;
    text-align: left;
    font-size: .75em;
	font-style: italic;
}

.qr img {
	width: 100%;
	height: auto;
}

.qr {
	max-width: 200px;
}




/* --------------------------------------------------------------------------
   SINGLE PORTFOLIO POST NAV
   -------------------------------------------------------------------------- */

/* Portfolio thumbnail grid */
.portfolio-thumb-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10px, 1fr));
  gap: .75rem;
  margin: 0 auto;
  padding: 0;
  max-width: 700px; /* Centers and limits total width */
  justify-items: center; /* Centers tiles inside grid */
}

.portfolio-thumb-grid > li {
  list-style: none;
}

.portfolio-thumb-link {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  max-width: 150px;
}

.portfolio-thumb-link img {
  width: 100%;
  height: 100%;
  object-fit: contain; /* <-- keeps image uncropped */
  display: block;
}

.portfolio-thumb-link.is-current {
  /*outline: 2px solid currentColor;
  outline-offset: 2px;*/
	opacity: .5;
}

.portfolio-thumb-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  font-size: .78rem;
  text-align: center;
  padding: .25rem;
  color: #666;
}


/* --------------------------------------------------------------------------
   INFO PAGE
   -------------------------------------------------------------------------- */

.store {
}


/* --------------------------------------------------------------------------
   6) RESPONSIVE REFINEMENTS
   -------------------------------------------------------------------------- */
@media (min-width: 992px) {

}

@media (max-width: 767.98px) {
  .header-inner {
    padding: .5rem .75rem;
  }
  .home-hero-logo {
    width: 78vw; /* a touch larger on small screens */
  }
}


/* --------------------------------------------------------------------------
   7) SCROLL INDICATOR (Homepage Hero)
   -------------------------------------------------------------------------- */
.scroll-indicator {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 1.75rem;
  animation: bounce 1.8s infinite;
  opacity: 0.85;
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translate(-50%, 0); }
  40% { transform: translate(-50%, -10px); }
  60% { transform: translate(-50%, -6px); }
}

/* --------------------------------------------------------------------------
   FOOTER
   -------------------------------------------------------------------------- */


.site-footer {
	background-color: var(--brand-red);
	color: #fff;
	font-weight: 400;
}

.footer-logo img {
	width: 100%;
	height: auto;
	
}

.footer-logo {
	width: 80px;
	display: inline-block;
}




/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

  /*

xs: 0,
sm: 576px,
md: 768px,
lg: 992px,
xl: 1200px,
xxl: 1400px

*/





/*XX-Large devices (larger desktops, 1400px and down)*/
@media (max-width: 1400px) {

}

/*X-Large devices (large desktops, 1200px and down)*/
@media (max-width: 1200px) {
	
}

/*Large devices (desktops, 992px and down)*/
@media (max-width: 992px) {

}

/*Medium devices (tablets, 768px and down)*/
@media (max-width: 768px) {

}

/*Small devices (landscape phones, 576px and down)*/
@media (max-width: 576px) {
	
	body {
		font-size: 16px;
		/*font-weight: 400 !important;*/
	}
	
	h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 {
		/*font-weight: 700 !important;*/	
	}
	
	.home h1, .home .h1 {
		font-weight: 400 !important;
		line-height: 1.1;
	}	
	
	.superheader {
    /*font-weight: 700;*/
}
	
	.lead {
		/*font-weight: 400;*/
	}	
	
}
