/* ============================================================
   Genuinely Gena Creations — site styles
   Palette: Pink / Grey / White / Black accents
   ============================================================ */

:root{
  --pink:#E83E8C;        /* primary pink (logo)      */
  --pink-soft:#F4A7C4;   /* soft pink                */
  --pink-pale:#FDEAF2;  /* pale pink bg             */
  --grey:#6F6F73;       /* mid grey                 */
  --grey-soft:#B7B7BC;  /* light grey               */
  --grey-pale:#F1F1F3;  /* near-white grey bg       */
  --black:#202023;      /* near-black               */
  --white:#FFFFFF;
  --cream:#FFF7FA;
  --shadow:0 6px 22px rgba(32,32,35,.14);
  --radius:16px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Segoe UI',-apple-system,system-ui,Roboto,Helvetica,Arial,sans-serif;
  color:var(--black);
  background:var(--cream);
  line-height:1.6;
}
a{color:var(--pink);text-decoration:none;}
a:hover{text-decoration:underline;color:#C21a6e;}
img{max-width:100%;display:block;}

/* ---------- Top navigation bar ---------- */
.topbar{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;gap:8px;
  padding:0 22px;
  background:linear-gradient(90deg,var(--black) 0%,#3a2a33 100%);
  color:var(--white);
  box-shadow:var(--shadow);
  flex-wrap:wrap;
}
.brand{
  display:flex;align-items:center;gap:12px;
  font-weight:800;letter-spacing:.4px;
  padding:14px 8px 14px 0;
}
.brand .logo-img{
  width:42px;height:42px;object-fit:cover;border-radius:8px;
  box-shadow:inset 0 -3px 8px rgba(0,0,0,.18);
}
.brand .brand-text{font-size:18px;}
.brand .brand-text span{color:var(--pink-soft);}

nav{display:flex;flex-wrap:wrap;gap:2px;}
nav a{
  color:var(--white);
  padding:16px 15px;
  font-weight:600;
  font-size:15px;
  border-bottom:3px solid transparent;
  transition:.18s;
}
nav a:hover{background:rgba(255,255,255,.08);text-decoration:none;border-bottom-color:var(--pink);}
nav a.active{border-bottom-color:var(--pink);background:rgba(232,62,140,.16);}

.cart-btn{
  margin-left:auto;
  position:relative;
  display:flex;align-items:center;gap:8px;
  background:var(--pink);color:#fff;
  border:none;border-radius:999px;
  padding:11px 18px;font-weight:700;font-size:15px;
  cursor:pointer;
  transition:.18s;
}
.cart-btn:hover{background:#C21a6e;}
.cart-count{
  position:absolute;top:-6px;right:-6px;
  background:var(--pink-soft);color:var(--black);
  border-radius:999px;font-size:12px;font-weight:800;
  min-width:20px;height:20px;padding:0 6px;
  display:flex;align-items:center;justify-content:center;
}

/* ---------- Layout helpers ---------- */
.wrap{max-width:1120px;margin:0 auto;padding:0 22px;}
section.page{padding:46px 0 26px;}
section.page-light{background:var(--pink-pale);}
.hero{
  position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 50% -10%,var(--pink-pale),#fff 60%);
  border-bottom:1px solid rgba(232,62,140,.15);
}
.hero-inner{max-width:1120px;margin:0 auto;padding:70px 22px 64px;position:relative;z-index:2;}
.hero-inner-withimg{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
@media(max-width:820px){.hero-inner-withimg{grid-template-columns:1fr;}}
.hero-image{height:420px;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);}
.hero-image img{width:100%;height:100%;object-fit:cover;display:block;}
h1{font-size:44px;line-height:1.12;margin:0 0 12px;}
h2{font-size:30px;margin:0 0 16px;}
h3{font-size:20px;margin:0 0 8px;}
.lead{font-size:18px;color:var(--grey);max-width:640px;}
.pink{color:var(--pink);}
.tag{
  display:inline-block;background:var(--pink);color:#fff;
  font-size:13px;font-weight:700;letter-spacing:.6px;
  padding:5px 12px;border-radius:999px;text-transform:uppercase;margin-bottom:14px;
}

/* ---------- Cards / grid ---------- */
.grid{display:grid;gap:22px;}
.grid.books{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
.grid.shells{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
.grid.coasters{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
.card{
  background:#fff;border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;
  border:1px solid rgba(0,0,0,.05);
  display:flex;flex-direction:column;
}
.card .thumb{
  aspect-ratio:1/1;overflow:hidden;background:var(--grey-pale);
}
.card .thumb img{width:100%;height:100%;object-fit:cover;}
.card .series-thumbs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:12px 16px 0;}
.card[data-product="hoppy-series"] .series-thumbs img{width:72%;height:auto;border-radius:6px;object-fit:cover;display:block;margin:0 auto;}
.card[data-product="hoppy-series"]{max-width:320px;margin:0 auto;}
.card[data-product="hoppy-series"] .series-thumbs{padding:12px 16px 6px;}
.card[data-product="hoppy-series"] .body{padding:8px 16px 14px;text-align:center;gap:6px;}
.card[data-product="hoppy-series"] .body .desc{text-align:center;}
.card .body{padding:15px 16px 18px;display:flex;flex-direction:column;gap:8px;}
.card .body .btn.small{width:100%;}
.card .title{font-weight:700;font-size:16px;}
.card .desc{font-size:14px;color:var(--grey);flex:1;}
.card .price{font-weight:800;color:var(--black);font-size:18px;}
.card .price small{font-size:13px;font-weight:600;color:var(--grey);}
.card .thumb{position:relative;}

/* disable add-to-cart button when sold out */
.card .btn.small:disabled{
  opacity:0.55;cursor:not-allowed;
  background:#c9c9c9 !important;color:#fff !important;
}

/* Sold-out diagonal ribbon over the tile image */
.card .thumb .soldout-ribbon{
  position:absolute;top:28%;left:22%;
  padding:8px 40px;font-weight:900;font-size:20px;letter-spacing:0.5px;
  color:#ffe200 !important;
  background:#E83E8C;
  box-shadow:0 2px 6px rgba(0,0,0,0.35);
  transform:rotate(-45deg);
  transform-origin:center;
  z-index:5;pointer-events:none;
  white-space:nowrap;
}

/* hero button tile (invisible container) */
.hero-btns-tile{max-width:620px;margin:22px auto 0;}
.hero-btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.hero-btn-row:last-child{margin-top:20px;}


/* ---------- Page head / body (coasters & landing pages) ---------- */
.content .page-head{max-width:760px;margin:0 auto 26px;text-align:center;padding:0 18px;}
.content .page-head h1{font-size:40px;line-height:1.15;margin:0 0 12px;}
.content .page-head .page-sub{font-size:18px;color:var(--grey);max-width:640px;margin:0 auto 0;}
.content .page-body{max-width:1080px;margin:0 auto;padding:0 18px;}
.content .page-body > p{max-width:680px;margin:0 auto 20px;text-align:center;font-size:16px;color:var(--grey);}

.btn{
  display:inline-block;border:none;border-radius:10px;
  padding:10px 16px;font-weight:700;font-size:15px;cursor:pointer;
  background:var(--pink);color:#fff;transition:.18s;
}
.btn:hover{background:#C21a6e;text-decoration:none;}
.btn.outline{background:transparent;color:var(--pink);border:2px solid var(--pink);}
.btn.outline:hover{background:var(--pink);color:#fff;}
.btn.dark{background:var(--black);}
.btn.small{padding:8px 13px;font-size:14px;}

/* ---------- Pink buttons with hover color-swap (index page) ---------- */
.btn-swap{
  display:inline-block;text-decoration:none;
  background:var(--pink);color:#fff;font-weight:700;font-size:15px;
  border-radius:10px;padding:10px 16px;transition:color .18s;
}
.btn-swap:hover{color:#000;}

/* ---------- Two-column decouage layout ---------- */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:34px;}
@media(max-width:820px){.cols{grid-template-columns:1fr;}}
.col-panel{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;}
.col-panel h3{border-bottom:3px solid var(--pink-pale);padding-bottom:10px;}

/* ---------- Photo category cards ---------- */
.photo-card{display:block;border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow);text-decoration:none;transition:transform .22s,box-shadow .22s;height:100%;}
.photo-card:hover{transform:translateY(-6px);box-shadow:0 14px 34px rgba(232,62,140,.28);}
.photo-card-img{height:200px;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:var(--pink-pale);}
.photo-card-book{height:260px;display:flex;align-items:center;justify-content:center;padding:22px 26px;background:linear-gradient(135deg,var(--pink-pale),#fff);}
.photo-card-book img{max-height:236px;width:auto;height:auto;max-width:100%;border-radius:8px;box-shadow:0 8px 20px rgba(32,32,35,.22);transform:rotate(-1.5deg);transition:transform .25s;}
.photo-card.book-card:hover .photo-card-book img{transform:rotate(0deg) translateY(-4px);}
.photo-card-body{padding:20px 22px 24px;}
.photo-card-body h3{margin:0 0 8px;}
.photo-card-body p{margin:0;color:var(--grey);font-size:14px;line-height:1.55;}
.photo-card-eyebrow{display:inline-block;font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--pink);margin-bottom:8px;}

/* ---------- Videos ---------- */
.video-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.video-card video{width:100%;border-radius:12px;background:#000;}
.video-card .meta{padding:10px 2px 0;}

/* ---------- Testimonials ---------- */
.quote{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;border-left:5px solid var(--pink);}
.quote .stars{color:#F2C94C;letter-spacing:2px;}
.quote .author{font-weight:700;margin-top:10px;}

/* ---------- Testimonials grid (shared by testimonials.html + index preview) ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;}
.testi-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;display:flex;flex-direction:column;gap:12px;}
.testi-card .stars{color:#F2C94C;letter-spacing:2px;font-size:15px;}
.testi-text{margin:0;font-size:15px;line-height:1.6;color:var(--black);}
.testi-author{margin:0;font-weight:700;font-size:14px;color:var(--pink);}

/* ---------- Contact (footer) ---------- */
footer.site{
  background:linear-gradient(90deg,var(--black),#3a2a33);
  color:#f4f4f4;margin-top:40px;
}
footer.site .wrap{padding:38px 22px;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;}}
.contact-form{display:flex;flex-direction:column;gap:12px;}
.contact-form input,.contact-form textarea{
  border:none;border-radius:10px;padding:12px 14px;
  font-size:15px;font-family:inherit;background:#fff;color:var(--black);
}
.contact-form label{font-weight:700;font-size:14px;color:var(--pink-soft);}
.contact-info p{margin:0 0 8px;}
.contact-info a{color:var(--pink-soft);}
.copyright{margin-top:26px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:var(--grey-soft);}

/* ---------- Video Corner embed (Facebook) ---------- */
.video-embed{display:flex;justify-content:center;margin:24px 0 8px;}
.video-embed iframe{width:500px;max-width:100%;height:375px;border-radius:12px;}

/* ---------- About portrait ---------- */
.about-story{display:flex;gap:40px;align-items:flex-start;}
.about-story .about-hero-img{flex:0 0 280px;}
.about-story .about-hero-img img{width:100%;height:auto;display:block;border-radius:16px;box-shadow:var(--shadow);}
.about-story-text{flex:1;font-size:16px;line-height:1.7;}
.about-story-text h2{margin-bottom:12px;}
.about-story-text p{margin:0 0 16px;}
.about-story-text .signature{margin-top:8px;font-weight:700;color:var(--pink);}
@media(max-width:720px){.about-story{flex-direction:column;gap:24px;}}

/* ---------- Cart drawer ---------- */
.overlay{
  position:fixed;inset:0;background:rgba(32,32,35,.45);
  opacity:0;pointer-events:none;transition:.25s;z-index:200;
}
.overlay.open{opacity:1;pointer-events:auto;}
.drawer{
  position:absolute;top:0;right:0;height:100%;width:min(420px,92vw);
  background:#fff;box-shadow:-8px 0 30px rgba(0,0,0,.25);
  transform:translateX(100%);transition:.28s;display:flex;flex-direction:column;
}
.overlay.open .drawer{transform:translateX(0);}
.drawer head{padding:18px 20px;border-bottom:1px solid var(--grey-pale);display:flex;align-items:center;}
.drawer head h3{margin:0;}
.close-x{margin-left:auto;background:none;border:none;font-size:26px;cursor:pointer;color:var(--black);}
.cart-items{flex:1;overflow-y:auto;padding:14px 20px;}
.cart-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--grey-pale);}
.cart-item .ci-thumb{width:56px;height:56px;border-radius:10px;overflow:hidden;background:var(--grey-pale);}
.cart-item .ci-thumb img{width:100%;height:100%;object-fit:cover;}
.cart-item .ci-info{flex:1;}
.cart-item .ci-name{font-weight:700;font-size:15px;}
.cart-item .ci-price{color:var(--pink);font-weight:700;}
.qty-ctrl{display:flex;align-items:center;gap:8px;margin-top:4px;}
.qty-ctrl button{width:26px;height:26px;border-radius:7px;border:1px solid var(--grey-soft);background:#fff;cursor:pointer;font-weight:800;}
.qty-ctrl button:hover{background:var(--pink-pale);}
.remove-btn{background:none;border:none;color:#c0392b;font-size:12px;cursor:pointer;margin-top:4px;}
.cart-foot{padding:18px 20px;border-top:1px solid var(--grey-pale);background:#fafafa;}
.cart-total{display:flex;justify-content:space-between;font-size:19px;font-weight:800;margin-bottom:12px;}
.empty{color:var(--grey);text-align:center;padding:30px 0;}

/* ---------- Checkout ---------- */
.checkout{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-top:22px;display:none;}
.checkout.open{display:block;}
.pay-methods{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 14px;}
.pay-methods label{
  display:flex;align-items:center;gap:8px;border:2px solid var(--grey-soft);
  border-radius:10px;padding:9px 14px;cursor:pointer;font-weight:600;
}
.pay-methods input:checked + span{color:var(--pink);}
.pay-methods input:checked ~ span{color:var(--pink);}
.pay-methods label:has(input:checked){border-color:var(--pink);background:var(--pink-pale);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.form-row.full{grid-template-columns:1fr;}
.checkout .field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;}
.checkout .field label{font-weight:700;font-size:14px;}
.checkout .field input{border:1px solid var(--grey-soft);border-radius:10px;padding:10px 12px;font-size:15px;font-family:inherit;}
.check-summary{background:var(--grey-pale);border-radius:10px;padding:14px;margin-bottom:16px;}

/* confetti canvas */
#confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;}

/* toast */
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--black);color:#fff;padding:12px 20px;border-radius:10px;
  box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;z-index:300;font-weight:600;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

@media(max-width:640px){
  h1{font-size:33px;}
  .topbar{gap:2px;}
  nav a{padding:12px 11px;font-size:14px;}
}

/* ---------- Checkout page (checkout.html) ---------- */
.checkout-cols{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:start;}
.checkout-left{}
.checkout-right{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;}
.checkout-right h3{margin-bottom:14px;}
.checkout-form{display:flex;flex-direction:column;gap:12px;}
.checkout-form label{font-weight:700;font-size:14px;}
.checkout-form input, .checkout-form select{border:1px solid var(--grey-soft);border-radius:10px;padding:10px 12px;font-size:15px;font-family:inherit;background:#fff;}
.checkout-form select{cursor:pointer;}
.co-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.co-items{margin-bottom:16px;}
.co-empty{color:var(--grey);text-align:center;padding:24px 0;font-size:15px;}
.co-line{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--grey-soft);align-items:flex-start;}
.co-itemname{font-size:15px;line-height:1.4;}
.co-linetotal{font-weight:800;white-space:nowrap;}
.co-totals{background:var(--grey-pale);border-radius:10px;padding:16px;margin-top:8px;}
.co-row{display:flex;justify-content:space-between;gap:16px;padding:6px 0;font-size:15px;}
.co-grand{border-top:2px solid var(--black);margin-top:8px;padding-top:12px;font-size:19px;font-weight:800;}
.btn-pink{background:var(--pink);color:#fff;border-color:var(--pink);}
.btn-pink:hover{background:#d62f7a;border-color:#d62f7a;}
.order-status{margin-top:16px;padding:14px 16px;border-radius:10px;font-size:14px;line-height:1.5;display:none;}
.order-status.ok{background:#e6f7ec;border:1px solid #7bc86f;color:#2a7a2a;}
.order-status.notice{background:#fdf3f7;border:1px solid #f3a6c3;color:#8a2350;}

/* order popup */
.popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:400;padding:20px;}
.popup-overlay.show{display:flex;}
.popup-box{background:#fff;border-radius:14px;padding:28px 26px;max-width:480px;width:100%;box-shadow:var(--shadow);text-align:center;}
.popup-box h3{color:var(--black);margin-bottom:12px;font-size:22px;}
.popup-box p{color:var(--black);font-size:15px;line-height:1.5;margin:6px 0;}
.popup-box .btn{margin-top:16px;}

@media(max-width:720px){
  .checkout-cols{grid-template-columns:1fr;}
}

/* ---------- Coasters page — phone responsive ---------- */
@media(max-width:640px){
  .content .page-head h1{font-size:30px;}
  .content .page-head .page-sub{font-size:16px;}
  .grid.clasters{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;}
  .card .title{font-size:15px;}
  .card .price{font-size:16px;}
  .btn.small{font-size:13px;padding:7px 11px;}
}

@media(max-width:480px){
  .content .page-head h1{font-size:26px;}
  .grid.clasters{grid-template-columns:1fr 1fr;}
}
