@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap");

/* =========================================================
   YURU WEDDINGS — BESPOKE WEDDING DESIGN
   Related to the main Yuru visual language, but softer,
   more ceremonial and image-led.
   ========================================================= */

:root{
  --wed-night:#111917;
  --wed-forest:#18372f;
  --wed-paper:#f5f0e8;
  --wed-paper-light:#fffdf8;
  --wed-copper:#b87550;
  --wed-copper-light:#d6a184;
  --wed-rose:#8d625d;
  --wed-muted:#716b64;
  --wed-line:rgba(17,25,23,.15);
  --wed-white:#fffdf8;
}

/* =========================================================
   GLOBAL
   ========================================================= */

html{
  background:var(--wed-paper);
}

body{
  margin:0;
  padding:0;

  color:var(--wed-night);
  background:
    linear-gradient(
      180deg,
      #f8f4ed 0%,
      #f2ebe1 100%
    );

  font-family:"Manrope",Arial,sans-serif;
  font-size:15px;
  line-height:1.75;
}

body,
section:not(.hero),
.album-card,
.memory-card,
.quote-card{
  background-image:none !important;
}

h1,
h2,
h3,
h4{
  color:var(--wed-night);
  font-family:"Cormorant Garamond",Georgia,serif;
}

a{
  color:inherit;
  text-underline-offset:4px;
}

p,
li{
  color:var(--wed-muted);
}

/* =========================================================
   HERO
   ========================================================= */

.hero{
  position:relative;

  min-height:92svh;
  padding:
    150px
    clamp(22px,6vw,84px)
    68px;

  display:flex;
  align-items:flex-end;
  justify-content:center;

  text-align:center;
  color:#fff;

  background-position:center 48% !important;
  background-size:cover !important;

  overflow:hidden;
}

.hero::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(8,13,12,.18) 0%,
      rgba(8,13,12,.08) 28%,
      rgba(8,13,12,.46) 66%,
      rgba(8,13,12,.84) 100%
    ) !important;

  pointer-events:none;
}

.hero-card{
  position:relative;
  z-index:2;

  width:min(860px,100%);
  margin:0;
  padding:0;

  color:#fff;
  background:transparent !important;
  border:0;
  border-radius:0;
  box-shadow:none;

  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.hero h1{
  margin:0;

  color:#fff;
  font-size:clamp(66px,8.5vw,118px);
  font-weight:500;
  line-height:.82;
  letter-spacing:-.035em;

  text-shadow:0 8px 36px rgba(0,0,0,.38);
}

.hero p{
  max-width:680px;
  margin:28px auto 0;

  color:rgba(255,255,255,.86);
  font-family:"Manrope",Arial,sans-serif;
  font-size:12px;
  font-weight:600;
  line-height:1.7;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.hero-cta{
  margin-top:30px;

  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px;
}

.btn{
  min-height:45px;
  padding:12px 20px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  border-radius:0;

  font-family:"Manrope",Arial,sans-serif;
  font-size:9px;
  font-weight:700;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;

  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.btn-primary{
  color:#fff;
  background:var(--wed-copper);
  border:1px solid var(--wed-copper);
  box-shadow:none;
}

.btn-primary:hover{
  color:var(--wed-night);
  background:var(--wed-copper-light);
  border-color:var(--wed-copper-light);
}

.btn-ghost{
  color:#fff;
  background:rgba(15,25,22,.20);
  border:1px solid rgba(255,255,255,.55);
}

.btn-ghost:hover{
  color:var(--wed-night);
  background:#fff;
  border-color:#fff;
}

/* =========================================================
   MAIN SECTIONS
   ========================================================= */

section:not(.hero){
  max-width:1180px;
  margin:0 auto;
  padding:
    clamp(62px,8vw,105px)
    clamp(22px,6vw,82px);

  background:transparent !important;
  border:0;
  border-bottom:1px solid var(--wed-line);
  border-radius:0;
  box-shadow:none;
}

section:not(.hero):last-of-type{
  border-bottom:0;
}

section h2{
  margin:0 0 24px;

  color:var(--wed-night);
  font-size:clamp(48px,6vw,78px);
  font-weight:500;
  line-height:.9;
  letter-spacing:-.03em;
}

section h2::after{
  content:"";

  width:56px;
  height:1px;
  margin-top:23px;

  display:block;

  background:var(--wed-copper);
  border-radius:0;
}

section h3{
  margin:28px 0 8px;

  color:var(--wed-night);
  font-size:clamp(27px,3vw,38px);
  font-weight:600;
  line-height:1.02;
  letter-spacing:-.015em;
}

section p{
  max-width:760px;
  margin:0 0 15px;

  color:var(--wed-muted);
  font-family:"Manrope",Arial,sans-serif;
  font-size:14px;
  font-weight:400;
  line-height:1.8;
}

section ul{
  max-width:760px;
  margin:20px 0 0;
  padding:0;

  list-style:none;
}

section li{
  position:relative;

  margin:0;
  padding:9px 0 9px 23px;

  color:var(--wed-muted);
  border-top:1px solid rgba(17,25,23,.09);

  font-family:"Manrope",Arial,sans-serif;
  font-size:13px;
  line-height:1.6;
}

section li::before{
  content:"";

  position:absolute;
  top:18px;
  left:3px;

  width:5px;
  height:5px;

  background:var(--wed-copper);
  border-radius:50%;
}

.muted{
  color:var(--wed-muted);
}

/* =========================================================
   INTRO / ABOUT
   ========================================================= */

#about{
  display:grid;
  grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);
  column-gap:clamp(52px,8vw,110px);
  align-items:start;
}

#about h2{
  grid-column:1;
  grid-row:1 / span 4;
}

#about p,
#about ul{
  grid-column:2;
}

#about p:first-of-type{
  color:var(--wed-night);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(25px,3vw,35px);
  font-weight:500;
  line-height:1.25;
}

/* =========================================================
   VENUE
   ========================================================= */

#venue{
  position:relative;
}

#venue > h3,
#venue > p{
  max-width:760px;
}

#venue > h3{
  margin-top:28px;
}

.album-strip{
  margin-top:42px;

  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:15px;
}

.album-card{
  margin:0;
  padding:0;

  background:transparent !important;
  border:0;
  border-radius:0;
  box-shadow:none;

  transform:none !important;
}

.album-frame{
  overflow:hidden;

  aspect-ratio:4 / 3;

  background:#ddd;
  border:1px solid rgba(17,25,23,.14);
  border-radius:0;
}

.album-frame::after{
  background:
    linear-gradient(
      180deg,
      transparent 58%,
      rgba(8,13,12,.22) 100%
    ) !important;

  box-shadow:none;
}

.album-frame img{
  width:100%;
  height:100%;

  object-fit:cover;

  transition:transform .4s ease;
}

.album-card:hover .album-frame img{
  transform:scale(1.035);
}

.album-caption{
  padding:17px 2px 0;
  text-align:left;
}

.album-caption strong{
  color:var(--wed-night);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:28px;
  font-weight:600;
}

.album-caption span{
  margin-top:4px;

  color:var(--wed-muted);
  font-family:"Manrope",Arial,sans-serif;
  font-size:11px;
  line-height:1.55;
}

/* =========================================================
   PACKAGES
   ========================================================= */

#packages{
  background:
    linear-gradient(
      135deg,
      rgba(24,55,47,.99),
      rgba(15,31,27,.99)
    ) !important;

  max-width:none;
  padding-left:max(clamp(22px,6vw,82px),calc((100vw - 1180px) / 2 + 82px));
  padding-right:max(clamp(22px,6vw,82px),calc((100vw - 1180px) / 2 + 82px));

  border-bottom:0;
}

#packages h2,
#packages h3{
  color:#fff;
}

#packages h2::after{
  background:var(--wed-copper-light);
}

#packages p,
#packages li,
#packages .muted{
  color:rgba(255,255,255,.72);
}

#packages li{
  border-color:rgba(255,255,255,.10);
}

#packages li::before{
  background:var(--wed-copper-light);
}

#packages a{
  display:inline-flex;
  margin-top:11px;
  padding-bottom:3px;

  color:var(--wed-copper-light);

  font-family:"Manrope",Arial,sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;

  border-bottom:1px solid rgba(214,161,132,.56);
  text-decoration:none;
}

.package-block{
  position:relative;
  padding:28px 0;
}

.package-block + .package-block{
  margin-top:0;
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,.12);
}

/* =========================================================
   EXPERIENCES
   ========================================================= */

#experiences{
  display:grid;
  grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);
  column-gap:clamp(50px,8vw,110px);
}

#experiences h2{
  grid-column:1;
}

#experiences ul{
  grid-column:2;
  margin-top:0;
}

/* =========================================================
   WEDDING GALLERY
   ========================================================= */

.memory-wall{
  margin-top:34px;

  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:15px;
}

.memory-card{
  padding:0;

  background:transparent !important;
  border:0;
  border-radius:0;
  box-shadow:none;
}

.memory-frame{
  aspect-ratio:4 / 3;

  overflow:hidden;

  background:#ddd;
  border:1px solid rgba(17,25,23,.14);
  border-radius:0;
}

.memory-frame::after{
  background:
    linear-gradient(
      180deg,
      transparent 56%,
      rgba(8,13,12,.22) 100%
    ) !important;

  box-shadow:none;
}

.memory-frame img{
  width:100%;
  height:100%;

  object-fit:cover;
}

.memory-note{
  padding:17px 2px 0;
}

.memory-note strong{
  color:var(--wed-night);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:28px;
  font-weight:600;
}

.memory-note span{
  margin-top:4px;

  color:var(--wed-muted);
  font-family:"Manrope",Arial,sans-serif;
  font-size:11px;
  line-height:1.55;
}

.gallery-note{
  margin-top:28px !important;
}

.gallery-note a{
  color:var(--wed-copper);
  font-family:"Manrope",Arial,sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

/* =========================================================
   TESTIMONIALS
   ========================================================= */

.quote-note{
  color:var(--wed-muted);
  font-size:12px;
}

.quote-card{
  margin:0;
  padding:25px 0;

  background:transparent !important;
  border:0;
  border-top:1px solid var(--wed-line);
  border-radius:0;
  box-shadow:none;
}

.quote-card p{
  max-width:820px;

  color:var(--wed-night);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(23px,2.5vw,34px);
  font-weight:500;
  line-height:1.35;
}

.quote-card strong{
  display:inline-block;
  margin-top:9px;

  color:var(--wed-copper);
  font-family:"Manrope",Arial,sans-serif;
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

/* =========================================================
   LOCATION
   ========================================================= */

#location{
  display:grid;
  grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);
  column-gap:clamp(50px,8vw,110px);
}

#location h2{
  grid-column:1;
  grid-row:1 / span 4;
}

#location p,
#location ul,
#location > a{
  grid-column:2;
}

#location > a{
  width:max-content;
  margin-top:20px;

  color:var(--wed-copper);

  font-family:"Manrope",Arial,sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

/* =========================================================
   CONTACT FORM
   ========================================================= */

#contact{
  max-width:none;

  color:#fff;
  background:
    linear-gradient(
      135deg,
      rgba(91,50,40,.98),
      rgba(117,66,49,.98)
    ) !important;

  padding-left:max(clamp(22px,6vw,82px),calc((100vw - 1180px) / 2 + 82px));
  padding-right:max(clamp(22px,6vw,82px),calc((100vw - 1180px) / 2 + 82px));

  border:0;
}

#contact h2{
  color:#fff;
}

#contact h2::after{
  background:var(--wed-copper-light);
}

#contact p,
#contact .fineprint,
#contact label{
  color:rgba(255,255,255,.78);
}

#contact form{
  max-width:760px !important;
  margin-top:34px;

  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px 18px;
}

#contact form label{
  display:block;

  font-family:"Manrope",Arial,sans-serif;
  font-size:9px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.11em;
  text-transform:uppercase;
}

#contact form br{
  display:none;
}

#contact form label:nth-of-type(6){
  grid-column:1 / -1;
}

#contact input,
#contact select,
#contact textarea{
  width:100%;
  max-width:none;
  min-height:45px;
  margin-top:7px;
  padding:11px 13px;

  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.30);
  border-radius:0;

  font-family:"Manrope",Arial,sans-serif;
  font-size:13px;
}

#contact textarea{
  min-height:120px;
  resize:vertical;
}

#contact input::placeholder,
#contact textarea::placeholder{
  color:rgba(255,255,255,.44);
}

#contact input:focus,
#contact select:focus,
#contact textarea:focus{
  background:rgba(255,255,255,.13);
  border-color:var(--wed-copper-light);
  box-shadow:0 0 0 2px rgba(214,161,132,.12);
}

#contact button{
  width:max-content;
  min-height:45px;
  padding:12px 22px;

  color:var(--wed-night);
  background:var(--wed-copper-light);
  border:1px solid var(--wed-copper-light);
  border-radius:0;

  font-family:"Manrope",Arial,sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}

#contact > p:last-child a{
  color:#fff;
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width:900px){

  #about,
  #experiences,
  #location{
    grid-template-columns:1fr;
  }

  #about h2,
  #about p,
  #about ul,
  #experiences h2,
  #experiences ul,
  #location h2,
  #location p,
  #location ul,
  #location > a{
    grid-column:1;
    grid-row:auto;
  }

  #about h2,
  #experiences h2,
  #location h2{
    margin-bottom:26px;
  }

  .album-strip,
  .memory-wall{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width:640px){

  body{
    font-size:14px;
  }

  .hero{
    min-height:78svh;
    padding:
      92px
      14px
      34px;

    background-position:center 52% !important;
  }

  .hero h1{
    font-size:52px;
    line-height:.84;
  }

  .hero p{
    margin-top:18px;

    font-size:9px;
    line-height:1.65;
    letter-spacing:.09em;
  }

  .hero-cta{
    margin-top:20px;

    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }

  .btn{
    width:100%;
    min-height:41px;
  }

  section:not(.hero){
    margin:0;
    padding:
      42px
      15px;

    border-radius:0;
  }

  section h2{
    font-size:43px;
    line-height:.9;
  }

  section h2::after{
    margin-top:17px;
  }

  section h3{
    margin-top:24px;
    font-size:27px;
  }

  section p{
    font-size:12.5px;
    line-height:1.7;
  }

  section li{
    padding-top:7px;
    padding-bottom:7px;

    font-size:12px;
    line-height:1.55;
  }

  #about p:first-of-type{
    font-size:23px;
    line-height:1.3;
  }

  .album-strip,
  .memory-wall{
    display:grid;
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:84vw;
    gap:11px;

    overflow-x:auto;
    padding-bottom:9px;

    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }

  .album-card,
  .memory-card{
    scroll-snap-align:start;
  }

  .album-caption strong,
  .memory-note strong{
    font-size:25px;
  }

  #packages,
  #contact{
    padding-left:15px;
    padding-right:15px;
  }

  .quote-card{
    padding:20px 0;
  }

  .quote-card p{
    font-size:23px;
  }

  #contact form{
    grid-template-columns:1fr;
    gap:14px;
  }

  #contact form label:nth-of-type(6){
    grid-column:1;
  }

  #contact button{
    width:100%;
  }

  .fineprint{
    font-size:10.5px !important;
    line-height:1.55 !important;
  }
}

/* =========================================================
   ACCESSIBILITY
   ========================================================= */

@media (prefers-reduced-motion:reduce){

  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    transition:none !important;
  }
}