/*
Theme Name: Projeto Rose
Theme URI: https://projetorose.com.br
Author: Projeto Rose
Author URI: https://projetorose.com.br
Description: Tema de blocos do Projeto Rose — "Histórias que Encantam". Livros infantis personalizados. Todas as seções são 100% editáveis no editor de blocos (Gutenberg).
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: projeto-rose
Tags: block-patterns, block-styles, full-site-editing, one-column, custom-colors, custom-menu
*/

/* ============================================================
   PROJETO ROSE — Camada visual do tema
   Ícones decorativos são aplicados via CSS (pseudo-elementos)
   para que todos os blocos no Gutenberg sejam 100% nativos e
   editáveis (parágrafos, títulos, botões e imagens).
   ============================================================ */

:root {
  --rose-pink: #f23875;
  --rose-pink-2: #ff5f9e;
  --rose-pink-soft: #ffe3ee;
  --rose-yellow: #ffc93c;
  --rose-yellow-soft: #fff3d1;
  --rose-purple: #7a4fd0;
  --rose-purple-soft: #e7dcfb;
  --rose-teal: #2fbfa5;
  --rose-teal-soft: #d8f4ee;
  --rose-violet-900: #2a1166;
  --rose-violet-800: #3b1a7e;
  --rose-violet-700: #4b2a9e;
  --rose-violet-500: #7a3fb5;
  --rose-cream: #fdf7ee;
  --rose-lavender: #ece6fb;
  --rose-sky: #e5f1fa;
  --rose-ink: #191937;
  --rose-ink-2: #3d3766;
  --rose-muted: #6b6390;
  --rose-radius-lg: 22px;
  --rose-radius-md: 16px;
  --rose-shadow-card: 0 10px 30px rgba(74, 52, 130, 0.10);
  --rose-shadow-btn: 0 8px 22px rgba(242, 56, 117, 0.38);
  --rose-font-display: var(--wp--preset--font-family--display, "Fredoka", sans-serif);
  --rose-font-script: var(--wp--preset--font-family--script, "Caveat", cursive);
  --rose-font-body: var(--wp--preset--font-family--body, "Nunito", sans-serif);

  /* Ícones SVG em data-URI */
  --icon-star-yellow: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffc93c'><path d='M12 2l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.2 5.9 20.6l1.4-6.8L2.2 9.1l6.9-.8z'/></svg>");
  --icon-heart-pink: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ff5f9e'><path d='M12 21s-7.5-4.9-9.9-9.4C.6 8.6 2 5.3 4.9 4.4c2-.6 4.2.3 5.3 2.1.5-.8 1.2-1.5 2-2.1 2.2-1.7 4.9-1 6.4.8 2.1 2.6 1.3 6.3-.3 8.6C16.2 16.5 12 21 12 21z'/></svg>");
  --icon-doc-purple: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b79bff' stroke-width='2' stroke-linecap='round'><path d='M6 3h9l4 4v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 5h8M8 12h8M8 16h5'/></svg>");
  --icon-shield-teal: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234fd8bd'><path d='M12 2 4 5v6c0 5 3.4 9.4 8 11 4.6-1.6 8-6 8-11V5l-8-3zm-1.5 14.5-3-3 1.4-1.4 1.6 1.6 4.6-4.6 1.4 1.4z'/></svg>");
  --icon-step-1: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f23875' stroke-width='2' stroke-linecap='round'><rect x='6' y='5' width='13' height='16' rx='2'/><path d='M9 5a3 3 0 0 1 6 0M9.5 11h6M9.5 15h4'/></svg>");
  --icon-step-2: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a4fd0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20l1.2-4.2L16.6 4.4a2.1 2.1 0 0 1 3 3L8.2 18.8 4 20z'/><path d='M14.5 6.5l3 3'/></svg>");
  --icon-step-3: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232fbfa5' stroke-width='2' stroke-linecap='round'><rect x='3' y='5' width='18' height='14' rx='2'/><circle cx='9' cy='10' r='1.6'/><path d='M4 17l5-4 4 3 4-4 3 3'/></svg>");
  --icon-step-4: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8a100' stroke-width='2' stroke-linecap='round'><path d='M7 3h8l4 4v14a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z'/><path d='M14 3v5h5M9.5 13h4a2 2 0 0 1 0 4h-4v-4z'/></svg>");
  --icon-family-purple: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a4fd0' stroke-width='2' stroke-linecap='round'><circle cx='8.5' cy='9' r='3'/><circle cx='16.5' cy='10' r='2.4'/><path d='M3.5 19c.6-3 2.7-4.5 5-4.5s4.4 1.5 5 4.5M14 19c.4-2.2 1.7-3.4 3.4-3.4 1.5 0 2.7 1 3.1 3'/></svg>");
  --icon-gift-yellow: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8a100' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='10' width='16' height='10' rx='1.5'/><path d='M12 10v10M4 14h16M12 10c-1.5 0-3.5-.8-3.5-2.5S10 4.8 12 7c2-2.2 3.5-1.9 3.5.5S13.5 10 12 10z'/></svg>");
  --icon-mail-pink: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f23875' stroke-width='2' stroke-linecap='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='M3 7l9 6 9-6'/></svg>");
  --icon-wa-teal: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232fbfa5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12a9 9 0 0 1-13.2 8L3 21l1-4.6A9 9 0 1 1 21 12z'/><path d='M9 10c.5 2.5 2.5 4.5 5 5l1.5-1.5 2 1c-.5 1.5-2 2.5-3.5 2-3.5-1-6.5-4-7.5-7.5-.5-1.5.5-3 2-3.5l1 2L9 10z'/></svg>");
  --icon-ig-purple: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a4fd0' stroke-width='2' stroke-linecap='round'><rect x='3' y='3' width='18' height='18' rx='5'/><circle cx='12' cy='12' r='4'/><circle cx='17.5' cy='6.5' r='1.2' fill='%237a4fd0' stroke='none'/></svg>");
  --icon-squiggle: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 24'><path d='M4 14 C 30 4, 45 22, 70 12 S 115 4, 140 14 S 195 20, 216 10' fill='none' stroke='%23ff5f9e' stroke-width='2.5' stroke-dasharray='7 7' stroke-linecap='round'/></svg>");
}

/* ---------- Base (Front-end + Editor Gutenberg) ---------- */
body,
.editor-styles-wrapper {
  background: var(--rose-cream);
  color: var(--rose-ink-2);
  font-family: var(--rose-font-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body:not(.block-editor-iframe__body):not(.wp-admin) {
  overflow-x: clip;
}

/* No editor de página (post.php), permite largura total real para blocos alignfull */
.editor-styles-wrapper .is-root-container > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 1120px;
}
.editor-styles-wrapper .is-root-container > .alignfull,
.editor-styles-wrapper .wp-block-post-content > .alignfull {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.editor-styles-wrapper .edit-post-visual-editor__post-title-wrapper {
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: 4%;
}

.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-block-post-content > .elementor { max-width: none !important; width: 100% !important; }

:is(.step, .steps__list, .steps__body, .badge, .hero__badges-inner, .hero__inner,
     .benefit, .benefits__grid, .theme-card, .themes__grid, .testimonial,
     .testimonial__body, .testimonials__grid, .contact-card, .contact__grid,
     .about__body, .section-head, .hero__content, .cta__content, .cta__features,
     .site-footer__inner, .site-footer__nav, .site-footer__info, .site-footer__brand) > * {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

img { max-width: 100%; height: auto; }

a { text-decoration-thickness: 1px; text-underline-offset: 3px; }

:is(a, button, .wp-block-button__link):focus-visible {
  outline: 3px solid var(--rose-yellow);
  outline-offset: 3px;
  border-radius: 6px;
}

.container,
.rose-section > .container {
  width: min(1120px, 92%);
  max-width: 1120px !important;
  margin-inline: auto !important;
}

.rose-section {
  padding-block: clamp(3.2rem, 6vw, 4.8rem);
  margin-block-start: 0;
}
.rose-section--cream    { background: var(--rose-cream); }
.rose-section--lavender { background: var(--rose-lavender); }
.rose-section--sky      { background: var(--rose-sky); }

/* ---------- Botões ---------- */
.wp-block-button.btn .wp-block-button__link,
a.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55em;
  font-family: var(--rose-font-display);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.2;
  color: #fff !important;
  background: linear-gradient(135deg, var(--rose-pink-2), var(--rose-pink)) !important;
  padding: 0.85em 1.7em;
  border-radius: 999px;
  border: none;
  text-decoration: none;
  box-shadow: var(--rose-shadow-btn);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  white-space: nowrap;
}
.wp-block-button.btn .wp-block-button__link:hover,
a.btn:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 14px 30px rgba(242, 56, 117, 0.45);
  filter: brightness(1.05);
  color: #fff !important;
}
.wp-block-button.btn .wp-block-button__link:active { transform: translateY(-1px); }
.wp-block-button.btn--lg .wp-block-button__link { font-size: 1.15rem; padding: 0.95em 2.1em; }

/* ---------- Realces de texto ---------- */
.hl-yellow,
mark.has-yellow-color {
  color: var(--rose-yellow) !important;
  background: transparent !important;
}
.hl-script {
  font-family: var(--rose-font-script);
  font-weight: 700;
  font-size: 1.18em;
  padding-right: 0.16em;
  background: linear-gradient(120deg, #ff6aa8, var(--rose-pink));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---------- Cabeçalho ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 253, 246, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(122, 79, 208, 0.10);
  margin-block-start: 0;
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: 0.7rem;
  flex-wrap: wrap;
}
.brand { display: inline-flex; align-items: center; gap: 0.5rem; }
.brand__name {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-family: var(--rose-font-display);
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--rose-ink);
}
.brand__name::before {
  content: "";
  width: 32px;
  height: 32px;
  flex: none;
  background: var(--icon-star-yellow) center / contain no-repeat;
  filter: drop-shadow(0 2px 4px rgba(255, 201, 60, .5));
}
.brand__name a {
  color: inherit !important;
  text-decoration: none !important;
}
.brand__name em { font-style: normal; color: var(--rose-pink); }

.site-header .wp-block-navigation { margin-left: auto; }
.site-header .wp-block-navigation__container { gap: 1.5rem; }
.site-header .wp-block-navigation-item__content {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--rose-ink-2) !important;
  text-decoration: none !important;
  border-bottom: 3px solid transparent;
  padding: 0.3rem 0;
  transition: color .15s ease, border-color .15s ease;
}
.site-header .wp-block-navigation-item__content:hover {
  color: var(--rose-pink) !important;
  border-color: var(--rose-pink-2);
}
.site-header .wp-block-navigation__responsive-container-open {
  color: var(--rose-ink);
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(900px 480px at 78% 18%, rgba(255, 176, 214, 0.28), transparent 62%),
    radial-gradient(700px 420px at 12% 92%, rgba(255, 110, 170, 0.22), transparent 60%),
    radial-gradient(500px 300px at 45% 0%, rgba(140, 90, 220, 0.35), transparent 70%),
    linear-gradient(155deg, var(--rose-violet-900) 0%, var(--rose-violet-800) 38%, var(--rose-violet-700) 68%, var(--rose-violet-500) 100%);
  margin-block-start: 0;
}
.hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 46%) minmax(0, 54%);
  align-items: center;
  gap: 1.5rem;
  padding-top: clamp(2rem, 4.5vw, 3.8rem);
}
.hero__title {
  color: #fff !important;
  font-size: clamp(2.1rem, 4.1vw, 3.35rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: 0.2px;
  margin: 0;
  max-width: 12ch;
}
.hero__title .hl-script {
  display: block;
  font-size: 1.24em;
}
.hero__subtitle {
  margin: 1.1rem 0 0;
  font-size: clamp(1rem, 1.4vw, 1.14rem);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.90) !important;
  max-width: 34ch;
}
.hero__subtitle::after {
  content: "";
  display: block;
  width: 190px;
  height: 22px;
  margin-top: 0.55rem;
  background: var(--icon-squiggle) left center / contain no-repeat;
}
.hero__content { padding-bottom: 3.5rem; }
.hero__content .wp-block-buttons { margin-top: 1.2rem; }

.hero__art { margin: 0 !important; align-self: end; }
.hero__art img { width: 100%; height: auto; display: block; }

/* Barra de selos no hero */
.hero__badges {
  position: relative;
  z-index: 2;
  margin-top: -2rem;
  padding-block: 1.25rem 1.45rem;
  background: linear-gradient(180deg, rgba(42, 17, 102, 0) 0%, rgba(30, 10, 78, 0.58) 45%, rgba(24, 8, 66, 0.78) 100%);
}
.hero__badges-inner {
  display: grid;
  grid-template-columns: repeat(4, auto);
  justify-content: space-between;
  align-items: center;
  gap: 1rem 1.8rem;
}
.badge {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.94) !important;
  margin: 0 !important;
}
.badge::before {
  content: "";
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 22px 22px;
}
.badge--star::before   { background-color: rgba(255, 201, 60, .18); background-image: var(--icon-star-yellow); }
.badge--heart::before  { background-color: rgba(255, 95, 158, .18); background-image: var(--icon-heart-pink); }
.badge--doc::before    { background-color: rgba(168, 130, 255, .22); background-image: var(--icon-doc-purple); }
.badge--shield::before { background-color: rgba(47, 191, 165, .18); background-image: var(--icon-shield-teal); }

/* ---------- Cabeçalho de seção ---------- */
.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.section-head--center {
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.55rem;
}
.section-label {
  font-family: var(--rose-font-display);
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rose-purple) !important;
  display: flex;
  align-items: center;
  gap: 0.45em;
  margin: 0 0 0.55rem !important;
}
.section-head--center .section-label { justify-content: center; }
.section-label__icon { color: var(--rose-pink-2); font-size: 1.1em; }
.section-title { font-size: clamp(1.8rem, 3.4vw, 2.55rem); margin: 0 !important; color: var(--rose-ink); }
.section-sub {
  color: var(--rose-muted) !important;
  font-weight: 600;
  font-size: 1.02rem;
  max-width: 36ch;
  padding-bottom: 0.25rem;
  margin: 0 !important;
}
.section-head--center .section-sub { padding-bottom: 0; max-width: 48ch; }

/* ---------- Como funciona ---------- */
.steps__body {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.steps__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.8rem 1.8rem;
}
.step {
  position: relative;
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 0.95rem;
  align-items: center;
  padding-top: 0.4rem;
}
.step::before {
  content: "";
  grid-column: 1;
  grid-row: 1;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 30px 30px;
}
.step--1::before { background-color: var(--rose-pink-soft);   background-image: var(--icon-step-1); }
.step--2::before { background-color: var(--rose-purple-soft); background-image: var(--icon-step-2); }
.step--3::before { background-color: var(--rose-teal-soft);   background-image: var(--icon-step-3); }
.step--4::before { background-color: var(--rose-yellow-soft); background-image: var(--icon-step-4); }

.step .step__num,
.step__num {
  position: absolute !important;
  top: 0 !important;
  left: -6px !important;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--rose-pink);
  color: #fff !important;
  font-family: var(--rose-font-display);
  font-weight: 600;
  font-size: 0.9rem;
  line-height: 1;
  box-shadow: 0 3px 8px rgba(242, 56, 117, .4);
  margin: 0 !important;
}
.step__text {
  grid-column: 2;
  grid-row: 1;
  font-weight: 700;
  font-size: 0.98rem;
  color: var(--rose-ink-2) !important;
  margin: 0 !important;
}

.steps__art { margin: 0 !important; justify-self: center; }
.steps__art img { width: min(100%, 340px); display: block; }

/* ---------- Temas ---------- */
.themes__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.9rem;
  padding: 0;
}
.theme-card {
  background: #fff;
  border-radius: var(--rose-radius-md);
  overflow: hidden;
  box-shadow: var(--rose-shadow-card);
  text-align: center;
  transition: transform .18s ease, box-shadow .18s ease;
}
.theme-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(74, 52, 130, 0.18); }
.theme-card .wp-block-image { margin: 0 !important; }
.theme-card img { width: 100%; aspect-ratio: 1.12; object-fit: cover; display: block; }
.theme-card__label {
  display: block;
  padding: 0.65rem 0.3rem 0.8rem;
  font-family: var(--rose-font-display);
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--rose-ink-2) !important;
  margin: 0 !important;
}

/* ---------- Benefícios ---------- */
.benefits__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.4rem 2.5rem;
}
.benefit {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  font-family: var(--rose-font-display);
  font-weight: 500;
  font-size: 1.08rem;
  color: var(--rose-ink) !important;
  margin: 0 !important;
}
.benefit::before {
  content: "";
  flex: none;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 30px 30px;
}
.benefit--star::before   { background-color: var(--rose-yellow-soft); background-image: var(--icon-star-yellow); }
.benefit--heart::before  { background-color: var(--rose-pink-soft);   background-image: var(--icon-heart-pink); }
.benefit--family::before { background-color: var(--rose-purple-soft); background-image: var(--icon-family-purple); }
.benefit--gift::before   { background-color: var(--rose-yellow-soft); background-image: var(--icon-gift-yellow); }
.benefit--shield::before { background-color: var(--rose-teal-soft);   background-image: var(--icon-shield-teal); }

/* ---------- Depoimentos ---------- */
.testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem;
}
.testimonial {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 1rem;
  align-items: start;
  background: #fff;
  border-radius: var(--rose-radius-lg);
  padding: 1.35rem 1.4rem;
  box-shadow: var(--rose-shadow-card);
  transition: transform .18s ease, box-shadow .18s ease;
}
.testimonial:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(74, 52, 130, 0.16); }
.testimonial__photo { margin: 0 !important; }
.testimonial__photo img {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: 0 4px 12px rgba(74, 52, 130, 0.18);
  display: block;
}
.testimonial__stars {
  color: var(--rose-yellow) !important;
  font-size: 1rem;
  letter-spacing: 0.15em;
  margin: 0 0 0.35rem !important;
}
.testimonial__quote {
  margin: 0 0 0.55rem !important;
  font-size: 0.94rem;
  font-weight: 600;
  color: var(--rose-ink-2) !important;
}
.testimonial__name {
  font-family: var(--rose-font-display);
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--rose-purple) !important;
  margin: 0 !important;
}

/* ---------- CTA final ---------- */
.cta {
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  min-height: clamp(360px, 34vw, 430px);
  padding-block: 3.5rem 4.2rem;
  margin-block-start: 0;
  background:
    radial-gradient(420px 210px at 50% 38%, rgba(254, 232, 192, 0.92) 0%, rgba(254, 232, 192, 0.65) 55%, transparent 100%),
    url("assets/img/cta-left.png") left bottom / min(34vw, 420px) 100% no-repeat,
    url("assets/img/cta-right.png") right bottom / min(34vw, 420px) 100% no-repeat,
    url("assets/img/hills.svg") center bottom / 100% 32% no-repeat,
    radial-gradient(500px 200px at 50% 0%, rgba(255, 240, 200, 0.7), transparent 70%),
    linear-gradient(180deg, #fcdcb8 0%, #fbd49e 26%, #eaa9a2 50%, #8f7ba8 72%, #3f5670 92%, #2c4652 100%);
}
.cta__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 720px !important;
}
.cta__title {
  color: #191938 !important;
  font-size: clamp(1.7rem, 3.4vw, 2.5rem);
  text-shadow: 0 1px 0 rgba(255, 240, 220, 0.5);
  margin: 0 !important;
}
.cta__sub {
  margin: 0.8rem auto 1.6rem !important;
  max-width: 46ch;
  font-weight: 700;
  font-size: 1.02rem;
  color: #3d3350 !important;
}
.cta__features {
  margin-top: 2.3rem !important;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.8rem 2.2rem;
}
.cta__feat {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-weight: 700;
  font-size: 0.88rem;
  color: #fff !important;
  text-shadow: 0 1px 6px rgba(20, 30, 50, 0.55);
  margin: 0 !important;
}
.cta__feat::before {
  content: "";
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.22);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 15px 15px;
}
.cta__feat--star::before  { background-image: var(--icon-star-yellow); }
.cta__feat--heart::before { background-image: var(--icon-heart-pink); }
.cta__feat--doc::before   { background-image: var(--icon-doc-purple); }

/* ---------- Rodapé ---------- */
.site-footer {
  background: var(--rose-violet-900);
  color: rgba(255, 255, 255, 0.78);
  padding: 3rem 0 1.4rem;
  margin-block-start: 0;
}
.site-footer__inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 2rem;
  align-items: start;
}
.site-footer .brand__name { color: #fff; }
.site-footer__brand p { margin: 0.7rem 0 0; font-size: 0.92rem; color: rgba(255, 255, 255, 0.78); }
.site-footer__nav, .site-footer__info { display: grid; gap: 0.55rem; }
.site-footer__nav p, .site-footer__info p { margin: 0; }
.site-footer a { font-weight: 600; font-size: 0.95rem; color: rgba(255, 255, 255, 0.85) !important; text-decoration: none; transition: color .15s ease; }
.site-footer a:hover { color: var(--rose-yellow) !important; }
.site-footer__copy {
  margin: 2.2rem auto 0 !important;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  text-align: center;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.58) !important;
}

/* ---------- Hero de página interna ---------- */
.page-hero {
  color: #fff;
  text-align: center;
  padding-block: clamp(3rem, 6.5vw, 4.6rem);
  margin-block-start: 0;
  background:
    radial-gradient(700px 300px at 75% 20%, rgba(255, 176, 214, 0.25), transparent 60%),
    linear-gradient(155deg, var(--rose-violet-900) 0%, var(--rose-violet-800) 45%, var(--rose-violet-700) 100%);
}
.page-hero .section-label { justify-content: center; color: #c9b8f5 !important; margin-bottom: 0.5rem !important; }
.page-hero__title { color: #fff !important; font-size: clamp(2rem, 4.2vw, 3rem); margin: 0 !important; }
.page-hero__sub {
  margin: 0.8rem auto 0 !important;
  max-width: 52ch;
  font-weight: 600;
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.88) !important;
}

/* ---------- Sobre ---------- */
.about__body {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.about__body .section-sub { padding-bottom: 0; margin-bottom: 0.8rem !important; max-width: 50ch; }
.about__art { margin: 0 !important; justify-self: center; }
.about__art img { width: min(100%, 440px); display: block; }
.about__values { margin-top: clamp(2rem, 5vw, 3.5rem); }
.about__values .benefit {
  background: #fff;
  border-radius: var(--rose-radius-md);
  padding: 1rem 1.2rem;
  box-shadow: var(--rose-shadow-card);
}

/* ---------- Contato ---------- */
.contact__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem;
}
.contact-card {
  background: #fff;
  border-radius: var(--rose-radius-lg);
  padding: 1.8rem 1.5rem;
  text-align: center;
  box-shadow: var(--rose-shadow-card);
  transition: transform .18s ease, box-shadow .18s ease;
}
.contact-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(74, 52, 130, 0.16); }
.contact-card::before {
  content: "";
  display: block;
  width: 62px;
  height: 62px;
  margin: 0 auto 0.9rem;
  border-radius: 50%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 28px 28px;
}
.contact-card--mail::before      { background-color: var(--rose-pink-soft);   background-image: var(--icon-mail-pink); }
.contact-card--whatsapp::before  { background-color: var(--rose-teal-soft);   background-image: var(--icon-wa-teal); }
.contact-card--instagram::before { background-color: var(--rose-purple-soft); background-image: var(--icon-ig-purple); }
.contact-card__title { font-size: 1.15rem; margin: 0 0 0.3rem !important; }
.contact-card p { font-weight: 700; color: var(--rose-ink-2); margin: 0 !important; }
.contact__cta { margin-top: 2.2rem !important; }

/* ---------- Responsivo ---------- */
@media (max-width: 1100px) {
  .themes__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hero__badges-inner { grid-template-columns: repeat(2, auto); justify-content: center; gap: 1rem 2.5rem; }
}

@media (max-width: 900px) {
  .hero__inner { grid-template-columns: 1fr; padding-top: 2.2rem; text-align: center; }
  .hero__title { margin-inline: auto; }
  .hero__subtitle { margin-inline: auto; }
  .hero__subtitle::after { margin-inline: auto; }
  .hero__content { padding-bottom: 1rem; }
  .hero__content .wp-block-buttons { justify-content: center; display: flex; }
  .hero__art { max-width: 500px; margin-inline: auto !important; }
  .hero__badges { margin-top: 0; }

  .section-head { flex-direction: column; align-items: flex-start; gap: 0.6rem; }
  .steps__body { grid-template-columns: 1fr; }
  .steps__art { order: -1; }
  .steps__art img { width: min(80%, 300px); margin-inline: auto; }
  .about__body { grid-template-columns: 1fr; }
  .about__art { order: -1; }

  .contact__grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .testimonials__grid { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  .site-footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .site-header__inner { gap: 0.75rem; }
  .site-header .wp-block-buttons { width: 100%; order: 3; }
  .site-header .wp-block-buttons .wp-block-button { width: 100%; }
  .site-header .wp-block-button__link { width: 100%; justify-content: center; }

  .hero__badges-inner { grid-template-columns: 1fr 1fr; gap: 0.85rem 1rem; }
  .badge { font-size: 0.82rem; }
  .badge::before { width: 36px; height: 36px; background-size: 18px 18px; }

  .steps__list { grid-template-columns: 1fr; gap: 1.3rem; }
  .themes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .benefits__grid { grid-template-columns: 1fr; }
  .cta { background-size: auto 52%, auto 52%, 100% 24%, auto, auto; }
  .site-footer__inner { grid-template-columns: 1fr; }
  .testimonial { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .wp-block-button.btn .wp-block-button__link,
  a.btn { white-space: normal; text-align: center; }
}

/* ---------- Páginas estáticas (Termos, Trocas, Acompanhar) ---------- */
.rose-static-page {
  width: min(760px, 92%);
  margin-inline: auto;
  padding-block: clamp(2.6rem, 6vw, 4.2rem);
}
.rose-page-title {
  font-family: var(--rose-font-display);
  color: var(--rose-ink);
  font-size: clamp(1.9rem, 4.5vw, 2.6rem);
  line-height: 1.15;
  margin-block-start: 0;
}
.rose-static-page h2 {
  font-family: var(--rose-font-display);
  color: var(--rose-ink);
  font-size: 1.3rem;
  margin-block-start: 2.1rem;
}
.rose-static-page p { font-size: 1rem; }
.rose-static-page a { color: var(--rose-pink); }
.rose-static-page .rose-tracker,
.rose-static-page form { margin-block-start: 1.4rem; }

/* ---------- Carrossel deslizante (temas e depoimentos) ---------- */
/* Em telas menores, as grades viram trilho horizontal com snap — sem plugin. */
@media (max-width: 1024px) {
  .elementor-element.rose-snap {
    --e-con-grid-template-columns: none !important;
    --grid-auto-flow: column !important;
    grid-auto-flow: column !important;
    grid-auto-columns: min(72%, 300px) !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 20px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-block-end: 6px;
    padding-inline: 4px;
  }
  .elementor-element.rose-snap::-webkit-scrollbar { display: none; }
  .elementor-element.rose-snap > .e-con,
  .elementor-element.rose-snap > .e-con-inner > .e-con {
    scroll-snap-align: start;
  }
}
@media (min-width: 481px) and (max-width: 1024px) {
  .elementor-element.rose-snap { grid-auto-columns: min(46%, 340px) !important; }
}

/* Nos trilhos, o cartão de tema ocupa a célula inteira e a imagem enche o card */
.elementor-element.rose-snap .elementor-widget-image,
.elementor-element.rose-snap .elementor-widget-image .elementor-widget-container,
.elementor-element.rose-snap .elementor-widget-image img {
  width: 100%;
  max-width: none;
}

/* ---------- Header layout: logo, menu, account/cart and one clear CTA ---------- */
.site-header__inner {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  grid-template-areas: "brand nav account cart cta";
  align-items: center;
  gap: 0.85rem;
  flex-wrap: nowrap;
}
.site-header__inner > .brand { grid-area: brand; min-width: 0; }
.site-header__inner > .wp-block-navigation {
  grid-area: nav;
  justify-self: end;
  min-width: 0;
  margin: 0;
}
.site-header__inner > .wp-block-woocommerce-customer-account { grid-area: account; }
.site-header__inner > .wc-block-mini-cart { grid-area: cart; }
.site-header__inner > .wp-block-buttons {
  grid-area: cta;
  width: auto;
  margin: 0;
}
.site-header .wp-block-navigation__container { gap: clamp(0.45rem, 0.8vw, 0.8rem); }
.site-header .wp-block-navigation-item__content {
  font-size: 0.86rem;
  white-space: nowrap;
}
.site-header .site-header__cta .wp-block-button__link {
  padding: 0.78em 1.25em;
  font-size: 0.95rem;
  white-space: nowrap;
}
.site-header .wp-block-woocommerce-customer-account,
.site-header .wc-block-mini-cart {
  width: 40px;
  min-width: 40px;
  margin: 0;
}

@media (max-width: 1199px) {
  .site-header__inner {
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
    grid-template-areas:
      "brand nav account cart cta";
    row-gap: 0.2rem;
  }
  .site-header__inner > .wp-block-navigation { justify-self: end; }
  .site-header__inner > .wp-block-buttons { justify-self: end; }
  .site-header .brand__name { font-size: 1rem; }
  .site-header .brand__name::before { width: 26px; height: 26px; }
  .site-header .wp-block-navigation__container { gap: 0.3rem; }
  .site-header .wp-block-navigation-item__content { font-size: 0.72rem; }
}

@media (max-width: 782px) {
  .site-header__inner {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    grid-template-areas:
      "brand nav account cart"
      "cta cta cta cta";
    column-gap: 0.55rem;
    row-gap: 0.55rem;
  }
  .site-header__inner > .brand { min-width: 0; }
  .site-header .brand__name { font-size: 1.1rem; white-space: nowrap; }
  .site-header .brand__name::before { width: 28px; height: 28px; }
  .site-header__inner > .wp-block-buttons,
  .site-header .wp-block-buttons .wp-block-button,
  .site-header .site-header__cta .wp-block-button__link {
    width: 100%;
  }
  .site-header__inner > .wp-block-buttons { justify-self: stretch; }
  .site-header .site-header__cta .wp-block-button__link { justify-content: center; }
  .site-header .wp-block-navigation__responsive-container-open { padding: 0.35rem; }
}

@media (min-width: 783px) and (max-width: 900px) {
  .site-header .wp-block-navigation__container > .wp-block-navigation-item:nth-child(6) {
    display: none;
  }
}
@media (min-width: 783px) and (max-width: 800px) {
  .site-header .wp-block-navigation__container > .wp-block-navigation-item:nth-child(5) {
    display: none;
  }
}

/* Keep Elementor and native form visibility semantics intact. */
[hidden] { display: none !important; }

/* Coloring products and storybooks share a form row, but only the active fields show. */
.rose-field-row:has(> #rose-theme-group-coloring:not([hidden])) > #rose-theme-group-coloring {
  grid-column: 1 / -1;
}

/* Compact, consistently aligned catalog actions: one primary action, one quiet link. */
.rose-book-card__body { gap: 0; }
.rose-book-card__title { min-height: 2.5em; }
.rose-book-card__price-note { display: none; }
.rose-book-card__price-box { min-height: 54px; box-sizing: border-box; }
.rose-book-card__actions {
  grid-template-columns: 1fr;
  gap: 0.45rem;
  margin-top: auto;
}
.rose-book-card__actions .rose-btn {
  min-height: 44px;
  box-sizing: border-box;
  padding: 0.7rem 0.9rem;
  font-size: 14px;
  line-height: 1.2;
  border-radius: 14px;
  white-space: normal;
}
.rose-book-card__actions .rose-btn--primary { order: -1; }
.rose-book-card__actions .rose-btn--outline {
  min-height: 34px;
  padding: 0.35rem 0.6rem;
  border-color: transparent;
  background: transparent;
}
.rose-book-card__actions .rose-btn--outline:hover {
  background: var(--rose-purple-soft);
}

/* Keep the coloring-section header aligned at its top edge on wide screens. */
#livro-de-colorir > .e-con-inner > .e-con:first-child {
  align-items: flex-start;
}
#livro-de-colorir > .e-con-inner > .e-con:first-child > .e-con {
  width: 47%;
}
#livro-de-colorir > .e-con-inner > .e-con:first-child > .e-con:last-child {
  align-items: flex-start;
}

@media (max-width: 600px) {
  .rose-book-card__title { min-height: 0; }
  .rose-book-card__price-box { margin-bottom: 0.7rem; }
  .site-header .site-header__cta .wp-block-button__link { min-height: 44px; }
}

/* WooCommerce archive cards: real four-up desktop grid, even cards, no lonely last item. */
.woocommerce.archive .site-main > .woocommerce,
.woocommerce.archive .wp-block-post-content > .woocommerce {
  width: min(1120px, 92%);
  max-width: 1120px;
  margin-inline: auto;
  padding-block: clamp(1.8rem, 4vw, 3.2rem);
}
.woocommerce.archive .woocommerce-breadcrumb,
.single-product .woocommerce-breadcrumb {
  margin: 0 0 1rem;
  font-size: 0.88rem;
}
.woocommerce.archive .woocommerce-result-count,
.woocommerce.archive .woocommerce-ordering { margin-block: 0 1.25rem; }
.woocommerce.archive .woocommerce-ordering select {
  min-height: 42px;
  padding: 0.45rem 2rem 0.45rem 0.75rem;
  border: 1px solid #ded5f0;
  border-radius: 12px;
  background: #fff;
  color: var(--rose-ink-2);
  font: inherit;
}
.woocommerce.archive ul.products,
.single-product .related ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.35rem;
  margin: 0 !important;
}
.woocommerce.archive ul.products::before,
.woocommerce.archive ul.products::after,
.single-product .related ul.products::before,
.single-product .related ul.products::after { content: none !important; }
.woocommerce.archive ul.products li.product,
.single-product .related ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0.9rem;
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid #eee6fa;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(42, 17, 102, 0.07);
}
.woocommerce.archive ul.products li.product a img,
.single-product .related ul.products li.product a img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  object-fit: contain !important;
  object-position: center;
  margin: 0 0 0.8rem !important;
  border-radius: 13px;
  background: #f6f1ff;
}
.woocommerce.archive ul.products li.product .woocommerce-loop-product__title,
.single-product .related ul.products li.product .woocommerce-loop-product__title {
  min-height: 2.6em;
  padding: 0;
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
  font-size: 1.08rem;
  line-height: 1.25;
}
.woocommerce.archive ul.products li.product .price,
.single-product .related ul.products li.product .price {
  margin: 0.45rem 0 0.8rem;
  color: var(--rose-ink-2);
  font-family: var(--rose-font-display);
  font-size: 1.05rem;
}
.woocommerce.archive ul.products li.product .button,
.single-product .related ul.products li.product .button {
  width: 100%;
  box-sizing: border-box;
  margin: auto 0 0 !important;
  padding: 0.75rem 0.85rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rose-pink-2), var(--rose-pink));
  color: #fff;
  font-family: var(--rose-font-display);
  font-size: 0.88rem;
  line-height: 1.2;
  text-align: center;
}
.woocommerce.archive ul.products li.product .button:hover,
.single-product .related ul.products li.product .button:hover { filter: brightness(0.95); }

/* Product detail: balanced media and purchase columns; related cards never overlap the footer. */
.single-product div.product {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
  width: min(1120px, 92%);
  margin: 0 auto;
  padding-block: 1.5rem 3.5rem;
}
.single-product div.product div.images,
.single-product div.product div.summary {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  min-width: 0;
}
.single-product div.product div.images {
  overflow: hidden;
  border-radius: 22px;
  background: #f3edff;
}
.single-product .woocommerce-product-gallery__image img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: contain;
}
.single-product div.product .product_title {
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.12;
}
.single-product div.product p.price { color: var(--rose-pink); font-family: var(--rose-font-display); }
.single-product .rose-wc-product-box {
  margin-block: 1.25rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid #f4c7db;
  border-radius: 18px;
  background: #fff8fb;
}
.single-product .rose-wc-product-box__title {
  margin: 0 0 0.55rem;
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
  font-size: 1.15rem;
  line-height: 1.3;
}
.single-product .rose-wc-product-box__description {
  margin: 0 0 1rem;
  color: var(--rose-ink-2);
  font-size: 0.95rem;
  line-height: 1.55;
}
.single-product .rose-wc-product-box__note {
  margin: 0 0 1rem;
  padding: 0.65rem 0.8rem;
  border-radius: 12px;
  background: var(--rose-yellow-soft);
  color: #5c4300;
  font-size: 0.8rem;
}
.single-product .rose-wc-product-box__cta {
  width: fit-content;
  max-width: 100%;
}
.single-product .related { grid-column: 1 / -1; margin-top: 0.5rem; }
.single-product .related > h2 {
  margin-bottom: 1rem;
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
}

/* Static legal pages use the same readable measure as the order tracker. */
.page-id-3 .wp-block-post-content {
  width: min(800px, 92%);
  margin-inline: auto;
  padding-block: clamp(2.5rem, 6vw, 4rem);
  line-height: 1.75;
}
.page-id-3 .wp-block-post-content h1,
.page-id-3 .wp-block-post-content h2,
.page-id-3 .wp-block-post-content h3 {
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
  line-height: 1.2;
}
.page-id-3 .wp-block-post-content h1 { font-size: clamp(1.8rem, 4vw, 2.5rem); }
.page-id-3 .wp-block-post-content h2 { margin-top: 2rem; font-size: 1.4rem; }

@media (max-width: 960px) {
  .woocommerce.archive ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .single-product div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .woocommerce.archive .woocommerce-result-count,
  .woocommerce.archive .woocommerce-ordering { float: none; }
  .woocommerce.archive .woocommerce-ordering { width: 100%; }
  .woocommerce.archive ul.products,
  .single-product .related ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; }
  .woocommerce.archive ul.products li.product,
  .single-product .related ul.products li.product { padding: 0.6rem; border-radius: 15px; }
  .woocommerce.archive ul.products li.product .woocommerce-loop-product__title,
  .single-product .related ul.products li.product .woocommerce-loop-product__title {
    min-height: 2.6em;
    font-size: 0.95rem;
  }
  .single-product div.product {
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
    width: min(100% - 2rem, 520px);
    padding-block: 1rem 2.5rem;
  }
  .single-product div.product div.images,
  .single-product div.product div.summary { width: 100% !important; }
  .single-product div.product div.images { max-width: 100%; }
  .single-product .rose-wc-product-box__cta { width: 100%; }
  .single-product .related { width: 100%; }
  .single-product .related ul.products li.product .button { font-size: 0.78rem; }
  .site-footer__nav,
  .site-footer__info { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
}
@media (max-width: 360px) {
  .woocommerce.archive ul.products,
  .single-product .related ul.products { grid-template-columns: 1fr; }
  .site-header__inner { column-gap: 0.35rem; }
  .site-header .brand__name { font-size: 0.92rem; }
  .site-header .brand__name::before { width: 24px; height: 24px; }
  .site-header__inner > .wp-block-woocommerce-customer-account { display: none; }
}

/* WooCommerce Block templates (the active shop/product templates). */
.woocommerce-shop .wc-block-product-template {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 1.35rem !important;
  margin-block: 1.5rem 2rem !important;
}
.woocommerce-shop .wc-block-product {
  display: flex !important;
  flex-direction: column;
  width: 100% !important;
  flex: none !important;
  box-sizing: border-box;
  min-width: 0;
  padding: 0.8rem;
  border: 1px solid #eee6fa;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(42, 17, 102, 0.07);
}
.woocommerce-shop .wc-block-components-product-image--aspect-ratio-1-1 {
  aspect-ratio: 4 / 5 !important;
  overflow: hidden;
  border-radius: 12px;
  background: #f6f1ff;
}
.woocommerce-shop .wc-block-components-product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}
.woocommerce-shop .wc-block-product .wp-block-post-title {
  min-height: 2.6em;
  margin-block: 0.9rem 0.35rem;
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
  font-size: 1.08rem;
  line-height: 1.25;
}
.woocommerce-shop .wc-block-product .wp-block-woocommerce-product-price {
  margin-block: 0.2rem 0.8rem;
  color: var(--rose-pink);
  font-family: var(--rose-font-display);
  font-size: 1.05rem;
}
.woocommerce-shop .wc-block-product .wp-block-woocommerce-product-button {
  margin-block-start: auto;
}
.woocommerce-shop .wc-block-product .wp-block-woocommerce-product-button .wp-block-button__link {
  width: 100%;
  box-sizing: border-box;
  padding: 0.75rem 0.8rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rose-pink-2), var(--rose-pink));
  color: #fff;
  font-family: var(--rose-font-display);
  font-size: 0.88rem;
  line-height: 1.2;
  text-align: center;
}
.woocommerce-shop .wc-block-product .rose-loop-personalize__link,
.single-product .wp-block-woocommerce-product-collection .rose-loop-personalize__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  padding: 0.72rem 0.8rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rose-pink-2), var(--rose-pink));
  color: #fff;
  font-family: var(--rose-font-display);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}
.woocommerce-shop .wc-block-product .rose-loop-personalize__link:hover,
.single-product .wp-block-woocommerce-product-collection .rose-loop-personalize__link:hover {
  filter: brightness(0.95);
}
.single-product .wp-block-group.woocommerce.product {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto;
}
.single-product main.wp-block-group.has-global-padding {
  width: 100% !important;
  max-width: none !important;
  padding-inline: 0 !important;
}
.single-product main > .wp-block-columns.alignwide {
  display: flex;
  flex-wrap: nowrap !important;
  align-items: flex-start;
  gap: clamp(1.5rem, 4vw, 3rem);
  width: min(1120px, 92%);
  max-width: 1120px !important;
  margin: 1.5rem auto 3rem !important;
}
.single-product main > .wp-block-columns.alignwide > .wp-block-column {
  flex: 1 1 0 !important;
  min-width: 0;
}
.single-product main > .wp-block-columns.alignwide > .wp-block-column:first-child {
  flex-basis: calc(50% - 1.5rem) !important;
}
.single-product main > .wp-block-columns.alignwide > .wp-block-column:last-child {
  flex-basis: calc(50% - 1.5rem) !important;
}
.single-product main > .wp-block-columns.alignwide .wp-block-post-title {
  margin-block: 0 0.75rem;
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.12;
}
.single-product main > .wp-block-columns.alignwide .wp-block-woocommerce-product-image-gallery {
  overflow: hidden;
  border-radius: 22px;
  background: #f3edff;
}
.single-product main > .wp-block-columns.alignwide .woocommerce-product-gallery__image img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: contain;
}
.single-product .rose-wc-product-box {
  margin-block: 1.2rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid #f4c7db;
  border-radius: 18px;
  background: #fff8fb;
}
.single-product .rose-wc-product-box__title {
  margin: 0 0 0.55rem;
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
  font-size: 1.15rem;
  line-height: 1.3;
}
.single-product .rose-wc-product-box__description {
  margin: 0 0 1rem;
  color: var(--rose-ink-2);
  font-size: 0.95rem;
  line-height: 1.55;
}
.single-product .rose-wc-product-box__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  box-sizing: border-box;
  max-width: 100%;
  min-height: 46px;
  padding: 0.75rem 1.25rem;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rose-pink-2), var(--rose-pink)) !important;
  color: #fff !important;
  font-family: var(--rose-font-display);
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}
.single-product .rose-wc-product-box__cta:hover { filter: brightness(0.95); }
.single-product .wp-block-woocommerce-add-to-cart-form form.cart {
  display: flex;
  align-items: stretch;
  gap: 0.75rem;
}
/* Orders must pass through the personalization wizard; hide the generic add-to-cart shortcut. */
.single-product .wp-block-woocommerce-add-to-cart-form { display: none !important; }
.single-product .wp-block-woocommerce-add-to-cart-form .quantity .qty {
  width: 76px;
  min-height: 48px;
  box-sizing: border-box;
  border: 1px solid #ded5f0;
  border-radius: 12px;
}
.single-product .wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button {
  min-height: 48px;
  padding-inline: 1.25rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rose-pink-2), var(--rose-pink));
  color: #fff;
  font-family: var(--rose-font-display);
  font-weight: 600;
}
.single-product .wp-block-woocommerce-product-collection {
  width: min(1120px, 92%);
  margin-inline: auto;
  padding-block: 0.5rem 3rem;
}
.single-product .wp-block-woocommerce-product-collection .wc-block-product-template {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
}
.single-product .wp-block-woocommerce-product-collection .wc-block-product {
  display: flex;
  flex-direction: column;
  width: 100% !important;
  flex: none !important;
  box-sizing: border-box;
  min-width: 0;
  padding: 0.8rem;
  border: 1px solid #eee6fa;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(42, 17, 102, 0.07);
}
.single-product .wp-block-woocommerce-product-collection .wc-block-components-product-image--aspect-ratio-1-1 {
  aspect-ratio: 4 / 5 !important;
  overflow: hidden;
  border-radius: 12px;
  background: #f6f1ff;
}
.single-product .wp-block-woocommerce-product-collection .wc-block-components-product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}
.single-product .wp-block-woocommerce-product-collection .wp-block-post-title {
  min-height: 2.6em;
  color: var(--rose-violet-900);
  font-family: var(--rose-font-display);
  font-size: 1rem;
  line-height: 1.25;
}
.single-product .wp-block-woocommerce-product-collection .wp-block-woocommerce-product-button {
  margin-block-start: auto;
}
.single-product .wp-block-woocommerce-product-collection .wp-block-button__link {
  width: 100%;
  box-sizing: border-box;
  padding: 0.7rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rose-pink-2), var(--rose-pink));
  color: #fff;
  font-family: var(--rose-font-display);
  font-size: 0.85rem;
  text-align: center;
}
@media (max-width: 640px) {
  .single-product .wp-block-woocommerce-product-collection .wc-block-product-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 960px) {
  .woocommerce-shop .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 782px) {
  .single-product main > .wp-block-columns.alignwide {
    flex-direction: column;
    flex-wrap: wrap !important;
  }
  .single-product main > .wp-block-columns.alignwide > .wp-block-column {
    flex-basis: 100% !important;
    width: 100%;
  }
  .single-product .rose-wc-product-box__cta { width: 100%; text-align: center; }
  .single-product .wp-block-woocommerce-add-to-cart-form form.cart { width: 100%; }
  .single-product .wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button {
    min-width: 0;
    padding-inline: 0.75rem;
  }
}

@media (max-width: 1024px) {
  #livro-de-colorir > .e-con-inner > .e-con:first-child > .e-con {
    width: 100%;
  }
}
