/* -------------------------------------------------------------------------- */
/*  Imports                                                                   */
/* -------------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600&display=swap');

/* -------------------------------------------------------------------------- */
/*  Reset & Base                                                              */
/* -------------------------------------------------------------------------- */
*,*::before,*::after{margin:0;padding:0;border:0;box-sizing:border-box;font:inherit;vertical-align:baseline;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}
body{background:#2a3c4c;color:#ffff00;font-family:'Oswald',sans-serif;line-height:1.4;}
p{font-family:Inter,sans-serif;}
a{
  color:#ffff00;
  text-decoration:none;
  display:inline-block;
  position:relative;
}

a::after{
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background:#ffff00;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}

a:hover::after{
  transform:scaleX(1);
}

a:hover{
  color:#ffffff;
}

h1{color:#fff;font-weight:600;}
.yellow-left{width:33%;height:3px;margin:40px 0 60px;background:#ffff00;}

/* -------------------------------------------------------------------------- */
/*  Landing                                                                   */
/* -------------------------------------------------------------------------- */
.landing-page{
  display:flex;flex-wrap:wrap;min-height:95vh;
  background-image:url('bg2.jpg');
  background-size:cover;
  background-position:right top;
  background-repeat:no-repeat;
  background-attachment:scroll;
}

.title-section {
    flex: 1 1 536px;
    padding: calc(5rem + 6vh) 2rem 2rem 5rem;
}
.title-section h1{font-size:6rem;letter-spacing:-.08em;line-height:1.25;}
.title-section h3{font-size:1.5rem;text-transform:uppercase;line-height:1.25;margin-bottom:-1rem;}
.title-section p{
  width:70%;margin-bottom:1rem;padding:10px;
  background:#2a3c4cb3;color:#fff;border-radius:5px;position:relative;left:-10px;
  font-family:'Inter',Arial,sans-serif;font-size:1rem;
}
.title-section b{color:#ffff00;}

.hero-section{
  flex:1 1 50%;margin-top:45vh;text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.hero-section img{width:100%;}
.hero-section h3{font-size:1.1rem;letter-spacing:.3em;font-weight:600;text-transform:uppercase;padding:0 20px;color:#fff;}
.hero-section p{font-size:.8rem;padding:0 20px;color:#fff;}

.hero-section button,
.yellow-button{
  padding:2rem 2rem;background:#fff;color:#0e425c;border:none;cursor:pointer;
  font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;box-shadow:2px 2px 4px rgba(0,0,0,.3);
}
.yellow-button {
    /* max-width: 161px; */
    font-size: 1rem;
    position: relative;
    width: 300px;
    left: -10px;
    margin-right: 20px;
    border-radius: 10px;
    background: url(fanny.png);
    background-size: cover;
}
.yellow-button:hover{background:#cccc00;}
.yellow-button:active,
.hero-section button:active{box-shadow:inset 2px 2px 4px rgba(0,0,0,.3);}
.yellow-button:hover::before{
  content:'';position:absolute;inset:0;width:50%;border-radius:5%;background:#fff;
  opacity:0;animation:glint .3s linear;box-shadow:1px 1px 1px rgba(255,255,255,.3);
}
@keyframes glint{0%{transform:translateX(-25%);opacity:0;}50%{opacity:.5;}100%{transform:translateX(125%);opacity:0;}}



/* indicator (visible until scroll) */
.scroll-indicator{
    display:block;
    width:24px;
    height:24px;
    margin:0.5rem calc(50% - 24px);
    border-right:2px solid currentColor;
    border-bottom:2px solid #0a021c;
    transform:rotate(45deg);
    position:absolute;
    top:0;
    opacity:1;                  /* start visible */
    transition:opacity .4s ease;
}



/* -------------------------------------------------------------------------- */
/*  Content Areas                                                             */
/* -------------------------------------------------------------------------- */
.content-area,.content-area-2{position:relative;padding:2rem;z-index:0;}
.content-area{
  /* margin-top:-81px; */padding-top:147px;color:#0e425c;
  /* background:#202c3c; */
 background-image:linear-gradient(#fff 0 100px,#fff 100px 100%),url('fan.png'); */
  background-repeat:no-repeat,no-repeat;
  background-position:top center,center top;
  background-size:auto,cover;
}
.content-area-2{
  min-height:70vh;background:linear-gradient(#0e425c,#080c0e);color:#0e425c;
}
.content-area::before,.content-area-2::before{
  content:'';position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center;
}
.content-area::before{/*background-image:url('fan.png');*/opacity:.7;}
.content-area-2::before{background-image:url('conc.png');opacity:.2;}

/* -------------------------------------------------------------------------- */
/*  Services                                                                  */
/* -------------------------------------------------------------------------- */

.services-cards{  
      position: relative;
    background: linear-gradient(180deg, #b74c06, #e87021);
}
.services-wrapper {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 4rem;
    justify-content: space-between;
    padding: 70px 70px 120px;
    overflow: visible;
    z-index: 2;
    flex-direction: column;
    color: #0a021c;
    max-width: 1550px;
    margin:auto;
}
.services-cards::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -103px;
    height: 103px;
    background: #e87021;
    border-radius: 0 0 91% 91%/0 0 115px 115px;
    z-index: 150;
}
.services-wrapper h1 {font-size:6rem;letter-spacing:-.08em;line-height:1.25;}

.services-card {
    flex: 1 1 300px;
    padding: 1.5rem;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    display: flex;
    flex-direction: row;
    align-items: center;
    text-align: center;
    align-items: flex-start;
}

.emph {
    color: #b84d06;
    font-weight: bold;
    font-size: 1.2rem;
    display: block;
    margin-bottom: 0.5rem;
}

.services-card-text {
    line-height: 1.7em;
    padding-left: 30px;
    text-align: left;
}
.services-image{width:100%;max-width:300px;height:auto;margin-bottom:1rem;}
.services-heading {
    margin: .5rem 0;
    font-size: 2.25rem;
    color: #0e425c;
    margin-bottom: 27px;
}
.services-text{font-size:1rem;color:#333; max-width: 750PX;  /* text-align: justify;*/}

/* reverse alignment for 1st, 3rd, 5th … cards */
.services-card:nth-of-type(odd){
  flex-direction: row-reverse;
}

.services-card:nth-of-type(odd) .services-card-text{
  padding-left: 0;
  padding-right: 30px;
  text-align: right!important;
}

.services-card:nth-of-type(odd) .services-image{
  margin-left: 0;
  margin-right: 1rem;
}
.extras .services-wrapper .services-card {
  flex: 0 1 300px;
}

.extras .services-wrapper {
    gap: 1em;
    justify-content: space-evenly;
    padding: 35px 8rem;
    /* max-width: 1200px; */
    margin: auto;
    flex-direction: row;

}

.extras .services-wrapper h1 {
  display:inline-block;
  flex-basis: 100%;
  font-size: 4rem;
  text-align: center;
}

.extras .services-wrapper h3 {
  font-size: 1.25em;
}

.extras .services-wrapper .services-card {
  flex: 0 1 300px;
  padding: 1.5rem;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  display: block;
  flex-direction: column;
  align-items: center;
  text-align: center;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease;
}


.extras .services-text {
      text-align: center;
}

.extras .services-wrapper .services-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0,0,0,.1);
}

.extras .services-wrapper .services-card:active {
  transform: translateY(-2px) scale(.98);
  box-shadow: 0 4px 10px rgba(0,0,0,.1);
}
/* -------------------------------------------------------------------------- */
/*  Samples & Promo                                                           */
/* -------------------------------------------------------------------------- */
.samples, .promo {
    max-width: 80%;
    margin: auto;
    padding: 30px 39px 100px;
    background: #fff;
    border-radius: 5px;
    width: 1600px;
    z-index: 50;
    position: relative;
}

.promo{background:none;border-radius:0;}
.samples h1{font-size:3em;text-transform:uppercase;text-align:center;margin:40px 0 30px;color:#e87021;}
.promo h1{font-size:3em;text-transform:uppercase;text-align:center;margin:20px 0 30px;color:#ffff00;}
.promo h3{font-size:1.5em;text-align:center;margin-bottom:30px;color:#ffff00;}
.samples p {
  max-width: 80%;
  margin: 48px auto 75px;
  font-size: 1em;
  text-align: center;
  color: #000;
  line-height: 2.2em;
}
.promo p{max-width:80%;margin:0 auto 30px;font-size:1em;text-align:justify;color:#fff;}
.samples_container {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: flex-start;
}

/* -------------------------------------------------------------------------- */
/*  Audio Card                                                                */
/* -------------------------------------------------------------------------- */
.audio-element {
    flex: 1 1 calc(33% - 1.5rem);
    display: grid;
    grid-template-columns: 167px 1fr;
    grid-template-rows: auto auto auto 1fr auto;
    grid-template-areas:
        "au_image title"
        "au_image artist"
        "au_image album"
        "au_image description"
        "controls controls";
    gap: .5rem 1rem;
    padding: 20px;
    margin: 0 auto 30px;
    width: 540px;
    max-width: 80%;
    min-height: 300px;
    border-radius: 4px;
    box-shadow: 1px 1px 1px rgba(0,0,0,.3);
    background: linear-gradient(#c2efec,#fff);
    transition: background .3s;
}

/* optional: keep the control bar pinned even if its
   intrinsic height changes */
.audio-element > .controls{
    grid-area:controls;
    align-self:end;
}
.audio-element.highlighted{background:linear-gradient(#ffc2fc,#fff);}
.au_image{grid-area:au_image;width:167px;height:167px;overflow:hidden;border-radius:4px;background:#eee;}
.au_image img{width:100%;height:100%;object-fit:cover;}
.audio-element .title{grid-area:title;font-size:1.4em;}
.audio-element .artist {
    grid-area: artist;
    font-size: .8em;
    color: #ff6500;
    font-family: 'Inter',Arial, sans-serif;
    /* font-variant: small-caps; */
    font-weight: bold;
    letter-spacing: 0.05em;
}
.audio-element .album{grid-area:album;font-size:.7em;text-transform:uppercase;color:#0e425c;font-family:Arial,sans-serif;}
.audio-element .description {
    grid-area: description;
    margin-bottom: 15px;
    font-family: 'Inter';
    font-size: 0.7em;
}
.audio-element .controls{grid-area:controls;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;width:100%;}

audio{
  display:flex;align-items:center;justify-content:center;width:500px;height:50px;background:lightgray;
}
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-pause-button,
audio::-webkit-media-controls-volume-slider,
audio::-webkit-media-controls-mute-button,
audio::-webkit-media-controls-timeline,
audio::-webkit-media-controls-current-time-display,
audio::-webkit-media-controls-time-remaining-display{display:none;}
.audio-element audio,.audio-element .controls{width:100%!important;max-width:100%!important;}

.play-pause-button{width:50px;height:50px;background:#0e425c;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.play-pause-button:hover{cursor:pointer;background:#0a021c;}
.play-pause-icon{font-size:20px;color:#ffff00;}
.timeline-container{flex:1 1 auto;display:flex;align-items:center;height:24px;background:rgba(255,255,255,.2);border-radius:10px;}
.timeline-container:hover{cursor:pointer;}
.timeline{position:relative;flex:1;height:4px;margin:0 10px;background:gray;}
.timeline .progress{height:100%;width:0;background:teal;}
.time-display{width:60px;font-size:14px;color:gray;text-align:right;}

/* -------------------------------------------------------------------------- */
/*  Contact                                                                   */
/* -------------------------------------------------------------------------- */
.contact{background:linear-gradient(#0e425c,#2e627c);padding-bottom:30px;}
.contact h1{font-size:3em;text-transform:uppercase;text-align:center;padding-top:30px;margin-bottom:30px;max-width:95%;}
.contact h3{font-size:1.5em;text-transform:uppercase;text-align:center;margin-bottom:30px;max-width:80%;margin:auto;}
.contact p{max-width:80%;margin:0 auto 30px;font-size:1em;font-family:Arial,sans-serif;color:#fff;}

/* -------------------------------------------------------------------------- */
/*  Spotify / Footnotes                                                       */
/* -------------------------------------------------------------------------- */
.spotty-bottom{width:60%;margin:auto;padding:20px;text-align:center;font-size:.8em;font-family:Arial,sans-serif;color:#fff;background:rgba(0,0,0,.3);border-radius:20px;}
#spotify-button{margin-top:20px;padding:5px;border:0;border-radius:50%;background:#000;color:limegreen;box-shadow:2px 2px 4px rgba(0,0,0,.3);}
#spotify-button:hover{background:darkgreen;cursor:pointer;}
#spotify-button i{font-size:30px;}
#spotify-button:active{box-shadow:inset 2px 2px 4px rgba(0,0,0,.3);}

/* -------------------------------------------------------------------------- */
/*  Forms                                                                     */
/* -------------------------------------------------------------------------- */
/* CONTACT ­­­─────────────────────────────────────────────────────────────── */
.contact form {
    display: block;
    width: 100%;
    max-width: 600px;
    margin: 50px auto 0;
    padding: 30px 30px 20px;
    /* background: #ff00213d; */
    border-radius: 10px;
    box-shadow: 3px 5px 9px 4px rgba(0, 0, 0, .1);
}
/* one label per line, full width */
.contact form label {
    display: block;
    margin-bottom: .25rem;
    font-size: .9rem;
    color: #fff;
    font-family: 'Inter';
    font-size: 1.2rem;
    padding-bottom: 8px;
    line-height: 2.2rem;
}

/* every control now expands to the full label width */
.contact form input,
.contact form textarea,
.contact form select{
    display:block;
    width:100%;
    box-sizing:border-box;
    padding:20px;
    font-size:18px;
    border-radius:5px;
    background:#f5f5f5;
    box-shadow:0 0 10px rgba(0,0,0,.1);
    outline:0;
}

.contact form textarea{height:200px;}

.contact form input[type="submit"]{
    width:auto;              /* keep button tight */
    margin-top:1rem;
    background:#4caf50;
    color:#fff;
    cursor:pointer;
}
.contact form input[type="submit"]:hover{background:#3e8e41;}
/* white “bite” taken out of the contact section’s top edge */
.contact{
    position: relative;                   /* containing block for the pseudo */
    overflow: visible;                    /* let the arc protrude upward    */
}

.contact::before{
    content: '';
    position: absolute;
    top: -103px;                          /* lift it above the section      */
    left: 0;
    right: 0;
    height: 103px;                        /* same size as the services arc  */
    background: #fff;                     /* colour of .content-area        */
    border-radius: 0 0 91% 91%/0 0 115px 115px; /* downward-facing curve   */
    pointer-events: none;
    z-index: 0;                           /* keep it behind the contact text */
}


/* -------------------------------------------------------------------------- */
/*  Footer                                                                    */
/* -------------------------------------------------------------------------- */
footer{background:#333;color:#fff;padding:50px 0;}
footer .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-top: 70px;
}
footer img {
    width: 150px;
    margin-bottom: 30px;
    margin-top: 40px;
}
.address{margin-bottom:30px;font-size:14px;}
.social-links{margin-bottom:30px;display:flex;gap:10px;}
.social-links a{font-size:20px;transition:.3s;color:#fff;}
.social-links a:hover{color:#eee;}

/* -------------------------------------------------------------------------- */
/*  Utilities                                                                 */
/* -------------------------------------------------------------------------- */
.back-to-top{
  position:fixed;bottom:20px;right:20px;width:50px;height:50px;font-size:40px;
  color:#fff;background:rgba(0,0,0,.2);border-radius:50%;
  display:flex;align-items:center;justify-content:center;opacity:0;transition:.3s;z-index: 200;
}
.back-to-top:hover{background:rgba(1,30,1,.3);color:#eee;}

nav {
    position: absolute;
    top: 0;
    left: 0;
    height: 4vh;
    max-width: 90%;
    margin: 15px 5rem 7px 5rem;
    color: #182633;
    font-family: 'Oswald';
    font-size: 1.5rem;
    width: 100%;
    text-align: right;
    z-index: 100;
}

hr#hr1{width:79%;height:5px;margin:20px 0;background:#ffff00;border:0;border-radius:5px;}


.landing-page {
  position: relative;    /* make it a containing block for the ::after */
  overflow: hidden;     /* ensure the pseudo stays visible */
}

.landing-page::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 150px;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(42, 60, 76, 0) 0%, rgb(35 47 61) 100%);
}

/* -------------------------------------------------------------------------- */
/*  Media Queries                                                             */
/* -------------------------------------------------------------------------- */
@media(max-width:768px){
  .services-wrapper {
    flex-direction: column;
    padding: 20px;
}
  .services-card{flex:1 1 100%;flex-direction: column!important; text-align: center;}
  .services-card:nth-of-type(odd) .services-card-text {
    padding-left: 0px;
    padding-right: 0px;
    text-align: center!important;
}
.services-card-text {
    padding-left: 0px;
    padding-right: 0px;
    text-align: center!important;
}
.extras .services-wrapper {
    gap: 1em;
    justify-content: space-evenly;
    padding: 0;
    /* max-width: 1200px; */
    margin: auto;
    flex-direction: row;
}
nav {
    position: relative;
    top: 8px;
    left: 0;
    height: 7vh;
    max-width: 90%;
    margin: auto;
    color: #182633;
    font-family: 'Oswald';
    font-size: 1.5rem;
    width: 100%;
    text-align: center;
    z-index: 100;
    display: flex;
    justify-content: space-between;
}
.scroll-indicator {
  top: -90px;
}
.services-heading {
    margin: 1.5rem 0;
    font-size: 2.25rem;
    color: #0e425c;
    margin-bottom: 27px;
    line-height: 1.2em;
}
.yellow-button {
  max-width:60%;
}
  .samples,.promo{padding:0;border-radius:0;max-width:100%;}
  .content-area{padding:150px 0 0;}
  .content-area-2{padding:0;}
  .audio-element{flex:1 1 100%;max-width:80%;}
  .hero-section{display: none;}
  .landing-page::after {background: linear-gradient(to bottom, rgba(42, 60, 76, 0) 0%, rgb(35 47 61 / 30%) 100%);}
  .landing-page {
    background-position: calc(50% - -9%) 50%;
}
  .content-area::before {
     background-image: none;
    opacity: .7;
}
    .spotty-bottom {margin-bottom:50px;}
    .services-wrapper h1 {
      font-size: 4em;
      text-align: center;
      display:block;
    }
    .title-section {
    padding: 1rem 2rem 2rem 2rem;
}
}
@media(max-width:1089px){

      .contact form {margin-left: auto; margin-right: auto;}
}
@media(max-width:550px){
  .samples_container{justify-content:center;}
  .audio-element{
    grid-template-columns:1fr;
    grid-template-areas:"au_image""title""artist""album""description""controls";
    grid-template-rows:repeat(6,auto);
    width:100%;max-width:320px;
  }
  .au_image{width:100%;height:auto;margin-bottom:1rem;}
  .audio-element .title,.audio-element .artist,.audio-element .album,.audio-element .description{text-align:center;margin-bottom:.5rem;}
  .audio-element .album{color:#e87021;margin-bottom:1rem;}
  .audio-element .controls{flex-wrap:nowrap;justify-content:center;}
}
@media(min-width:1090px){
  .contact {
   /*  display: flex; */
    padding: 70px 0 150px;
  }
.contact h1 {
    font-size: 5em;
    text-transform: uppercase;
    /* text-align: right; */
    padding-top: 40px;
    margin-bottom: 30px;
    max-width: 95%;
    margin: auto;
}
.contact h3 {
    font-size: 3em;
    text-transform: uppercase;
    text-align: right;
    margin-bottom: 30px;
    max-width: 95%;
    margin-left: 30%;
    padding-right: 30px;
}
.contact-header {
    flex: 0 3 50%;
}
}
@media(min-width:768px){
.contact {
    background: linear-gradient(#0e425c, #61b9ad);
    padding-bottom: 116px;
}


/* soften content‐area → content‐area‐2 */
.content-area {
    position: relative;
    padding-bottom: 143px;
}
.content-area::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100px;
    pointer-events: none;
    background: #0f435d;
    z-index: 49;
}
/* soften content-area-2 → services-wrapper */
.content-area-2 {
  position: relative;
}
.content-area-2::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 100px;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(14, 66, 92, 0) 0%,
    #232f3d 100%
  );
}

/* soften promo → contact */
.promo {
  position: relative;
}
.promo::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 100px;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0%,
    rgba(14, 66, 92, 1) 100%
  );
}

/* soften contact → footer */
.contact {
  position: relative;
}
.contact::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 100px;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(14, 66, 92, 0) 0%,
    #3330 100%
  );
}

  }

/* state after scrolling */
body.scrolled .scroll-indicator{
    opacity:0;                  /* fades away */
    pointer-events:none;        /* becomes inert */
}
