/* TupyaGift occasion guide — single source of truth (v8, 2026-09-25)
 * Cleanup: collapsed accumulated v1-v7 duplicates; the rules below are
 * the only ones that take effect. Browser-tested on desktop and mobile. */

/* --- Page shell: occasion guides are single-column (no sidebars) --- */
body.tg-occasion-page .tupya-page-shell{
  display:block!important;
  max-width:880px!important;
  margin:0 auto!important;
  padding:0 16px!important;
}
body.tg-occasion-page .tupya-page-left,
body.tg-occasion-page .tupya-page-right{
  display:none!important;
}
body.tg-occasion-page .tupya-page-center{
  width:100%!important;
  max-width:880px!important;
  margin:0 auto!important;
}
body.tg-occasion-page .tupya-page-center .page-article{
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  border-radius:0!important;
}
body.tg-occasion-page .tupya-page-center .page-content.entry-content{
  padding:0!important;
}

/* --- Hero: compact, plain text + image, no kicker / date / accent bar --- */
body.tg-occasion-page .tg-og-hero{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:20px;
  align-items:center;
  margin:0 0 14px;
  padding:18px 20px;
  background:#fff;
  border:1px solid #ece6f4;
  border-radius:14px;
  overflow:hidden;
}
body.tg-occasion-page .tg-og-hero-text{
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:center;
  min-width:0;
}
body.tg-occasion-page .tg-og-hero h1{
  font-size:clamp(22px,2.4vw,30px);
  font-weight:800;
  color:#1f1822;
  margin:0;
  line-height:1.18;
  letter-spacing:-.015em;
}
body.tg-occasion-page .tg-og-date,
body.tg-occasion-page .tg-og-kicker{display:none}
body.tg-occasion-page .tg-og-lead{
  font-size:14px;
  line-height:1.55;
  color:#4a4350;
  margin:0;
  max-width:560px;
  word-break:break-word;
  display:block;
}
body.tg-occasion-page .tg-og-hero-img{
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  max-height:340px;
  object-fit:cover;
  object-position:center;
  border-radius:10px;
  display:block;
  background:#fafafa;
}

/* --- TOC: compact, two-column --- */
body.tg-occasion-page .tg-og-toc{
  margin:0 0 14px;
  padding:12px 16px;
  background:#fbf9fd;
  border:1px solid #ece6f4;
  border-radius:12px;
}
body.tg-occasion-page .tg-og-toc>strong{
  display:flex;
  align-items:center;
  gap:10px;
  color:#5e3aa8;
  font-size:11.5px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin:0 0 8px;
}
body.tg-occasion-page .tg-og-toc>strong::before{
  content:"";
  display:inline-block;
  width:20px;
  height:3px;
  background:#7e57c2;
  border-radius:2px;
}
body.tg-occasion-page .tg-og-toc ol{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px 16px;
}
body.tg-occasion-page .tg-og-toc ol li{
  font-size:13px;
  color:#3a3340;
  line-height:1.4;
}
body.tg-occasion-page .tg-og-toc ol li::before{
  content:"→  ";
  color:#7e57c2;
  font-weight:700;
}
body.tg-occasion-page .tg-og-toc a{
  color:#3a3340;
  text-decoration:none;
}
body.tg-occasion-page .tg-og-toc a:hover{
  color:#5e3aa8;
  text-decoration:underline;
}

/* --- Hero products: 4 cards horizontal, titles don't clip, balanced foot --- */
body.tg-occasion-page .tg-og-hero-products{
  margin:0 0 14px;
  padding:18px 20px;
  background:#fff;
  border:1px solid #eee;
  border-radius:14px;
}
body.tg-occasion-page .tg-og-hero-products>strong{
  display:flex;
  align-items:center;
  gap:10px;
  color:#1f1822;
  font-size:14px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin:0 0 14px;
}
body.tg-occasion-page .tg-og-hero-products>strong::before{
  content:"";
  display:inline-block;
  width:26px;
  height:3px;
  background:#c1272d;
  border-radius:2px;
}
body.tg-occasion-page .tg-og-hero-products>strong::after{
  content:"";
  flex:1;
  height:1px;
  background:linear-gradient(90deg,#eee 0%,transparent 100%);
}
body.tg-occasion-page .tg-og-hero-products ul{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
body.tg-occasion-page .tg-og-hero-products li{display:flex}
body.tg-occasion-page .tg-og-hero-products li>a{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #ececec;
  border-radius:10px;
  overflow:hidden;
  color:#1f1822;
  text-decoration:none;
  width:100%;
  min-height:300px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
body.tg-occasion-page .tg-og-hero-products li>a:hover,
body.tg-occasion-page .tg-og-hero-products li>a:focus-visible{
  transform:translateY(-3px);
  border-color:#d7c0a4;
  box-shadow:0 10px 22px rgba(107,31,36,.10);
  outline:none;
}
body.tg-occasion-page .tg-og-hero-products .tg-og-hp-img{
  aspect-ratio:1/1;
  background:#fafafa;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
body.tg-occasion-page .tg-og-hero-products img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:6%;
  transition:transform .35s ease;
}
body.tg-occasion-page .tg-og-hero-products li>a:hover img{transform:scale(1.04)}
body.tg-occasion-page .tg-og-hp-body{
  padding:12px 14px 14px;
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
}
body.tg-occasion-page .tg-og-hp-title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-size:13px;
  line-height:1.4;
  font-weight:600;
  color:#1f1822;
  min-height:36px;
  letter-spacing:-.005em;
  word-break:break-word;
}
body.tg-occasion-page .tg-og-hp-foot{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:8px;
  margin-top:auto;
}
body.tg-occasion-page .tg-og-hp-amount{
  font-size:16px;
  font-weight:800;
  color:#c1272d;
  letter-spacing:-.01em;
  line-height:1.1;
}
body.tg-occasion-page .tg-og-hp-amount small{
  display:block;
  font-size:10px;
  color:#8a8a8a;
  font-weight:500;
  letter-spacing:.04em;
  margin-top:3px;
  text-transform:uppercase;
}
body.tg-occasion-page .tg-og-hp-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:8px 12px;
  background:#1f1822;
  color:#fff;
  font-size:11.5px;
  font-weight:700;
  border-radius:7px;
  letter-spacing:.02em;
  text-decoration:none;
  transition:background .15s ease;
  flex-shrink:0;
  white-space:nowrap;
}
body.tg-occasion-page .tg-og-hp-cta::after{content:"\2192";font-size:11px;opacity:.85}
body.tg-occasion-page .tg-og-hp-cta:hover,
body.tg-occasion-page .tg-og-hp-cta:focus-visible{background:#c1272d}

/* --- Body text sections (intro / content paragraphs) --- */
body.tg-occasion-page .tg-og-products{
  margin:18px 0;
  padding:18px 20px;
  background:#fbf8fd;
  border:1px solid #eee4f2;
  border-radius:14px;
}
body.tg-occasion-page .tg-og-products>strong{
  display:block;
  color:#35283d;
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin:0 0 10px;
}
body.tg-occasion-page .tg-og-products ul{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
body.tg-occasion-page .tg-og-products li a{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:14px;
  background:#fff;
  border:1px solid #e3d7ea;
  border-radius:12px;
  color:#29232e;
  text-decoration:none;
}
body.tg-occasion-page .tg-og-product-title{
  font-weight:700;
  color:#35283d;
  font-size:14px;
}
body.tg-occasion-page .tg-og-product-desc{
  color:#514b55;
  font-size:13px;
  line-height:1.5;
}
body.tg-occasion-page .tg-og-products em{
  align-self:flex-start;
  margin-top:6px;
  font-style:normal;
  background:#4c1d95;
  color:#fff;
  border-radius:6px;
  padding:5px 10px;
  font-size:12px;
  font-weight:700;
}

/* --- CTA --- */
body.tg-occasion-page .tg-og-cta{
  margin:18px 0 8px;
  padding:28px 24px;
  background:linear-gradient(135deg,#4c1d95,#704083);
  color:#fff;
  border-radius:16px;
  text-align:center;
}
body.tg-occasion-page .tg-og-cta h2{
  margin:0 0 8px;
  font-size:clamp(20px,2.4vw,28px);
  color:#fff;
  line-height:1.2;
}
body.tg-occasion-page .tg-og-cta p{
  margin:0 0 16px;
  color:#e9ddff;
  font-size:14px;
  line-height:1.7;
  max-width:60ch;
  margin-inline:auto;
}
body.tg-occasion-page .tg-og-cta-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 22px;
  background:#fff;
  color:#4c1d95;
  border-radius:8px;
  font-weight:800;
  text-decoration:none;
  font-size:14px;
}
body.tg-occasion-page .tg-og-cta-btn:hover,
body.tg-occasion-page .tg-og-cta-btn:focus-visible{background:#f3eaff}

/* --- Hide redundant page-header on occasion pages --- */
body.tg-occasion-page .page-header{display:none!important}
body.tg-occasion-page .page-content,
body.tg-occasion-page .page-article{padding-top:0!important;margin-top:0!important}
body.tg-occasion-page .entry-content{padding-top:0;margin-top:0}
body.tg-occasion-page .tg-og-hero{margin-top:0!important}

/* --- Responsive: stack hero + cards on small screens --- */
@media (max-width:760px){
  body.tg-occasion-page .tg-og-hero{
    grid-template-columns:1fr;
    gap:12px;
    padding:14px;
  }
  body.tg-occasion-page .tg-og-hero-img{
    max-height:240px;
    aspect-ratio:16/10;
    object-position:center 30%;
    order:-1;
  }
  body.tg-occasion-page .tg-og-toc ol{grid-template-columns:1fr}
  body.tg-occasion-page .tg-og-hero-products ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.tg-occasion-page .tg-og-products ul{grid-template-columns:1fr}
}
@media (max-width:440px){
  body.tg-occasion-page .tg-og-hero-products ul{grid-template-columns:1fr}
}
