/* Craftohfa — hooks for Elementor-built pages (classes the seeder puts on containers/widgets). */
.ad-150 { animation-delay: 1.5s !important; } .ad-158 { animation-delay: 1.58s !important; } .ad-166 { animation-delay: 1.66s !important; } .ad-174 { animation-delay: 1.74s !important; } .ad-182 { animation-delay: 1.82s !important; } .ad-190 { animation-delay: 1.9s !important; } .ad-198 { animation-delay: 1.98s !important; }

/* Hero */
.c-hero__title em::after { content: ""; display: inline-block; width: 1.15em; height: 0.8em; margin-left: 0.5rem; vertical-align: baseline; background: var(--rose); animation: heartbeat 6s ease-in-out infinite; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 28' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg transform='translate(0 2)'%3E%3Cpath d='M12 20.5S3.5 15.4 3.5 9.6A4.6 4.6 0 0 1 12 7a4.6 4.6 0 0 1 8.5 2.6c0 5.8-8.5 10.9-8.5 10.9Z'/%3E%3C/g%3E%3Cpath d='M27 7.5 31.5 4M29 14h5.5M27.5 20.5 32 24'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 28' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg transform='translate(0 2)'%3E%3Cpath d='M12 20.5S3.5 15.4 3.5 9.6A4.6 4.6 0 0 1 12 7a4.6 4.6 0 0 1 8.5 2.6c0 5.8-8.5 10.9-8.5 10.9Z'/%3E%3C/g%3E%3Cpath d='M27 7.5 31.5 4M29 14h5.5M27.5 20.5 32 24'/%3E%3C/svg%3E") center / contain no-repeat; }
.e-con.c-hero { position: relative; overflow: hidden; }
.e-con.c-hero > .e-con-inner { position: relative; }
/* The flowers are positioned against the FULL-width words block, like the original, so .e-con-inner must not be positioned. */
.e-con.c-hero__words > .e-con-inner { position: static; align-items: center; }
.c-hero__decor-el, .c-hero__blooms-el { position: absolute !important; inset: 0; pointer-events: none; z-index: 0; }
.c-hero__decor-el .elementor-widget-container, .c-hero__blooms-el .elementor-widget-container, .c-hero__decor-el .elementor-shortcode, .c-hero__blooms-el .elementor-shortcode { position: absolute; inset: 0; }
.e-con.c-hero__words { position: relative; z-index: 1; overflow: visible; }
.e-con.c-hero__copy { position: relative; z-index: 2; width: min(100%, 48rem); max-width: 48rem; margin-inline: auto !important; align-items: center; text-align: center; }
.e-con.c-hero__copy .elementor-widget-heading, .e-con.c-hero__copy .elementor-widget-text-editor { width: 100%; }
.c-hero__title .elementor-heading-title { margin-inline: auto; }
.c-hero__lede p { margin-inline: auto; }
.e-con.c-hero__actions { margin-top: 1.5rem; }
@media (min-width: 48rem) { .e-con.c-hero__actions { margin-top: 2.5rem; } }

/* Heading underline */
.c-underline-el .elementor-heading-title { position: relative; display: inline-block; }
.c-underline-el .elementor-heading-title::after { content: ""; position: absolute; left: 0; bottom: -0.75rem; height: 0.75rem; width: min(240px, 60%); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 16' preserveAspectRatio='none'%3E%3Cpath d='M4 11c28-6 60-8 96-7 32 .9 62 3.4 96 8' fill='none' stroke='%23b8c7b0' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M14 15c30-4 58-5 88-4.6' fill='none' stroke='%23b8c7b0' stroke-width='2' stroke-linecap='round' opacity='.55'/%3E%3C/svg%3E") no-repeat center / 100% 100%; }
.elementor-widget-heading.c-underline-el.elementor-widget-heading[class*="center"] .elementor-heading-title::after { left: 50%; translate: -50% 0; }

/* Spacing helpers */
.c-mt-3 { margin-top: 0.75rem !important; } .c-mt-4 { margin-top: 1rem !important; } .c-mt-7 { margin-top: 1.75rem !important; } .c-mt-8 { margin-top: 2rem !important; } .c-mt-10 { margin-top: 2.5rem !important; } .c-mt-12 { margin-top: 3rem !important; }

/* Sticky photo, founder, note card */
.e-con.c-sticky-photo { position: relative; max-width: 420px; margin-inline: auto; }
@media (min-width: 48rem) {
	/* Give the sticky image the full height of the five-item story column. */
	#whats-inside,
	#whats-inside > .e-con-inner,
	#whats-inside > .e-con-inner > .e-con,
	#whats-inside .e-con:has(> .c-sticky-photo) { overflow: visible !important; }
	#whats-inside .e-con:has(> .c-sticky-photo) { align-self: stretch; }
	.e-con.c-sticky-photo { position: sticky; top: clamp(8rem, 18vh, 11rem); align-self: flex-start; }
}
.c-sticky-photo__badge { position: absolute !important; bottom: -0.75rem; left: 1rem; z-index: 10; width: auto !important; }
.c-notecard__badge-el { position: absolute !important; bottom: -0.75rem; right: 1.5rem; width: auto !important; }
/* The decorative HTML widget must cover the card, not occupy a small slot
   above the heading. Clip only this layer so the tape stays outside the card. */
.e-con.c-notecard-el > .e-con-inner { position: static; }
.e-con.c-notecard-el .elementor-widget-html:has(.c-notecard__deco-a) {
  position: absolute !important; inset: 0; width: 100% !important; height: 100%;
  margin: 0 !important; padding: 0 !important; overflow: hidden;
  border-radius: inherit; pointer-events: none;
}
.e-con.c-notecard-el .elementor-widget-html:has(.c-notecard__deco-a) > .elementor-widget-container {
  position: static; width: 100%; height: 100%; border-radius: inherit;
}
.e-con.c-founder__photo { position: relative; max-width: 300px; margin-inline: auto; }
.e-con.c-founder__photo .elementor-widget-shortcode .c-tape { left: 1.5rem; top: -0.75rem; }
.e-con.c-step { position: relative; }
/* Elementor shrink-wraps this HTML widget around the number chip. Give it the
   full step width so the connector is positioned in the gap between columns. */
.e-con.c-step > .elementor-widget-html { width: 100%; }
.e-con.c-step > .elementor-widget-html .c-chip { margin-inline: auto; }
.e-con.c-glass { padding: 1rem 1.25rem !important; }
.e-con.c-glass .elementor-heading-title { color: #fff; font-family: var(--font-display); font-size: 1.125rem; }

/* Shop hero (Elementor template) */
.c-shophero__title-el .elementor-heading-title { position: relative; display: inline-block; max-width: 18ch; font-size: var(--text-h2); line-height: 1.05; letter-spacing: -0.02em; }
@media (min-width: 48rem) { .c-shophero__title-el .elementor-heading-title { font-size: var(--text-display); line-height: 0.95; letter-spacing: -0.03em; } }
.c-shophero__title-el .elementor-heading-title::before { content: ""; position: absolute; left: 0; bottom: -0.5rem; height: 0.625rem; width: min(200px, 55%); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 16' preserveAspectRatio='none'%3E%3Cpath d='M4 11c28-6 60-8 96-7 32 .9 62 3.4 96 8' fill='none' stroke='%23b8c7b0' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%; }
.c-shophero__title-el .elementor-heading-title::after { content: ""; display: inline-block; width: 0.9em; height: 0.8em; margin-left: 0.25rem; vertical-align: baseline; background: var(--peach); animation: heartbeat 6s ease-in-out infinite; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5S3.5 15.4 3.5 9.6A4.6 4.6 0 0 1 12 7a4.6 4.6 0 0 1 8.5 2.6c0 5.8-8.5 10.9-8.5 10.9Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5S3.5 15.4 3.5 9.6A4.6 4.6 0 0 1 12 7a4.6 4.6 0 0 1 8.5 2.6c0 5.8-8.5 10.9-8.5 10.9Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.e-con.c-shophero { position: relative; overflow: hidden; }
.e-con.c-shophero > .e-con-inner { position: relative; z-index: 1; }
.e-con.c-shophero__photo-el { position: relative; margin-inline: auto; rotate: 1.5deg; }
.c-shophero__img-el img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; border-radius: var(--radius-frame); border: 2px solid rgb(var(--ink-rgb) / 0.85); background: var(--cream); box-shadow: var(--shadow-lift); }

/* Bands */
.e-con.c-pagehero { position: relative; }
.e-con.c-pagehero > .e-con-inner { position: relative; z-index: 1; }
.e-con.c-final { position: relative; overflow: hidden; min-height: 34rem; }
/* Elementor normally makes the HTML widget and boxed inner wrapper positioning
   contexts. That pulled the corner doodles into the content column, where they
   overlapped the heading and were clipped. Anchor the decorative layer to the
   full-width band instead, while keeping all real content above it. */
.e-con.c-final > .e-con-inner { position: static !important; z-index: auto; justify-content: center; }
.e-con.c-final > .e-con-inner > .elementor-widget-html:has(.c-final__deco-a) {
	position: static !important;
	width: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	pointer-events: none;
}
.e-con.c-final > .e-con-inner > .elementor-widget-html:has(.c-final__deco-a) > .elementor-widget-container { position: static !important; }
.e-con.c-final > .e-con-inner > :not(.elementor-widget-html:has(.c-final__deco-a)) { position: relative; z-index: 2; }
.e-con.c-final .c-final__deco-a { left: clamp(1.5rem, 2.5vw, 3rem); top: clamp(2.5rem, 7vw, 4rem); }
.e-con.c-final .c-final__deco-b { right: clamp(1.5rem, 2.5vw, 3rem); bottom: clamp(2.5rem, 7vw, 4rem); }
.e-con.c-final .c-note { margin-top: 1.5rem !important; }
@media (max-width: 47.99rem) {
	.e-con.c-final { min-height: 31rem; }
	.e-con.c-final .c-final__deco-a { left: 1rem; top: 1.5rem; width: 4.5rem; height: 4.5rem; }
	.e-con.c-final .c-final__deco-b { right: 1rem; bottom: 1.5rem; width: 4rem; height: 4rem; }
}
.e-con.c-bulk-el > .e-con-inner { position: relative; }
.e-con.c-tone-ink .elementor-widget-text-editor, .e-con.c-tone-ink .elementor-widget-text-editor p { color: rgb(255 255 255 / 0.85); }
.e-con.c-tone-ink .c-eyebrow, .e-con.c-tone-ink .c-eyebrow .elementor-heading-title { color: rgb(255 255 255 / 0.85); }
.e-con.c-tone-ink .c-h2 .elementor-heading-title, .e-con.c-tone-ink .c-h3 .elementor-heading-title { color: #fff; }

/* Widgets */
.elementor-widget-shortcode.c-center .elementor-shortcode { display: flex; justify-content: center; }
.elementor-widget-shortcode.c-note .elementor-shortcode { font-size: 0.875rem; color: rgb(var(--ink-rgb) / 0.65); }
.elementor-widget-text-editor.c-prose .elementor-widget-container { display: flex; flex-direction: column; gap: 1rem; color: rgb(var(--ink-rgb) / 0.8); }
.elementor-widget-text-editor.c-prose p, .elementor-widget-text-editor.c-prose ul, .elementor-widget-text-editor.c-prose ol { margin: 0; }
.elementor-widget-text-editor.c-prose ul, .elementor-widget-text-editor.c-prose ol { padding-left: 1.25rem; display: flex; flex-direction: column; gap: 0.5rem; }
.elementor-widget-html .c-doodle--8 { width: 2rem; height: 2rem; }
.e-con.c-value { align-items: flex-start; }
.e-con.c-card, .e-con.c-panel, .e-con.c-soft-card { height: 100%; }
/* Returns page: Elementor's generated row widths and directions can load after
   the theme. Use explicit grid containers so the cards keep equal columns,
   natural text flow and the intended spacing at every breakpoint. */
.e-con.c-returns-layout,
.e-con.c-returns-info {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.75rem !important;
  align-items: stretch !important;
  width: 100% !important;
}
.e-con.c-returns-layout > .e-con,
.e-con.c-returns-info > .e-con {
  width: 100% !important;
  min-width: 0;
  height: 100%;
}
.e-con.c-returns-layout > .c-panel {
  display: flex !important;
  flex-direction: column !important;
  padding: 1.75rem !important;
  border: 2px solid rgb(var(--ink-rgb) / 0.85) !important;
  border-radius: var(--radius-card) !important;
  background: #fff !important;
  box-shadow: var(--shadow-sticker-sm) !important;
  overflow: hidden;
}
.e-con.c-returns-layout .top {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.e-con.c-returns-layout .elementor-widget-heading,
.e-con.c-returns-layout .elementor-widget-text-editor,
.e-con.c-returns-layout .elementor-widget-container {
  width: 100%;
  min-width: 0;
}
.e-con.c-returns-layout .elementor-heading-title {
  line-height: 1.15;
  overflow-wrap: normal;
  word-break: normal;
}
.e-con.c-returns-layout .elementor-widget-text-editor,
.e-con.c-returns-layout .elementor-widget-text-editor p {
  line-height: 1.7;
  overflow-wrap: normal;
  word-break: normal;
}
.e-con.c-returns-info {
  padding-top: 3.5rem !important;
}
.e-con.c-returns-info > .c-soft-card {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  padding: 1.75rem !important;
  border: 1px solid rgb(var(--ink-rgb) / 0.12) !important;
  border-radius: var(--radius-card) !important;
  background: rgb(var(--blush-rgb) / 0.6) !important;
  box-shadow: none !important;
  overflow: hidden;
}
.e-con.c-returns-info > .c-soft-card--white { background: #fff !important; }
.e-con.c-returns-info .elementor-widget-heading,
.e-con.c-returns-info .elementor-widget-text-editor,
.e-con.c-returns-info .elementor-widget-container {
  width: 100% !important;
  min-width: 0;
}
.e-con.c-returns-info .elementor-widget-text-editor.c-prose > .elementor-widget-container {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 1rem !important;
}
.e-con.c-returns-info .elementor-widget-text-editor.c-prose > .elementor-widget-container > * {
  display: block;
  flex: 0 0 auto !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.e-con.c-returns-info .c-prose,
.e-con.c-returns-info .c-prose p,
.e-con.c-returns-info .c-prose li {
  overflow-wrap: normal;
  word-break: normal;
}

/* Shipping & policies: Elementor's generated widget/container rules can turn
   each section and its prose children into horizontal flex items. Keep every
   section heading first and flow all paragraphs, lists and links vertically. */
.e-con.c-policy-sections {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 3.5rem !important;
  width: 100% !important;
  min-width: 0;
}
.e-con.c-policy-sections > .e-con {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 1.25rem !important;
  width: 100% !important;
  min-width: 0;
}
.e-con.c-policy-sections > .e-con > .elementor-widget-heading,
.e-con.c-policy-sections > .e-con > .elementor-widget-text-editor,
.e-con.c-policy-sections > .e-con > .elementor-widget-text-editor > .elementor-widget-container {
  width: 100% !important;
  min-width: 0;
}
.e-con.c-policy-sections > .e-con > .elementor-widget-text-editor.c-prose > .elementor-widget-container {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 1rem !important;
}
.e-con.c-policy-sections > .e-con > .elementor-widget-text-editor.c-prose > .elementor-widget-container > * {
  display: block;
  flex: 0 0 auto !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.e-con.c-policy-sections .c-prose ul,
.e-con.c-policy-sections .c-prose ol {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0.5rem !important;
}
.e-con.c-policy-sections .c-prose li { width: 100% !important; }
@media (min-width: 48rem) {
  .e-con.c-returns-info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 64rem) {
  .e-con.c-returns-layout { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Contact page: Elementor's generated container CSS loads after the theme and
   otherwise wins over the card radius, padding and flex alignment. Keep the
   page's existing content while making its two-column composition deterministic. */
.e-con.c-contact {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem !important;
  align-items: stretch !important;
}
.e-con.c-contact > .e-con { width: 100% !important; min-width: 0; }
.e-con.c-contact > .c-card--blush { height: auto; }
.e-con.c-contact__side {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem !important;
  align-content: start;
  width: 100% !important;
  min-width: 0;
}
.e-con.c-contact__side > .c-card { height: auto; }
.e-con.c-card {
  border-radius: var(--radius-card) !important;
  border: 1px solid rgb(var(--ink-rgb) / 0.1) !important;
  box-shadow: var(--shadow-soft) !important;
  overflow: hidden;
}
.e-con.c-card--blush { background: var(--blush) !important; }
.e-con.c-card--peach { background: var(--peach) !important; }
.e-con.c-card--pad { padding: 1.75rem !important; gap: 1rem !important; }
.e-con.c-card--pad-lg { padding: 1.75rem !important; gap: 1.25rem !important; }
@media (min-width: 48rem) { .e-con.c-card--pad-lg { padding: 2.5rem !important; } }
@media (min-width: 64rem) {
  .e-con.c-contact { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  .e-con.c-contact > .c-card--blush { height: 100%; }
}
.e-con.c-img-card { position: relative; }
.e-con.c-img-card img { border-radius: var(--radius-card); border: 2px solid rgb(var(--ink-rgb) / 0.8); box-shadow: var(--shadow-soft); background: var(--cream); aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.c-act__n .elementor-heading-title { min-width: 3ch; }
.elementor-widget-button.c-btn .elementor-button-icon { display: inline-flex; }
.elementor-widget-button.c-self-start { align-self: flex-start; }
.e-con.c-returns-steps li, .e-con.c-panel .top { display: flex; align-items: center; gap: 0.75rem; }
.e-con.c-panel .num { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; color: rgb(var(--ink-rgb) / 0.25); }
.e-con .c-xlist { margin: 3rem auto 0; }
/* Elementor's default 10px container padding should not fight the page gutters set on the kit. */
.e-con.e-parent.c-tone-cream, .e-con.e-parent.c-tone-blush, .e-con.e-parent.c-tone-ink, .e-con.e-parent.c-final, .e-con.e-parent.c-pagehero { --padding-left: 0; --padding-right: 0; }

/* Elementor sets overflow via a custom property on .e-con; out-specify it so sections clip sideways without breaking sticky children. */
.e-con.c-overflow-clip, .e-con.c-tone-cream, .e-con.c-tone-blush, .e-con.c-tone-ink, .e-con.c-final, .e-con.c-pagehero, .e-con.c-shophero { overflow-x: clip; }
.e-con.c-hero { overflow: hidden; }
.elementor-widget-heading.c-pill { display: block; width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; }
.elementor-widget-heading.c-pill .elementor-widget-container { display: flex; justify-content: center; align-items: center; width: 100%; text-align: center; }
.elementor-widget-heading.c-pill .elementor-heading-title { display: inline-flex; width: auto; margin-inline: auto; }
.e-con.c-final .elementor-widget-heading .elementor-heading-title { max-width: 18ch; margin-inline: auto; }
.e-con.c-tone-ink .c-xlist li { color: rgb(255 255 255 / 0.9); }

/* The WhatsApp shortcode is retired and renders nothing. Pages saved in
   Elementor while it still existed keep the widget, so collapse the empty
   shell rather than leaving a flex gap where the button used to be. */
.elementor-widget-shortcode:has(> .elementor-widget-container > .elementor-shortcode:empty) { display: none; }

/* Homepage "Our story" without the founder photo: the name becomes a signed
   card. On phones it moves below the story so it reads as the sign-off. */
.e-con.c-founder__name:only-child { width: 100%; max-width: 20rem; margin: 0 auto; padding: 2.25rem 1.75rem 2rem; border: 1.5px dashed rgb(var(--ink-rgb) / 0.2); border-radius: var(--radius-card); background: rgb(var(--cream-rgb) / 0.75); text-align: center; }
.e-con.c-founder__name:only-child .elementor-heading-title { font-family: var(--font-hand); font-size: clamp(2.25rem, 4vw, 2.75rem); font-weight: 400; line-height: 1.1; color: var(--plum); transform: rotate(-4deg); }
.e-con.c-founder__name:only-child .c-note { margin-top: 0.75rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: rgb(var(--ink-rgb) / 0.6); }
@media (max-width: 47.99rem) { .e-con:has(> .c-founder__name:only-child) { order: 2; } }
