/* ===========================================================================
   TERRA — warm and organic.

   Distinctive traits:
     · asymmetric "leaf" radius that flips on hover
     · circular imagery for the card thumbnails
     · centred card text under a round photo, like a recipe index
     · newsletter is a rounded cream panel inset from the edges
     · contact icons are warm circles that rotate slightly on hover
   ======================================================================== */

body.prime-layout-terra {
  --t-ink: #2C2620;
  --t-muted: #6F6459;
  --t-line: #E7DFD4;
  --t-paper: #FBF7F1;
  --t-cream: #F4EDE3;
  --t-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;

  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--t-ink);
  background: var(--t-paper);
  line-height: 1.75;
}

body.prime-layout-terra h1, body.prime-layout-terra h2, body.prime-layout-terra h3,
body.prime-layout-terra h4, body.prime-layout-terra h5 {
  font-family: var(--t-serif);
  font-weight: 600; color: var(--t-ink); letter-spacing: -.015em;
}
body.prime-layout-terra p { color: var(--t-muted); }

/* ---------------------------------------------------------------- header */
body.prime-layout-terra .prime-topbar {
  background: var(--t-cream);
  color: var(--t-muted);
  font-size: 13px; padding: 10px 0;
  border-bottom: 1px solid var(--t-line);
}
body.prime-layout-terra .prime-topbar a,
body.prime-layout-terra .prime-topbar p { color: var(--t-muted); }
body.prime-layout-terra .prime-topbar a:hover { color: var(--prime-primary); opacity: 1; }

body.prime-layout-terra #header-sticky {
  background: var(--t-paper);
  border-bottom: 1px solid var(--t-line);
  padding: 13px 0;
}
body.prime-layout-terra #header-sticky.sticky { box-shadow: 0 6px 24px rgba(44, 38, 32, .08); }
body.prime-layout-terra .main-menu > nav > ul > li > a {
  color: var(--t-ink); font-weight: 600; font-size: 14.5px;
  padding: 9px 13px; border-radius: 999px;
  transition: background .22s ease, color .22s ease;
}
body.prime-layout-terra .main-menu > nav > ul > li > a:hover {
  background: var(--t-cream); color: var(--prime-primary);
}
body.prime-layout-terra .tp-submenu {
  background: #fff; border: 1px solid var(--t-line); border-radius: 18px;
  box-shadow: 0 20px 48px rgba(44, 38, 32, .12); padding: 8px;
}
body.prime-layout-terra .tp-submenu li a { border-radius: 12px; padding: 9px 14px; }
body.prime-layout-terra .tp-submenu li a:hover { background: var(--t-cream); color: var(--prime-primary); }

/* ------------------------------------------------------- hero: leaf shape */
body.prime-layout-terra .prime-hero { padding: 22px 0 0; }
body.prime-layout-terra .tp-slider-active-3 {
  max-width: 1240px; margin: 0 auto;
  border-radius: 28px 28px 120px 28px;
  overflow: hidden;
  box-shadow: 0 16px 44px rgba(44, 38, 32, .12);
}
body.prime-layout-terra .tp-slider-item-3 { border-radius: inherit; overflow: hidden; }

/* --------------------------------------------------------------- section */
body.prime-layout-terra .tp-section-title,
body.prime-layout-terra .tp-blog-grid-area h2,
body.prime-layout-terra .tp-cart-area h2 {
  font-size: 34px; line-height: 1.2; text-align: center; margin-bottom: 34px;
}

/* --------------------------------------- cards: round photo, centred text */
body.prime-layout-terra .tp-product-item-2 {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  text-align: center;
  transition: transform .3s ease;
}
body.prime-layout-terra .tp-product-item-2:hover { transform: translateY(-6px); }
body.prime-layout-terra .tp-product-thumb-2.prime-media {
  aspect-ratio: 1 / 1;
  border-radius: 50%;                       /* circular — only this theme */
  max-width: 240px;
  margin: 0 auto;
  border: 6px solid #fff;
  box-shadow: 0 14px 34px rgba(44, 38, 32, .14);
  transition: box-shadow .3s ease, border-color .3s ease;
}
body.prime-layout-terra .tp-product-item-2:hover .tp-product-thumb-2.prime-media {
  box-shadow: 0 20px 44px rgba(var(--prime-primary-rgb), .28);
  border-color: var(--prime-tint-100);
}
body.prime-layout-terra .tp-product-thumb-2 img { transition: transform .6s ease; }
body.prime-layout-terra .tp-product-item-2:hover .tp-product-thumb-2 img { transform: scale(1.08); }
body.prime-layout-terra .tp-product-content-2 { padding: 18px 12px 8px; }
body.prime-layout-terra .tp-product-title-2 {
  font-family: var(--t-serif);
  font-size: 19px; font-weight: 600; line-height: 1.4;
}
body.prime-layout-terra .tp-product-title-2 a:hover { color: var(--prime-primary); }
/* A small stem under each title, echoing the organic feel. */
body.prime-layout-terra .tp-product-content-2::after {
  content: "";
  display: block; width: 26px; height: 2px; margin: 12px auto 0;
  border-radius: 2px; background: var(--prime-tint-200);
  transition: width .3s ease, background .3s ease;
}
body.prime-layout-terra .tp-product-item-2:hover .tp-product-content-2::after {
  width: 52px; background: var(--prime-primary);
}

/* --------------------------------------------------------------- buttons */
body.prime-layout-terra .tp-btn, body.prime-layout-terra .prime-btn {
  background: var(--prime-primary); color: var(--prime-on-primary);
  border: 0; border-radius: 999px; padding: 13px 32px; font-weight: 600;
  transition: background .22s ease, transform .22s ease;
}
body.prime-layout-terra .tp-btn:hover, body.prime-layout-terra .prime-btn:hover {
  background: var(--prime-hover); transform: translateY(-2px); color: var(--prime-on-primary);
}

/* --------------------------------------- newsletter: inset cream panel */
body.prime-layout-terra .prime-nl--auto.tp-subscribe-area {
  background: var(--t-cream) !important;
  border: 1px solid var(--t-line);
  border-radius: 40px;
  max-width: 1160px;
  margin: 45px auto;
  text-align: center;
}
body.prime-layout-terra .prime-nl--auto .tp-subscribe-content { text-align: center; }
body.prime-layout-terra .prime-nl--auto .tp-subscribe-title { color: var(--t-ink); font-family: var(--t-serif); }
body.prime-layout-terra .prime-nl--auto .tp-subscribe-shape { opacity: .2; }
body.prime-layout-terra .prime-nl--auto .tp-subscribe-input input {
  border-radius: 999px; border: 1px solid var(--t-line); background: #fff;
  color: var(--t-ink); height: 54px; padding-left: 22px;
}
body.prime-layout-terra .prime-nl--auto .tp-subscribe-input button {
  border-radius: 999px; background: var(--prime-primary); color: var(--prime-on-primary);
  height: 44px; padding: 0 26px; right: 5px;
}

/* -------------------------------------------- contact: warm tilting circles */
body.prime-layout-terra .prime-contact-icon {
  background: var(--t-cream);
  border: 1px solid var(--t-line);
  color: var(--prime-primary);
  border-radius: 50%;
  width: 54px; height: 54px;
}
body.prime-layout-terra .tp-contact-info-item:hover .prime-contact-icon {
  background: var(--prime-primary); color: var(--prime-on-primary);
  border-color: var(--prime-primary);
  transform: rotate(-8deg) scale(1.06);
}

/* ---------------------------------------------------------------- footer */
body.prime-layout-terra .tp-footer-area { background: var(--t-cream) !important; border-top: 1px solid var(--t-line); }
body.prime-layout-terra .tp-footer-widget-title { font-family: var(--t-serif); font-size: 19px; font-weight: 600; }
body.prime-layout-terra .tp-footer-widget-content ul li a { color: var(--t-muted); }
body.prime-layout-terra .tp-footer-widget-content ul li a:hover { color: var(--prime-primary); padding-left: 5px; }
body.prime-layout-terra .tp-footer-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: #fff; border: 1px solid var(--t-line); color: var(--t-muted);
  margin-right: 8px; transition: all .22s ease;
}
body.prime-layout-terra .tp-footer-social a:hover {
  background: var(--prime-primary); border-color: var(--prime-primary);
  color: var(--prime-on-primary); transform: translateY(-3px) rotate(-6deg);
}
body.prime-layout-terra .tp-footer-bottom { border-top: 1px solid var(--t-line); }

@media (max-width: 767px) {
  body.prime-layout-terra .tp-section-title { font-size: 26px; }
  body.prime-layout-terra .tp-slider-active-3 { border-radius: 18px 18px 60px 18px; }
  body.prime-layout-terra .prime-nl--auto.tp-subscribe-area { border-radius: 24px; margin: 0 10px 20px; }
  body.prime-layout-terra .tp-product-thumb-2.prime-media { max-width: 200px; }
}
