/*
Theme Name: HeirBloom
Theme URI: https://usvishopping.com/
Author: HeirBloom
Description: An elegant block theme for HeirBloom Flower Experts, Miami. Edit every page, photo and word from the WordPress editor.
Version: 1.1.2
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: heirbloom
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(h1, h2, h3) { text-wrap: balance; }
:where(.wp-site-blocks) :focus-visible { outline: 2px solid var(--wp--preset--color--violet); outline-offset: 3px; }
.has-night-background-color :focus-visible, .has-plum-background-color :focus-visible { outline-color: var(--wp--preset--color--lilac); }
::selection { background: var(--wp--preset--color--lilac); color: var(--wp--preset--color--ink); }

/* Italic accent words inside headings */
:where(h1, h2, h3, .has-bodoni-font-family) em { font-style: italic; color: var(--wp--preset--color--violet); }
:where(.has-night-background-color, .has-plum-background-color) :where(h1, h2, h3, .has-bodoni-font-family) em { color: var(--wp--preset--color--lilac); }

/* ---------- Block styles ---------- */
.is-style-eyebrow { font-size: 0.74rem !important; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--wp--preset--color--violet); line-height: 1.5; }
:where(.has-night-background-color, .has-plum-background-color) .is-style-eyebrow { color: var(--wp--preset--color--lilac); }

.wp-block-image.is-style-arch img { border-radius: 999px 999px 6px 6px; }
.wp-block-image.is-style-arch { overflow: visible; }

.wp-block-separator.is-style-sprig { border: 0 !important; height: 28px; width: 160px; max-width: 100%; background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 28"%3E%3Cpath d="M8 14 H152" stroke="%239A82C8" stroke-width="1" fill="none"/%3E%3Cellipse cx="44" cy="9.5" rx="4.2" ry="2.1" transform="rotate%28-30 44 9.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="52" cy="18.5" rx="4.2" ry="2.1" transform="rotate%2830 52 18.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="60" cy="9.5" rx="4.2" ry="2.1" transform="rotate%28-30 60 9.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="68" cy="18.5" rx="4.2" ry="2.1" transform="rotate%2830 68 18.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="76" cy="9.5" rx="4.2" ry="2.1" transform="rotate%28-30 76 9.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="84" cy="18.5" rx="4.2" ry="2.1" transform="rotate%2830 84 18.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="92" cy="9.5" rx="4.2" ry="2.1" transform="rotate%28-30 92 9.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="100" cy="18.5" rx="4.2" ry="2.1" transform="rotate%2830 100 18.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="108" cy="9.5" rx="4.2" ry="2.1" transform="rotate%28-30 108 9.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="116" cy="18.5" rx="4.2" ry="2.1" transform="rotate%2830 116 18.5%29" fill="%23B49BDD"/%3E%3Cellipse cx="124" cy="9.5" rx="4.2" ry="2.1" transform="rotate%28-30 124 9.5%29" fill="%23B49BDD"/%3E%3Ccircle cx="132" cy="14" r="2.4" fill="%23EDC6C8"/%3E%3C/svg%3E') center / contain no-repeat !important; opacity: 1; margin-left: auto; margin-right: auto; }

/* Sections sit flush against each other */
.wp-site-blocks > * + *, .wp-block-post-content > * + * { margin-block-start: 0; }

/* ---------- Header ---------- */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }
.hb-header { border-bottom: 1px solid rgba(245, 241, 247, 0.1); }
.hb-header .wp-block-site-logo img { border-radius: 50%; box-shadow: 0 0 0 1px rgba(245, 241, 247, 0.18); }
.hb-header .wp-block-navigation-item__content { color: rgba(245, 241, 247, 0.78); transition: color .25s; }
.hb-header .wp-block-navigation-item__content:hover, .hb-header .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--lilac); }
.hb-header .hb-nav-cta > .wp-block-navigation-item__content { border: 1px solid var(--wp--preset--color--lilac); border-radius: 999px; padding: 0.7em 1.4em; color: var(--wp--preset--color--lilac); }
.hb-header .hb-nav-cta > .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--lilac); color: var(--wp--preset--color--night); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--bodoni); font-size: 2rem; letter-spacing: 0; text-transform: none; }
.wp-block-navigation__responsive-container.is-menu-open .hb-nav-cta > .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--jost); font-size: 0.8rem; letter-spacing: 0.2em; text-transform: uppercase; margin-top: 1rem; }

/* ---------- Hero ---------- */
.hb-hero { position: relative; overflow: hidden; }
.hb-hero::before { content: ""; position: absolute; inset: auto -10% -40% auto; width: 60vw; height: 60vw; max-width: 900px; max-height: 900px; border-radius: 50%; background: radial-gradient(closest-side, rgba(205, 187, 236, 0.16), rgba(205, 187, 236, 0) 70%); pointer-events: none; }
.hb-hero > * { position: relative; }
.hb-hero h1 { letter-spacing: -0.02em; }
.hb-stack { position: relative; padding-bottom: 12%; }
.hb-stack .hb-back { width: 72%; margin-left: auto !important; margin-right: 0 !important; }
.hb-stack .hb-front { position: absolute !important; left: 0; bottom: 0; width: 46%; margin: 0 !important; }
.hb-stack .hb-front img { outline: 10px solid var(--wp--preset--color--night); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.45); }
.hb-stack .hb-tag { position: absolute; right: 4%; bottom: 4%; margin: 0 !important; background: var(--wp--preset--color--blush); color: var(--wp--preset--color--ink); font-family: var(--wp--preset--font-family--bodoni); font-style: italic; padding: 0.5em 1.2em; border-radius: 2px; box-shadow: 0 12px 30px rgba(0,0,0,.35); z-index: 2; }
@keyframes hb-rise { from { transform: translateY(18px); opacity: .001; } to { transform: none; opacity: 1; } }
.hb-hero .hb-copy > * { animation: hb-rise 1s cubic-bezier(.2,.7,.2,1) both; }
.hb-hero .hb-copy > *:nth-child(2) { animation-delay: .08s; }
.hb-hero .hb-copy > *:nth-child(3) { animation-delay: .16s; }
.hb-hero .hb-copy > *:nth-child(4) { animation-delay: .24s; }
.hb-stack { animation: hb-rise 1.2s .15s cubic-bezier(.2,.7,.2,1) both; }
@media (max-width: 781px) { .hb-hero .wp-block-columns { flex-direction: column-reverse; } .hb-stack { max-width: 460px; margin: 0 auto; } }

/* ---------- Services ---------- */
.hb-services .wp-block-image img { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.hb-services .wp-block-image { overflow: hidden; border-radius: 999px 999px 6px 6px; }
.hb-services .wp-block-column:hover .wp-block-image img { transform: scale(1.05); }
@media (min-width: 600px) and (max-width: 1023px) {
	.hb-services.wp-block-columns { flex-wrap: wrap !important; }
	.hb-services.wp-block-columns > .wp-block-column { flex-basis: calc(50% - 1.5rem) !important; flex-grow: 0; }
}
.hb-more a { text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; font-size: 0.74rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; }

/* ---------- About ---------- */
.hb-framed { position: relative; }
.hb-framed::after { content: ""; position: absolute; inset: -16px 16px 16px -16px; border: 1px solid var(--wp--preset--color--violet); border-radius: 999px 999px 6px 6px; pointer-events: none; opacity: .45; }

/* ---------- Gallery ---------- */
.hb-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 4px; aspect-ratio: 4 / 5; object-fit: cover; }
.hb-gallery.wp-block-gallery.has-nested-images figure.wp-block-image { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.hb-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:hover { transform: translateY(-4px); }

/* ---------- Order page ---------- */
.hb-steps p { margin: 0; }
.hb-step { border-top: 1px solid rgba(37, 29, 42, 0.14); padding-top: 1.25rem; }
.hb-step .hb-num { font-family: var(--wp--preset--font-family--bodoni); font-style: italic; font-size: 2rem; color: var(--wp--preset--color--violet); line-height: 1; }
.hb-phone a { text-decoration: none; }
.hb-card { box-shadow: 0 40px 80px -40px rgba(27, 20, 32, 0.35); }

/* Contact Form 7 */
.hb-card .wpcf7-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.25rem; }
.hb-card .wpcf7-form > p, .hb-card .wpcf7-form > .hb-full { grid-column: 1 / -1; margin: 0; }
.hb-card .wpcf7-form .hb-half { grid-column: span 1; margin: 0; }
@media (max-width: 600px) { .hb-card .wpcf7-form { grid-template-columns: 1fr; } .hb-card .wpcf7-form .hb-half { grid-column: 1 / -1; } }
.hb-card .wpcf7-form label, .hb-card .hb-label { display: block; font-size: 0.72rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--wp--preset--color--violet); }
.hb-card .wpcf7-form-control-wrap { display: block; margin-top: 0.5rem; }
.hb-card input[type="text"], .hb-card input[type="email"], .hb-card input[type="tel"], .hb-card input[type="date"], .hb-card select, .hb-card textarea {
	width: 100%; box-sizing: border-box; font: 300 1rem/1.4 var(--wp--preset--font-family--jost); color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--paper); border: 1px solid rgba(37, 29, 42, 0.16); border-radius: 6px; padding: 0.85rem 1rem; transition: border-color .2s, box-shadow .2s; letter-spacing: 0; text-transform: none;
}
.hb-card select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #6B51A0 50%), linear-gradient(135deg, #6B51A0 50%, transparent 50%); background-position: calc(100% - 20px) 52%, calc(100% - 15px) 52%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 2.5rem; }
.hb-card textarea { min-height: 130px; resize: vertical; }
.hb-card input:focus, .hb-card select:focus, .hb-card textarea:focus { outline: none; border-color: var(--wp--preset--color--violet); box-shadow: 0 0 0 3px rgba(107, 81, 160, 0.15); }
.hb-card .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.6rem; }
.hb-card .wpcf7-list-item { margin: 0; }
.hb-card .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.55rem 1rem; border: 1px solid rgba(37, 29, 42, 0.16); border-radius: 999px; font-size: 0.85rem; letter-spacing: 0.04em; text-transform: none; color: var(--wp--preset--color--ink); cursor: pointer; font-weight: 400; }
.hb-card .wpcf7-list-item input { accent-color: var(--wp--preset--color--violet); margin: 0; }
.hb-card .wpcf7-list-item:has(input:checked) label { border-color: var(--wp--preset--color--violet); background: rgba(107, 81, 160, 0.08); }
.hb-card .wpcf7-submit { cursor: pointer; border: 0; border-radius: 999px; background: var(--wp--preset--color--night); color: var(--wp--preset--color--paper); font: 500 0.78rem/1 var(--wp--preset--font-family--jost); letter-spacing: 0.18em; text-transform: uppercase; padding: 1.1em 2.2em; transition: background .25s; }
.hb-card .wpcf7-submit:hover { background: var(--wp--preset--color--violet); }
.hb-card .wpcf7-spinner { vertical-align: middle; }
.hb-card .wpcf7-not-valid-tip { font-size: 0.82rem; margin-top: 0.35rem; color: #a3324b; }
.hb-card .wpcf7-response-output { grid-column: 1 / -1; margin: 0 !important; border-radius: 6px; padding: 0.9rem 1.1rem !important; font-size: 0.95rem; }

/* ---------- Footer ---------- */
.hb-footer .hb-rule { border: 0; border-top: 1px solid #3a2e40; margin-top: var(--wp--preset--spacing--50); margin-bottom: var(--wp--preset--spacing--40); opacity: 1; }
.hb-footer a { text-decoration: none; }
.hb-footer a:hover { color: var(--wp--preset--color--lilac); }
.hb-footer .wp-block-site-logo img { border-radius: 50%; }
.hb-footer .hb-links a { font-size: 0.74rem; letter-spacing: 0.2em; text-transform: uppercase; }.hb-card .wpcf7-form p { margin: 0; }
.hb-card textarea { height: 150px; }

/* Mobile menu */
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem clamp(1.5rem, 7vw, 3rem) 3rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; padding-top: 3rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; gap: 1.25rem !important; }

/* ---------- Header v2 ---------- */
.hb-topbar p { margin: 0; font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 400; line-height: 1.6; }
.hb-topbar a { text-decoration: none; color: var(--wp--preset--color--paper); }
.hb-topbar .hb-dot { display: inline-block; margin: 0 0.9em; font-size: 0.6rem; color: var(--wp--preset--color--blush); transform: translateY(-1px); }
@media (max-width: 700px) { .hb-topbar p { font-size: 0.62rem; letter-spacing: 0.16em; } .hb-topbar .hb-dot { margin: 0 0.5em; } }
@media (max-width: 480px) { .hb-topbar p .hb-hide-sm { display: none; } }
.hb-header .wp-block-site-title { font-size: 1.85rem; letter-spacing: 0.01em; }
.hb-header .wp-block-site-title a { color: var(--wp--preset--color--paper); }
.hb-header .hb-tagline { margin: 0; font-size: 0.62rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--wp--preset--color--lilac); font-weight: 400; }
.hb-header .wp-block-navigation-item__content { white-space: nowrap; }
@media (max-width: 900px) { .hb-header .hb-nav-home { display: none; } .hb-header .wp-block-navigation { --nav-gap: 1.4rem; } }
@media (max-width: 480px) { .hb-header .hb-tagline { display: none; } .hb-header .wp-block-site-title { font-size: 1.5rem; } .hb-header .wp-block-site-logo img { width: 46px !important; height: 46px !important; } }

/* ---------- Home hero v2 ---------- */
.hb-home-hero::after { content: "HeirBloom"; position: absolute; left: -0.04em; bottom: -0.2em; font-family: var(--wp--preset--font-family--bodoni); font-style: italic; font-size: clamp(7rem, 24vw, 22rem); line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(205, 187, 236, 0.14); white-space: nowrap; pointer-events: none; z-index: 0; }
.hb-home-hero > * { z-index: 1; }
.hb-home-hero h1 { font-size: clamp(3.2rem, 1.6rem + 5.6vw, 7.5rem) !important; line-height: 0.98; }
.hb-home-hero h1 em { display: inline-block; }
.hb-kicker { display: flex; align-items: center; gap: 0.9rem; }
.hb-kicker::before { content: ""; width: 42px; height: 1px; background: var(--wp--preset--color--lilac); opacity: 0.7; }
.hb-badge { position: absolute; top: -4%; left: 6%; width: 132px; height: 132px; z-index: 3; color: var(--wp--preset--color--lilac); }
.hb-badge svg { width: 100%; height: 100%; animation: hb-spin 26s linear infinite; overflow: visible; }
.hb-badge text { font-family: var(--wp--preset--font-family--jost); font-size: 15.5px; letter-spacing: 3.6px; text-transform: uppercase; fill: currentColor; }
.hb-badge .hb-badge-core { position: absolute; inset: 30%; border-radius: 50%; background: var(--wp--preset--color--lilac); color: var(--wp--preset--color--night); display: grid; place-items: center; font-family: var(--wp--preset--font-family--bodoni); font-style: italic; font-size: 1.5rem; line-height: 1; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
@keyframes hb-spin { to { transform: rotate(360deg); } }
.hb-trust { display: flex; flex-wrap: wrap; gap: 0.6rem 1.6rem; margin-top: var(--wp--preset--spacing--40) !important; padding-top: 1.4rem; border-top: 1px solid rgba(205, 187, 236, 0.18); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: #bdb0c6; }
.hb-trust span { display: inline-flex; align-items: center; gap: 0.55rem; }
.hb-trust span::before { content: "✦"; color: var(--wp--preset--color--blush); font-size: 0.6rem; }
@media (max-width: 781px) {
	.hb-hero .wp-block-columns { flex-direction: column !important; }
	.hb-badge { width: 104px; height: 104px; top: -6%; left: 0; }
	.hb-home-hero::after { bottom: auto; top: 38%; }
}

/* Header fixes */
.wp-block-group.hb-header { padding-left: 0 !important; padding-right: 0 !important; }
.hb-header .hb-topbar, .hb-header .hb-topbar + .wp-block-group { margin-left: 0 !important; margin-right: 0 !important; width: 100%; max-width: none; }
.hb-header .wp-block-site-logo { flex-shrink: 0; }
.hb-header .wp-block-site-logo img { width: 58px; height: 58px; object-fit: cover; }
.hb-header .hb-brand { flex-shrink: 0; }
.hb-header .hb-tagline { white-space: nowrap; }
@media (max-width: 760px) { .hb-header .hb-tagline { display: none; } .hb-topbar .hb-hide-sm { display: none; } }

.hb-topbar a { white-space: nowrap; }
@media (max-width: 480px) { .hb-topbar p { letter-spacing: 0.12em; } }
@media (max-width: 781px) { .hb-home-hero::after { top: auto; bottom: 22%; -webkit-text-stroke-color: rgba(205, 187, 236, 0.1); } .hb-badge { left: 2%; top: -2%; } }
