/*
Theme Name: Heaven in Cardiff
Author: Heaven in Cardiff
Description: Editable block-theme adaptation of the Heaven prototype. Uses WooCommerce products and its native mini-cart. Delivery and payment configuration required.
Version: 0.2.9
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: heaven-cardiff
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
html{scroll-behavior:smooth}body{margin:0}*{box-sizing:border-box}img{max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #a53056;outline-offset:4px}.wp-site-blocks{padding:0}.wp-block-group{min-width:0}.wp-block-button__link{text-decoration:none}.wp-block-image img{vertical-align:middle}
.prototype-bar { min-height: 35px; padding: 8px 24px; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 8px 16px; background: #294e3c; color: #f8faef; font-size: 12px; }
.prototype-bar > span { font-size: 11px; letter-spacing: .12em; font-weight: 700; }
.prototype-bar button { text-decoration: underline; text-underline-offset: 3px; }
.site-header { max-width: 1400px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 23px 48px; border-bottom: 1px solid #e8e7dc; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; font-size: 35px; line-height: 1; letter-spacing: -.04em; }
.brand img { width: 54px; height: 54px; border-radius: 50%; }
.brand-location { display: block; font-family: Arial, sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .27em; margin: 8px 0 0 3px; }
.site-header nav { display: flex; gap: 28px; align-items: center; font-size: 14px; }
.site-header nav a:hover, .site-header nav button:hover { color: #a53056; }
.header-helper, .header-actions, .seller-link, .basket-button { display: flex; align-items: center; gap: 8px; }
.header-actions { gap: 23px; }
.seller-link { font-size: 12px; color: #656e63; }
.basket-button { background: #edf0e4; border: 1px solid #dce2d0; border-radius: 7px; padding: 11px 15px; font-size: 14px; }
.basket-button b { background: #294e3c; color: white; border-radius: 50%; min-width: 22px; height: 22px; text-align: center; font-size: 12px; line-height: 22px; }
.page-shell { max-width: 1400px; padding: 32px 48px 0; margin: auto; }
.shop-intro { display: grid; grid-template-columns: 1.2fr 1fr .8fr; min-height: 295px; overflow: hidden; border-radius: 12px; background: #eceddd; }
.intro-copy { padding: 29px 34px; }
.eyebrow { font-size: 11px; letter-spacing: .14em; font-weight: 700; color: #617151; margin-bottom: 10px; }
.intro-copy h1 { font-size: clamp(40px, 4.1vw, 57px); letter-spacing: -.05em; line-height: 1.02; margin-bottom: 15px; }
.intro-copy h1 em { color: #93613d; font-weight: 400; }
.intro-copy > p:not(.eyebrow) { color: #5b6654; font-size: 15px; line-height: 1.5; }
.intro-details { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 24px; font-size: 12px; color: #485742; }
.intro-details span { display: flex; align-items: center; gap: 7px; }
.intro-photo { position: relative; min-width: 0; min-height: 280px; }
.intro-photo > img { width: 100%; height: 100%; position: absolute; object-fit: cover; object-position: center 54%; }
.photo-caption { position: absolute; bottom: 16px; left: 16px; padding: 8px 12px; border-radius: 5px; color: #fff; font-size: 12px; background: #243b2dcc; display: flex; align-items: center; gap: 8px; }
.intro-side { padding: 34px 28px; display: flex; justify-content: center; flex-direction: column; background: #e4e8d3; }
.little-label { font-size: 10px; letter-spacing: .14em; color: #627050; font-weight: 700; }
.intro-side h2 { font-size: 34px; letter-spacing: -.025em; line-height: 1.15; margin: 15px 0 12px; }
.intro-side p { font-size: 14px; color: #607050; }
.intro-side button { font-size: 14px; align-self: flex-start; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #708062; padding-bottom: 6px; margin-top: 25px; }
.shop-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 30px; align-items: start; margin-top: 40px; }
.section-heading { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 23px; }
.section-heading .eyebrow { margin-bottom: 5px; }
.section-heading h2 { font-size: 32px; line-height: 1.2; letter-spacing: -.025em; }
.item-count { color: #717b6d; font-size: 12px; }
.category-tabs[data-slot='tabs-list'] { height: auto; display: flex; gap: 8px; padding: 0; background: transparent; justify-content: flex-start; }
.category-tabs [data-slot='tabs-trigger'] { flex: initial; height: 37px; padding: 0 20px; border: 1px solid #dedfd4; border-radius: 24px; font-size: 14px; background: transparent; color: #5c6659; box-shadow: none; }
.category-tabs [data-slot='tabs-trigger'][data-state='active'] { background: #294e3c; color: white; border-color: #294e3c; }
.catalog-note { color: #6c7268; font-size: 12px; margin: 14px 0 20px; }
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 21px 18px; }
.product-card { min-width: 0; border: 1px solid #e2e2d7; border-radius: 10px; background: #fffefa; overflow: hidden; transition: box-shadow .2s; }
.product-card:hover { box-shadow: 0 8px 24px #273a2b0c; }
.product-photo-button { position: relative; width: 100%; display: block; text-align: left; }
.cake-image { aspect-ratio: 1.15; overflow: hidden; position: relative; background: #e8e4d7; }
.cake-image img.real-photo { width: 100%; height: 100%; object-fit: cover; object-position: 50% 52%; }
.cake-image img.post-photo { position: absolute; max-width: none; left: 0; height: auto; }
.photo-tag { position: absolute; left: 10px; bottom: 10px; background: #fffdf4e8; color: #46533c; font-size: 10px; padding: 4px 8px; border-radius: 3px; }
.product-copy { padding: 16px; }
.product-meta { display: flex; justify-content: space-between; gap: 5px; font-size: 10px; color: #717769; margin-bottom: 6px; }
.product-meta span:first-child { text-transform: uppercase; letter-spacing: .09em; }
.product-copy h3 { font-family: Georgia, serif; font-size: 21px; line-height: 1.2; letter-spacing: -.025em; min-height: 50px; }
.product-copy h3 button { text-align: left; }
.product-copy > p { font-size: 14px; color: #707466; line-height: 1.55; min-height: 66px; margin-top: 8px; }
.product-bottom { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 19px; }
.product-bottom strong { font-size: 18px; font-weight: 600; }
.product-bottom small { display: block; font-size: 10px; color: #76786b; }
.add-button { display: flex; align-items: center; gap: 8px; font-size: 12px; border: 1px solid #d8deca; padding: 8px 11px; border-radius: 6px; background: #f1f3e8; }
.add-button:hover { background: #e2e8d5; }
.allergy-note { margin-top: 26px; padding: 19px 20px; display: flex; gap: 14px; background: #f4f0e9; border-radius: 8px; }
.allergy-note > svg { flex-shrink: 0; color: #8c684c; margin-top: 3px; }
.allergy-note strong { font-size: 14px; font-weight: 600; }
.allergy-note p { font-size: 13px; color: #757362; margin-top: 5px; }
.basket-card { position: sticky; top: 24px; border: 1px solid #dbdfcf; border-radius: 10px; padding: 21px; background: #fffef9; }
.basket-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid #e7e8dd; padding-bottom: 18px; }
.basket-heading h2 { font-size: 24px; }
.basket-heading span { border-radius: 20px; padding: 3px 9px; background: #eff1e7; color: #69705e; font-size: 12px; }
.empty-basket { text-align: center; display: flex; align-items: center; flex-direction: column; padding: 39px 0 29px; }
.empty-basket > svg { color: #8d9a77; margin-bottom: 18px; }
.empty-basket h3 { font-size: 22px; }
.empty-basket p { font-size: 13px; color: #7b7e6f; margin-top: 9px; }
.empty-basket .button { margin-top: 23px; padding: 10px 18px; font-size: 13px; }
.basket-footer { border-top: 1px solid #e5e6d9; padding-top: 17px; color: #727b64; font-size: 12px; display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 10px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: #294e3c; border: 1px solid #294e3c; border-radius: 7px; color: #fffdf5; padding: 13px 19px; font-size: 14px; font-weight: 500; line-height: 1.45; }
.button:hover:not(:disabled) { background: #1f402f; }
.button.secondary { background: transparent; color: #294e3c; border-color: #bac6a8; }
.button.secondary:hover { background: #e9eedf; }
.button.full { width: 100%; }
.help-strip { display: flex; align-items: center; gap: 21px; margin: 42px 0; padding: 26px 32px; border-radius: 10px; background: #f4e9e9; }
.helper-symbol { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: #ebd8dc; color: #9a4260; flex-shrink: 0; }
.help-strip h2 { font-size: 27px; line-height: 1.2; }
.help-strip p { color: #7b6b6b; font-size: 14px; margin-top: 7px; }
.help-strip .button { margin-left: auto; white-space: nowrap; border-color: #cdb4b4; color: #723e4b; }
.site-footer { border-top: 1px solid #e3e4d7; max-width: 1304px; margin: auto; padding: 26px 0 38px; display: flex; align-items: center; gap: 30px; color: #77806e; font-size: 12px; }
.footer-brand { font-size: 30px; color: #3c513d; letter-spacing: -.04em; }
.footer-brand span { font-size: 13px; letter-spacing: 0; }
.site-footer a { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.site-footer button:hover { text-decoration: underline; }

.prototype-bar .preview-copy{font-size:12px;color:#f8faef;text-align:center}.site-header .brand{gap:12px}.brand .heaven-logo{width:54px;flex-shrink:0}.brand-name{font-family:Georgia,serif;font-size:35px;line-height:1}.brand-location{font-size:12px}.site-header .wp-block-navigation{font-size:14px}.basket-button .wp-element-button{background:#edf0e4;color:#294e3c;padding:0}.basket-button{padding:10px 15px}.heaven-count{display:inline-block;border-radius:50%;background:#294e3c;color:white;min-width:24px;text-align:center;margin-left:8px}.shop-intro .intro-photo figure{height:100%;margin:0}.shop-intro .intro-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 54%}.intro-details p{font-size:14px}.intro-side .hero-link .wp-element-button{background:transparent;color:#294e3c;border-bottom:1px solid #708062;border-radius:0;padding:0 0 6px;margin-top:25px}.intro-copy h1 em{color:#93613d}.category-tabs{display:flex;gap:8px;flex-wrap:wrap}.category-tabs .wp-element-button{background:transparent;border:1px solid #dedfd4;color:#5c6659;border-radius:24px;padding:8px 20px}.category-tabs .active .wp-element-button{background:#294e3c;color:white;border-color:#294e3c}.cake-image figure{height:100%}.cake-image img{width:100%;height:100%;object-fit:cover;object-position:50% 52%}.cake-image .crop-lemon img{position:absolute;max-width:none;width:177.5%;height:auto;top:-18%;left:0}.cake-image .crop-swiss img{position:absolute;max-width:none;width:174%;height:auto;top:-10%;left:0}.cake-image .crop-carrot img{position:absolute;max-width:none;width:159%;height:auto;top:-8%;left:0}.cake-image .crop-rose img{position:absolute;max-width:none;width:159%;height:auto;top:-6%;left:0}.product-card[hidden]{display:none!important}.product-meta p{font-size:12px}.product-meta .cake-category{text-transform:uppercase;letter-spacing:.09em}.product-copy h3{min-height:50px}.product-copy>.cake-description{font-size:16px;min-height:74px;margin-top:8px}.cake-price{font-size:18px;font-weight:600}.price-note{font-size:12px;color:#76786b}.choose-cake .wp-element-button{font-size:14px;border:1px solid #d8deca;padding:8px 11px;background:#f1f3e8;color:#294e3c}.allergy-note{display:block}.allergy-note h3{font:600 14px Arial,sans-serif}.allergy-note p{font-size:14px}.empty-basket .wp-block-buttons{margin-top:23px}.empty-basket p{font-size:14px}.basket-footer{font-size:14px}.help-strip{justify-content:space-between}.help-strip .is-style-outline .wp-element-button{color:#723e4b;border:1px solid #cdb4b4;background:transparent}.help-strip p{font-size:16px}.menu-guide,.delivery-info{margin:24px 0 32px;padding:24px;border:1px solid #dedfd4;border-radius:10px}.menu-guide p,.delivery-info p{margin-top:12px}.site-footer>p{font-size:14px}.site-footer .footer-brand{font-size:30px}.site-footer p:last-child{margin-left:auto}.heaven-content{max-width:1040px;margin:40px auto;padding:0 24px;min-height:55vh}.heaven-content h1{margin-bottom:24px}.heaven-content p{margin-bottom:16px}.heaven-content .wp-block-post-title{margin-top:30px}.heaven-preview-dialog{border:1px solid #dedfd4;border-radius:12px;background:#fffef9;color:#253a30;padding:28px;max-width:520px;width:calc(100% - 32px);max-height:85vh;overflow:auto}.heaven-preview-dialog::backdrop{background:#16281788}.heaven-preview-dialog h2{font-size:30px;margin:14px 0}.heaven-preview-dialog p{margin:12px 0}.heaven-preview-dialog label{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #dedfd4}.heaven-preview-dialog input[type=number]{width:65px;padding:8px;font:inherit}.heaven-preview-dialog button,.heaven-basket-lines button{font:inherit;cursor:pointer}.heaven-close{float:right;background:transparent;border:0;text-decoration:underline}.heaven-add{width:100%;padding:13px;background:#294e3c;border:0;border-radius:7px;color:white;margin-top:18px}.heaven-line{padding:14px 0;border-bottom:1px solid #dedfd4}.heaven-line small{display:block;font-size:12px}.heaven-line button{border:0;background:transparent;color:#a53056;padding:4px 0;font-size:13px}.heaven-total{display:flex;justify-content:space-between;margin-top:20px}.heaven-preview-note{font-size:14px;background:#f4f0e9;padding:12px;margin-top:16px}.photo-tag{font-size:12px;max-width:calc(100% - 20px)}.eyebrow,.little-label{font-size:12px}.catalog-note,.item-count{font-size:14px}.heaven-live-status{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#294e3c;color:white;border-radius:8px;padding:12px 20px;z-index:1000;max-width:90vw}.heaven-live-status:empty{display:none}
@media(max-width:1100px){.site-header{padding:20px 30px}.page-shell{padding:28px 30px 0}.shop-intro{grid-template-columns:1.15fr 1fr .8fr}.intro-copy{padding:25px}.intro-side{padding:24px}.shop-layout{grid-template-columns:minmax(0,1fr) 270px;gap:24px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer{margin:0 30px}}
@media(max-width:850px){.site-header{padding:17px 24px}.shop-intro{grid-template-columns:1fr 1fr}.intro-side{display:none}.page-shell{padding:24px 24px 0}.shop-layout{grid-template-columns:1fr}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.basket-card{position:static}.help-strip{flex-wrap:wrap}.site-footer{margin:0 24px;flex-wrap:wrap}}
@media(max-width:600px){.site-header{padding:15px 18px;gap:12px}.brand-name{font-size:28px}.brand .heaven-logo{width:43px}.brand img{width:43px;height:43px}.site-header .wp-block-navigation{margin-left:auto}.site-header>.wp-block-buttons{display:none}.page-shell{padding:18px 16px 0}.shop-intro{grid-template-columns:1.15fr .85fr}.intro-copy{padding:22px 18px}.intro-copy h1{font-size:37px}.intro-copy>p:not(.eyebrow){font-size:16px}.intro-details{gap:8px;margin-top:16px}.intro-photo{min-height:254px}.photo-caption{left:8px;bottom:8px;padding:7px;font-size:12px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 12px}.cake-image{aspect-ratio:1}.product-copy{padding:12px}.product-copy h3{font-size:20px;min-height:48px}.product-copy>.cake-description{min-height:96px}.product-meta p:last-child{display:none}.photo-tag{font-size:12px;left:7px;bottom:7px}.product-bottom{flex-direction:column;align-items:stretch;gap:10px}.choose-cake .wp-element-button{display:block}.item-count{display:none}.section-heading h2{font-size:29px}.help-strip{padding:24px 20px;gap:18px}.help-strip h2{font-size:24px}.site-footer{margin:0 18px;gap:12px}.site-footer p:last-child{margin-left:0;width:100%}}
@media(max-width:380px){.shop-intro{grid-template-columns:1fr}.intro-photo{min-height:240px}.intro-copy h1 br{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* WooCommerce integration: retain core behaviour and style both classic and block pages. */
.heaven-catalogue-section{margin:48px 0}.heaven-catalogue-section>h2{font-size:38px;margin-bottom:24px}
.heaven-live-catalogue ul.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:24px 0!important}
.heaven-live-catalogue ul.products:before,.heaven-live-catalogue ul.products:after{display:none!important}
.heaven-live-catalogue ul.products li.product{float:none!important;width:auto!important;margin:0!important;padding:0 0 22px;border:1px solid #e4e5da;border-radius:16px;overflow:hidden;background:#fff}
.heaven-live-catalogue ul.products li.product>a:not(.button){display:block}
.heaven-live-catalogue ul.products li.product img{aspect-ratio:1/1;object-fit:cover}
.heaven-live-catalogue ul.products li.product .woocommerce-loop-product__title,.heaven-live-catalogue ul.products li.product .price{padding:0 20px}
.heaven-live-catalogue ul.products li.product .button{margin-left:20px}
.woocommerce div.product,.woocommerce .woocommerce-breadcrumb,.woocommerce .woocommerce-notices-wrapper,.woocommerce .woocommerce-products-header,.woocommerce.archive .content-area{max-width:1200px;margin-left:auto;margin-right:auto}
.woocommerce.single-product div.product{padding:32px 28px}.woocommerce .woocommerce-breadcrumb{padding:20px 28px}
.woocommerce div.product div.images{width:46%}.woocommerce div.product div.summary{width:48%;padding:8px 0 24px}
.woocommerce div.product .product_title{font-size:clamp(32px,4vw,48px);line-height:1.12;margin-bottom:20px}
.woocommerce div.product p.price{font-size:26px;margin:16px 0;color:#294e3c}
.woocommerce div.product .woocommerce-product-details__short-description{line-height:1.7;margin-bottom:24px}
.woocommerce div.product form.cart{margin:24px 0}.woocommerce div.product .woocommerce-tabs{clear:both;padding-top:32px}
.woocommerce div.product .woocommerce-tabs h2{font-size:28px;margin:20px 0}.woocommerce div.product .woocommerce-tabs p{line-height:1.7;margin:12px 0}
.woocommerce div.product div.images img{border-radius:16px}.woocommerce span.onsale{background:#294e3c;min-height:36px;line-height:36px;padding:0 12px;z-index:2}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.wc-block-components-button{border-radius:8px;background:#294e3c;color:#fff;padding:14px 20px;font-weight:600}
.woocommerce a.button:hover,.woocommerce button.button:hover{background:#1f3d2e;color:#fff}
.woocommerce input.input-text,.woocommerce select,.woocommerce textarea{border:1px solid #bcc6b7;border-radius:6px;padding:12px;background:#fff;color:#253a30}
.woocommerce .quantity .qty{width:76px}.woocommerce table.shop_table{border-radius:12px;background:#fff}
.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout,.woocommerce-account .woocommerce,.woocommerce-cart .woocommerce,.woocommerce-checkout .woocommerce{max-width:1200px;margin:32px auto;padding:0 24px}
.wp-block-woocommerce-mini-cart{background:#edf0e4;border:1px solid #dce2d0;border-radius:8px;padding:4px 10px}
.woocommerce.archive ul.products{max-width:1200px;margin:32px auto;padding:0 28px}
@media(max-width:780px){.heaven-live-catalogue ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}.woocommerce div.product div.images,.woocommerce div.product div.summary{float:none;width:100%}.woocommerce.single-product div.product{padding:24px 18px}.site-header{flex-wrap:wrap;gap:16px}}
@media(max-width:480px){.heaven-live-catalogue ul.products{grid-template-columns:1fr}.heaven-catalogue-section>h2{font-size:32px}}

/* Product-detail polish */
.woocommerce .woocommerce-breadcrumb{font-size:13px;color:#687267;padding:26px 28px 14px}
.woocommerce .woocommerce-breadcrumb a{color:#294e3c;text-underline-offset:3px}
.woocommerce.single-product div.product{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);column-gap:54px;row-gap:28px;align-items:start;padding:20px 28px 56px}
.woocommerce.single-product div.product:before,.woocommerce.single-product div.product:after{display:none}
.woocommerce.single-product div.product div.images,.woocommerce.single-product div.product div.summary{float:none;width:auto;margin:0}
.woocommerce.single-product div.product div.images{grid-column:1;grid-row:1}
.woocommerce.single-product div.product div.summary{grid-column:2;grid-row:1;padding:10px 0 0}
.woocommerce.single-product div.product div.images .woocommerce-product-gallery__image img{border-radius:16px}
.woocommerce.single-product div.product .product_title{font-size:clamp(34px,3.5vw,52px);color:#253a30;margin:0 0 20px}
.woocommerce.single-product div.product p.price{font-size:30px;font-weight:500;margin:0 0 22px}
.woocommerce.single-product div.product .stock{color:#617151}
.woocommerce.single-product div.product form.cart{display:flex;align-items:center;gap:12px;margin:28px 0 26px}
.woocommerce.single-product div.product form.cart .quantity{margin:0}
.woocommerce.single-product div.product form.cart .quantity .qty{height:49px}
.woocommerce.single-product div.product .product_meta{border-top:1px solid #e4e5da;padding-top:18px;color:#687267;font-size:13px}
.woocommerce.single-product .woocommerce-tabs{grid-column:1/-1;border-top:1px solid #e4e5da;padding-top:24px;margin-top:0}
.woocommerce.single-product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 24px}
.woocommerce.single-product .woocommerce-tabs ul.tabs:before{display:none}
.woocommerce.single-product .woocommerce-tabs ul.tabs li{border:0;background:transparent;padding:0 28px 12px 0;margin:0 22px 0 0}
.woocommerce.single-product .woocommerce-tabs ul.tabs li a{color:#294e3c;font-weight:600}
.woocommerce.single-product .woocommerce-tabs ul.tabs li.active{border-bottom:2px solid #294e3c}
.woocommerce.single-product #reviews #comments h2,.woocommerce.single-product #review_form_wrapper h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:#253a30}
.woocommerce.single-product #review_form_wrapper{max-width:680px}
.woocommerce.single-product #review_form_wrapper input,.woocommerce.single-product #review_form_wrapper textarea{max-width:100%}
.wc-block-mini-cart__button{min-height:44px;padding:10px 13px!important;color:#294e3c!important}
.wc-block-mini-cart__button:hover{background:#e4e8d3!important}
.wc-block-mini-cart__button:after{content:' Basket';font-family:Arial,sans-serif;font-size:14px;font-weight:500;vertical-align:middle}
@media(max-width:780px){.woocommerce.single-product div.product{display:block;padding:18px 18px 40px}.woocommerce.single-product div.product div.summary{padding-top:24px}.woocommerce .woocommerce-breadcrumb{padding:20px 18px 10px}}

/* 0.2.2: robust product layout correction */
.woocommerce.single-product div.product{display:flex;width:100%;max-width:1200px;flex-wrap:wrap;align-items:flex-start;column-gap:54px;row-gap:28px}
.woocommerce.single-product div.product div.images{flex:1 1 520px;min-width:0;width:auto!important;float:none!important;margin:0!important}
.woocommerce.single-product div.product div.summary{flex:1 1 420px;min-width:360px;max-width:none;width:auto!important;float:none!important;margin:0!important;padding:10px 0 0!important}
.woocommerce.single-product .woocommerce-tabs{flex:0 0 100%;width:100%;grid-column:auto;margin-top:0}
@media(max-width:780px){.woocommerce.single-product div.product{display:block;width:100%}.woocommerce.single-product div.product div.summary{min-width:0;padding-top:24px!important}}

/* Native WooCommerce Product Collection cards */
.heaven-live-catalogue .wp-block-woocommerce-product-collection{margin:24px 0}
.heaven-live-catalogue .wc-block-product-template{gap:24px!important;list-style:none;padding:0}
.heaven-live-catalogue .wc-block-product-template>li.wc-block-product{width:calc(33.333% - 16px)!important;max-width:none;margin:0!important;padding:0 0 22px!important;border:1px solid #e4e5da;border-radius:16px;overflow:hidden;background:#fff}
.heaven-live-catalogue .wc-block-components-product-image{margin:0!important}
.heaven-live-catalogue .wc-block-components-product-image img{width:100%;aspect-ratio:1/1;object-fit:cover}
.heaven-live-catalogue .wc-block-product>h2,.heaven-live-catalogue .wc-block-product>.wp-block-post-title,.heaven-live-catalogue .wc-block-product>.wp-block-woocommerce-product-price{padding-left:20px;padding-right:20px}
.heaven-live-catalogue .wc-block-components-product-title{font-family:Georgia,'Times New Roman',serif;font-size:23px}
.heaven-live-catalogue .wc-block-components-product-price{color:#294e3c;font-size:18px}
.heaven-live-catalogue .wc-block-components-product-button{padding:0 20px;margin-top:12px}
.heaven-live-catalogue .wc-block-components-product-button .wp-block-button__link{background:#294e3c;color:#fff;border-radius:8px}
@media(max-width:780px){.heaven-live-catalogue .wc-block-product-template>li.wc-block-product{width:calc(50% - 12px)!important}}
@media(max-width:480px){.heaven-live-catalogue .wc-block-product-template>li.wc-block-product{width:100%!important}}

/* 0.2.5: make the native product collection fill the catalogue width */
.heaven-live-catalogue,.heaven-live-catalogue .wp-block-woocommerce-product-collection{width:100%!important;max-width:none!important}
.heaven-live-catalogue .wc-block-product-template{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;width:100%!important;max-width:none!important}
.heaven-live-catalogue .wc-block-product-template>li.wc-block-product{width:auto!important;min-width:0!important}
.heaven-live-catalogue .wc-block-product-template>li.wc-block-product .wp-block-post-title,.heaven-live-catalogue .wc-block-product-template>li.wc-block-product .wc-block-components-product-title{font-size:clamp(20px,2vw,26px);line-height:1.15;margin:16px 20px 8px!important;padding:0!important}
.heaven-live-catalogue .wc-block-product-template>li.wc-block-product .wp-block-post-title a{color:#253a30;text-decoration:none}
.heaven-live-catalogue .wc-block-product-template>li.wc-block-product .wp-block-woocommerce-product-price,.heaven-live-catalogue .wc-block-product-template>li.wc-block-product .wc-block-components-product-price{margin:0 20px 10px!important;padding:0!important}
@media(max-width:780px){.heaven-live-catalogue .wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:480px){.heaven-live-catalogue .wc-block-product-template{grid-template-columns:1fr!important}}

/* 0.2.7: make WooCommerce delivery date/time controls consistent. */
.woocommerce-checkout #e_deliverydate,
.woocommerce-checkout input[name="e_deliverydate"] {
  min-height: 58px !important;
  height: 58px !important;
  box-sizing: border-box;
  padding: 14px 16px !important;
  border: 1px solid #bcc6b7 !important;
  border-radius: 8px !important;
  background: #fffef9 !important;
  color: #253a30 !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
}

/* The block wraps the time select in a bordered container; size both layers together. */
.woocommerce-checkout .wc-block-components-select:has(select[id*="time_slot"]),
.woocommerce-checkout .wc-block-components-select:has(select[name*="time_slot"]),
.woocommerce-checkout [id="orddd_lite_time_slot_field"] {
  height: auto !important;
  min-height: 88px !important;
  margin-bottom: 24px !important;
  overflow: visible !important;
}

.woocommerce-checkout .wc-block-components-select:has(select[id*="time_slot"]) label,
.woocommerce-checkout .wc-block-components-select:has(select[name*="time_slot"]) label,
.woocommerce-checkout [id="orddd_lite_time_slot_field"] label,
.woocommerce-checkout #orddd_lite_time_slot_field label,
.woocommerce-checkout [id*="time_slot"] label {
  display: block;
  margin: 0 0 8px !important;
  color: #253a30;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
}

.woocommerce-checkout .wc-block-components-select:has(select[id*="time_slot"]) select,
.woocommerce-checkout .wc-block-components-select:has(select[name*="time_slot"]) select,
.woocommerce-checkout #orddd_lite_time_slot,
.woocommerce-checkout select[name="orddd_lite_time_slot"],
.woocommerce-checkout select[id*="time_slot"],
.woocommerce-checkout select[name*="time_slot"] {
  display: block;
  width: 100%;
  min-height: 48px !important;
  height: 48px !important;
  box-sizing: border-box;
  padding: 12px 14px !important;
  border: 1px solid #bcc6b7 !important;
  border-radius: 8px !important;
  background: #fffef9 !important;
  color: #253a30 !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
}

/* The date block has a visible floating label, so its placeholder is redundant. */
.woocommerce-checkout #e_deliverydate::placeholder,
.woocommerce-checkout input[name="e_deliverydate"]::placeholder {
  color: transparent !important;
  opacity: 0 !important;
}

/* 0.2.9: product layout and custom extras; no basket or checkout rules. */

/* Match the saved WooCommerce block template, including its editor preview. */
:where(body.single-product, .editor-styles-wrapper) .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery):has(.wp-block-woocommerce-add-to-cart-form) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(24px, 4vw, 56px);
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin: 28px auto 36px;
  padding: 0 clamp(18px, 3vw, 28px);
}
:where(body.single-product, .editor-styles-wrapper) .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery):has(.wp-block-woocommerce-add-to-cart-form) > .wp-block-column {
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  align-self: start;
}
:where(body.single-product, .editor-styles-wrapper) .wp-block-woocommerce-product-image-gallery .woocommerce-product-gallery {
  width: 100% !important;
  max-width: 100%;
  float: none !important;
  margin: 0 !important;
}

/* Keep the classic product layout balanced when WooCommerce uses it. */
body.woocommerce.single-product div.product:has(> .images):has(> .summary) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 32px clamp(24px, 4vw, 56px);
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
}
body.woocommerce.single-product div.product:has(> .images):has(> .summary) > :is(.images, .summary) {
  min-width: 0;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce.single-product div.product:has(> .images):has(> .summary) > :not(.images):not(.summary) {
  grid-column: 1 / -1;
  min-width: 0;
}

/* The extras get their own full row; quantity and submit share the next row. */
body.single-product form.cart:has(> .heaven-product-addons),
body.single-product form.cart .variations_button:has(> .heaven-product-addons) {
  display: grid !important;
  grid-auto-flow: row !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  margin: 24px 0;
}
body.single-product .heaven-product-addons {
  grid-column: 1 / -1;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0 0 4px !important;
}
body.single-product .heaven-product-addons > label {
  align-items: flex-start !important;
}
body.single-product .heaven-product-addons input[type="checkbox"] {
  flex: 0 0 auto;
  margin-top: 4px;
}
body.single-product .heaven-product-addons label > span {
  min-width: 0;
  overflow-wrap: anywhere;
}
body.single-product .heaven-product-addons textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 90px;
  resize: vertical;
  font: inherit;
}
body.single-product :is(form.cart, .variations_button):has(> .heaven-product-addons) > .quantity {
  grid-column: 1;
  width: auto;
  margin: 0 !important;
  float: none !important;
}
body.single-product :is(form.cart, .variations_button):has(> .heaven-product-addons) > .quantity .qty {
  box-sizing: border-box;
  width: 72px;
  min-height: 48px;
  margin: 0;
  font-size: 16px;
}
body.single-product :is(form.cart, .variations_button):has(> .heaven-product-addons) > .single_add_to_cart_button {
  grid-column: 2 !important;
  justify-self: stretch !important;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 0 !important;
  padding: 12px 16px;
  float: none !important;
  white-space: normal;
  line-height: 1.4;
}
/* Prevent hidden form values from occupying a layout cell. */
body.single-product form.cart :is(input[type="hidden"], script) {
  display: none !important;
}

@media (max-width: 780px) {
  :where(body.single-product, .editor-styles-wrapper) .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery):has(.wp-block-woocommerce-add-to-cart-form),
  body.woocommerce.single-product div.product:has(> .images):has(> .summary) {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  body.woocommerce.single-product div.product:has(> .images):has(> .summary) > :is(.images, .summary) {
    grid-column: 1;
    grid-row: auto;
  }
}
