/* ========================================
   GRANDMA'S DOG HOUSE - CONSOLIDATED STYLES
   Desktop, Tablet, and Mobile - All in One
   Version: 2.0.0 - Calendarific API Integration
   ======================================== */

/* ===========================================
   BASE STYLES (Desktop & All Devices)
   =========================================== */

/* --- UNIVERSAL BOX SIZING & OVERFLOW PREVENTION --- */
* {
  box-sizing: border-box;
}

html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* --- BODY & LAYOUT --- */
body {
  position: relative; /* Allows absolute positioning of Hoss from page bottom */
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  background-color: white;
}

/* --- TYPOGRAPHY --- */
h1, h2, h3, h4, h5, h6, p {
  font-family: 'Josefin Sans', sans-serif;
  line-height: 1.58;
  font-size: 34px;
}

h1 {
  font-weight: 700;
  text-shadow: 3px 3px 3px #a4a4a4;
  word-wrap: break-word;
  overflow-wrap: break-word;
  max-width: 100%;
}

h2 {
  font-size: 28px;
}

h3 {
  font-weight: 300;
  font-size: 18px;
}

ul {
  font-family: 'Quicksand', sans-serif;
  font-size: 14px;
  letter-spacing: -.01em;
}

p {
  font-weight: 100;
  font-size: 16px;
}

/* --- IMAGES --- */
img, picture {
  display: block;
  margin: 0 auto;
  max-width: 100%;
}

/* --- LAYOUT CONTAINERS --- */
.container-fluid {
  padding: 3% 3%;
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.section-heading {
  font-size: 28px;
  line-height: 1.5;
  margin-left: 3%;
}

.section-padding {
  padding: 5% 2% 5% 2%;
}

.scroll-section {
  scroll-margin-top: 70px;
}

/* --- LOGOS & FEATURED IMAGES --- */
.logo {
  min-width: 75%;
  max-width: 85%;
  transform: rotate(0deg);
}

.about-img {
  position: relative;
  background: #FFFFFF;
  left: -9.5%; /* Tilted photo effect positioning */
  border: 1px solid #CCCCCC;
  border-radius: 5px;
  box-shadow: 30px 30px 30px;
  width: 70%;
  min-width: 330px;
  padding: 20px;
  transform: rotate(20deg);
}

/* --- CONTENT STYLING --- */
.bullets {
  padding-left: 10%;
  padding-right: 10%;
  font-family: 'Quicksand', sans-serif;
  font-size: 14px;
  letter-spacing: -.01em;
}

.caveat {
  padding: 0 15%;
}

.five-stars {
  width: 60%;
}

/* --- TESTIMONIALS --- */
.testimonial-image {
  width: 100%;
  border-radius: 100%;
  color: #000000;
  border: 1px solid #570437;
}

.testimonial-text {
  padding: 0 10%;
  vertical-align: middle;
  align-items: center;
}

/* Carousel wrapper - fixed container */
.carousel-box {
  margin-top: 40px;
  margin-left: 15%;
  margin-right: 15%;
  border: 3px solid #570437;
  border-radius: 50px 2px 50px 2px;
  min-height: 600px;
  overflow: hidden;
  position: relative;
}

/* Content inside carousel items - holds color and padding */
.testimonial-content {
  color: #FFFFFF;
  padding: 5%;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Testimonial carousel color rotation */
.carousel-color-1 { background-color: #9e1d6c; }
.carousel-color-2 { background-color: #8a3f6d; }
.carousel-color-3 { background-color: #855f76; }
.carousel-color-4 { background-color: #894a70; }
.carousel-color-5 { background-color: #8c356a; }

.carousel-control-prev { margin-left: -38px; }
.carousel-control-next { margin-right: -38px; }

/* --- REVIEWS SECTION --- */
.section-title-wrapper {
  text-align: center;
  margin-bottom: 30px;
}

.section-heading-left {
  display: inline-block;
  font-size: 24px;
  font-weight: bold;
  color: #333;
}

.section-heading-left i { margin-right: 8px; }

.review-cards-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.review-card {
  width: 50%;
  margin: 20px 0;
}

.pink-card {
  text-align: center;
  background-color: #fedaf0;
  padding: 20px;
  border: 1px solid #570437;
  border-radius: 8px;
  box-shadow: 0 12px 12px rgba(0, 0, 0, 0.3);
}

.white-card {
  text-align: center;
  background-color: #fff;
  padding: 20px;
  border: 1px solid #570437;
  border-radius: 8px;
  box-shadow: 0 12px 12px rgba(0, 0, 0, 0.3);
}

.card-body p {
  font-family: 'Quicksand', sans-serif;
  font-size: 16px;
  margin: 0 20px 20px;
  color: #333333;
}

.card-body p strong {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 20px;
  font-weight: bold;
}

/* --- PRICING CARDS --- */
.header-day { background-color: #ffd350; }
.header-night { background-color: #033e8a; color: #ffffff; }
.header-multi { background-color: #49038a; color: #ffffff; }

/* --- UTILITY CLASSES --- */
.indent { padding-left: 10%; }

.nowrap { white-space: nowrap; }

/* --- GOOGLE MAP --- */
.google-map {
  height: 550px;
  width: 80%;
}

/* --- CREDENTIALS --- */
.cred-img { max-height: 150px; }

/* --- CONTACT ICONS --- */
.contact-icons { font-size: 36px; }

.contact-icons a {
  display: inline-block;
  margin: 0 8px; /* Spacing between icons */
}

.overlay:hover { color: #0000EE; }

/* --- FOOTER --- */
.footer {
  font-weight: 100;
  color: gray;
  font-size: 16px;
  letter-spacing: -.01em;
  width: 60%;
}

.web-queries {
  font-family: "Times New Roman", Times, serif;
  font-weight: 100;
  font-size: 12px;
  color: #8c8c8c;
  margin: 0 30%;
}

/* --- HOSS HELLO IMAGE (bottom right corner) --- */
.hoss-hello {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 30%;
  max-width: 520px;
  padding-right: 1%;
  pointer-events: none; /* Allows clicking through transparent areas */
}

/* --- SECTION-SPECIFIC STYLES --- */
#title { min-height: 400px; }

#about {
  background-color: #fedaf0;
  scroll-margin-top: 100px;
}

#caveat {
  padding-top: 50px;
  padding-bottom: 50px;
  background-color: #ffc64f;
  margin: 20px 25% 0 25%;
}

#temporary-alert-box {
  background-color: #C20E5E;
  margin: 10px 25% 50px 25%;
  padding: 0;
  display: none;
  scroll-margin-top: 70px;
  border-radius: 10px;
}

.temporary-notice-content {
  padding: 0;
}

/* Individual notice styling with spacing */
.holiday-notice,
.time-notice,
.general-notice {
  padding: 15px;
  border-radius: 8px;
  background-color: rgba(255, 255, 255, 0.15);
  margin: 8px;
  color: white;
}

.holiday-notice:last-child,
.time-notice:last-child,
.general-notice:last-child {
  margin-bottom: 8px;
}

.holiday-notice {
  font-size: 18px;
  font-weight: 700;
}

.time-notice,
.general-notice {
  font-size: 16px;
  font-weight: 400;
}

#temporary-alert-box h2 {
  font-family: 'Josefin Sans', sans-serif;
  font-weight: 700;
  color: white;
  font-size: 20px;
  line-height: 1.58;
}

#testimonials { background-color: #FFFFFF; }

#reviews {
  background-image: url('images/lg/webp/happy_dogs.webp');
  background-repeat: repeat;
  min-height: 400px;
}

#reviews .row {
  margin-top: 30px;
  margin-bottom: 30px;
  display: flex;
  justify-content: center;
}

#reviews .review-card {
  font-family: 'Quicksand', sans-serif;
  font-size: 48px;
  color: #333333;
}

#find { padding-bottom: 0; }
#credentials { padding-bottom: 15%; }

#pricing {
  background-color: #fedaf0;
  scroll-margin-top: 120px;
}

#contact { background-color: #fedaf0; }

#footer { padding: 1%; }

/* --- DYNAMIC HOLIDAY THEMES --- */
/* Each US federal holiday has its own unique color scheme */

/* New Year's Eve/Day - Blue, silver, gold sparkle */
.nye-theme { 
  background-color: #1a1a2e !important; 
  color: #ffffff !important; 
  border: 4px solid #ffd700 !important; 
}

/* MLK Day - Purple and gold (dignity and justice) */
.mlk-theme {
  background-color: #4a148c !important;
  color: #ffffff !important;
  border: 4px solid #ffd700 !important;
}

/* Valentine's Day - Pink and red hearts */
.valentine-theme { 
  background-color: #fce7f3 !important; 
  color: #9d174d !important; 
  border: 4px solid #f43f5e !important; 
}

/* Presidents' Day - Red, white, and blue patriotic */
.presidents-theme {
  background-color: #ffffff !important;
  color: #1e3a8a !important;
  border: 4px solid #dc2626 !important;
}

/* International Women's Day - Purple (suffragette) */
.women-theme { 
  background-color: #581c87 !important; 
  color: #ffffff !important; 
  border: 4px solid #d8b4fe !important; 
}

/* St. Patrick's Day - Green and gold shamrocks */
.stpatrick-theme { 
  background-color: #dcfce7 !important; 
  color: #166534 !important; 
  border: 4px solid #eab308 !important; 
}

/* Easter - Pastel spring colors */
.easter-theme {
  background-color: #fef3c7 !important;
  color: #92400e !important;
  border: 4px solid #f59e0b !important;
}

/* Memorial Day - Somber red, white, blue with poppies */
.memorial-theme {
  background-color: #7f1d1d !important;
  color: #ffffff !important;
  border: 4px solid #fecaca !important;
}

/* Juneteenth - Red, black, green (Pan-African) */
.juneteenth-theme {
  background-color: #000000 !important;
  color: #16a34a !important;
  border: 4px solid #dc2626 !important;
}

/* Independence Day / July 4th - Bright patriotic fireworks */
.july4th-theme {
  background-color: #1e3a8a !important;
  color: #ffffff !important;
  border: 4px solid #ef4444 !important;
}

/* Labor Day - Blue collar worker tribute */
.labor-theme {
  background-color: #1e40af !important;
  color: #ffffff !important;
  border: 4px solid #f59e0b !important;
}

/* Columbus/Indigenous Peoples' Day - Autumn earth tones */
.columbus-theme {
  background-color: #92400e !important;
  color: #fef3c7 !important;
  border: 4px solid #f59e0b !important;
}

/* Halloween - Black and orange spooky */
.spooky-theme { 
  background-color: #000000 !important; 
  color: #f97316 !important; 
  border: 4px solid #7e22ce !important; 
}

/* Veterans Day - Military green and gold medals */
.veterans-theme {
  background-color: #14532d !important;
  color: #ffffff !important;
  border: 4px solid #fbbf24 !important;
}

/* Thanksgiving - Warm autumn harvest colors */
.thanksgiving-theme { 
  background-color: #78350f !important; 
  color: #fbbf24 !important; 
  border: 4px solid #ea580c !important; 
}

/* Christmas - Traditional red and green festive */
.christmas-theme { 
  background-color: #064e3b !important; 
  color: #ffffff !important; 
  border: 4px solid #dc2626 !important; 
}

/* Legacy festive theme for non-Christmas winter holidays */
.festive-theme { 
  background-color: #064e3b !important; 
  color: #ffffff !important; 
  border: 4px solid #facc15 !important; 
}

/* Theme-specific text colors for light backgrounds */
.valentine-theme h2, .valentine-theme i, 
.stpatrick-theme h2, .stpatrick-theme i,
.easter-theme h2, .easter-theme i,
.presidents-theme h2, .presidents-theme i,
.columbus-theme h2, .columbus-theme i {
  color: inherit !important;
}

/* Theme-specific text colors for dark backgrounds */
.nye-theme h2, .mlk-theme h2, .women-theme h2, 
.memorial-theme h2, .juneteenth-theme h2, .july4th-theme h2,
.labor-theme h2, .spooky-theme h2, .veterans-theme h2,
.thanksgiving-theme h2, .christmas-theme h2, .festive-theme h2,
.nye-theme i, .mlk-theme i, .women-theme i,
.memorial-theme i, .juneteenth-theme i, .july4th-theme i,
.labor-theme i, .spooky-theme i, .veterans-theme i,
.thanksgiving-theme i, .christmas-theme i, .festive-theme i {
  color: #ffffff !important;
}

/* ===========================================
   TABLET STYLES (992px and below)
   =========================================== */

@media only screen and (max-width: 992px) {

  /* --- BODY & TYPOGRAPHY --- */
  body {
    padding-top: 50px;
  }

  h1 {
    font-size: 30px;
  }

  h2 {
    line-height: 1.2;
  }

  h4 {
    font-size: 24px;
  }

  /* --- LAYOUT ADJUSTMENTS --- */
  .section-heading {
    font-size: 26px;
    margin-top: 10%;
  }

  .scroll-section {
    scroll-margin-top: 20px;
  }

  /* --- LOGO & IMAGES --- */
  .logo {
    margin: 6% auto;
    min-width: 300px;
    max-width: 50%;
  }

  .about-img {
    left: 0;
    margin: 0 auto 7%;
    width: 50%;
    min-width: 100px;
    box-shadow: 15px 15px 15px;
    padding: 15px;
  }

  /* --- TESTIMONIALS --- */
  .testimonial-text {
    padding: 0 16% 5%;
  }

  .testimonial-image {
    width: 60%;
    border-radius: 100%;
    border: 1px solid #570437;
  }

  .carousel-box {
    min-height: 800px;
    border-radius: 15px 15px 15px 15px;
  }

  .testimonial-content {
    min-height: 800px;
  }

  .carousel-control-prev {
    margin-left: -20px;
  }

  .carousel-control-next {
    margin-right: -20px;
  }

  /* --- REVIEW CARDS --- */
  .pink-card {
    min-width: 80%;
  }

  .white-card {
    min-width: 80%;
  }

  /* --- PRICING CARDS --- */
  .price-card {
    margin: 8px 15%;
  }

  /* Center the third pricing card when it wraps to its own row */
  #pricing .row {
    justify-content: center;
  }

  /* --- GOOGLE MAP --- */
  .google-map {
    height: 400px;
    width: 90%;
  }

  /* --- CREDENTIALS --- */
  .cred-img {
    height: 90px;
  }

  /* --- CONTACT ICONS --- */
  .contact-icons {
    font-size: 25px;
  }

  /* --- FOOTER --- */
  .footer {
    font-size: 14px;
  }

  /* --- SECTION-SPECIFIC ADJUSTMENTS --- */
  #title {
    scroll-margin-top: 70px;
  }

  #testimonials {
    padding-bottom: 15%;
  }

  #caveat {
    padding: 5% 0;
    background-color: #ffc64f;
    margin: 3% 6%;
  }

  /* --- TEMPORARY NOTICE BOX (matches caveat styling) --- */
  #temporary-alert-box {
    margin: 3% 12%;
    padding: 0;
    scroll-margin-top: 20px;
  }

  .temporary-notice-content {
    padding: 0;
  }

  /* Tablet notice spacing */
  .holiday-notice,
  .time-notice,
  .general-notice {
    margin: 8px;
    padding: 12px;
    font-size: 16px;
  }

  #temporary-alert-box h2 {
    font-size: 18px;
    line-height: 1.2;
  }
}

/* ===========================================
   MOBILE STYLES (480px and below)
   =========================================== */

@media only screen and (max-width: 480px) {

  /* --- BODY & TYPOGRAPHY --- */
  body {
    padding-top: 80px;
    width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .container-fluid {
    padding-left: 3%;
    padding-right: 3%;
    max-width: 100vw;
    overflow-x: hidden;
  }

  .row {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
    overflow-x: hidden;
  }

  [class*="col-"] {
    padding-left: 10px;
    padding-right: 10px;
    max-width: 100%;
  }

  h1 {
    font-size: 18px;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    padding: 0 3%;
    max-width: 100%;
    line-height: 1.3;
  }

  h2 {
    font-size: 18px;
    max-width: 100%;
    word-wrap: break-word;
  }

  h3 {
    font-size: 13px;
    padding: 0 3%;
    word-wrap: break-word;
    overflow-wrap: break-word;
    max-width: 100%;
    line-height: 1.4;
  }

  .intro {
    line-height: 1.5;
    margin-top: 15px;
    max-width: 100%;
  }

  .logo {
    margin: 20px auto;
    min-width: 200px;
    max-width: 80%;
  }

  h4 {
    font-size: 20px;
  }

  /* --- LAYOUT ADJUSTMENTS --- */
  .section-heading {
    font-size: 20px;
    margin-left: 3%;
  }

  .section-padding {
    padding-left: 3%;
    padding-right: 3%;
  }

  .scroll-section {
    scroll-margin-top: 90px;
  }

  /* --- IMAGES --- */
  .about-img {
    position: absolute;
    top: -15%;
    left: 50%;
    transform: translateX(-50%) rotate(20deg);
    width: 50%;
    box-shadow: 15px 15px 15px;
    padding: 15px;
    max-width: 100%;
    z-index: 10;
  }

  /* --- CONTENT --- */
  .bullets {
    font-size: 12px;
    padding-left: 5%;
    padding-right: 5%;
  }

  .indent {
    padding-left: 5%;
    padding-right: 5%;
  }

  /* --- TESTIMONIALS --- */
  .carousel-box {
    min-height: 550px;
    border-radius: 10px 10px 10px 10px;
    margin-top: 20px;
  }

  .testimonial-content {
    min-height: 550px;
    padding: 8% 5%;
  }

  .carousel-inner,
  .carousel-item {
    height: 100%;
  }

  .carousel-item .row {
    margin: 0;
    width: 100%;
  }

  .testimonial-text {
    padding: 0 5%;
  }

  .testimonial-text h2 {
    font-size: 15px;
    line-height: 1.4;
    margin: 10px 0;
  }

  .testimonial-image {
    width: 50%;
    margin-top: 5%;
  }

  .five-stars {
    width: 70%;
    max-width: 180px;
  }

  .carousel-control-prev {
    margin-left: -7px;
  }

  .carousel-control-next {
    margin-right: -7px;
  }

  /* --- TESTIMONIALS SECTION MOBILE --- */
  #testimonials {
    padding-top: 5%;
    padding-bottom: 5%;
  }

  #testimonial-carousel {
    padding-left: 0;
    padding-right: 0;
  }

  /* --- REVIEW CARDS --- */
  .pink-card {
    min-width: 90%;
    max-width: 100%;
  }

  .white-card {
    min-width: 90%;
    max-width: 100%;
  }

  .review-card {
    width: 90%;
    max-width: 100%;
  }

  /* --- PRICING CARDS --- */
  .price-cards {
    margin: 0%;
  }

  /* --- CREDENTIALS --- */
  .cred-img {
    height: 50px;
  }

  /* --- FOOTER --- */
  .footer {
    font-size: 12px;
    width: 90%;
    margin: 0 auto;
  }

  .web-queries {
    margin: 0 5%;
    width: 90%;
  }

  /* --- SECTION-SPECIFIC ADJUSTMENTS --- */
  #title {
    scroll-margin-top: 90px;
    padding-top: 3%;
    width: 100%;
    max-width: 100vw;
    overflow: hidden;
  }

  #title .row {
    margin: 0;
    width: 100%;
    max-width: 100%;
  }

  #title .col-lg-6 {
    padding: 0 10px;
    width: 100%;
    max-width: 100%;
  }

  /* --- ABOUT SECTION MOBILE FIX --- */
  #about {
    padding-top: 2%;
    padding-bottom: 10%;
    overflow: visible;
    position: relative;
  }

  #about .row {
    margin-top: 45%;
  }

  #caveat {
    padding: 5%;
    background-color: #ffc64f;
    margin: 3% 5%;
    max-width: 90%;
  }

  /* --- TEMPORARY NOTICE BOX (matches caveat styling for mobile) --- */
  #temporary-alert-box {
    margin: 10% 5% 12% 5%;
    padding: 0;
    scroll-margin-top: 90px;
    max-width: 90%;
  }

  .temporary-notice-content {
    padding: 0;
  }

  /* Mobile notice spacing - thinner border on small screens */
  .holiday-notice,
  .time-notice,
  .general-notice {
    margin: 4px;
    padding: 10px;
    font-size: 14px;
  }

  .holiday-notice {
    font-weight: 700;
  }

  .time-notice,
  .general-notice {
    font-weight: 400;
  }

  #temporary-alert-box h2 {
    font-size: 14px;
    line-height: 1.2;
  }

  /* --- HOSS IMAGE MOBILE FIX --- */
  .hoss-hello {
    display: block;
    width: 25%;
    max-width: 100px;
    bottom: 0;
    right: 0px;
  }

  /* --- CONTACT SECTION MOBILE ADJUSTMENT --- */
  #contact {
    width: 100%;
    margin-left: 0;
    padding-bottom: 7%;
  }
  
  #contact .indent {
    padding-left: 5%;
    padding-right: 5%;
  }

  /* --- DOG JOKE SECTION MOBILE --- */
  .dog-joke-card {
    width: 90%;
    max-width: 100%;
    padding: 20px 15px;
  }

  .dog-joke-text {
    font-size: 16px;
  }
}

/* ========================================
   DAD JOKE SECTION STYLES
   Add this to your styles.css file
   ======================================== */

/* Dad Joke Container */
.dog-joke-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px 0;
}

/* Dad Joke Card - Using pink card style to match reviews */
.dog-joke-card {
  width: 60%;
  max-width: 800px;
  text-align: center;
  background-color: #fedaf0;
  padding: 30px;
  border: 1px solid #570437;
  border-radius: 8px;
  box-shadow: 0 12px 12px rgba(0, 0, 0, 0.3);
  margin: 20px 0;
}

/* Dad Joke Text */
.dog-joke-text {
  font-family: 'Quicksand', sans-serif;
  font-size: 20px;
  color: #333333;
  line-height: 1.6;
  margin: 0;
  font-style: italic;
}

/* ========================================
   RESPONSIVE STYLES
   ======================================== */

/* Tablet (768px and below) */
@media (max-width: 768px) {
  .dog-joke-card {
    width: 75%;
    padding: 25px;
  }

  .dog-joke-text {
    font-size: 18px;
  }
}

/* Mobile (576px and below) */
@media (max-width: 576px) {
  .dog-joke-card {
    width: 90%;
    padding: 20px;
  }

  .dog-joke-text {
    font-size: 16px;
  }
}