/* colour palette */
:root { 
    --platinum: #dedee0;
    --blue-munsell: #59a5b4bd;
    --space-cadet: #3d315b;
    --dark-purple: #2b193d; 
    --jet: #343432;
    --silver:#b7b8b4;
    --eerie-black:#262625;
    --celeste:#bffff1;
    --warm-rose: #b86d75;
    --bg: #F3F4F6;
    --text:#1C1E21;
    --divider-soft: #E2E4E8;
    --divider: #D1D5DB;
    --divider-strong: #9CA3AF;

  }

html{
  scroll-behavior: smooth;
}

#mission{
  transform:scale(1); 
}

body {
    /* height: 100vh; */
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #F3F4F6;
    color:#1C1E21;
    text-align: center;
    overflow: auto;
    font-family: "Segoe UI", Arial, sans-serif;
    font-size: 19px;
    /*
    font-family: "Poppins", sans-serif;
    font-family: "Inter", sans-serif; */
    /* cssgradient.io. */
}

.personal{
  display: inline-block;
}

#donate-button{
  position: fixed;
  right: 16px;
  bottom: 16px;
  padding: 8px 12px;
  background: var(--eerie-black);
  color: var(--platinum);
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
  text-decoration: none;
  /* animation: name duration timing-function delay iteration-count direction fill-mode; */
}
.social-icon{
  width: 30px;
  height: 30px;
}

#family-container{
  position: relative;
  display:inline-block;
}
#family-container img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}
#family-img{
  width: auto;
  height: auto;
}
#family-header{
  /* position: relative; */
  top: 8%;
  left: 24%;
  transform: translate(-50%, -50%);
  background-color: var(--text);
  color:var(--bg);
  width: auto;
  height:auto;
  padding: 10px 20px;
  font-size: 33px;
  font-weight: 450;
  text-align: center;
  font-family: 'Courier New', Courier, monospace;
}
#mission-list{
  list-style-image: url("./asset/tick.png");
  font-weight: bold;
  list-style-position: inside;

}
#mid-section{
  /* width: 80%; */
  margin-left: auto;
  margin-right: auto;
}

.personal div{
  /* flex? */
  display: inline;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  /* align-items: center;
  justify-items: center; */
  padding: 2rem;
}
#erick-text, #megan-text{
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 30vw;
}
#erick-img, #megan-img{
  width: 30vw;
  height: auto;
  border-radius: 10px;
}

#closing{
  background-color:#343432e9;
  color:var(--platinum);
  margin-bottom: 1px;

}
#rights{
  background-color: rgba(240, 240, 239, 0.36);
}

#guesthouse img{
  height: 140px;
  border-radius: 8px;
  padding: 1px;
}

#guesthouse {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 1rem;
}

#guesthouse img:nth-child(2) {
  height:280px;

}
#guesthouse img:nth-child(4) {
  grid-column: 1 / span 2; /* takes 2/3 width */
}
#guesthouse img:nth-child(5) {
  grid-column: 3 / span 1; /* takes remaining 1/3 width */
}

.divider {
  
  width: inherit;
  height: 35px; 
  background-color: var(--divider);
  /* diagonal transforms: */
  /* transform: skewY(-1.5deg); */
  margin-top: -25px; 
  margin-bottom: -25px;
}

#mid-section{
  margin-bottom: 80px;
  /* background-color: var(--divider-soft); */
  padding-left: 2%;
  padding-right: 2%;
}
#section:nth-child(even) {
  background-color: #ECEFF1; /* subtle contrast block */
}
#social-media a{
  padding: 5px;
}

/* --------------------------------------------*/
/* Responsive Design: Mobile and Tablet Styles*/
/* ------------------------------------------*/

/* Make body content stack vertically on small screens */
@media (max-width: 900px) {
  body {
    font-size: 17px;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
  }
  /* #mid-section,
  #mission-partners {
    padding-left: 1%;
    padding-right: 1%;
  } */
  nav {
    flex-direction: column;
    padding: 2% 0.5%;
  }
  #nav-list {
    flex-direction: column;
    gap: 0.6em;
    align-items: flex-start;
  }
  #nav-list a {
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 8px;
    width: 100%;
    text-align: left;
  }

  #logo {
    width: 65px;
    height: 65px;
    margin-right: 0;
    margin-bottom: 12px;
  }

  #family-header {
    font-size: 24px;
    padding: 7px 13px;
    left: 50%;
    top: 12%;
  }

  #family-img {
    width: 100%;
    max-width: 320px;
    height: auto;
    margin: 0 auto;
  }
  .personal {
    flex-direction: column;
    width: 100%;
    padding: 0;
  }
  .personal div {
    display: block;
    padding: 1rem 0;
  }
  #erick-text, #megan-text {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }
  #erick-img, #megan-img {
    width: 100%;
    max-width: 200px;
    margin: 0 auto 10px auto;
  }
}

/* Stack partner lists to single column on mobile */
@media (max-width: 700px) {
  #partnerlist {
    grid-template-columns: 1fr;
    gap: 0.7rem;
    padding: 0.5rem;
  }
  .partnerlist {
    width: 100%;
    margin-bottom: 24px;
  }
  .carousel-wrapper {
    max-width: 98vw;
    height: 220px;
    max-height: 240px;
  }
  .partnerslide img {
    border-radius: 7px;
  }
}

/* Guesthouse image grid responsive */
@media (max-width: 700px) {
  #guesthouse {
    grid-template-columns: 1fr;
    gap: 0.7rem;
    padding: 0.5rem 0;
  }
  #guesthouse img {
    width: 100%;
    height: 120px !important;
    object-fit: cover;
    border-radius: 7px;
    padding: 1px;
  }
  #guesthouse img:nth-child(2) {
    height: 180px !important;
  }
  #guesthouse img:nth-child(4), #guesthouse img:nth-child(5) {
    grid-column: auto;
  }
}

/* Adjust divider for mobile */
@media (max-width: 700px) {
  .divider {
    height: 32px;
    margin-top: -14px;
    margin-bottom: -14px;
  }
}

/* Responsive footer and contact section */
@media (max-width: 700px) {
  #contacts {
    flex-direction: column;
    gap: 0.7em;
  }
  #social-media {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-start;
  }
  .social-icon {
    width: 26px;
    height: 26px;
    margin-right: 4px;
  }
}

/* Responsive donate button */
@media (max-width: 700px) {
  #donate-button {
    right: 8px;
    bottom: 8px;
    padding: 7px 10px;
    font-size: 15px;
  }
}

/* Make text less wide on very large screens */
@media (min-width: 1200px) {
  #mid-section,
  #mission-partners {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Hide overflow on x for body on mobile */
@media (max-width: 700px) {
  body {
    overflow-x: hidden;
  }
}

/* Ensure images never overflow container */
img {
  max-width: 100%;
  height: auto;
}

/* End Responsive Styles */

/* ----------------------- */
/* nav and button */ 
nav {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(90deg, var(--silver) 60%, var(--platinum) 100%);
  box-shadow: 0 6px 24px rgba(60, 60, 60, 0.07);
  border-radius: 0 0 18px 18px;
  min-height: 92px;
  padding: 0.5em 2vw;
  margin-bottom: 16px;
  position: sticky;
  top: 0;
  z-index: 100;
}

/* Logo placement and sizing */
#logo {
  width: 125px;
  height: 125px;
  object-fit: contain;
  margin-right: 1.5vw;
  margin-left: 5.0vw;
  display: block;
  transition: transform 0.2s;
}
#logo:hover {
  transform: scale(1.05) rotate(-3deg);
}

/* Nav List Layout */
#nav-list {
  display: flex;
  flex-direction: row;
  gap: 2vw;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Nav Links Styling */
#nav-list li {
  display: inline-block;
}
#nav-list a {
  font-weight: 600;
  font-size: 1.08em;
  letter-spacing: .02em;
  color: var(--space-cadet);
  text-decoration: none;
  padding: 0.5em 1.2em;
  border-radius: 6px;
  transition: background 0.18s, color 0.18s, transform 0.18s;
  background: transparent;
  margin: 0 2px;
  display: inline-block;
}
#nav-list a:hover, #nav-list a:focus {
  background: var(--celeste);
  color: var(--dark-purple);
  transform: scale(1.06);
  text-shadow: 0 2px 8px rgba(88, 165, 180, 0.08);
}

#nav-list .donate-button {
  background: var(--warm-rose);
  color: #fff;
  font-weight: bold;
  border-radius: 14px;
  padding: 0.6em 1.5em;
  box-shadow: 0 2px 8px rgba(184, 109, 117, 0.12);
  transition: background 0.18s, box-shadow 0.18s;
}
#nav-list .donate-button:hover {
  background: var(--eerie-black);
  color: var(--platinum);
  box-shadow: 0 4px 18px rgba(44, 25, 61, 0.18);
}

/* Responsive Navigation: Tablet & Mobile */
@media (max-width: 700px) {
  nav {
    flex-direction: column;
    min-height: 68px;
    padding: 0.6em 1vw;
    border-radius: 0 0 11px 11px;
    box-shadow: 0 3px 16px rgba(60, 60, 60, 0.09);
  }
  #logo {
    width: 58px;
    height: 58px;
    margin: 0 0 7px 0;
    display: block;
  }
  #nav-list {
    flex-direction: column;
    gap: 0.7em;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding-bottom: 6px;
  }
  #nav-list li {
    display: block;
    width: 100%;
    text-align: center;
    margin-bottom: 2px;
  }
  #nav-list a {
    width: 100%;
    font-size: 1em;
    padding: 0.45em 0;
    margin: 0;
  }
  #nav-list .donate-button {
    width: 80%;
    margin: 0.2em auto;
    font-size: 1em;
    padding: 0.5em 0;
    text-align: center;
  }
}
/* ========== PARTNERLIST CAROUSEL STYLES ========== */
/* --- Clean Partner Carousel Styles --- */

#partnerlist {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.1em;
  width: 100%;
  max-width: 1700px;
  margin: 0 auto 50px auto;  
}
/* Heading styling */
.partnerlist h3 {
  margin: 12px 0 6px 0;
  text-align: center;
  font-size: 0.9em;
  font-weight: 750;
  color: var(--warm-rose);
}
.partnerlist {
  display: block;
  flex: 0 1 300px; /* allows partnerlist to shrink and grow */
  width: 100%;
  max-width: 380px;
  min-width: 320px;
  margin: 0 auto 36px auto;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(60, 60, 60, 0.07);
  padding-bottom: 18px;
}

/* Carousel wrapper positions buttons and carousel */
.carousel-wrapper {
  position: relative;
  width: 100%;
  max-width: 420px;
  height: 400px;
  max-height: fit-content;
  margin: 0 auto;
  display: block;
}

/* Carousel track: horizontal scroll + snap */
.partner-pics {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  max-width: 420px;
  height: 400px; /* default change to auto*/
  max-height:fit-content;
  border-radius: 10px;
  background: var(--divider-soft, #E2E4E8);
  scrollbar-width: none;
}
.partner-pics::-webkit-scrollbar {
  display: none;
}

/* Each slide fills carousel width and snaps */
.partnerslide {
  flex-shrink: 0;
  width: 100%;
  scroll-snap-align: start;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0;
  margin: 0;
}

.partnerslide img {
  width: 100%;
  max-width: 420px;
  max-height: 380px;
  border-radius: 9px;
  object-fit: fill;
  background: #f0f0f094;
  display: block;
}

/* Navigation buttons overlay left/right of carousel */
.nav {
  position:absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  background: rgba(0,0,0,0.5);
  color: #fff;
  border: none;
  padding: 10px 16px;
  border-radius: 50%;
  font-size: 22px;
  cursor: pointer;
  transition: background 0.15s;
  box-shadow: 0 2px 8px rgba(0,0,0,0.13);
  /* Prevent buttons from being inside scrolled area */
}
.nav.prev { left: 6px; }
.nav.next { right: 6px; }
.nav:hover { background: rgba(0,0,0,0.8); }

/* Text below carousel */
.partner-text {
  margin: 22px 0 0 0;
  text-align: center;
  color: var(--text, #1C1E21);
  font-size: 1.05em;
  line-height: auto;
  height: auto;
}

/* Responsive for mobile */
@media (max-width: 700px) {
  #partnerlist {
    flex-direction: column;
    gap: 1em;
    padding: 0 2vw;
  }
  .partnerlist,
  .carousel-wrapper,
  .partner-pics,
  .partnerslide img {
    max-width: 98vw;
  }
  .nav {
    font-size: 18px;
    padding: 8px 12px;
  }
  .partnerlist h3 { font-size: 1.07em; }
  .partner-text { font-size: 0.97em; }
}

/* --- END Clean Partner Carousel Styles --- */
/* Footer Donate Button: Use same color as nav donate button */
#donate-button,
.footer #donate-button {
  background: var(--warm-rose);
  color: #fff;
  font-weight: bold;
  border-radius: 14px;
  padding: 0.6em 1.5em;
  box-shadow: 0 2px 8px rgba(184, 109, 117, 0.12);
  transition: background 0.18s, box-shadow 0.18s, color 0.18s;
  border: none;
  font-size: 0.8em;
  text-align: center;
  text-decoration: none;
  margin: 18px auto 12px auto;
  display: inline-block;
}

/* On hover/focus, match nav style */
#donate-button:hover,
#donate-button:focus,
.footer #donate-button:hover,
.footer #donate-button:focus {
  background: var(--eerie-black);
  color: var(--platinum);
  box-shadow: 0 4px 18px rgba(44, 25, 61, 0.18);
}

/* Footer anchor tags: remove blue, use donate color for links */
.footer a,
#closing a {
  color: var(--warm-rose); /* Use donate button color */
  text-decoration: underline;
  transition: color 0.15s;
}

.footer a:hover,
#closing a:hover,
.footer a:focus,
#closing a:focus {
  color: var(--eerie-black); /* On hover, match button hover color */
  text-decoration: underline;
}
#give a:hover, span:hover {
  animation: bounce 0.4s;
}
  @keyframes bounce {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
