/* =========================
   LOVEPET — SOFT LUXURY THEME
   ========================= */

:root{
  /* Base */
  --magnolia:#F8F4EC;
  --ivory:#FFFCF6;
  --paper:#FFFFFF;

  /* Text */
  --ink:#1F2A3A;
  --muted:#6E7A8A;

  /* Accents */
  --royal:#3E6FB6;      /* refined blue */
  --royal-2:#2F5FA6;
  --sage:#6FB49A;       /* muted green */
  --gold:#C9A86A;       /* soft gold */
  --gold-2:#E7D3A6;

  /* UI */
  --border: rgba(31,42,58,.10);
  --shadow: 0 18px 50px rgba(17, 24, 39, .10);
  --shadow-soft: 0 10px 28px rgba(17, 24, 39, .08);
  --radius: 22px;
  --radius-sm: 14px;
  --max: 1120px;
}

/* Reset */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* Background (magnolia + subtle paw) */
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color:var(--ink);
  line-height:1.55;

  /* base color */
  background-color: var(--magnolia);

  /* layers: paws first, then soft luxury gradients */
  background-image:
    url("../paw-pattern.svg"),
    radial-gradient(900px 500px at 10% 10%, rgba(201,168,106,.22), transparent 60%),
    radial-gradient(1000px 600px at 90% 0%, rgba(62,111,182,.14), transparent 60%),
    linear-gradient(180deg, rgba(255,252,246,.0), rgba(255,252,246,.38));

  background-repeat: repeat, no-repeat, no-repeat, no-repeat;
  background-size: 240px, auto, auto, auto;
  background-position: 0 0, 10% 10%, 90% 0%, 0 0;

  /* makes paw layer merge nicely with magnolia */
  background-blend-mode: multiply, normal, normal, normal;
}


/* Optional paw pattern layer using SVG file.
   Keep this ON for all pages. If you want it only on Home, tell me and I’ll split it. */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.18;
  background-repeat:repeat;
  background-size:240px;
  background-image:url("data:image/svg+xml;utf8,\
  <svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'>\
  <g fill='%23C9A86A' opacity='0.10'>\
  <circle cx='55' cy='92' r='14'/>\
  <circle cx='38' cy='70' r='6'/>\
  <circle cx='55' cy='60' r='6'/>\
  <circle cx='72' cy='70' r='6'/>\
  <circle cx='82' cy='82' r='6'/>\
  <circle cx='175' cy='160' r='14'/>\
  <circle cx='158' cy='138' r='6'/>\
  <circle cx='175' cy='128' r='6'/>\
  <circle cx='192' cy='138' r='6'/>\
  <circle cx='202' cy='150' r='6'/>\
  </g></svg>");
  mix-blend-mode:multiply;
}


/* Layout */
.container{
  max-width:var(--max);
  margin:0 auto;
  padding:22px;
  position:relative; /* above ::before */
  z-index:1;
}

/* NAV */
.nav{
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(201,168,106,.22);
  border-radius: calc(var(--radius) + 6px);
  box-shadow: var(--shadow-soft);
  padding: 14px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin: 6px 0 22px;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  letter-spacing:.2px;
}

.logo{
  width:38px;height:38px;border-radius:14px;
  background:
    radial-gradient(18px 18px at 30% 30%, rgba(255,255,255,.6), transparent 55%),
    linear-gradient(135deg, var(--royal), var(--royal-2));
  box-shadow: 0 12px 24px rgba(62,111,182,.18);
  position:relative;
}
.logo::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:16px;
  border:1px solid rgba(201,168,106,.35); /* gold ring */
}

.navlinks{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.navlinks a{
  padding:10px 12px;
  border-radius:14px;
  color: rgba(31,42,58,.82);
  border:1px solid transparent;
  transition: all .18s ease;
}

.navlinks a:hover{
  background: rgba(255,255,255,.60);
  border-color: rgba(201,168,106,.35);
  box-shadow: 0 10px 24px rgba(17,24,39,.06);
}

.navlinks a.active{
  background: rgba(201,168,106,.16);
  border-color: rgba(201,168,106,.40);
}

/* HERO */
.hero{
  margin-top: 6px;
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap:18px;
}
@media (max-width: 900px){
  .hero{grid-template-columns:1fr}
}

.hero h1{
  margin:0 0 12px;
  font-size: clamp(30px, 3.4vw, 46px);
  line-height:1.12;
  letter-spacing:-.2px;
}
.hero p{margin:0 0 14px;color:var(--muted);font-size:16px}

/* CARDS */
.card{
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(201,168,106,.22);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.hero .left{padding:24px}
.hero .right{padding:20px}

/* Pills */
.pills{display:flex;gap:10px;flex-wrap:wrap;margin: 8px 0 0}
.pill{
  border:1px solid rgba(201,168,106,.25);
  border-radius:999px;
  padding:8px 10px;
  color: rgba(31,42,58,.78);
  background: rgba(255,255,255,.55);
  font-size: 13px;
}

/* Buttons */
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.btn{
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 18px;
  border-radius: 14px;
  border: 1px solid rgba(201,168,106,.28);
  background: rgba(255,255,255,.68);
  color: var(--ink);
  font-weight:700;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(17,24,39,.10);
}
.btn:active{transform: translateY(0)}

.btn.primary{
  border-color: transparent;
  color: #ffffff;
  background:
    radial-gradient(18px 18px at 30% 30%, rgba(255,255,255,.35), transparent 60%),
    linear-gradient(135deg, var(--royal), var(--royal-2));
}
.btn.success{
  border-color: transparent;
  color:#0c1b14;
  background:
    radial-gradient(18px 18px at 30% 30%, rgba(255,255,255,.45), transparent 60%),
    linear-gradient(135deg, #8fd6bf, var(--sage));
}

/* Notice */
.notice{
  padding:12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(201,168,106,.22);
  background: rgba(255,255,255,.58);
  color: rgba(31,42,58,.78);
}
.notice strong{color:var(--ink)}

/* Stats */
.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stat{
  padding:14px;
  border-radius: 16px;
  border: 1px solid rgba(201,168,106,.18);
  background: rgba(255,255,255,.62);
}
.stat .n{font-size:22px;font-weight:900}
.stat .t{color:var(--muted);font-size:13px}

/* Sections */
.section{margin-top:22px}
.section h2{margin:0 0 12px;font-size:20px}

/* Grid blocks / listings */
.grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap:20px;
}


.listing{
  padding:14px;
  border-radius: 18px;
  border: 1px solid rgba(201,168,106,.18);
  background: rgba(255,255,255,.62);
  box-shadow: 0 12px 26px rgba(17,24,39,.06);
}
.listing h3{margin:6px 0 6px}
.listing p{margin:0;color:var(--muted)}

.badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.badge{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(201,168,106,.22);
  color: rgba(31,42,58,.78);
  background: rgba(255,255,255,.55);
}
.badge.featured{
  border-color: rgba(201,168,106,.55);
  background: rgba(201,168,106,.20);
}
.badge.price{
  border-color: rgba(111,180,154,.45);
  background: rgba(111,180,154,.18);
}
.badge.expires{
  border-color: rgba(31,42,58,.14);
}

.meta{
  margin-top:10px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  color: var(--muted);
  font-size:13px;
}
.meta span{
  border:1px solid rgba(201,168,106,.18);
  border-radius:999px;
  padding:6px 10px;
  background: rgba(255,255,255,.55);
}

/* Toolbar */
.toolbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  padding: 14px;
}

/* Forms */
.form{padding:22px}
label{display:block;margin: 10px 0 6px;color: rgba(31,42,58,.88);font-size: 13px;font-weight:700}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width: 900px){ .row{grid-template-columns:1fr} }

.input, select, textarea{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(201,168,106,.22);
  background: rgba(255,255,255,.82);
  color: var(--ink);
  outline:none;
}
.input:focus, select:focus, textarea:focus{
  border-color: rgba(62,111,182,.45);
  box-shadow: 0 0 0 4px rgba(62,111,182,.12);
}
textarea{resize:vertical}

hr.sep{border:none;border-top:1px solid rgba(201,168,106,.18);margin: 16px 0}
.help{color:var(--muted);font-size:13px}

/* Footer */
.footer{
  margin-top: 22px;
  padding: 18px 0;
  border-top: 1px solid rgba(201,168,106,.18);
  color: var(--muted);
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
}
.footer a{color: var(--muted)}
.footer a:hover{color: var(--ink)}

/* Cookie banner */
.cookie-banner{
  position:fixed;left:14px;right:14px;bottom:14px;
  max-width:var(--max);margin:0 auto;
  padding:14px;border-radius:18px;
  border:1px solid rgba(201,168,106,.25);
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-soft);
  display:none;
  z-index:9999;
}
.cookie-banner.show{display:block}
.cookie-banner p{margin:0 0 10px;color:var(--muted)}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}

.listing-image{
  width:100%;
  height:220px;
  border-radius:18px;
  margin-bottom:12px;
  background-size:cover;
  background-position:center;
  background-color: rgba(255,255,255,.6);
  border: 1px solid rgba(201,168,106,.18);
  box-shadow: 0 10px 20px rgba(17,24,39,.06);
}
/* ===== Modal (Gallery + Details) ===== */
.modal-overlay{
  position:fixed;
  inset:0;
  background: rgba(15, 18, 25, .45);
  backdrop-filter: blur(6px);
  display:none;
  align-items:center;
  justify-content:center;
  padding: 18px;
  z-index: 10000;
}

.modal-overlay.show{ display:flex; }

.modal{
  width:min(980px, 100%);
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(201,168,106,.25);
  border-radius: 22px;
  box-shadow: 0 22px 70px rgba(0,0,0,.20);
  overflow:hidden;
}

.modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(201,168,106,.18);
  background: rgba(255,255,255,.75);
}

.modal-title{
  font-weight: 900;
  letter-spacing: .2px;
}

.modal-close{
  border:1px solid rgba(201,168,106,.35);
  background: rgba(255,255,255,.8);
  border-radius: 14px;
  padding: 8px 12px;
  cursor:pointer;
  font-weight:800;
}

.modal-body{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 14px;
  padding: 14px;
}

@media (max-width: 900px){
  .modal-body{ grid-template-columns: 1fr; }
}

.modal-main-img{
  width:100%;
  height: 420px;
  border-radius: 18px;
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(201,168,106,.18);
  background-color: rgba(255,255,255,.7);
}

.modal-thumbs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 12px;
}

.modal-thumb{
  width:74px;
  height:54px;
  border-radius: 14px;
  border: 1px solid rgba(201,168,106,.20);
  background-size: cover;
  background-position: center;
  cursor:pointer;
  opacity:.85;
  transition: transform .15s ease, opacity .15s ease;
}
.modal-thumb:hover{ transform: translateY(-1px); opacity: 1; }
.modal-thumb.active{
  outline: 3px solid rgba(62,111,182,.20);
  opacity:1;
}

.modal-details{
  border: 1px solid rgba(201,168,106,.18);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.70);
}

.modal-badges{ margin-bottom: 10px; display:flex; gap:8px; flex-wrap:wrap; }

.modal-details h3{ margin: 6px 0 8px; }
.modal-details p{ margin: 0; color: var(--muted); }

.modal-meta{
  margin-top: 10px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  color: var(--muted);
  font-size:13px;
}
.modal-meta span{
  border:1px solid rgba(201,168,106,.18);
  border-radius:999px;
  padding:6px 10px;
  background: rgba(255,255,255,.55);
}

/* Make listing image look clickable */
.listing-image{ cursor: zoom-in; }

.badge.promo {
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: white;
  font-weight: 600;
}

.card.featured {
  border: 2px solid #f59e0b;
  box-shadow: 0 10px 25px rgba(245, 158, 11, 0.25);
}