:root{
    --primary-color: #27296D;
    --secondary-color: #5E63B6; 
    --third-color: #A393EB;
    --accent-color: #F5C7F7;
}
body{ margin: 0;}
html { scroll-behavior: smooth; }

.great-vibes-regular { font-family: "Great Vibes", cursive; font-weight: 400; font-style: normal;}
.montserrat-regular { font-family: "Montserrat", sans-serif; font-weight: 400; font-style: normal;}
.playfair-display-regular { font-family: "Playfair Display", serif; font-weight: 400; font-style: normal;}
.lato-light { font-family: "Lato", sans-serif; font-weight: 300; font-style: normal;}

.navbar {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
}

.navbar-brand .logo-img {
    height: 68px; 
    width: auto;
}

.hero-container {
    position: relative;
    background-image: url(images/heroimg.jpg);
    background-size: cover;
    background-position: center;
    width: 100%;
    min-height: 110vh;
    min-height: 100svh;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    z-index: 1;
}
.hero-container::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    width: 100%;
    height: 100%;
    background: rgba(39, 41, 109, 0.5); 
    z-index: 2;
    pointer-events: none;
}
.hero-container > * {
    position: relative;
    z-index: 3;
}
.hero-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start; 
    text-align: left;        
    max-width: 900px;        
}
.hero-container h1 {
    font-size: 48px;
    text-align: left;
    color: #fff;
    font-family: "Playfair Display", serif;
    line-height: 1.15;
}
.hero-container .tagline{
    font-size: 20px;
    color: #fff;
    font-family: "Lato", sans-serif;
    font-weight: 300;
    margin-top: 20px ;
    text-align: left;
}

.btn-primary {
    background-color: var(--accent-color) !important;
    color: #000 !important; 
    border-color: var(--accent-color) !important;
}
.btn-primary:hover {
    background-color: var(--third-color) !important;
    color: #fff!important;
    
}

a i{
  color: #FFC007 !important;
}
.btn-outline-dark{
    box-shadow: 0 3px 12px rgba(94,99,182,.25);
  transition: all .2s ease;

}
.btn-outline-dark:hover {
  background-color: var(--secondary-color)!important;
  color: #fff;
}



h2, h3 {
    font-family: "Playfair Display", serif !important;
    font-weight: 400;
    color: var(--primary-color) !important;
}

h2{
    font-size: 36px !important;
}

.bg-custom {
    background-color: var(--third-color) !important;
    padding: 50px 0;
}
 h3 i {
    color: var(--third-color) !important;
}
  
.cta-img {
    height: 500px;       
    object-fit: cover;    
    width: 100%;
  }

#contact{ 
    padding-top: 140px;
}
.contact-heading h2{
    color: #fff !important;
}
.contact-band { 
    min-height: 380px; 
}
.contact-img { 
    position: absolute; 
    inset: 0; 
}
.icon-fixed {
  width: 1.25rem;   
  text-align: center;
  line-height: 1.3;
}

.contact-overlay {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 360px;
  background: linear-gradient(
    90deg,
    rgba(24,22,60,.92) 0%,
    rgba(24,22,60,.92) 40%,
    rgba(24,22,60,.55) 60%,
    rgba(24,22,60,0) 80%
  );
}

.object-fit-cover { object-fit: cover; }



@media (max-width: 991.98px) {
  .contact-overlay {
    background: rgba(24,22,60,.75);
    align-items: flex-end;
  }
}


  @media (min-width: 768px) {
    .w-md-auto { width: auto !important; }
    .hero-container h1 {font-size: 68px; }
  }

#services-accordion .accordion-button i { margin-right: .5rem; }
#services-accordion .accordion-item { border-color: rgba(0,0,0,.06); }

@media (max-width: 767.98px){
  #services-grid { display: none !important; }
  #services-accordion { display: block !important; }
}

@media (min-width: 768px){
  #services-accordion { display: none !important; }
  #services-grid { display: block !important; }
}

@media (min-width: 992px){
h1 {font-size: 64px; text-align: left;}
p .tagline{font-size: 24px;}
h2{font-size: 40px;}
}


@media (max-width: 575.98px) {
 
  html, body { 
    overflow-x: hidden; 
}
  .container { 
    padding-left: 16px; 
    padding-right: 16px; 
}

 
  .navbar { 
    padding-top: .35rem; 
    padding-bottom: .35rem; 
}
  .navbar-brand img {
     height: 48px; 
    }
  .navbar .nav-link {
     padding: 12px 0;
     font-size: 16px; 
    }
  .navbar-toggler { 
    padding: .5rem .6rem; 
}


  .hero-container { 
    min-height: 100svh; 
    padding: 72px 0 32px; 
}
  .hero-content { 
    max-width: 92%; 
    padding: 0; 
    align-items: flex-start; 
}
  .hero-container h1 { 
    
    line-height: 1.15; 
}
  .hero-container .tagline { 
    font-size: 18px; 
    line-height: 1.45; 
    margin-top: 12px; 
}
  .hero-container .btn { 
    width: 100%; 
    padding: 12px 16px; 
    font-size: 16px; 
}

  
  #services { 
    margin-top: 24px !important; 
}
  #services .fw-light { 
    font-size: 15px; 
}
  
  #services-accordion .accordion-button { 
    padding: 14px 16px; 
    font-size: 16px; 
}
  #services-accordion .accordion-button i { 
    width: 1.25rem; 
    text-align: center; 
}
  #services-accordion .accordion-body { 
    padding: 12px 16px 16px; 
}
  #services-accordion p { 
    margin-bottom: .5rem; 
}

 
  .cta-img { 
    height: 260px; 
} 
  #giftcards .card { 
    padding: 16px; 
}
  #giftcards .card-title { 
    font-size: 18px; 
}
  #giftcards .card-text { 
    font-size: 15px; 
}
  #giftcards .btn { 
    width: 100%; 
    padding: 10px 16px; 
}


  #testimonials p { 
    font-size: 15px; 
    line-height: 1.5; 
}
  #testimonials .bg-custom { 
    padding: 16px; 
}

  
  .contact-band { 
    min-height: 320px; 
}
  .contact-overlay { 
    background: rgba(24,22,60,.82); 
}
  #contact .p-lg-5 { 
    padding: 1rem !important; } /* collapse large padding on mobile */
  #contact h2.fs-4 { 
    font-size: 20px !important; 
}
  #contact .text-white-50 { 
    font-size: 14px; 
}
  #contact .icon-fixed { 
    width: 1.25rem; 
    margin-top: 2px; 
}
  #contact a { 
    word-break: break-word; 
}
#contact {
    padding-top: 72px;
}
  
  footer .img-fluid { 
    max-width: 220px !important;
}
  footer h3.fs-6 { 
    font-size: 15px !important; 
}
  footer .days, footer .hours { 
    padding-top: 2px; 
    padding-bottom: 2px; 
}
  footer nav { 
    margin-top: 12px; 
}
}
/* Scale the logo down a touch on mobile */
@media (max-width: 575.98px) {
  footer .container { padding-left: 16px; padding-right: 16px; }
  .hours-col{ text-align:center; }
  .hours-col .row{
    display:grid;
    grid-template-columns: 70px 1fr; /* day | time */
    gap:4px 12px; margin:2px 0;
  }
  .hours-col .days{ font-weight:600; text-align:right; }
  .hours-col .hours{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .logo-col img{ max-width:180px !important; display:block; margin:10px auto 0; }
}
.links-col ul{ display:flex; flex-wrap:wrap; gap:8px 16px; padding:0; margin:0; list-style:none; }
.links-col li{ margin:0; }
.links-col a{ display:inline-block; white-space:nowrap; padding:6px 4px; font-size:16px; color:#6c757d; text-decoration:none; }
.links-col a:hover{ color:var(--primary-color); text-decoration:underline; 
}


@media (max-width: 767.98px) {
  .hero-title { 
    letter-spacing: .2px; 
}
  .btn { 
    border-radius: 12px; 
}

  .hours-col{ text-align:center; }
  .hours-col .row{
    display:grid;
    grid-template-columns: 90px 1fr;  /* day | time */
    justify-content:center;
    align-items:start;
    gap:4px 12px;
    margin:2px 0;
  }
  .hours-col .days{ font-weight:600; text-align:right; }
  .hours-col .hours{ font-weight:300; text-align:left; }

  /* Logo sits below, scaled and centered */
  .logo-col img{
    max-width: 180px !important;
    display:block;
    margin:8px auto 0;
  }
}
@media (min-width: 768px) and (max-width: 991.98px){
  .logo-col img{ max-width: 240px !important; }
}

/* Footer polish */
footer a { 
    color: #6c757d; 
    text-decoration: none; }
footer a:hover { 
    color: var(--primary-color); 
    text-decoration: underline; }

/* Hours table: nicer rhythm on small screens */
.hours-col .row { 
    margin-left: 0; 
    margin-right: 0; }
.hours-col .days, .hours-col .hours { 
    padding-top: 2px; 
    padding-bottom: 2px; }






/* Medium tablets – keep things balanced */
@media (min-width: 768px) and (max-width: 991.98px) {
  .logo-col img { max-width: 240px !important; }
  .links-col li { padding: 4px 0; }
}



@media (max-width: 767.98px) {
  .hours-col { text-align: center; }
  /* Make each hours "row" a tidy 2-col grid, centered */
  .hours-col .row {
    display: grid;
    grid-template-columns: 90px 1fr;   /* day | time */
    justify-content: center;
    align-items: start;
    gap: 4px 12px;
    margin: 2px 0;
  }
  .hours-col .days { font-weight: 600; text-align: right; }
  .hours-col .hours { font-weight: 300; text-align: left; }
  /* headings inside hours */
  .hours-col h3.fs-6 { text-align: center; }
}

@media (max-width: 767.98px) {
  .logo-col img {
    max-width: 180px !important;
    display: block;
    margin: 8px auto 0;
  }
}


footer .text-center.text-muted.small{
  margin-top: 12px;
  font-size: 13px;
}





