/* =========================================================================
   Yolanda's Chocolatiers: content pages (agent PAGES)
   Core blocks styled to the design system: heroes, bands, cards, galleries,
   accordions, quotes and Contact Form 7.
   ========================================================================= */

:root {
  --yp-ivory: var(--y-ivory, #FBF7F0);
  --yp-cream: var(--y-cream, #F4EDE1);
  --yp-sand: var(--y-sand, #F1E9DC);
  --yp-line: var(--y-line, #EADFCB);
  --yp-line-strong: var(--y-line-strong, #CDBDA4);
  --yp-cocoa: var(--y-cocoa, #2B1B14);
  --yp-text-2: var(--y-text-2, #5A4A40);
  --yp-text-3: var(--y-text-3, #6E5D52);
  --yp-gold: var(--y-gold, #8A6424);
  --yp-gold-light: var(--y-gold-light, #D4B06A);
  --yp-on-dark: var(--y-on-dark, #F4EDE1);
  --yp-on-dark-2: var(--y-on-dark-2, #D9CBB8);
  --yp-on-dark-3: var(--y-on-dark-3, #BFAE98);
  --yp-radius: var(--y-radius-card, 20px);
  --yp-ease: var(--y-ease, cubic-bezier(.2, .7, .2, 1));
  --yp-max: var(--y-max, 1360px);
  --yp-gutter: var(--y-gutter, 32px);
  --yp-display: 'Bodoni Moda', 'Didot', Georgia, serif;
  --yp-body: 'Jost', 'Avenir Next', system-ui, sans-serif;
  --yp-section: clamp(72px, 9vw, 120px);
}
@media (max-width: 640px) {
  :root { --yp-gutter: 16px; }
}

/* ---------- canvas ---------------------------------------------------- */
.y-blocks {
  display: block;
  background: var(--yp-ivory);
  color: var(--yp-cocoa);
  font-family: var(--yp-body);
  overflow-x: clip;
}
.y-blocks__article > * {
  max-width: var(--yp-max);
  margin-inline: auto;
  padding-inline: var(--yp-gutter);
  box-sizing: border-box;
}
.y-blocks__article > .alignfull {
  max-width: none;
  padding-inline: 0;
}
.y-blocks__article > .alignwide { max-width: var(--yp-max); }
.y-blocks .alignfull > .wp-block-group__inner-container,
.y-blocks .alignfull.is-layout-constrained,
.y-blocks .yp-section.alignfull {
  box-sizing: border-box;
}
.y-blocks .yp-section.alignfull,
.y-blocks .yp-hero.alignfull {
  padding-inline: max(var(--yp-gutter), calc((100% - var(--yp-max)) / 2 + var(--yp-gutter)));
}
.y-blocks .is-layout-constrained > *,
.y-blocks .wp-block-group__inner-container > * {
  max-width: none;
}
.y-blocks :where(p, li) {
  font-size: 16px;
  line-height: 1.75;
  color: var(--yp-text-2);
}
.y-blocks :where(h1, h2, h3, h4) {
  font-family: var(--yp-display);
  font-weight: 400;
  color: var(--yp-cocoa);
  letter-spacing: -.01em;
  line-height: 1.1;
  margin: 0;
  text-wrap: balance;
}
.y-blocks h3 { font-size: clamp(22px, 2vw, 28px); }
.y-blocks h4 { font-size: 20px; }
.y-blocks :where(p) { margin: 0; }
.y-blocks a:not(.wp-block-button__link) {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--yp-line-strong);
  text-underline-offset: 3px;
  transition: color .25s ease, text-decoration-color .25s ease;
}
.y-blocks a:not(.wp-block-button__link):hover {
  color: var(--yp-gold);
  text-decoration-color: currentColor;
}
.y-blocks :where(.wp-block-group, .wp-block-column) > * + * { margin-top: 18px; }
.y-blocks :where(.wp-block-group, .wp-block-column) > .wp-block-buttons { margin-top: 28px; }
.y-blocks figure { margin: 0; }
.y-blocks img { max-width: 100%; height: auto; }

/* ---------- typography styles ------------------------------------------ */
.y-blocks .is-style-y-eyebrow {
  font-family: var(--yp-body);
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--yp-gold);
  display: flex;
  align-items: center;
  gap: 14px;
}
.y-blocks .is-style-y-eyebrow::before {
  content: "";
  width: 40px;
  height: 1px;
  background: currentColor;
  flex: none;
}
.y-blocks .is-style-y-eyebrow.has-text-align-center { justify-content: center; }
.y-blocks .is-style-y-eyebrow.has-text-align-center::before { display: none; }
.y-blocks .is-style-y-display {
  font-size: clamp(34px, 4vw, 58px);
  line-height: 1.04;
  letter-spacing: -.02em;
}
.y-blocks .is-style-y-display em { font-style: italic; color: var(--yp-gold); }
.y-blocks h1.is-style-y-display,
.y-blocks .yp-hero__title {
  font-size: clamp(44px, 6vw, 88px);
  line-height: .98;
}
.y-blocks .is-style-y-lead {
  font-size: clamp(17px, 1.4vw, 19px);
  line-height: 1.7;
  color: var(--yp-text-2);
}
.y-blocks .yp-muted { font-size: 14px; color: var(--yp-text-3); }
.y-blocks .yp-signature { font-size: 15px; letter-spacing: .1em; color: var(--yp-gold-light); }
.y-blocks .is-style-y-placeholder {
  padding: 16px 20px;
  border: 1px dashed var(--yp-gold);
  border-radius: 12px;
  background: #FFF8E8;
  color: #6B4A12;
  font-size: 15px;
  font-weight: 500;
}
.y-blocks .has-text-align-center { text-align: center; }

/* ---------- buttons ---------------------------------------------------- */
.y-blocks .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}
.y-blocks .wp-block-buttons.is-content-justification-center { justify-content: center; }
.y-blocks .wp-block-button { margin: 0; }
.y-blocks .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 17px 30px;
  border: 1px solid var(--yp-cocoa);
  border-radius: 999px;
  background: var(--yp-cocoa);
  color: var(--yp-ivory);
  font-family: var(--yp-body);
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
}
.y-blocks .wp-block-button__link:hover,
.y-blocks .wp-block-button__link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -12px rgba(43, 27, 20, .45);
  color: var(--yp-ivory);
}
.y-blocks .is-style-outline > .wp-block-button__link {
  background: transparent;
  color: var(--yp-cocoa);
}
.y-blocks .is-style-outline > .wp-block-button__link:hover { background: var(--yp-cocoa); color: var(--yp-ivory); }
.y-blocks .is-style-y-light > .wp-block-button__link {
  background: transparent;
  border-color: var(--yp-gold-light);
  color: var(--yp-on-dark);
}
.y-blocks .is-style-y-light > .wp-block-button__link:hover { background: var(--yp-gold-light); color: var(--yp-cocoa); }
.y-blocks :focus-visible { outline: 2px solid var(--yp-gold); outline-offset: 3px; }

/* ---------- sections and bands ----------------------------------------- */
.y-blocks .yp-section { padding-block: var(--yp-section); }
.y-blocks .yp-section--tight { padding-block: clamp(40px, 5vw, 72px); }
.y-blocks .yp-section--flush-top { padding-top: 0; }
.y-blocks .yp-section:not([class*="is-style-y-band"]) + .yp-section:not([class*="is-style-y-band"]):not(.yp-cta-band) { padding-top: 0; }
.y-blocks .yp-section > * + * { margin-top: 48px; }
.y-blocks .is-style-y-band-cream {
  background: var(--yp-cream);
  border-block: 1px solid var(--yp-line);
}
.y-blocks .yp-section.is-style-y-band-cream,
.y-blocks .yp-section.is-style-y-band-cocoa { padding-block: var(--yp-section); }
.y-blocks .is-style-y-band-cocoa {
  background: var(--yp-cocoa);
  color: var(--yp-on-dark);
}
.y-blocks .is-style-y-band-cocoa :where(h1, h2, h3, h4) { color: var(--yp-on-dark); }
.y-blocks .is-style-y-band-cocoa :where(p, li) { color: var(--yp-on-dark-2); }
.y-blocks .is-style-y-band-cocoa .is-style-y-eyebrow,
.y-blocks .is-style-y-band-cocoa .is-style-y-display em { color: var(--yp-gold-light); }
.y-blocks .is-style-y-band-cocoa a:not(.wp-block-button__link) { text-decoration-color: rgba(212, 176, 106, .5); }
.y-blocks .is-style-y-band-cocoa a:not(.wp-block-button__link):hover { color: var(--yp-gold-light); }
.y-blocks .yp-narrow { max-width: 820px; margin-inline: auto; }
.y-blocks .yp-narrow > * + * { margin-top: 20px; }

.y-blocks .yp-section-head { max-width: 760px; margin-inline: auto; text-align: center; }
.y-blocks .yp-section-head > * + * { margin-top: 16px; }
.y-blocks .yp-section-head--left { margin-inline: 0; text-align: left; }
.y-blocks .yp-section-head p { font-size: 17px; }

/* ---------- hero -------------------------------------------------------- */
.y-blocks .yp-hero {
  padding-top: clamp(48px, 6vw, 80px);
  padding-bottom: clamp(64px, 8vw, 104px);
}
.y-blocks .yp-hero__cols { gap: clamp(32px, 5vw, 72px); margin: 0; }
.y-blocks .yp-hero__text > * + * { margin-top: 26px; }
.y-blocks .yp-hero__text p:not(.is-style-y-eyebrow) { max-width: 520px; }
.y-blocks .yp-hero--center { text-align: center; }
.y-blocks .yp-hero--center > * { max-width: 860px; margin-inline: auto; }
.y-blocks .yp-hero--center > * + * { margin-top: 24px; }
.y-blocks .yp-hero--center .is-style-y-lead { max-width: 680px; }
.y-blocks .yp-hero--compact { padding-bottom: clamp(40px, 5vw, 64px); }
.y-blocks .yp-hero--compact .yp-hero__title { font-size: clamp(40px, 5vw, 72px); }
.y-blocks .yp-hero--swash::before {
  content: "";
  display: block;
  width: 110px;
  height: 36px;
  margin: 0 auto 8px;
  background: url("../../../../uploads/2019/02/fave.png") center / contain no-repeat;
}
.y-blocks .yp-hero__media { position: relative; }
.y-blocks .yp-hero__img { margin: 0 0 0 clamp(0px, 4vw, 60px); }
.y-blocks .yp-hero__img { aspect-ratio: 4 / 5; max-height: 640px; }
.y-blocks .yp-hero__img img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}
.y-blocks .yp-hero__float {
  position: absolute;
  left: 0;
  bottom: 48px;
  width: clamp(110px, 12vw, 170px);
  margin: 0 !important;
  border: 6px solid var(--yp-ivory);
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(43, 27, 20, .4);
  animation: yp-float 6s ease-in-out infinite;
}
.y-blocks .yp-hero__float img { aspect-ratio: 1; object-fit: cover; width: 100%; display: block; transform: scale(1.3); }

/* page-load motion */
.y-blocks .yp-hero__text > *,
.y-blocks .yp-hero--center > * {
  animation: yp-rise .9s var(--yp-ease) both;
}
.y-blocks .yp-hero__text > :nth-child(2), .y-blocks .yp-hero--center > :nth-child(2) { animation-delay: .12s; }
.y-blocks .yp-hero__text > :nth-child(3), .y-blocks .yp-hero--center > :nth-child(3) { animation-delay: .24s; }
.y-blocks .yp-hero__text > :nth-child(4), .y-blocks .yp-hero--center > :nth-child(4) { animation-delay: .36s; }
.y-blocks .yp-hero__text > :nth-child(n+5), .y-blocks .yp-hero--center > :nth-child(n+5) { animation-delay: .48s; }
.y-blocks .yp-hero__img { animation: yp-clip 1.3s cubic-bezier(.7, 0, .2, 1) .1s both; }
.y-blocks .yp-hero__img img { animation: yp-zoom 1.8s var(--yp-ease) .1s both; }

@keyframes yp-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes yp-clip { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes yp-zoom { from { transform: scale(1.15); } to { transform: scale(1); } }
@keyframes yp-float { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-14px) rotate(3deg); } }

/* ---------- images ------------------------------------------------------ */
.y-blocks .is-style-y-arch img { border-radius: 300px 300px 24px 24px; }
.y-blocks .is-style-y-arch { border-radius: 300px 300px 24px 24px; overflow: hidden; background: var(--yp-sand); }
.y-blocks .is-style-y-rounded img { border-radius: 24px; }
.y-blocks .is-style-y-circle img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; }
.y-blocks .yp-banner img { width: 100%; aspect-ratio: 21 / 8; object-fit: cover; display: block; }
.y-blocks .yp-swash { margin: 0 auto; }
.y-blocks .yp-swash img { width: 110px; display: block; margin-inline: auto; }
.y-blocks .is-style-y-band-cocoa .yp-swash img { filter: brightness(1.4); }
.y-blocks .yp-founder__img { max-width: 420px; margin-inline: auto; }
.y-blocks .yp-founder__img img { box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55); border: 8px solid rgba(212, 176, 106, .25); }
.y-blocks .is-style-y-band-cocoa .yp-swash { margin-inline: 0; }
.y-blocks .is-style-y-band-cocoa .yp-swash img { margin-inline: 0; }

/* ---------- columns / split -------------------------------------------- */
.y-blocks .wp-block-columns {
  display: flex;
  gap: clamp(28px, 5vw, 72px);
  margin: 0;
}
.y-blocks .wp-block-columns.are-vertically-aligned-center { align-items: center; }
.y-blocks .wp-block-column { flex: 1 1 0; min-width: 0; }
.y-blocks .wp-block-column[style*="flex-basis"] { flex-grow: 0; }
.y-blocks .yp-split--form { align-items: flex-start; }
.y-blocks .yp-form-aside img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; display: block; }
@media (max-width: 781px) {
  .y-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column; }
  .y-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; width: 100%; }
  .y-blocks .yp-hero__img { margin-left: 32px; }
  .y-blocks .yp-form-aside { display: none; }
}

/* ---------- grids and cards -------------------------------------------- */
.y-blocks .yp-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}
.y-blocks .yp-grid > * { margin: 0 !important; }
.y-blocks .yp-grid--cards { grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
.y-blocks .yp-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); }
.y-blocks .yp-grid--flavours { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 32px 20px; }
.y-blocks .yp-grid--pillars { grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); }
.y-blocks .yp-grid--info { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; }

.y-blocks .is-style-y-card,
.y-blocks .is-style-y-card-gold {
  position: relative;
  border-radius: var(--yp-radius);
  background: var(--yp-sand);
  overflow: hidden;
  padding: 28px;
}
.y-blocks .is-style-y-card-gold { background: var(--yp-cocoa); }
.y-blocks .is-style-y-card-gold :where(h3, p) { color: var(--yp-on-dark); }
.y-blocks .is-style-y-card-gold h3 { color: var(--yp-gold-light); }
.y-blocks .is-style-y-card > .yp-card__img,
.y-blocks .is-style-y-card-gold > .yp-card__img {
  margin: -28px -28px 24px;
  overflow: hidden;
  aspect-ratio: 1;
}
.y-blocks .yp-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .9s var(--yp-ease);
}
.y-blocks .is-style-y-card:hover .yp-card__img img,
.y-blocks .is-style-y-card-gold:hover .yp-card__img img { transform: scale(1.06); }
.y-blocks .yp-card__title { font-size: 26px; }
.y-blocks .is-style-y-card p { font-size: 15px; line-height: 1.65; }
.y-blocks .yp-grid--3 .is-style-y-card { padding: 0 0 32px; }
.y-blocks .yp-grid--3 .is-style-y-card > .yp-card__img { margin: 0 0 24px; aspect-ratio: 4 / 3; }
.y-blocks .yp-grid--3 .is-style-y-card > :not(.yp-card__img) { margin-inline: 32px; }
.y-blocks .yp-grid--3 .yp-card__title { font-size: 34px; }

.y-blocks .yp-pillar { padding-top: 22px; border-top: 1px solid var(--yp-line); }
.y-blocks .yp-pillar h3 { font-size: 24px; }
.y-blocks .yp-pillar p { font-size: 15px; margin-top: 6px; }
.y-blocks .yp-info { padding: 26px; }
.y-blocks .yp-info > * + * { margin-top: 10px; }
.y-blocks .yp-coupons { padding: 24px 28px; background: var(--yp-cream); border: 1px solid var(--yp-line); }
.y-blocks .yp-coupons > * + * { margin-top: 6px; }
.y-blocks .yp-coupons strong { font-family: var(--yp-display); font-size: 20px; color: var(--yp-cocoa); letter-spacing: .02em; margin-right: 6px; }

.y-blocks .yp-flavour { text-align: center; }
.y-blocks .yp-flavour figure { width: 112px; margin: 0 auto 14px; }
.y-blocks .yp-flavour img { transition: transform .6s var(--yp-ease); box-shadow: 0 18px 30px -18px rgba(43, 27, 20, .45); }
.y-blocks .yp-flavour:hover img { transform: translateY(-4px) rotate(-6deg); }
.y-blocks .yp-flavour__name { font-size: 20px; }
.y-blocks .yp-flavour__note { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--yp-gold); margin-top: 6px !important; }

.y-blocks .yp-award { gap: 28px; max-width: 760px; margin-inline: auto; }
.y-blocks .yp-award__badge img { width: 96px; }

.y-blocks .yp-cta-band { text-align: center; }
.y-blocks .yp-cta { max-width: 760px; margin-inline: auto; }
.y-blocks .yp-cta > * + * { margin-top: 22px; }

/* ---------- galleries -------------------------------------------------- */
.y-blocks .wp-block-gallery.is-style-y-masonry {
  display: block !important;
  columns: 5 150px;
  column-gap: 10px;
}
.y-blocks .wp-block-gallery.is-style-y-masonry > .wp-block-image {
  display: block;
  width: 100% !important;
  margin: 0 0 10px !important;
  break-inside: avoid;
  border-radius: 14px;
  overflow: hidden;
  background: var(--yp-sand);
}
.y-blocks .wp-block-gallery.is-style-y-masonry img {
  width: 100%;
  height: auto !important;
  display: block;
  transition: transform .9s var(--yp-ease);
}
.y-blocks .wp-block-gallery.is-style-y-masonry > .wp-block-image:hover img { transform: scale(1.05); }

.y-blocks .yp-carousel { position: relative; }
.y-blocks .wp-block-gallery.is-style-y-carousel {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  border-radius: 24px;
  overscroll-behavior-x: contain;
}
.y-blocks .wp-block-gallery.is-style-y-carousel::-webkit-scrollbar { display: none; }
.y-blocks .wp-block-gallery.is-style-y-carousel > .wp-block-image {
  flex: 0 0 100% !important;
  width: 100% !important;
  margin: 0 !important;
  scroll-snap-align: start;
  border-radius: 24px;
  overflow: hidden;
}
.y-blocks .wp-block-gallery.is-style-y-carousel img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.yp-carousel__nav { position: absolute; right: 16px; bottom: 16px; display: flex; gap: 10px; }
.yp-carousel__btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 0;
  display: grid;
  place-items: center;
  background: rgba(251, 247, 240, .92);
  color: var(--yp-cocoa);
  cursor: pointer;
  box-shadow: 0 10px 24px -12px rgba(43, 27, 20, .5);
  transition: transform .25s ease, background .25s ease;
}
.yp-carousel__btn:hover { transform: translateY(-2px); background: var(--yp-ivory); }
.yp-carousel__btn--next { background: var(--yp-cocoa); color: var(--yp-ivory); }
.yp-carousel__btn--next:hover { background: var(--yp-cocoa); }

/* core lightbox trigger inherits our rounded figures */
.y-blocks .wp-lightbox-container button { border-radius: 50%; }

/* ---------- accordions (core/details) ---------------------------------- */
.y-blocks .yp-accordion-list { margin-top: 28px; }
.y-blocks .yp-accordion-list > * + * { margin-top: 0 !important; }
.y-blocks .wp-block-details {
  border-bottom: 1px solid var(--yp-line);
  padding: 0;
}
.y-blocks .yp-accordion-list > .wp-block-details:first-child { border-top: 1px solid var(--yp-line); }
.y-blocks .wp-block-details > summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 22px 56px 22px 0;
  font-family: var(--yp-display);
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.3;
  color: var(--yp-cocoa);
  transition: color .25s ease;
}
.y-blocks .wp-block-details > summary::-webkit-details-marker { display: none; }
.y-blocks .wp-block-details > summary::after {
  content: "";
  position: absolute;
  right: 6px;
  top: 50%;
  width: 34px;
  height: 34px;
  margin-top: -17px;
  border: 1px solid var(--yp-line-strong);
  border-radius: 50%;
  background:
    linear-gradient(var(--yp-cocoa), var(--yp-cocoa)) center / 12px 1px no-repeat,
    linear-gradient(var(--yp-cocoa), var(--yp-cocoa)) center / 1px 12px no-repeat;
  transition: transform .35s var(--yp-ease), background-color .25s ease;
}
.y-blocks .wp-block-details[open] > summary::after {
  transform: rotate(45deg);
  background-color: var(--yp-cream);
}
.y-blocks .wp-block-details > summary:hover { color: var(--yp-gold); }
.y-blocks .wp-block-details > :not(summary) { margin: 0 0 16px; padding-right: 56px; }
.y-blocks .wp-block-details > :not(summary):last-child { margin-bottom: 26px; }
.y-blocks .wp-block-details[open] > :not(summary) { animation: yp-rise .5s var(--yp-ease) both; }
.y-blocks .wp-block-details ul { padding-left: 1.2em; }
.y-blocks .wp-block-details li + li { margin-top: 6px; }
.y-blocks .is-style-y-band-cocoa .wp-block-details { border-color: rgba(212, 176, 106, .25); }
.y-blocks .is-style-y-band-cocoa .wp-block-details > summary { color: var(--yp-on-dark); }

.y-blocks .yp-faq-group + .yp-faq-group { margin-top: 80px; }
.y-blocks .yp-faq-group > p:not(.is-style-y-eyebrow) { max-width: 640px; }
.y-blocks .yp-sticky { position: sticky; top: 120px; }
.y-blocks .yp-split--faq { align-items: flex-start; }

/* ---------- quotes / testimonials -------------------------------------- */
.y-blocks .wp-block-quote { margin: 0; padding: 0; border: 0; }
.y-blocks .is-style-y-love-note p {
  font-family: var(--yp-display);
  font-style: italic;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.4;
  color: var(--yp-cocoa);
}
.y-blocks .is-style-y-love-note cite {
  display: block;
  margin-top: 18px;
  font-style: normal;
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--yp-gold);
}
.y-blocks .is-style-prose .is-style-y-love-note,
.y-blocks .is-style-y-prose .is-style-y-love-note {
  margin-block: 40px;
  padding-left: 28px;
  border-left: 1px solid var(--yp-gold);
}
.y-blocks .yp-testimonials { columns: 3 300px; column-gap: 20px; }
.y-blocks .yp-testimonials > * { margin: 0 0 20px !important; }
.y-blocks .yp-testimonial {
  break-inside: avoid;
  padding: 32px;
  border-radius: var(--yp-radius);
  background: var(--yp-sand);
}
.y-blocks .yp-testimonial::before {
  content: "\201C";
  display: block;
  height: 36px;
  font-family: var(--yp-display);
  font-size: 64px;
  line-height: 1;
  color: var(--yp-gold);
}
.y-blocks .yp-testimonial p { font-size: 18px; }

/* ---------- prose / legal ---------------------------------------------- */
.y-blocks .is-style-y-prose { max-width: 760px; margin-inline: auto; }
.y-blocks .is-style-y-prose > * + * { margin-top: 20px; }
.y-blocks .is-style-y-prose :where(p, li) { font-size: 17px; line-height: 1.8; }
.y-blocks .is-style-y-prose h2 { font-size: clamp(26px, 2.6vw, 34px); margin-top: 48px; }
.y-blocks .is-style-y-prose h3 { font-size: 22px; margin-top: 36px; }
.y-blocks .is-style-y-prose .wp-block-list { padding-left: 1.25em; }
.y-blocks .is-style-y-prose li + li { margin-top: 6px; }
.y-blocks .wp-block-separator { border: 0; border-top: 1px solid var(--yp-line); margin-block: 40px; opacity: 1; }
.y-blocks .yp-legal h2 { font-family: var(--yp-body); font-size: 15px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin-top: 8px; }
.y-blocks .yp-legal h3 { font-size: 24px; }

/* ---------- map -------------------------------------------------------- */
.y-blocks .yp-map-wrap .yp-map {
  display: block;
  width: 100%;
  height: clamp(320px, 40vw, 480px);
  border-radius: 24px;
  filter: grayscale(.35) sepia(.15);
}

/* ---------- press grid (query loop) ------------------------------------ */
.y-blocks .yp-press .wp-block-post-template {
  display: grid;
  gap: 32px 24px;
  grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
  list-style: none;
  padding: 0;
  margin: 0;
}
.y-blocks .yp-press .wp-block-post > * + * { margin-top: 12px; }
.y-blocks .yp-press .wp-block-post-featured-image { border-radius: 18px; overflow: hidden; background: var(--yp-sand); }
.y-blocks .yp-press .wp-block-post-featured-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .9s var(--yp-ease); }
.y-blocks .yp-press .wp-block-post:hover img { transform: scale(1.06); }
.y-blocks .yp-press .wp-block-post-title a { text-decoration: none; }
.y-blocks .yp-press .wp-block-post-date { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--yp-gold); }

/* ---------- forms: Contact Form 7 -------------------------------------- */
.y-blocks .yp-form-card { padding: clamp(24px, 4vw, 48px); background: #FFFDF9; border: 1px solid var(--yp-line); }
.y-blocks .yp-form-card > .yp-section-head { margin-bottom: 8px; }
.wpcf7 { font-family: var(--yp-body); color: var(--yp-cocoa); }
.wpcf7 form > p,
.wpcf7 form .y-cf7-row { margin: 0 0 18px; }
.wpcf7 form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.wpcf7 form > * { grid-column: 1 / -1; }
.wpcf7 form > p:has(> label > .wpcf7-form-control-wrap > input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"])),
.wpcf7 form > p:has(> .wpcf7-form-control-wrap > input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"])),
.wpcf7 form > p:has(> label > .wpcf7-form-control-wrap > select) {
  grid-column: auto;
}
.wpcf7 form > .hidden-fields-container,
.wpcf7 form > fieldset.hidden-fields-container { display: none; }
.wpcf7 label {
  display: block;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--yp-text-3);
}
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.wpcf7 input:where([type="text"], [type="email"], [type="tel"], [type="number"], [type="date"], [type="url"]),
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  box-sizing: border-box;
  min-height: 54px;
  padding: 14px 20px;
  border: 1px solid var(--yp-line-strong);
  border-radius: 14px;
  background: #FFFDF9;
  color: var(--yp-cocoa);
  font: inherit;
  font-size: 16px;
  letter-spacing: normal;
  text-transform: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
  appearance: none;
}
.wpcf7 select {
  padding-right: 44px;
  background: #FFFDF9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232B1B14' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 18px center / 14px no-repeat;
}
.wpcf7 textarea { min-height: 140px; resize: vertical; line-height: 1.6; }
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--yp-gold);
  box-shadow: 0 0 0 4px rgba(138, 100, 36, .14);
  background: #fff;
}
.wpcf7 ::placeholder { color: #9C8C7E; opacity: 1; }
.wpcf7 .wpcf7-list-item { display: inline-flex; align-items: center; margin: 6px 18px 6px 0; }
.wpcf7 .wpcf7-list-item label,
.wpcf7 .wpcf7-acceptance label {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  letter-spacing: normal;
  text-transform: none;
  color: var(--yp-text-2);
  cursor: pointer;
}
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  accent-color: var(--yp-cocoa);
  flex: none;
}
.wpcf7 input[type="file"] { font-size: 14px; color: var(--yp-text-2); margin-top: 8px; }
.wpcf7 input[type="file"]::file-selector-button {
  margin-right: 14px;
  padding: 10px 18px;
  border: 1px solid var(--yp-cocoa);
  border-radius: 999px;
  background: transparent;
  color: var(--yp-cocoa);
  font: inherit;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 38px;
  border: 0;
  border-radius: 999px;
  background: var(--yp-cocoa);
  color: var(--yp-ivory);
  font: inherit;
  font-size: 14px;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}
.wpcf7 input[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 12px 30px -12px rgba(43, 27, 20, .45); }
.wpcf7 input[type="submit"]:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }
.wpcf7 .wpcf7-spinner { margin: 0 0 0 14px; vertical-align: middle; }
.wpcf7 .wpcf7-not-valid { border-color: #B3412F !important; background: #FFF6F3; }
.wpcf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  letter-spacing: normal;
  text-transform: none;
  color: #B3412F;
}
.wpcf7 form .wpcf7-response-output {
  grid-column: 1 / -1;
  margin: 8px 0 0;
  padding: 14px 18px;
  border: 1px solid var(--yp-line-strong);
  border-radius: 14px;
  font-size: 15px;
  line-height: 1.5;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output { border-color: #E0B252; background: #FFF8E8; color: #6B4A12; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: #B3412F; background: #FFF6F3; color: #8A2F21; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #459647; background: #F1F8EE; color: #2E6B30; }
.wpcf7 .screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (max-width: 640px) {
  .wpcf7 form { grid-template-columns: 1fr; }
  .wpcf7 form > p { grid-column: 1 / -1 !important; }
}

/* WooCommerce + plugin forms placed inside form cards */
.y-blocks .yp-form-card :where(form.woocommerce-form-track-order, .pwgc-balance-container, .vi-woocommerce-orders-tracking-form-search) input:where([type="text"], [type="email"], [type="search"]) {
  width: 100%;
  min-height: 54px;
  padding: 14px 20px;
  border: 1px solid var(--yp-line-strong);
  border-radius: 14px;
  background: #FFFDF9;
  font: inherit;
  box-sizing: border-box;
}
.y-blocks .yp-form-card :where(button, input[type="submit"]):not(.yp-carousel__btn) {
  min-height: 54px;
  padding: 0 32px;
  border: 0;
  border-radius: 999px;
  background: var(--yp-cocoa);
  color: var(--yp-ivory);
  font: inherit;
  font-size: 14px;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}

/* ---------- reduced motion --------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .y-blocks *,
  .y-blocks *::before,
  .y-blocks *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* THEME-CORE love notes rendered via [yolanda_love_notes] spans the canvas */
.y-blocks__article > .y-notes { max-width: none; padding-inline: 0; }

/* CF7 in narrow cards: single column */
.wpcf7 { container-type: inline-size; }
@container (max-width: 560px) {
  .wpcf7 form { grid-template-columns: 1fr; }
  .wpcf7 form > p { grid-column: 1 / -1 !important; }
}
.y-blocks .yp-map-wrap .yp-map { background: var(--yp-sand); }

@media (max-width: 640px) {
  .y-blocks .yp-grid--cards:not(.yp-grid--3) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .y-blocks .yp-grid--cards:not(.yp-grid--3) .is-style-y-card,
  .y-blocks .yp-grid--cards:not(.yp-grid--3) .is-style-y-card-gold { padding: 16px; }
  .y-blocks .yp-grid--cards:not(.yp-grid--3) .yp-card__img { margin: -16px -16px 14px !important; }
  .y-blocks .yp-grid--cards .yp-card__title { font-size: 20px; }
  .y-blocks .yp-grid--cards .is-style-y-card p { font-size: 13.5px; }
  .y-blocks .yp-hero__img { max-height: 460px; }
  .y-blocks .yp-testimonials { columns: 1; }
}
