:root{
  --ivory:#F5F0E8;
  --ivory2:#ECE5DB;
  --paper:#FBF8F2;
  --black:#111111;
  --softblack:#202020;
  --burgundy:#741F32;
  --burgundy2:#581522;
  --gold:#B79A62;
  --muted:#777168;
  --line:rgba(17,17,17,.14);

  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Manrope",Arial,sans-serif;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  color:var(--black);
  background:var(--ivory);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}

a{
  color:inherit;
  text-decoration:none;
}

button,
input,
textarea,
select{
  font:inherit;
}

button{
  cursor:pointer;
}

::selection{
  background:var(--black);
  color:white;
}


/* ================= HEADER ================= */

.ev-header{
  min-height:94px;
  padding:0 clamp(20px,5vw,72px);
  display:flex;
  align-items:center;
  border-bottom:1px solid var(--line);
  background:rgba(245,240,232,.97);
  position:sticky;
  top:0;
  z-index:80;
  backdrop-filter:blur(15px);
}

.ev-brand{
  flex:0 0 auto;
  margin-right:52px;
}

.ev-brand strong{
  display:block;
  font-family:var(--serif);
  font-size:31px;
  line-height:.9;
  letter-spacing:.28em;
  font-weight:500;
}

.ev-brand span{
  display:block;
  margin-top:9px;
  color:#7D776F;
  font-size:6px;
  letter-spacing:.45em;
}

.ev-nav{
  display:flex;
  align-items:center;
  gap:29px;
}

.ev-nav a{
  padding:8px 0;
  position:relative;
  font-size:8px;
  letter-spacing:.19em;
  text-transform:uppercase;
  white-space:nowrap;
}

.ev-nav a:after{
  content:"";
  position:absolute;
  left:0;
  bottom:2px;
  width:0;
  height:1px;
  background:var(--burgundy);
  transition:.25s;
}

.ev-nav a:hover:after{
  width:100%;
}

.ev-header-action{
  margin-left:auto;
  min-height:47px;
  padding:0 21px;
  background:var(--black);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:8px;
  letter-spacing:.18em;
  text-transform:uppercase;
  transition:.25s;
}

.ev-header-action:hover{
  background:var(--burgundy);
}


/* ================= HOME ================= */

.home-hero{
  min-height:690px;
  padding:100px clamp(24px,8vw,125px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-bottom:1px solid var(--line);
  position:relative;
}

.home-hero:after{
  content:"";
  width:1px;
  height:130px;
  background:var(--gold);
  position:absolute;
  right:10%;
  top:50%;
  transform:translateY(-50%);
  opacity:.65;
}

.eyebrow{
  color:var(--burgundy);
  font-size:8px;
  font-weight:500;
  letter-spacing:.36em;
  text-transform:uppercase;
}

.home-hero h1{
  max-width:900px;
  margin:30px 0 0;
  font-family:var(--serif);
  font-size:clamp(72px,9vw,132px);
  line-height:.75;
  letter-spacing:-.045em;
  font-weight:400;
}

.home-hero h1 em{
  display:block;
  margin-top:20px;
  padding-left:10%;
  color:var(--burgundy);
  font-weight:400;
}

.home-hero p{
  max-width:580px;
  margin:48px 0 0;
  color:#6F6A63;
  font-family:var(--serif);
  font-size:22px;
  line-height:1.55;
}

.hero-actions{
  display:flex;
  gap:12px;
  margin-top:44px;
}

.ev-button{
  min-height:56px;
  padding:0 27px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--black);
  background:transparent;
  font-size:8px;
  font-weight:500;
  letter-spacing:.19em;
  text-transform:uppercase;
  transition:.25s;
}

.ev-button.dark{
  background:var(--black);
  color:white;
}

.ev-button:hover{
  background:var(--burgundy);
  border-color:var(--burgundy);
  color:white;
}


/* ================= 3 ALAN ================= */

.paths{
  padding:105px clamp(24px,7vw,110px);
  background:var(--paper);
}

.section-label{
  margin-bottom:18px;
  color:var(--burgundy);
  font-size:8px;
  letter-spacing:.34em;
  text-transform:uppercase;
}

.section-heading{
  max-width:850px;
  margin:0 0 65px;
  font-family:var(--serif);
  font-size:clamp(50px,6vw,82px);
  font-weight:400;
  line-height:.9;
}

.path-row{
  min-height:180px;
  padding:35px 0;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:70px .75fr 1fr auto;
  align-items:center;
  gap:30px;
}

.path-row:last-child{
  border-bottom:1px solid var(--line);
}

.path-no{
  color:var(--gold);
  font-family:var(--serif);
  font-size:28px;
}

.path-row h3{
  margin:0;
  font-family:var(--serif);
  font-size:37px;
  font-weight:400;
}

.path-row p{
  max-width:440px;
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.8;
}

.path-link{
  font-size:8px;
  font-weight:600;
  letter-spacing:.18em;
  white-space:nowrap;
}


/* ================= HOW ================= */

.how{
  padding:110px clamp(24px,7vw,110px);
  background:var(--black);
  color:white;
}

.how .section-label{
  color:var(--gold);
}

.how .section-heading{
  margin-bottom:75px;
}

.how-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(255,255,255,.18);
}

.how-item{
  min-height:280px;
  padding:35px 38px 35px 0;
  border-right:1px solid rgba(255,255,255,.18);
}

.how-item + .how-item{
  padding-left:38px;
}

.how-item:last-child{
  border-right:0;
}

.how-item span{
  color:var(--gold);
  font-family:var(--serif);
  font-size:27px;
}

.how-item h3{
  margin:75px 0 15px;
  font-family:var(--serif);
  font-size:28px;
  font-weight:400;
}

.how-item p{
  margin:0;
  color:#aaa39b;
  font-size:11px;
  line-height:1.8;
}


/* ================= FINAL CTA ================= */

.final-cta{
  min-height:520px;
  padding:80px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--black);
  color:white;
}

.final-cta span{
  color:#D0B786;
  font-size:8px;
  letter-spacing:.35em;
}

.final-cta h2{
  margin:28px 0 40px;
  font-family:var(--serif);
  font-size:clamp(52px,7vw,88px);
  line-height:.86;
  font-weight:400;
}

.final-cta .ev-button{
  color:white;
  border-color:rgba(255,255,255,.6);
}


/* ================= FOOTER ================= */

.ev-footer{
  min-height:180px;
  padding:45px clamp(24px,7vw,110px);
  background:#0C0C0C;
  color:white;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.footer-logo strong{
  font-family:var(--serif);
  font-size:30px;
  letter-spacing:.28em;
  font-weight:400;
}

.footer-logo span{
  display:block;
  margin-top:9px;
  color:#716D68;
  font-size:6px;
  letter-spacing:.4em;
}

.ev-footer small{
  color:#66625D;
  font-size:7px;
  letter-spacing:.15em;
}


/* ========================================================
   PREMIUM LANDING
   ======================================================== */

.premium-page{
  background:var(--ivory);
}

.premium-intro{
  min-height:620px;
  padding:100px clamp(24px,8vw,120px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.premium-intro h1{
  max-width:900px;
  margin:25px 0 0;
  font-family:var(--serif);
  font-size:clamp(70px,9vw,120px);
  line-height:.76;
  font-weight:400;
  letter-spacing:-.045em;
}

.premium-intro h1 em{
  color:var(--burgundy);
  font-weight:400;
}

.premium-intro p{
  max-width:530px;
  margin:45px 0 0;
  color:var(--muted);
  font-family:var(--serif);
  font-size:21px;
  line-height:1.6;
}

.premium-badge-clean{
  width:max-content;
  margin-top:35px;
  padding:10px 15px;
  border:1px solid var(--gold);
  color:var(--burgundy);
  font-size:7px;
  letter-spacing:.25em;
}

.premium-features{
  background:var(--black);
  color:white;
  padding:100px clamp(24px,8vw,120px);
}

.premium-feature{
  min-height:105px;
  display:grid;
  grid-template-columns:60px 1fr auto;
  align-items:center;
  border-top:1px solid rgba(255,255,255,.17);
}

.premium-feature:last-child{
  border-bottom:1px solid rgba(255,255,255,.17);
}

.premium-feature b{
  color:var(--gold);
  font-family:var(--serif);
  font-size:22px;
  font-weight:400;
}

.premium-feature strong{
  font-family:var(--serif);
  font-size:27px;
  font-weight:400;
}

.premium-feature span{
  color:#918B84;
  font-size:8px;
  letter-spacing:.15em;
}

.premium-start{
  padding:100px 24px;
  text-align:center;
}

.premium-start h2{
  max-width:700px;
  margin:0 auto 35px;
  font-family:var(--serif);
  font-size:clamp(52px,7vw,82px);
  line-height:.88;
  font-weight:400;
}


/* ========================================================
   CUSTOM PRODUCTS
   ======================================================== */

.products-hero{
  padding:90px clamp(22px,7vw,105px) 70px;
  border-bottom:1px solid var(--line);
}

.products-hero h1{
  margin:23px 0 25px;
  font-family:var(--serif);
  font-size:clamp(65px,9vw,110px);
  line-height:.8;
  font-weight:400;
}

.products-hero h1 em{
  color:var(--burgundy);
  font-weight:400;
}

.products-hero p{
  max-width:600px;
  color:var(--muted);
  font-family:var(--serif);
  font-size:20px;
  line-height:1.55;
}

.products-grid{
  padding:65px clamp(20px,6vw,90px) 110px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px 22px;
}

.product-card{
  display:block;
}

.product-image{
  width:100%;
  aspect-ratio:.76;
  background:#E6DFD4;
  overflow:hidden;
}

.product-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:.45s;
}

.product-card:hover .product-image img{
  transform:scale(1.015);
}

.product-info{
  padding:20px 0 5px;
  border-bottom:1px solid var(--line);
}

.product-top{
  display:flex;
  justify-content:space-between;
  gap:15px;
}

.product-info small{
  color:var(--gold);
  font-size:7px;
  letter-spacing:.23em;
}

.product-info h2{
  margin:8px 0 9px;
  font-family:var(--serif);
  font-size:28px;
  font-weight:400;
}

.product-price{
  margin-top:7px;
  font-family:var(--serif);
  font-size:21px;
  white-space:nowrap;
}

.product-info p{
  margin:0 0 18px;
  color:var(--muted);
  font-size:10px;
  line-height:1.65;
}

.empty-products{
  grid-column:1/-1;
  min-height:350px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}

.empty-products strong{
  font-family:var(--serif);
  font-size:35px;
  font-weight:400;
}

.empty-products p{
  max-width:430px;
  color:var(--muted);
  font-size:11px;
  line-height:1.7;
}


/* ========================================================
   PRODUCT DETAIL
   ======================================================== */

.detail-wrap{
  max-width:1250px;
  margin:auto;
  padding:70px 35px 100px;
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:75px;
  align-items:start;
}

.detail-image{
  background:#E5DED4;
}

.detail-image img{
  display:block;
  width:100%;
}

.detail-content{
  position:sticky;
  top:130px;
  padding-top:30px;
}

.detail-content .eyebrow{
  margin-bottom:23px;
}

.detail-content h1{
  margin:0;
  font-family:var(--serif);
  font-size:68px;
  line-height:.85;
  font-weight:400;
}

.detail-price{
  margin:27px 0;
  padding-bottom:27px;
  border-bottom:1px solid var(--line);
  font-family:var(--serif);
  font-size:31px;
}

.detail-description{
  color:var(--muted);
  font-size:12px;
  line-height:1.8;
}

.detail-note{
  margin-top:35px;
  padding:22px;
  border-left:1px solid var(--gold);
  background:#EFE8DD;
  color:#69635B;
  font-size:10px;
  line-height:1.7;
}


/* ========================================================
   CUSTOM INVITATION LINK
   ======================================================== */

.custom-open{
  position:fixed;
  inset:0;
  z-index:100;
  background:var(--burgundy2);
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.custom-open.hidden{
  display:none;
}

.custom-open-inner{
  width:min(100%,570px);
  min-height:600px;
  border:1px solid rgba(183,154,98,.65);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:45px 25px;
}

.custom-open small{
  color:#D0B786;
  letter-spacing:.35em;
  font-size:7px;
}

.custom-open h1{
  margin:30px 0;
  font-family:var(--serif);
  font-size:70px;
  line-height:.75;
  font-weight:400;
}

.custom-open h1 i{
  display:block;
  color:var(--gold);
  font-size:27px;
  margin:15px;
}

.custom-open button{
  min-height:55px;
  padding:0 25px;
  border:1px solid rgba(255,255,255,.5);
  background:transparent;
  color:white;
  font-size:8px;
  letter-spacing:.2em;
}

.custom-site{
  max-width:850px;
  margin:auto;
  background:var(--paper);
  min-height:100vh;
}

.custom-brand{
  height:85px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-bottom:1px solid var(--line);
  font-family:var(--serif);
  letter-spacing:.28em;
  font-size:25px;
}

.custom-art img{
  width:100%;
  display:block;
}

.custom-info{
  padding:80px clamp(25px,8vw,75px);
  text-align:center;
}

.custom-info h1{
  margin:0;
  font-family:var(--serif);
  font-size:70px;
  font-weight:400;
  line-height:.8;
}

.custom-info h1 span{
  display:block;
}

.custom-info h1 i{
  display:block;
  margin:13px;
  color:var(--burgundy);
  font-size:29px;
}

.custom-meta{
  margin-top:45px;
  padding:30px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.custom-meta small{
  display:block;
  margin-bottom:8px;
  color:var(--gold);
  font-size:6px;
  letter-spacing:.25em;
}

.custom-meta strong{
  font-family:var(--serif);
  font-size:20px;
  font-weight:400;
}

.custom-venue{
  margin-top:45px;
}

.custom-venue h2{
  margin:0;
  font-family:var(--serif);
  font-size:32px;
  font-weight:400;
}

.custom-venue p{
  color:var(--muted);
  font-size:11px;
  line-height:1.7;
}

.music-control{
  position:fixed;
  right:18px;
  bottom:18px;
  width:52px;
  height:52px;
  border-radius:50%;
  border:1px solid rgba(183,154,98,.65);
  background:var(--black);
  color:white;
  z-index:40;
}


/* ========================================================
   ADMIN
   ======================================================== */

.admin-body{
  background:#EAE4DB;
}

.admin-header{
  min-height:85px;
  padding:0 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:var(--black);
  color:white;
}

.admin-header strong{
  font-family:var(--serif);
  font-size:27px;
  letter-spacing:.25em;
  font-weight:400;
}

.admin-header span{
  color:#8E8981;
  font-size:7px;
  letter-spacing:.22em;
}

.admin-login{
  width:min(100% - 30px,500px);
  margin:80px auto;
  padding:40px;
  background:var(--paper);
}

.admin-login h1{
  font-family:var(--serif);
  font-size:43px;
  font-weight:400;
  margin:0 0 20px;
}

.admin-shell{
  max-width:1100px;
  margin:auto;
  padding:45px 20px 100px;
}

.admin-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.admin-card{
  background:var(--paper);
  padding:32px;
  border:1px solid rgba(17,17,17,.07);
}

.admin-card.full{
  grid-column:1/-1;
}

.admin-card h2{
  margin:0 0 25px;
  font-family:var(--serif);
  font-size:31px;
  font-weight:400;
}

.admin-label{
  display:block;
  margin:18px 0;
}

.admin-label span{
  display:block;
  margin-bottom:8px;
  color:#6F6962;
  font-size:7px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.admin-label input,
.admin-label textarea,
.admin-label select{
  width:100%;
  padding:13px 3px;
  border:0;
  border-bottom:1px solid #B9B1A6;
  border-radius:0;
  background:transparent;
  outline:none;
  font-family:var(--serif);
  font-size:18px;
}

.admin-label textarea{
  min-height:80px;
}

.admin-submit{
  width:100%;
  min-height:58px;
  margin-top:15px;
  border:0;
  background:var(--black);
  color:white;
  font-size:8px;
  letter-spacing:.2em;
}

.admin-result{
  margin-top:20px;
  padding:18px;
  background:#ECE5DB;
  word-break:break-all;
  font-size:10px;
  line-height:1.6;
  display:none;
}

.admin-result.show{
  display:block;
}

.admin-list-item{
  padding:20px 0;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:70px 1fr auto;
  align-items:center;
  gap:18px;
}

.admin-list-item img{
  width:70px;
  height:90px;
  object-fit:cover;
  background:#ddd;
}

.admin-list-item strong{
  display:block;
  font-family:var(--serif);
  font-size:22px;
  font-weight:400;
}

.admin-list-item small{
  color:#817A72;
  font-size:8px;
}

.admin-list-actions{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.admin-list-actions button,
.admin-list-actions a{
  border:1px solid var(--line);
  background:transparent;
  padding:9px 12px;
  font-size:7px;
  letter-spacing:.12em;
}


/* ========================================================
   EXISTING FREE CREATOR
   ======================================================== */

body.evori-free-create{
  background:#EAE4DB!important;
}

body.evori-free-create aside{
  display:none!important;
}

body.evori-free-create .workspace{
  display:block!important;
  max-width:860px!important;
  margin:0 auto!important;
}

body.evori-free-create main{
  max-width:1200px!important;
}

body.evori-free-create .intro{
  max-width:860px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

body.evori-free-create .form-section{
  border-radius:0!important;
  background:var(--paper)!important;
  box-shadow:none!important;
}

body.evori-free-create .publish{
  border-radius:0!important;
  background:var(--black)!important;
}

body.evori-free-create .publish:hover{
  background:var(--burgundy)!important;
}

body.evori-free-create .section-title b{
  color:var(--gold)!important;
}


/* ========================================================
   EXISTING PREMIUM CREATOR
   ======================================================== */

body.evori-premium-create{
  background:#EAE4DB!important;
}

body.evori-premium-create .hero-tags{
  display:none!important;
}

body.evori-premium-create .topbar{
  background:var(--black)!important;
}

body.evori-premium-create .hero{
  background:transparent!important;
}

body.evori-premium-create .hero h1 em{
  color:var(--burgundy)!important;
}

body.evori-premium-create .form-card{
  border-radius:0!important;
  box-shadow:none!important;
  background:var(--paper)!important;
}

body.evori-premium-create .section-head > span{
  color:var(--gold)!important;
}

body.evori-premium-create .feature,
body.evori-premium-create .music-choice,
body.evori-premium-create .theme{
  border-radius:0!important;
}

body.evori-premium-create .premium-summary{
  border-radius:0!important;
  background:var(--burgundy2)!important;
}


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

@media(max-width:760px){

  .ev-header{
    min-height:112px;
    padding:15px 18px 10px;
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto;
  }

  .ev-brand{
    margin:0;
  }

  .ev-brand strong{
    font-size:26px;
  }

  .ev-header-action{
    margin-left:15px;
    min-height:42px;
    padding:0 13px;
    font-size:6px;
  }

  .ev-nav{
    grid-column:1/-1;
    width:100%;
    overflow-x:auto;
    gap:24px;
    margin-top:15px;
    padding-bottom:2px;
    scrollbar-width:none;
  }

  .ev-nav::-webkit-scrollbar{
    display:none;
  }

  .ev-nav a{
    font-size:7px;
  }

  .home-hero{
    min-height:600px;
    padding:75px 22px 70px;
  }

  .home-hero:after{
    display:none;
  }

  .home-hero h1{
    font-size:62px;
  }

  .home-hero h1 em{
    padding-left:0;
    margin-top:13px;
  }

  .home-hero p{
    margin-top:35px;
    font-size:18px;
  }

  .hero-actions{
    flex-direction:column;
  }

  .ev-button{
    width:100%;
  }

  .paths{
    padding:75px 20px;
  }

  .section-heading{
    font-size:49px;
    margin-bottom:45px;
  }

  .path-row{
    min-height:auto;
    padding:32px 0;
    grid-template-columns:38px 1fr;
    gap:15px;
  }

  .path-row p{
    grid-column:2;
  }

  .path-link{
    grid-column:2;
    margin-top:10px;
  }

  .path-row h3{
    font-size:31px;
  }

  .how{
    padding:75px 20px;
  }

  .how-grid{
    grid-template-columns:1fr;
  }

  .how-item,
  .how-item + .how-item{
    min-height:200px;
    padding:30px 0;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.18);
  }

  .how-item h3{
    margin-top:45px;
  }

  .final-cta{
    min-height:450px;
  }

  .ev-footer{
    display:block;
    text-align:center;
  }

  .ev-footer small{
    display:block;
    margin-top:25px;
  }

  .premium-intro{
    min-height:590px;
    padding:75px 22px;
  }

  .premium-intro h1{
    font-size:62px;
  }

  .premium-features{
    padding:70px 20px;
  }

  .premium-feature{
    grid-template-columns:40px 1fr;
    padding:22px 0;
  }

  .premium-feature span{
    display:none;
  }

  .premium-feature strong{
    font-size:24px;
  }

  .products-hero{
    padding:65px 20px 50px;
  }

  .products-hero h1{
    font-size:60px;
  }

  .products-grid{
    grid-template-columns:1fr;
    padding:40px 18px 80px;
  }

  .detail-wrap{
    display:block;
    padding:25px 18px 70px;
  }

  .detail-content{
    position:static;
    padding-top:40px;
  }

  .detail-content h1{
    font-size:53px;
  }

  .custom-info{
    padding:60px 22px;
  }

  .custom-info h1{
    font-size:55px;
  }

  .admin-grid{
    grid-template-columns:1fr;
  }

  .admin-card.full{
    grid-column:auto;
  }

  .admin-card{
    padding:24px 18px;
  }

  .admin-list-item{
    grid-template-columns:55px 1fr;
  }

  .admin-list-item img{
    width:55px;
    height:70px;
  }

  .admin-list-actions{
    grid-column:2;
    flex-direction:row;
    flex-wrap:wrap;
  }
}
