/*
Theme Name: Assembler
Theme URI: https://wordpress.com/theme/assembler
Author: Automattic
Author URI: https://automattic.com/
Description: Assemble something beautiful.
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.0.124
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: assembler
Tags: blog, one-column, three-columns, wide-blocks, block-patterns, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, rtl-language-support, style-variations, template-editing, theme-options, threaded-comments, translation-ready
*/

body {
    -webkit-font-smoothing: antialiased;
}

/* Set default line height for font size presets. */

.has-xx-large-font-size,
.has-xxx-large-font-size {
	line-height: 1;
}

/* Add a transition state for buttons. */

.wp-element-button {
    transition: border, background-color, color, box-shadow, opacity, filter;
    transition-duration: 0.15s;
    transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    backdrop-filter: blur(30px);
}

/* Fields */

label,
.jetpack-field-label .rich-text.jetpack-field-label__input,
.contact-form .grunion-checkbox-multiple-options legend, 
.contact-form .grunion-radio-options legend,
.wp-block-jetpack-contact-form-container .wp-block-jetpack-contact-form label {
    display: inline-block;
    font-size: var(--wp--preset--font-size--small);
    margin-bottom: 0.25em;
    font-weight: inherit;
}

textarea:not(.block-editor-plain-text),
input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=range]),
.wp-block-post-comments-form textarea,
.wp-block-post-comments-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.jetpack-contact-form .jetpack-field .jetpack-field__input,
.jetpack-contact-form .jetpack-field .jetpack-field__textarea {
    background-color: var(--wp--custom--input-background);
    border-color: currentColor;
    border-style: solid;
    border-radius: 6px;
    border-width: 1px;
    box-shadow: none;
    box-sizing: border-box;
    color: currentColor;
    font-size: var(--wp--preset--font-size--small);
    font-weight: inherit;
    line-height: 1.5;
    min-height: 42px;
    padding: 0.8rem 1rem;
    width: 100%;
}

/* In dark-controls context, inputs are transparent so they blend into the section background */
.has-dark-controls textarea:not(.block-editor-plain-text),
.has-dark-controls input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=range]) {
    background-color: transparent;
}

.has-dark-controls textarea:not(.block-editor-plain-text):focus,
.has-dark-controls input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=range]):focus {
    background-color: rgba(0, 0, 0, 0.1);
}

textarea:focus,
input:not([type=submit]):focus,
.wp-block-post-comments-form textarea:focus,
.wp-block-post-comments-form input:not([type=submit]):not([type=checkbox]):not([type=radio]):focus {
    outline: 1px solid currentColor;
}

textarea::placeholder,
.input::placeholder,
.wp-block-jetpack-subscriptions__form .components-base-control__field input::placeholder {
    color: color-mix(in srgb, currentColor 60%, transparent);
}

/* Restore WC's native floating-label padding for all WC text inputs */
.wc-block-components-text-input input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=range]) {
    padding: 1.5em .5em .5em;
}

/* WooCommerce select element overrides */
.wc-blocks-components-select.wc-blocks-components-select .wc-blocks-components-select__container {
  background-color: transparent;
  color: inherit
}

/* Double selector here for specificity to override Woo styles */
.wc-blocks-components-select.wc-blocks-components-select .wc-blocks-components-select__container select {
  background-color: var(--wp--custom--input-background);
  border-color: currentColor;
  border-style: solid;
  border-radius: 6px;
  border-width: 1px;
  color: currentColor;
}
.wc-blocks-components-select .wc-blocks-components-select__container select:focus {
  outline-style: solid;
  outline-width: 0.75px;
  outline-color: #000;
}

.has-dark-controls .wc-blocks-components-select.wc-blocks-components-select .wc-blocks-components-select__container {
  background-color: transparent;
}

.has-dark-controls .wc-blocks-components-select.wc-blocks-components-select .wc-blocks-components-select__container select {
  background-color: transparent;
}

.has-dark-controls .wc-blocks-components-select.wc-blocks-components-select .wc-blocks-components-select__container select:focus {
  background-color: rgba(0, 0, 0, 0.1);
}


/* Jetpack Forms: Clean up errors */

.contact-form__error {
    font-size: 13px;
}

.contact-form__input-error {
	font-size: 13px;
    gap: 8px;
}

.contact-form__input-error .contact-form__warning-icon {
    border-width: 0;
}

/* Jetpack Forms: Animated block style tweaks */

.contact-form .is-style-animated .grunion-field-wrap.grunion-field-select-wrap .animated-label__label label,
.contact-form .is-style-animated .grunion-field-wrap .grunion-field.has-placeholder ~ .animated-label__label label,
.contact-form .is-style-animated .grunion-field-wrap .grunion-field:focus ~ .animated-label__label label,
.contact-form .is-style-animated .grunion-field-wrap .grunion-field:not(:placeholder-shown) ~ .animated-label__label label {
	opacity: 0.7;
    font-size: 11px;
}

/* Styling for hero areas. */
.header-cover .wp-block-template-part {
    max-width: none;
}

.header-cover .wp-block-template-part > .wp-block-group {
    padding-left: 0;
    padding-right: 0;
}

/* Cover block styles */
.wp-block-cover[class*="is-style-section"]:not(.is-style-default) .wp-block-cover__image-background {
    opacity: 0.25;
}

.wp-block-cover[class*="is-style-section"]:not(.is-style-default) .wp-block-cover__background {
    opacity: 0;
}

:root :where(.wp-block-cover.is-light){
    color: var(--wp--preset--color--theme-5, #000);
}

.wp-block-cover[class*="is-style-section"]:not(.is-style-default) .wp-block-cover__background {
    opacity: 0;
}

/* Make sure footers have no margin. */
footer {
	margin-top: 0 !important;
}

/* Social Links: Better default color. */

.wp-block-social-links.is-style-logos-only li.wp-social-link {
	color: currentcolor;
}

.wp-block-social-links.is-style-logos-only .wp-social-link svg {
	height: 1em;
	width: 1em;
}

.wp-block-social-links.has-small-icon-size {
	font-size: 20px;
}

/* Navigation: Remove row gap to improve wrapping behavior */
.wp-block-navigation__container {
    row-gap: 0;
}

/* Move header core/navigation to the right on mobile. */

.order-0 {
	order: 0;
}

.order-1 {
	order: 1;
}

.grow-0 {
	flex-grow: 0;
}

.grow {
	flex-grow: 1;
}

@media (min-width: 600px) {

	.md\:order-0 {
		order: 0;
	}

	.md\:order-1 {
		order: 1;
	}

	.md\:grow-0 {
		flex-grow: 0;
	}

	.md\:grow {
		flex-grow: 1;
	}

}

.overflow-hidden {
	overflow: hidden;
}

/* Utility class for wide and full images with aspect ratios, as core does not support this yet. */
.aspect-16\/9 {
	aspect-ratio: 16/9;
}

.aspect-16\/9 img,
.aspect-16\/9 .components-placeholder {
    aspect-ratio: 16/9;
    object-fit: cover;
}

/* Ensure cropping works. */
.aspect-16\/9 .wp-block-image__crop-area,
.aspect-16\/9 .wp-block-image__crop-area img {
	aspect-ratio: unset;
}

/* WooCommerce Catalog Sorting Styles */
.wc-block-catalog-sorting {
    position: relative;
}

.wc-block-catalog-sorting > div,
.wc-block-catalog-sorting .woocommerce-ordering {
    align-items: center;
    display: flex;
    gap: 8px;
}

.wc-block-catalog-sorting > div >label,
.woocommerce .woocommerce-ordering > label {
    margin: 0;
    text-wrap: nowrap;
}

.wc-block-catalog-sorting select.orderby {
    appearance: none;
    background-color: transparent;
    border: 1px solid color-mix(in srgb, currentColor 50%, transparent);
    font-family: inherit;
    font-size: inherit;
    border-radius: 6px;
    color: currentColor;
    cursor: pointer;
    padding: 0.75rem 2.5rem 0.75rem 0.75rem;
    width: 100%;
}

/* Arrow using CSS triangle for dynamic color */
.wc-block-catalog-sorting::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0.75rem;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 0.35em solid transparent;
    border-right: 0.35em solid transparent;
    border-top: 0.4em solid currentColor;
    pointer-events: none;
}

/* Make sure the CSS triangle stays the same when it's hovered or selected */
.is-outline-mode .block-editor-block-list__block.wc-block-catalog-sorting:not(.remove-outline):not(.rich-text):not([contenteditable=true]).is-selected:after,
.is-outline-mode .block-editor-block-list__block.wc-block-catalog-sorting:not(.remove-outline).is-hovered:not(.is-selected):after {
    left: auto;
    outline-color: transparent;
    right: 0.75rem;
    top: 50%;
}

/* Remove border and background color from the qty selector */
.wc-block-components-quantity-selector input.input-text.qty.text,
input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=range]).wc-block-components-quantity-selector__input {
    background-color: transparent;
    border-style: none;
}

/* Reset padding for the qty selector */
input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=range]).qty {
    padding: inherit;
}

/* Remove unwated right margin the qty selector */
.woocommerce div.product form.cart div.quantity .qty {
    margin-right: 0;
}

/* Fix the qty selector height so it matches with the button next to it */
.wp-block-add-to-cart-with-options .wc-block-components-quantity-selector {
    height: 100%;
}

/* Make sure the qty selector's height is the same as the button next to it in the editor */
.wc-block-add-to-cart-with-options__quantity-selector > div,
.wc-block-add-to-cart-with-options__quantity-selector .wc-block-components-quantity-selector {
    height: 100%;
}

/* Remove unnecessary bottom margin from the variation selector labels */
.woocommerce-page label.wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name,
.woocommerce-page label.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill {
    margin-bottom: 0;
}

/* Remove unwanted top margin from the title of the order confirmation page template */
.wc-block-order-confirmation-status h1 {
    margin-top: 0;
}

/* Add top margin to the express checkout */
.wcpay-express-checkout-wrapper {
    margin-top: var(--wp--style--block-gap);
}

/* Remove unwanted margin from the attribute value */
.wp-block-product-specifications-item__value p {
    margin: 0;
}

/* Remove underline from the attribute value */
.wp-block-product-specifications-item__value p a {
    text-decoration: none;
}

.wp-block-woocommerce-product-specifications th,
.wp-block-woocommerce-product-specifications td {
    border-color: color-mix(in srgb, currentColor 30%, transparent);
}

/* Reset unwanted margins */
.wc-block-components-product-summary,
.wc-block-components-product-summary p {
    margin: 0;
}

/* Make sure the paragraph has a line break */
.wc-block-components-product-summary p + p {
    margin-top: var(--wp--style--block-gap);
}

/* Remove underline from the product name inside cart */
.wc-block-cart-item__wrap .wc-block-components-product-name {
    text-decoration: none;
}

/* Utility class for reversing the order of rows */
@media (min-width: 782px) {
    .wp-block-columns.row-reverse {
        flex-direction: row-reverse;
    }
}

/* Reduce the size of the cart badge. */
.theme-assembler .wc-block-mini-cart__badge {
	font-size: .6em;
}

/* Fix Woo input field */
.theme-assembler .woocommerce div.product form.cart div.quantity .qty {
  min-width: 80px;
}

/* === Nav CTA slim button === */

.nav-cta-slim .wp-element-button {
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    font-size: 0.8rem !important;
    line-height: 1.4 !important;
}

/* === Quiz popup (services page) === */

.qp-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    padding: 1rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.qp-overlay.qp-visible {
    pointer-events: auto;
    opacity: 1;
}

.qp-modal {
    background: #1f2528;
    color: #f3f5f6;
    border-radius: 16px;
    padding: 2.5rem 2rem 2rem;
    max-width: 420px;
    width: 100%;
    position: relative;
    transform: translateY(16px);
    transition: transform 0.3s ease;
    text-align: center;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.4);
}

.qp-overlay.qp-visible .qp-modal {
    transform: translateY(0);
}

.qp-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.45);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    font-family: inherit;
}

.qp-close:hover {
    color: #ffffff;
}

.qp-eyebrow {
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    opacity: 0.45;
    margin: 0 0 0.75rem !important;
}

.qp-heading {
    font-size: clamp(1.4rem, 4vw, 1.75rem) !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    margin: 0 0 0.75rem !important;
    color: #ffffff !important;
}

.qp-sub {
    font-size: 0.9rem !important;
    line-height: 1.6 !important;
    opacity: 0.65;
    margin: 0 0 1.75rem !important;
}

.qp-actions {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-bottom: 0.75rem;
}

.qp-btn {
    display: block;
    background: #ffffff;
    color: #1f2528 !important;
    font-weight: 700;
    font-size: 0.95rem;
    border-radius: 999px;
    padding: 0.75rem 2rem;
    text-decoration: none !important;
    transition: opacity 0.15s ease;
    text-align: center;
}

.qp-btn:hover {
    opacity: 0.88;
}

.qp-btn-secondary {
    display: block;
    background: transparent;
    color: #ffffff !important;
    font-weight: 600;
    font-size: 0.95rem;
    border-radius: 999px;
    padding: 0.75rem 2rem;
    text-decoration: none !important;
    border: 1px solid rgba(255,255,255,0.35);
    transition: border-color 0.15s ease, background 0.15s ease;
    text-align: center;
}

.qp-btn-secondary:hover {
    border-color: rgba(255,255,255,0.7);
    background: rgba(255,255,255,0.08);
}

.qp-dismiss {
    display: block;
    width: 100%;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.8rem;
    cursor: pointer;
    font-family: inherit;
    margin-top: 0.25rem;
    padding: 0.25rem;
}

.qp-dismiss:hover {
    color: rgba(255, 255, 255, 0.7);
}

@media (prefers-reduced-motion: reduce) {
    .qp-overlay,
    .qp-modal {
        transition: none;
    }
}

/* === Homepage about section === */

.home-about-heading {
    font-size: clamp(1.6rem, 3.5vw, 2.25rem) !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    color: #f3f5f6 !important;
}

.home-about-body {
    font-size: 0.95rem !important;
    line-height: 1.75 !important;
    opacity: 0.7;
    color: #f3f5f6 !important;
    margin-bottom: 0.75rem !important;
}

.home-about-btn .wp-element-button {
    border-color: rgba(243, 245, 246, 0.5) !important;
    color: #f3f5f6 !important;
    margin-top: 0.5rem;
}

.home-about-btn .wp-element-button:hover {
    background: #f3f5f6 !important;
    color: #1f2528 !important;
    border-color: #f3f5f6 !important;
}

@media (max-width: 599px) {
    .home-about-heading {
        text-align: center !important;
    }

    .home-about-body {
        text-align: center !important;
    }

    .home-about .wp-block-buttons {
        justify-content: center !important;
    }
}

/* === Homepage quiz CTA === */

.home-quiz-sub {
    font-size: 1.05rem !important;
    opacity: 0.7;
    max-width: 440px;
    margin: 0.5rem auto 1.75rem !important;
}

/* === Find Your Service hero === */

.fms-eyebrow {
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    opacity: 0.5;
    margin-bottom: 0.75rem !important;
}

.fms-intro {
    font-size: 1.05rem !important;
    line-height: 1.75 !important;
    max-width: 520px;
    opacity: 0.72;
    margin: 0.75rem auto 1.75rem !important;
}

.fms-hero-btn .wp-block-button__link {
    font-size: 1rem !important;
    padding: 0.85rem 2.5rem !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
}

.fms-alt-cta {
    font-size: 0.88rem !important;
    opacity: 0.6;
    margin-top: 1rem !important;
}

.fms-alt-cta a {
    color: inherit !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.fms-alt-cta a:hover {
    opacity: 1;
}

/* === Book a Call page === */

.bac-eyebrow {
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    opacity: 0.5;
    margin-bottom: 0.75rem !important;
}

.bac-intro {
    font-size: 1.05rem !important;
    line-height: 1.75 !important;
    max-width: 560px;
    opacity: 0.72;
    margin: 0.75rem auto 0 !important;
    text-align: center !important;
}

.bac-trust-row {
    margin-top: 2.5rem !important;
    gap: 1.5rem !important;
}

.bac-trust-item p {
    font-size: 0.88rem !important;
    line-height: 1.6 !important;
    opacity: 0.8;
}

.bac-trust-item strong {
    display: block;
    font-size: 0.95rem !important;
    opacity: 1;
    margin-bottom: 0.25rem;
}

.bac-calendly-section {
    margin-bottom: 0 !important;
    padding-bottom: var(--wp--preset--spacing--60) !important;
}

.calendly-inline-widget {
    border-radius: 12px;
    overflow: hidden;
    max-width: 900px;
    margin: 0 auto;
}

/* === Find Your Service — quiz widget === */

.fms-widget-wrap *{box-sizing:border-box}
.fms-widget-wrap .fw{max-width:560px;margin:0 auto}
.fms-widget-wrap .prog{height:4px;background:rgba(255,255,255,0.15);border-radius:2px;margin-bottom:2rem}
.fms-widget-wrap .prog-fill{height:100%;background:#fff;border-radius:2px;transition:width .4s ease}
.fms-widget-wrap .qlabel{font-size:13px !important;color:rgba(255,255,255,.5);margin-bottom:.5rem !important}
.fms-widget-wrap .qtext{font-size:20px !important;font-weight:500;color:#fff !important;margin-bottom:1.5rem !important;line-height:1.4 !important}
.fms-widget-wrap .opts{display:flex;flex-direction:column;gap:10px}
.fms-widget-wrap .opt{background:rgba(255,255,255,.06) !important;border:1px solid rgba(255,255,255,.15) !important;border-radius:12px !important;padding:1rem 1.25rem !important;text-align:left;cursor:pointer;transition:border-color .15s,background .15s;display:flex !important;align-items:center;gap:12px;width:100%;font-family:inherit}
.fms-widget-wrap .opt:hover{border-color:rgba(255,255,255,.6) !important;background:rgba(255,255,255,.1) !important}
.fms-widget-wrap .opt-icon{width:36px;height:36px;border-radius:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}
.fms-widget-wrap .opt-title{font-size:15px !important;font-weight:500;color:#fff !important}
.fms-widget-wrap .opt-sub{font-size:13px !important;color:rgba(255,255,255,.55);margin-top:2px !important}
.fms-widget-wrap .back-btn{background:none !important;border:none !important;color:rgba(255,255,255,.5) !important;font-size:13px !important;cursor:pointer;padding:0 !important;margin-bottom:1.5rem !important;display:flex !important;align-items:center;gap:4px;font-family:inherit}
.fms-widget-wrap .back-btn:hover{color:#fff !important}
.fms-widget-wrap .results{display:flex;flex-direction:column;gap:10px}
.fms-widget-wrap .rcard{background:rgba(255,255,255,.06) !important;border:1px solid rgba(255,255,255,.15) !important;border-radius:12px !important;padding:1rem 1.25rem !important;display:flex !important;align-items:flex-start;gap:12px}
.fms-widget-wrap .rcard.top{border-color:#fff !important;border-width:2px !important}
.fms-widget-wrap .ricon{width:40px;height:40px;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}
.fms-widget-wrap .rtitle{font-size:15px !important;font-weight:500;color:#fff !important}
.fms-widget-wrap .rdesc{font-size:13px !important;color:rgba(255,255,255,.6);margin-top:3px !important;line-height:1.5 !important}
.fms-widget-wrap .badge{font-size:11px !important;background:#fff;color:#1f2528;border-radius:4px;padding:2px 8px;margin-left:8px;vertical-align:middle}
.fms-widget-wrap .email-box{margin-top:1.5rem !important;background:rgba(255,255,255,.06) !important;border:1px solid rgba(255,255,255,.15) !important;border-radius:12px !important;padding:1.25rem !important}
.fms-widget-wrap .email-label{font-size:15px !important;font-weight:500;color:#fff !important;margin-bottom:4px !important}
.fms-widget-wrap .email-sub{font-size:13px !important;color:rgba(255,255,255,.55);margin-bottom:1rem !important;line-height:1.5 !important}
.fms-widget-wrap .email-row{display:flex;gap:8px}
.fms-widget-wrap .email-row input{flex:1;padding:.6rem .9rem !important;border:1px solid rgba(255,255,255,.2) !important;border-radius:8px !important;font-size:14px !important;font-family:inherit;outline:none;background:rgba(255,255,255,.08) !important;color:#fff !important}
.fms-widget-wrap .email-row input::placeholder{color:rgba(255,255,255,.35)}
.fms-widget-wrap .email-row input:focus{border-color:#fff !important}
.fms-widget-wrap .submit-btn{background:#fff !important;color:#1f2528 !important;border:none !important;border-radius:8px !important;padding:0 1.25rem !important;font-size:14px !important;font-weight:500;cursor:pointer;font-family:inherit;white-space:nowrap}
.fms-widget-wrap .submit-btn:hover{opacity:.88}
.fms-widget-wrap .err{font-size:12px !important;color:#ff8080 !important;margin-top:6px !important;display:none}
.fms-widget-wrap .success-box{margin-top:1.5rem !important;background:rgba(168,217,187,.15) !important;border:1px solid rgba(168,217,187,.4) !important;border-radius:12px !important;padding:1rem 1.25rem !important;display:flex !important;align-items:center;gap:10px}
.fms-widget-wrap .success-text{font-size:14px !important;color:#a8d9bb !important;font-weight:500}
.fms-widget-wrap .restart-btn{margin-top:.75rem !important;width:100%;background:none !important;border:1px solid rgba(255,255,255,.2) !important;border-radius:12px !important;padding:.75rem !important;font-size:14px !important;color:rgba(255,255,255,.5) !important;cursor:pointer;font-family:inherit}
.fms-widget-wrap .restart-btn:hover{background:rgba(255,255,255,.06) !important}

/* Footer bleed fix */
.fms-funnel-section {
    margin-bottom: 0 !important;
    padding-bottom: var(--wp--preset--spacing--60) !important;
}

@media (max-width:480px) {
    .fms-widget-wrap .email-row{flex-direction:column}
    .fms-widget-wrap .submit-btn{padding:.6rem !important}
}
@media (prefers-reduced-motion:reduce) {
    .fms-widget-wrap .prog-fill,
    .fms-widget-wrap .opt{transition:none}
}

/* === Find My Service page === */

.fms-hero h1 {
    font-size: clamp(2rem, 6vw, 3.5rem) !important;
    line-height: 1.1 !important;
}

.fms-intro {
    font-size: 1rem !important;
    line-height: 1.75 !important;
    max-width: 620px;
    opacity: 0.75;
    margin: 1rem auto 0 !important;
    text-align: center !important;
}

.fms-hero-btn .wp-element-button {
    margin-top: 0.25rem;
}

.fms-funnel-section {
    min-height: 420px;
}

@media (max-width: 599px) {
    .fms-hero h1 {
        font-size: clamp(1.75rem, 8vw, 2.25rem) !important;
    }

    .fms-intro {
        font-size: 0.9rem !important;
        margin-top: 0.75rem !important;
    }

    .fms-hero .wp-block-buttons {
        margin-top: 1.25rem !important;
        justify-content: center !important;
    }

    .fms-hero-btn .wp-element-button {
        width: 100%;
        text-align: center;
    }
}

/* === Pricing page === */

.pricing-intro {
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    max-width: 600px;
    opacity: 0.8;
    margin: 1rem auto 0 !important;
    text-align: center !important;
}

.pricing-cards-sub {
    font-size: 0.95rem !important;
    opacity: 0.65;
    margin-top: 0.25rem !important;
    margin-bottom: 2.5rem !important;
}

/* Pricing cards — white boxes on dark bg */
.pricing-card {
    background: #ffffff !important;
    border-radius: 12px;
    padding: 1.75rem 1.75rem 1.5rem !important;
    display: flex !important;
    flex-direction: column !important;
    color: #1f2528 !important;
    transition: box-shadow 0.2s ease;
}

.pricing-card:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,0.2);
}

.pricing-card-icon {
    margin: 0 0 0.75rem 0 !important;
}

.pricing-card-icon img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.pricing-card-name {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #1f2528 !important;
    margin: 0 0 0.4rem !important;
}

.pricing-card-desc {
    font-size: 0.85rem !important;
    line-height: 1.6 !important;
    opacity: 0.65;
    color: #1f2528 !important;
    flex-grow: 1;
    margin: 0 0 1.25rem !important;
}

.pricing-card-price {
    font-size: 1.5rem !important;
    font-weight: 300 !important;
    color: #1f2528 !important;
    margin: 0 0 1.25rem !important;
    line-height: 1.1 !important;
}

.pricing-card-price strong {
    font-weight: 800 !important;
    font-size: 2rem !important;
}

.pricing-card-mo {
    font-size: 0.9rem !important;
    opacity: 0.55;
    font-weight: 400;
}

.pricing-card-btn .wp-element-button {
    border-color: #1f2528 !important;
    color: #1f2528 !important;
    font-size: 0.875rem !important;
}

.pricing-card-btn .wp-element-button:hover {
    background-color: #1f2528 !important;
    color: #ffffff !important;
}

.pricing-card-empty {
    visibility: hidden;
}

/* How it works — white section */
.pricing-how-step {
    border-top: 2px solid rgba(31,37,40,0.1);
    padding-top: 1.5rem !important;
}

.pricing-how-title {
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0.4rem 0 0.5rem !important;
}

.pricing-how-body {
    font-size: 0.875rem !important;
    line-height: 1.65 !important;
    opacity: 0.7;
    margin: 0 !important;
}

/* Quiz CTA — dark section */
.pricing-quiz-sub {
    font-size: 1rem !important;
    line-height: 1.7 !important;
    opacity: 0.75;
    max-width: 520px;
    margin: 0.5rem auto 1.25rem !important;
}

.pricing-quiz-coming {
    display: inline-block;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    opacity: 0.45;
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 0.3rem 0.85rem !important;
    margin: 0 auto 1.5rem !important;
    text-align: center !important;
}

@media (max-width: 599px) {
    .pricing-card-empty {
        display: none !important;
    }

    .pricing-card {
        width: 100% !important;
    }

    .pricing-how-step {
        border-top: none;
        border-left: 2px solid rgba(31,37,40,0.15);
        padding-left: 1rem !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pricing-card {
        transition: none;
    }
}

/* === About Us page === */

.about-intro {
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    max-width: 680px;
    opacity: 0.8;
    margin-top: 1rem !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.kr-hero-white h1,
.kr-hero-white .swb-hero-subheading {
    text-align: center !important;
}

/* Pillars — numbered columns on dark bg */
.about-pillars h2,
.about-story h2,
.about-values h2 {
    text-align: center !important;
}

.about-pillar {
    border-top: 2px solid rgba(255, 255, 255, 0.15);
    padding-top: 1.5rem !important;
}

.about-pillar-num {
    font-size: clamp(2rem, 5vw, 3rem) !important;
    font-weight: 800 !important;
    opacity: 0.2;
    margin: 0 0 0.5rem !important;
    line-height: 1 !important;
    color: inherit !important;
    text-align: center !important;
}

.about-pillar-title {
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 0 0.5rem !important;
    letter-spacing: 0.02em;
    color: inherit !important;
    text-align: center !important;
}

.about-pillar-body {
    font-size: 0.875rem !important;
    line-height: 1.65 !important;
    opacity: 0.7;
    color: inherit !important;
    margin: 0 !important;
    text-align: center !important;
}

/* Story section */
.about-story-body {
    font-size: 1rem !important;
    line-height: 1.8 !important;
    opacity: 0.85;
    max-width: 680px;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.about-story-closer {
    font-weight: 600 !important;
    opacity: 1 !important;
    font-style: italic;
}

/* How We Work — value list on dark bg */
.about-values-list {
    gap: 0 !important;
}

.about-value-item {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding: 1.5rem 0 !important;
    display: grid !important;
    grid-template-columns: 1fr 1.5fr;
    gap: 1rem 2rem;
    align-items: baseline;
}

.about-value-item:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.about-value-label {
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 !important;
    color: inherit !important;
}

.about-value-desc {
    font-size: 0.875rem !important;
    line-height: 1.65 !important;
    opacity: 0.7;
    color: inherit !important;
    margin: 0 !important;
}

@media (max-width: 599px) {
    .about-value-item {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }

    .about-pillar {
        border-top: none;
        border-left: 2px solid rgba(255, 255, 255, 0.2);
        padding-left: 1rem !important;
    }
}

/* === Services hub page === */

.services-intro {
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    max-width: 680px;
    opacity: 0.85;
    margin-top: 1rem !important;
}

.services-hub-card {
    background-color: #ffffff !important;
    border-radius: 12px;
    padding: 1.75rem 1.75rem 1.5rem !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between;
    color: #1f2528 !important;
    transition: box-shadow 0.2s ease;
}

.services-hub-card:hover {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
}

.services-hub-card h3 {
    color: #1f2528 !important;
    font-size: 1.1rem !important;
    margin-top: 0.75rem !important;
    margin-bottom: 0.5rem !important;
}

.services-hub-card p {
    color: #1f2528 !important;
    font-size: 0.9rem !important;
    line-height: 1.6 !important;
    opacity: 0.7;
    flex-grow: 1;
    margin-bottom: 1.25rem !important;
}

.services-hub-card .service-icon {
    margin: 0 0 0.25rem 0 !important;
}

.services-hub-card .service-icon img {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.services-hub-btn .wp-element-button {
    border-color: #1f2528 !important;
    color: #1f2528 !important;
    font-size: 0.875rem !important;
}

.services-hub-btn .wp-element-button:hover {
    background-color: #1f2528 !important;
    color: #ffffff !important;
}

.services-hub-card-empty {
    visibility: hidden;
}

.services-cta-sub {
    font-size: 1rem !important;
    opacity: 0.7;
    max-width: 500px;
    margin: 0 auto 1.5rem !important;
}

@media (max-width: 599px) {
    .services-hub-card-empty {
        display: none !important;
    }

    .services-hub-card {
        width: 100% !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .services-hub-card {
        transition: none;
    }
}

/* === Keyword Ranking — alternating backgrounds === */

.kr-hero-white {
    background-color: #ffffff !important;
    color: #1f2528 !important;
}

.kr-hero-white h1,
.kr-hero-white p,
.kr-hero-subheading {
    color: #1f2528 !important;
}

.kr-hero-subheading {
    font-size: 1.05rem !important;
    font-weight: 600;
    opacity: 0.7;
    margin-top: -0.25rem !important;
    margin-bottom: 1rem !important;
}

/* Keyword Ranking — H1 spacing */

.kr-hero-white h1.wp-block-heading {
    margin-bottom: 1rem !important;
}

/* FAQ dividers — visible on dark background */

.is-style-section-2 .swb-faq-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-top: none !important;
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
    margin-bottom: 0 !important;
}

.is-style-section-2 .swb-faq-item:first-of-type {
    border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
}

.is-style-section-2 .swb-faq-item h3 {
    color: #f3f5f6 !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    letter-spacing: -0.01em !important;
    margin-bottom: 0.4rem !important;
}

.is-style-section-2 .swb-faq-item p {
    color: #f3f5f6 !important;
    opacity: 0.7;
}

/* Step numbers — bolder */

.kr-white-how .swb-step-num {
    opacity: 0.45 !important;
    font-size: 2.4rem !important;
    font-weight: 800 !important;
}

/* Mobile — steps stack cleanly */

@media (max-width: 599px) {
    .swb-steps-row {
        flex-direction: column !important;
    }

    .swb-step {
        width: 100% !important;
    }

    .kr-hero-white h1.wp-block-heading {
        font-size: clamp(2.4rem, 10vw, 4rem) !important;
        line-height: 1.05 !important;
    }

    .swb-faq-item {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* What's Included — dark bg, white boxes */
.kr-dark-included {
    background-color: #1f2528 !important;
    color: #f3f5f6 !important;
}

.kr-dark-included h2 {
    color: #f3f5f6 !important;
}

.kr-dark-included .swb-list-item {
    background-color: #ffffff !important;
    color: #1f2528 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

.kr-dark-included .swb-list-text {
    color: #1f2528 !important;
}

/* How It Works — white bg */
.kr-white-how {
    background-color: #ffffff !important;
    color: #1f2528 !important;
}

.kr-white-how h2 {
    color: #1f2528 !important;
}

.kr-white-how .swb-step {
    border-color: rgba(31, 37, 40, 0.14) !important;
}

.kr-white-how .swb-step p {
    color: #1f2528 !important;
    opacity: 0.7;
}

/* CTA — white bg */
.kr-white-cta {
    background-color: #ffffff !important;
    color: #1f2528 !important;
}

.kr-white-cta .wp-block-heading {
    color: #1f2528 !important;
}

.kr-white-cta .wp-element-button {
    background-color: #1f2528 !important;
    color: #ffffff !important;
    border-color: #1f2528 !important;
}

/* === Smart Website Build page === */

.swb-hero-image img {
    width: 100%;
    height: auto;
    border-radius: 16px;
    display: block;
}


.swb-hero-subheading {
    font-size: 1.05rem !important;
    font-weight: 600;
    opacity: 0.7;
    margin-top: -0.25rem !important;
    margin-bottom: 1rem !important;
}

.swb-included {
    padding-top: var(--wp--preset--spacing--60) !important;
    padding-bottom: var(--wp--preset--spacing--60) !important;
}

.swb-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.swb-list-item {
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 64px;
    padding: 0.9rem 1.25rem !important;
    border: 1px solid rgba(31, 37, 40, 0.12);
    border-radius: 10px;
    gap: 1rem !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.swb-list-item:hover {
    border-color: rgba(31, 37, 40, 0.28);
    box-shadow: 0 2px 10px rgba(31, 37, 40, 0.06);
}

.swb-list-icon {
    margin: 0 !important;
    flex-shrink: 0;
}

.swb-list-icon img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    display: block;
}

.swb-list-text {
    margin: 0 !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
}

@media (prefers-reduced-motion: reduce) {
    .swb-list-item {
        transition: none;
    }
}

.swb-steps-row {
    gap: 1rem !important;
    flex-wrap: wrap;
}

.swb-step {
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 12px;
    padding: 1.5rem 1.5rem 1.75rem;
    min-width: 160px;
}

.swb-step-num {
    font-size: 2rem !important;
    font-weight: 700;
    opacity: 0.25;
    margin: 0 0 0.5rem 0 !important;
    line-height: 1 !important;
}

.swb-step p {
    font-size: 0.9rem;
    line-height: 1.55;
    margin: 0;
    opacity: 0.8;
}

.swb-faq-item {
    border-bottom: 1px solid rgba(31, 37, 40, 0.1);
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
}

.swb-faq-item h3 {
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    letter-spacing: -0.01em !important;
    margin-bottom: 0.5rem !important;
}

.swb-faq-item p {
    font-size: 0.95rem;
    opacity: 0.7;
    margin: 0;
}

.swb-cta .wp-block-heading {
    font-size: clamp(1.4rem, 3vw, 2rem) !important;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.5rem;
}

/* === Service page icon === */

.service-page-icon img {
    width: 140px;
    height: 140px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

/* === Hero image col === */

.hero-image-col {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-ai-icon img {
    width: 220px;
    height: 220px;
    object-fit: contain;
    margin: 0 auto;
    display: block;
    opacity: 0.92;
}

@media (max-width: 599px) {
    /* Make the hero a positioning context */
    .hero-with-bg {
        position: relative !important;
    }

    /* Pull the image column out of flow, pin it bottom-right as a watermark */
    .hero-image-col {
        position: absolute !important;
        bottom: 0 !important;
        right: -1rem !important;
        width: auto !important;
        flex-basis: auto !important;
        pointer-events: none;
        z-index: 0;
    }

    .hero-ai-icon img {
        width: 140px !important;
        height: 140px !important;
        opacity: 0.12 !important;
    }

    /* Keep the text column above the watermark */
    .hero-with-bg .wp-block-columns > .wp-block-column:first-child {
        position: relative;
        z-index: 1;
        flex-basis: 100% !important;
    }
}

/* === Precision In Growth decorative images === */

.precision-deco img,
.precision-divider img {
    width: 100%;
    height: auto;
    object-fit: contain;
    opacity: 0.7;
}

/* === Service card icons === */

.service-icon {
    margin: 0 0 1rem 0 !important;
}

.service-icon img {
    width: 52px;
    height: 52px;
    object-fit: contain;
    display: block;
}

/* === Hero heading scale === */

.is-style-section-2 .wp-block-heading:first-child,
.is-style-section-2 h2.wp-block-heading {
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    line-height: 1.15;
}

/* === Service cards === */

.home-services-section {
    background-color: #ffffff !important;
    color: #1f2528 !important;
}

.home-services-section .wp-block-heading {
    color: #1f2528 !important;
    margin-bottom: 2rem;
}

.service-card {
    border: 1px solid rgba(31, 37, 40, 0.14);
    border-radius: 12px;
    padding: 1.5rem !important;
    background-color: #ffffff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.service-card:hover {
    border-color: rgba(31, 37, 40, 0.3);
    box-shadow: 0 4px 16px rgba(31, 37, 40, 0.08);
}

/* Unified type scale — same for all cards */
.service-card h3 {
    color: #1f2528 !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
    margin: 0.5rem 0 0.35rem !important;
}

.service-card p {
    color: #1f2528 !important;
    font-size: 0.85rem !important;
    line-height: 1.6 !important;
    opacity: 0.65;
    margin: 0 !important;
}

.service-card .service-icon {
    margin: 0 !important;
}

.service-card .service-icon img {
    width: 32px !important;
    height: 32px !important;
}

/* Wide card — vertical layout on desktop, same as others */
.service-card--wide {
    width: 100%;
    padding: 1.5rem !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
}

.service-card--wide h3 {
    margin: 0.5rem 0 0.35rem !important;
}

/* Equal-height rows — cards fill their column */
.service-cards-row {
    gap: 1.25rem !important;
    align-items: stretch !important;
}

.service-cards-row .service-card {
    min-height: 180px;
}

@media (max-width: 599px) {
    .service-cards-row {
        flex-direction: column;
    }

    .service-cards-row .service-card {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .service-card {
        transition: none;
    }
}

/* Remove unwanted top margin from small screens */
@container (max-width: 699px) {
    .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title {
        margin-top: 0;
    }
}
