/* Local service pages and category guides: existing Valley Bloom tokens. */
.vb-local-service-page main > .wp-block-post-content { max-width: var(--wp--style--global--wide-size, 1240px); }
.vb-service, .vb-occasion-guide { color: var(--wp--preset--color--ink); }
.vb-service { margin-inline: auto; }
.vb-service h1 { font-size: clamp(2.35rem, 4.3vw, 3.75rem); line-height: 1.08; letter-spacing: -.025em; margin: 0 0 1.35rem; }
.vb-service h2, .vb-occasion-guide h2 { font-size: clamp(1.85rem, 3vw, 2.55rem); line-height: 1.2; margin: 0 0 1.15rem; }
.vb-service h3, .vb-occasion-guide h3 { font-size: 1.45rem; line-height: 1.3; margin: 0 0 .8rem; }
.vb-service p, .vb-occasion-guide p { line-height: 1.75; color: var(--wp--preset--color--stone); margin: 0 0 1rem; }
.vb-service-eyebrow { font-family: var(--wp--preset--font-family--inter); font-size: .75rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; color: var(--wp--preset--color--moss) !important; margin-bottom: 1rem !important; }
.vb-service-hero { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.vb-service-hero__copy { padding-block: 1rem; }
.vb-service-lede { font-size: 1.12rem; color: var(--wp--preset--color--ink) !important; }
.vb-service-hero__photo { margin: 0; min-width: 0; }
.vb-service-hero__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 18px; }
.vb-service-hero__photo figcaption { padding: .8rem .1rem 0; color: var(--wp--preset--color--stone); font-size: .78rem; line-height: 1.6; }
.vb-service-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 1.65rem; }
.vb-service-actions .wp-element-button { background: var(--wp--preset--color--rose); color: var(--wp--preset--color--white); padding: .95rem 1.35rem; border-radius: 10px; text-decoration: none; font-size: .9rem; line-height: 1.4; }
.vb-service-actions .wp-element-button:hover { background: var(--wp--preset--color--ink); }
.vb-service-link { color: var(--wp--preset--color--rose); font-weight: 500; text-underline-offset: .25em; font-size: .92rem; }
.vb-service :is(a, summary):focus-visible, .vb-occasion-guide :is(a, summary):focus-visible { outline: 2px solid var(--wp--preset--color--moss); outline-offset: 5px; border-radius: 3px; }
.vb-service-section { margin-top: clamp(3.5rem, 7vw, 6rem) !important; scroll-margin-top: 7rem; }
.vb-service-section__intro { max-width: 740px; margin-bottom: 2rem; }
.vb-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.vb-service-card { padding-top: 1.4rem; border-top: 1px solid var(--wp--preset--color--blush); }
.vb-service-card p:last-child { margin-bottom: 0; }
.vb-delivery-details { background: var(--wp--preset--color--white); padding: clamp(1.5rem, 3.5vw, 2.75rem); border-radius: 18px; }
.vb-service-split { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 6vw, 5rem); }
.vb-service-note { font-size: .88rem; padding-top: 1rem; }
.vb-service-custom { border-left: 1px solid var(--wp--preset--color--blush); padding-left: 2.5rem; }
.vb-service-custom p:last-child { margin-top: 1.2rem; }
.vb-delivery-steps { padding-left: 1.25rem; color: var(--wp--preset--color--stone); }
.vb-delivery-steps li { padding-left: .35rem; margin-bottom: 1.1rem; line-height: 1.75; }
.vb-delivery-steps strong { color: var(--wp--preset--color--ink); font-weight: 500; }
.vb-delivery-product { position: relative; }
.vb-delivery-product img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 14px; display: block; margin-bottom: 1rem; }
.vb-delivery-product h3 { font-size: 1.35rem; margin-bottom: .35rem; }
.vb-delivery-product h3 a { text-decoration: none; }
.vb-delivery-product h3 a::after { content: ''; position: absolute; inset: 0; border-radius: 14px; }
.vb-delivery-product h3 a:focus-visible::after { outline: 2px solid var(--wp--preset--color--moss); outline-offset: 5px; }
.vb-delivery-product p { font-size: .9rem; margin-bottom: .55rem; }
.vb-delivery-product__more { font-size: .8rem; color: var(--wp--preset--color--rose); }
.vb-delivery-occasions { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; margin-top: 2rem; font-size: .88rem; }
.vb-delivery-occasions a { text-underline-offset: .25em; }
.vb-service-faq { max-width: 860px; }
.vb-service .vb-acc, .vb-occasion-guide .vb-acc { border-top: 1px solid var(--wp--preset--color--blush); }
.vb-service .vb-acc:last-of-type, .vb-occasion-guide .vb-acc:last-of-type { border-bottom: 1px solid var(--wp--preset--color--blush); }
.vb-service .vb-acc summary, .vb-occasion-guide .vb-acc summary { font-size: 1rem; line-height: 1.6; padding-block: 1.1rem; }
.vb-service .vb-acc p, .vb-occasion-guide .vb-acc p { font-size: .93rem; padding-bottom: .6rem; }
.vb-service-form { background: var(--wp--preset--color--white); padding: clamp(1.5rem, 4vw, 3rem); border-radius: 18px; }
.vb-service-form > * { max-width: 760px; margin-inline: auto; }
.vb-service-form .fluentform .ff-el-form-control { background: var(--wp--preset--color--cream); border: 1px solid var(--wp--preset--color--blush); border-radius: 10px; font-family: var(--wp--preset--font-family--inter); color: var(--wp--preset--color--ink); padding: .75rem .85rem; }
.vb-service-form .fluentform .ff-el-form-control:not(textarea) { min-height: 44px; }
.vb-service-form .fluentform .ff-el-form-control:focus { border-color: var(--wp--preset--color--moss); box-shadow: 0 0 0 2px var(--wp--preset--color--sage); }
.vb-service-form .fluentform .ff-btn-submit { background: var(--wp--preset--color--rose); color: var(--wp--preset--color--white); border: 0; border-radius: 10px; padding: .95rem 1.35rem; min-height: 44px; font: 600 .9rem/1.4 var(--wp--preset--font-family--inter); }
.vb-service-form .fluentform .ff-btn-submit:hover { background: var(--wp--preset--color--ink); }
.vb-occasion-guide { margin-top: clamp(3.5rem, 7vw, 6rem) !important; padding-top: 2.75rem; border-top: 1px solid var(--wp--preset--color--blush); }
.vb-occasion-guide__intro { max-width: 790px; }
.vb-occasion-guide__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); margin-top: 2.25rem; }
.vb-occasion-guide__copy ul { color: var(--wp--preset--color--stone); padding-left: 1.2rem; line-height: 1.75; margin-bottom: 2rem; }
.vb-occasion-guide__copy li { padding-left: .25rem; margin-bottom: .75rem; }
.vb-occasion-guide__copy p { font-size: .95rem; }
.vb-facility-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.vb-facility-card { background: var(--wp--preset--color--white); border: 1px solid var(--wp--preset--color--blush); border-radius: 14px; padding: clamp(1.5rem, 3vw, 2rem); }
.vb-facility-card h3 { max-width: 28ch; }
.vb-facility-card p { font-size: .95rem; }
.vb-home-local { color: var(--wp--preset--color--ink); }
.vb-home-local h2 { font-size: clamp(1.85rem, 3vw, 2.55rem); line-height: 1.2; margin: 0 0 1.15rem; }
.vb-home-local h3 { font-size: 1.4rem; line-height: 1.3; margin: 0 0 .8rem; }
.vb-home-local p { color: var(--wp--preset--color--stone); line-height: 1.75; margin: 0 0 1rem; }
.vb-home-local__delivery { margin-top: 1.75rem !important; font-size: .93rem; }
.vb-home-local :is(a):focus-visible { outline: 2px solid var(--wp--preset--color--moss); outline-offset: 5px; border-radius: 3px; }
@media (max-width: 780px) {
  .vb-service-hero, .vb-service-split, .vb-occasion-guide__grid { grid-template-columns: 1fr; gap: 2rem; }
  .vb-service-hero__copy { padding-block: 0; }
  .vb-service-hero__photo img { aspect-ratio: 1 / 1; object-position: center; max-height: 580px; }
  .vb-service-grid { gap: 1.35rem; }
  .vb-service h3 { font-size: 1.25rem; }
  .vb-service-custom { border-left: 0; border-top: 1px solid var(--wp--preset--color--blush); padding: 1.75rem 0 0; }
}
@media (max-width: 600px) {
  .vb-facility-grid { grid-template-columns: 1fr; }
  .vb-service-grid { grid-template-columns: 1fr; gap: 1.75rem; }
  .vb-service-actions { align-items: flex-start; }
  .vb-service-actions .wp-element-button { padding: .9rem 1.2rem; }
  .vb-service-section__intro { margin-bottom: 1.5rem; }
  .vb-delivery-products { gap: 2.5rem; }
  .vb-occasion-guide { padding-top: 2rem; }
}

/* Keep the homepage actions inside the phone viewport, including padding. */
@media (max-width: 600px) {
  .home .vb-hero__btn { box-sizing: border-box; }
}
