/*
 Theme Name:   Gigmann Child
 Theme URI:    https://gigmann.com
 Description:  Nu-90s editorial facelift for Gigmann.com. Child theme of Gentium.
 Author:       Alex Harris
 Template:     edition
 Version:      1.0
 Text Domain:  gigmann-child
*/

/* ---------- If Gentium's original homepage carousel needs hiding ---------- */
/* Once activated, if you see TWO heroes stacked on the homepage, tell Alex's       */
/* assistant the class/ID of the old one and this single line gets added here:     */
/* .old-carousel-class-name { display:none !important; } */

/* ---------- Base palette ---------- */
:root{
  --gm-black:#0D0D0D;
  --gm-off-white:#F5F3EF;
  --gm-red:#C8102E;
  --gm-red-hover:#A50D26;
  --gm-gray-mid:#8a8a86;
  --gm-card-bg:#242424;
}

/* ---------- Hero wrapper ---------- */
.gm-hero{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#0D0D0D;
  color:var(--gm-off-white);
}
.gm-hero--fullscreen{ height:100vh; min-height:480px; }
.gm-hero--section{ height:var(--gm-hero-height, 70vh); }
.gm-hero--linked{ height:60vh; min-height:360px; }

.gm-hero__media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.gm-hero__grain{
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:repeating-linear-gradient(0deg, rgba(255,255,255,0.03) 0px, rgba(255,255,255,0.03) 1px, transparent 1px, transparent 3px);
}
.gm-hero__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(0deg, rgba(0,0,0,var(--gm-overlay,0.55)) 0%, rgba(0,0,0,0.15) 45%, rgba(0,0,0,0.3) 100%);
}
.gm-hero__content{
  position:relative;
  z-index:2;
  max-width:680px;
  padding:2rem;
  position:absolute;
  left:0;
  bottom:2.5rem;
}
.gm-hero__badge{
  display:inline-block;
  background:var(--gm-red);
  color:#fff;
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:5px 12px;
  border-radius:2px;
  margin-bottom:16px;
}
.gm-hero__headline{
  font-size:clamp(28px, 6vw, 56px);
  line-height:1.05;
  font-weight:800;
  letter-spacing:-1px;
  margin:0 0 12px;
  color:#FFFFFF;
}
.gm-hero__subhead{
  font-size:16px;
  color:#e3e1db;
  margin:0 0 18px;
  max-width:520px;
}
.gm-hero__cta{
  display:inline-block;
  background:var(--gm-red);
  color:#fff;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  text-decoration:none;
  padding:12px 22px;
  border-radius:2px;
}
.gm-hero__cta:hover{ background:var(--gm-red-hover); }

/* ---------- Carousel dots ---------- */
.gm-hero__dots{
  position:absolute;
  z-index:2;
  left:2rem;
  right:2rem;
  bottom:1.5rem;
  display:flex;
  gap:8px;
}
.gm-hero__dot{
  flex:1;
  height:44px;
  border-radius:2px;
  border:none;
  cursor:pointer;
  background-size:cover;
  background-position:center;
  opacity:0.55;
  border-bottom:2px solid transparent;
  transition:opacity 0.2s ease;
}
.gm-hero__dot:hover{ opacity:0.85; }
.gm-hero__dot.is-active{
  opacity:1;
  border-bottom:2px solid var(--gm-red);
}

/* ---------- Latest posts grid ---------- */
.gm-latest{ padding:2.5rem 1.75rem 1rem; }
.gm-latest__head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:1.1rem;
}
.gm-latest__head h2{
  font-size:22px;
  font-weight:800;
  letter-spacing:-0.5px;
  margin:0;
}
.gm-latest__viewall{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.5px;
  color:var(--gm-red);
  text-decoration:none;
}
.gm-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}
@media (max-width:780px){
  .gm-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:480px){
  .gm-grid{ grid-template-columns:1fr; }
}
.gm-card__thumb{
  height:130px;
  border-radius:4px;
  background-size:cover;
  background-position:center;
  background-color:var(--gm-card-bg);
  margin-bottom:10px;
  position:relative;
}
.gm-card__thumb::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:3px;
  background:var(--gm-red);
  border-radius:0 0 4px 4px;
}
.gm-card__label{
  font-size:10px;
  letter-spacing:0.5px;
  text-transform:uppercase;
  color:var(--gm-gray-mid);
  margin-bottom:4px;
}
.gm-card__title{
  font-size:15px;
  font-weight:700;
  line-height:1.25;
  margin:0;
}
.gm-card__title a{ color:inherit; text-decoration:none; }
.gm-card__title a:hover{ text-decoration:underline; }

/* ---------- Classic Editor content styling ---------- */
.entry-content, .page-content{
  max-width:680px;
  font-size:16px;
  line-height:1.7;
}
.entry-content blockquote{
  border-left:3px solid var(--gm-red);
  background:rgba(200,16,46,0.06);
  padding:1rem 1.25rem;
  margin:1.5rem 0;
  font-style:italic;
}
.entry-content h2, .entry-content h3{ letter-spacing:-0.3px; }
.entry-content img{ border-radius:4px; height:auto; max-width:100%; }
.entry-content figcaption{
  font-size:13px;
  color:var(--gm-gray-mid);
  margin-top:6px;
}

/* ---------- Search / 404 ---------- */
.gm-empty-state{
  padding:3rem 1.75rem;
  text-align:center;
}
.gm-empty-state h1{ font-size:24px; font-weight:800; }

/* ---------- Pinboard (replaces straight Latest grid) ---------- */
.gm-board{
  position:relative;
  padding:2.25rem 1.75rem 2.75rem;
  background:
    repeating-linear-gradient(45deg,#241d16,#241d16 2px,#2b231a 2px,#2b231a 4px);
  border-top:6px solid #1a1410;
  border-bottom:6px solid #1a1410;
}
.gm-board__head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:1.6rem;
}
.gm-board__head h2{
  font-size:22px;
  font-weight:800;
  letter-spacing:-0.5px;
  margin:0;
  color:var(--gm-off-white);
}
.gm-board__viewall{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.5px;
  color:var(--gm-red);
  text-decoration:none;
}
.gm-pin-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:34px 22px;
}
@media (max-width:780px){
  .gm-pin-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:480px){
  .gm-pin-grid{ grid-template-columns:1fr; gap:30px 0; }
}
.gm-pin-card{
  position:relative;
  background:var(--gm-off-white);
  padding:10px 10px 14px;
  box-shadow:2px 4px 10px rgba(0,0,0,0.45);
}
.gm-pin-card__thumb{
  height:120px;
  background-size:cover;
  background-position:center;
  background-color:#242424;
  margin-bottom:8px;
}
.gm-pin-card__label{
  font-size:9px;
  letter-spacing:0.5px;
  text-transform:uppercase;
  color:var(--gm-gray-mid);
  margin-bottom:3px;
}
.gm-pin-card__title{
  font-size:13px;
  font-weight:700;
  color:var(--gm-black);
  line-height:1.25;
  margin:0;
}
.gm-pin-card__title a{ color:inherit; text-decoration:none; }
.gm-pin-card__title a:hover{ text-decoration:underline; }
.gm-pin-card__pin{
  position:absolute;
  left:50%;
  top:-9px;
  transform:translateX(-50%);
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--gm-red);
  box-shadow:0 2px 3px rgba(0,0,0,0.4);
}
.gm-pin-card__tape{
  position:absolute;
  left:18px;
  top:-7px;
  width:38px;
  height:16px;
  background:rgba(245,222,179,0.55);
}

/* ---------- Blog index / archive / category / tag / author ---------- */
.blog .site-main, .archive .site-main, .search .site-main{
  padding:2rem 1.75rem;
}
.blog article, .archive article, .search article{
  border-bottom:1px solid rgba(245,243,239,0.1);
  padding-bottom:1.5rem;
  margin-bottom:1.5rem;
}
.blog .entry-title a, .archive .entry-title a{
  color:var(--gm-off-white);
  text-decoration:none;
  font-weight:800;
  letter-spacing:-0.3px;
}
.blog .entry-title a:hover, .archive .entry-title a:hover{ color:var(--gm-red); }
.blog .entry-thumbnail img, .archive .entry-thumbnail img{
  border-radius:4px;
}

/* Pagination (blog, testimonials index) */
.pagination, .nav-links, .page-links{
  display:flex;
  gap:8px;
  margin-top:1.5rem;
}
.pagination .page-numbers, .nav-links a, .nav-links span{
  padding:8px 14px;
  border-radius:2px;
  border:1px solid rgba(245,243,239,0.2);
  color:var(--gm-off-white);
  text-decoration:none;
  font-size:13px;
}
.pagination .current, .nav-links .current{
  background:var(--gm-red);
  border-color:var(--gm-red);
  color:#fff;
}

/* ---------- Testimonials (WP Testimonials Pro output) ---------- */
.wptestimonials-item, .wp-testimonials-pro-item, div[class*="testimonial"]{
  border-left:3px solid var(--gm-red);
  background:rgba(200,16,46,0.06);
  border-radius:0 4px 4px 0;
  padding:1.25rem 1.5rem;
  margin-bottom:1.25rem;
}
.gm-testimonial-form input[type="text"],
.gm-testimonial-form input[type="email"],
.gm-testimonial-form textarea,
form[class*="testimonial"] input[type="text"],
form[class*="testimonial"] input[type="email"],
form[class*="testimonial"] textarea{
  background:#1a1a1a;
  border:1px solid rgba(245,243,239,0.2);
  color:var(--gm-off-white);
  border-radius:2px;
  padding:10px 12px;
  width:100%;
  margin-bottom:12px;
}
form[class*="testimonial"] input[type="submit"]{
  background:var(--gm-red);
  color:#fff;
  border:none;
  border-radius:2px;
  padding:11px 22px;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  cursor:pointer;
}

/* ---------- Gigmann TV ---------- */
.page-template-tv iframe, .page-template-tv .wp-video, .page-template-tv video{
  border-radius:6px;
  border:1px solid rgba(245,243,239,0.1);
}

/* ---------- Merch (Spreadshop embed wrapper — spacing only) ---------- */
.page-template-merch .entry-content{
  max-width:100%;
}

/* ---------- Search results / 404 ---------- */
.search-no-results .page-content,
.error-404 .page-content{
  text-align:center;
  padding:3rem 1.75rem;
}
.error-404 .page-title, .search-no-results .page-title{
  font-size:26px;
  font-weight:800;
}

/* ---------- Cookie bar override ---------- */
#cookie-notice, .cookie-notice-container{
  background:var(--gm-black) !important;
}
#cn-accept-cookie, .cn-set-cookie{
  background:var(--gm-red) !important;
  border-radius:2px !important;
}
body { outline: 8px solid #C8102E !important; }
