/*
Theme Name: Clayton Garden Press
Template: hello-elementor
Description: Clayton Florist in the Garden Press look (owner 10-25/10-27): home hero K, category and product pages, header and footer without Elementor Pro. Preview only until the owner says go (mu-plugin cf-garden-press.php, ?gp=1).
Version: 0.1.0
Text Domain: clayton-garden
*/

/* ---------- tokens (canvas variant "garden") ---------- */
:root {
	--gp-bg: #ffffff;
	--gp-ink: #23382c;
	--gp-muted: #4d5b52;
	--gp-line: #d5ddd6;
	--gp-card: #eef2ee;
	--gp-band: #23382c;
	--gp-band-ink: #fbf7f2;
	--gp-band-muted: #d3dcd5;
	--gp-accent: #8a3b1f;
	--gp-accent-dark: #6f2f18;
	--gp-band-accent: #e0a77f;
	--gp-ok: #2f6b3a;
	--gp-serif: "Playfair Display", Georgia, "Times New Roman", serif;
	--gp-sans: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--gp-max: 1280px;
}

body.gp {
	margin: 0;
	background: var(--gp-bg);
	color: var(--gp-ink);
	font-family: var(--gp-sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
body.gp a { color: var(--gp-ink); }
body.gp h1, body.gp h2, body.gp h3 { color: var(--gp-ink); font-family: var(--gp-serif); }
body.gp .gp-wrap { max-width: var(--gp-max); margin: 0 auto; padding-left: 16px; padding-right: 16px; box-sizing: border-box; }
body.gp [hidden] { display: none !important; } /* .gp-btn's display must never beat the hidden attribute (review 10-27) */
body.gp .gp-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.gp .gp-eyebrow { margin: 0; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--gp-accent); font-weight: 600; }
body.gp .gp-btn, body.gp a.gp-btn, body.gp button.gp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box;
	min-height: 48px; padding: 12px 22px; border: 0; border-radius: 0; cursor: pointer;
	background: var(--gp-accent); color: #fff; font: 600 16px/1.2 var(--gp-sans); text-decoration: none;
}
body.gp .gp-btn:hover, body.gp .gp-btn:focus-visible { background: var(--gp-accent-dark); color: #fff; }
body.gp .gp-btn--line, body.gp a.gp-btn--line { background: transparent; color: var(--gp-ink); border: 1px solid var(--gp-ink); }
body.gp .gp-btn--line:hover, body.gp .gp-btn--line:focus-visible { background: var(--gp-ink); color: var(--gp-bg); }
body.gp .gp-btn--light, body.gp a.gp-btn--light { background: var(--gp-band-ink); color: var(--gp-band); }
body.gp .gp-btn--light:hover, body.gp .gp-btn--light:focus-visible { background: #fff; color: var(--gp-band); }
:where(body.gp) a:focus-visible, :where(body.gp) button:focus-visible, :where(body.gp) input:focus-visible, :where(body.gp) select:focus-visible, :where(body.gp) summary:focus-visible {
	outline: 2px solid var(--gp-accent); outline-offset: 2px;
}
body.gp .gp-band a:focus-visible, body.gp .gp-hero a:focus-visible { outline-color: var(--gp-band-accent); }

/* ---------- status band ---------- */
body.gp .gp-status { background: var(--gp-band); color: var(--gp-band-ink); font-size: 14px; }
body.gp .gp-status .gp-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 18px; padding-top: 10px; padding-bottom: 10px; text-align: center; }
body.gp .gp-status a { color: var(--gp-band-ink); }
body.gp .gp-status__now { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; letter-spacing: .02em; text-decoration: none; }
body.gp .gp-status__dot { width: 9px; height: 9px; border-radius: 999px; background: #6fcf86; box-shadow: 0 0 0 4px rgba(111, 207, 134, .25); flex: 0 0 auto; }
body.gp .gp-status[data-state="urgent"] { background: var(--gp-accent); }
body.gp .gp-status[data-state="urgent"] .gp-status__dot { background: #fff; box-shadow: 0 0 0 4px rgba(255, 255, 255, .3); }
body.gp .gp-status[data-state="closed"] { background: var(--gp-card); color: var(--gp-ink); }
body.gp .gp-status[data-state="closed"] a { color: var(--gp-ink); }
body.gp .gp-status[data-state="closed"] .gp-status__dot { background: var(--gp-muted); box-shadow: 0 0 0 4px rgba(0, 0, 0, .08); }
body.gp .gp-status__cta { font-weight: 600; text-underline-offset: 3px; }

/* ---------- header ---------- */
body.gp .gp-header { padding-top: 18px; }
body.gp .gp-header__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 28px; }
body.gp .gp-logo { display: block; flex: 0 0 auto; }
body.gp .gp-logo img { display: block; height: 64px; width: auto; }
body.gp .gp-search { flex: 1 1 340px; max-width: 560px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--gp-ink); padding: 4px 0; order: 3; }
body.gp .gp-search svg { flex: 0 0 auto; }
body.gp .gp-search input[type="search"] {
	flex: 1; min-width: 0; border: 0 !important; background: transparent !important; box-shadow: none !important;
	font-family: var(--gp-serif); font-size: 19px; color: var(--gp-ink); padding: 8px 0 !important; border-radius: 0 !important;
}
body.gp .gp-search input[type="search"]:focus { outline: none; }
body.gp .gp-search:focus-within { border-bottom-width: 2px; margin-bottom: -1px; }
body.gp .gp-search button { min-height: 44px; padding: 10px 16px; font-size: 13px; letter-spacing: .06em; }
body.gp .gp-tools { display: flex; align-items: center; gap: 18px; order: 2; font-size: 15px; }
body.gp .gp-tools a { text-decoration: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
body.gp .gp-cart__count { display: inline-flex; min-width: 22px; height: 22px; align-items: center; justify-content: center; padding: 0 6px; box-sizing: border-box; background: var(--gp-ink); color: var(--gp-bg); font-size: 12px; font-weight: 600; }
@media (min-width: 900px) {
	body.gp .gp-search { order: 2; }
	body.gp .gp-tools { order: 3; }
}
body.gp .gp-nav { margin-top: 16px; border-top: 1px solid var(--gp-ink); border-bottom: 1px solid var(--gp-ink); }
body.gp .gp-nav ul { list-style: none; margin: 0; padding: 0; }
body.gp .gp-nav > ul { display: flex; justify-content: space-between; gap: 6px 26px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
body.gp .gp-nav > ul::-webkit-scrollbar { display: none; }
body.gp .gp-nav > ul > li { flex: 0 0 auto; position: relative; }
body.gp .gp-nav a, body.gp .gp-nav summary {
	display: flex; align-items: center; min-height: 48px; color: var(--gp-ink); text-decoration: none;
	font-family: var(--gp-serif); font-size: 19px; white-space: nowrap; cursor: pointer;
}
body.gp .gp-nav a:hover, body.gp .gp-nav summary:hover, body.gp .gp-nav .current-menu-item > a { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
body.gp .gp-nav summary { list-style: none; gap: 6px; }
body.gp .gp-nav summary::-webkit-details-marker { display: none; }
body.gp .gp-nav summary::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }
body.gp .gp-nav details[open] summary::after { transform: translateY(2px) rotate(-135deg); }
body.gp .gp-sub { position: absolute; z-index: 50; top: 100%; left: -16px; min-width: 230px; background: var(--gp-bg); border: 1px solid var(--gp-ink); padding: 8px 16px; box-shadow: 0 14px 30px rgba(35, 56, 44, .14); }
body.gp .gp-sub a { font-size: 17px; min-height: 44px; }
body.gp .gp-sub li + li { border-top: 1px solid var(--gp-line); }
/* .gp-nav ul { padding: 0 } (0,2,2) beat .gp-sub (0,2,1): the links sat on the panel edge (launch check 11-05). Padding only. */
body.gp .gp-nav ul.gp-sub { padding: 8px 16px; }
@media (max-width: 899px) {
	body.gp .gp-logo img { height: 52px; }
	body.gp .gp-nav > ul { justify-content: flex-start; padding: 0 2px; }
	body.gp .gp-nav a, body.gp .gp-nav summary { font-size: 17px; }
	/* the dropdown can't hang off a scrolling row on a phone: it opens as a full-width panel under the bar */
	body.gp .gp-nav { position: relative; }
	body.gp .gp-nav > ul > li { position: static; }
	body.gp .gp-sub { left: 0; right: 0; min-width: 0; border-left: 0; border-right: 0; }
}

/* ---------- breadcrumb + page title (shop pages) ---------- */
body.gp .gp-crumbs, body.gp .woocommerce-breadcrumb { font-size: 14px; color: var(--gp-muted); margin: 18px 0 0; }
body.gp .gp-crumbs a, body.gp .woocommerce-breadcrumb a { color: var(--gp-muted); }

/* ---------- home: hero K ---------- */
body.gp .gp-hero { background: var(--gp-band); color: var(--gp-band-ink); }
body.gp .gp-hero .gp-wrap { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(44px, 5vw, 72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 40px; align-items: center; }
body.gp .gp-hero__text { display: flex; flex-direction: column; gap: 20px; }
body.gp .gp-hero .gp-eyebrow { color: var(--gp-band-accent); }
body.gp .gp-hero h1 { margin: 0; color: var(--gp-band-ink); font-weight: 400; font-size: clamp(44px, 6.4vw, 96px); line-height: .98; }
body.gp .gp-hero h1 em { font-weight: 600; font-style: italic; }
body.gp .gp-hero__lede { margin: 0; max-width: 34em; color: var(--gp-band-muted); font-size: 17px; line-height: 1.6; }
body.gp .gp-hero__actions { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; }
body.gp .gp-hero__actions a:not(.gp-btn) { color: var(--gp-band-ink); text-underline-offset: 3px; }
body.gp .gp-print { justify-self: center; width: 100%; max-width: 420px; background: #fff; padding: 14px 14px 18px; box-sizing: border-box; transform: rotate(1.5deg); box-shadow: 0 18px 40px rgba(0, 0, 0, .28); text-decoration: none; display: block; }
body.gp .gp-print img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; height: auto; }
@media (prefers-reduced-motion: reduce) { body.gp .gp-print { transform: none; } }

/* ---------- address check (home, category, product) ---------- */
body.gp .gp-check { border: 1px solid var(--gp-ink); padding: clamp(18px, 3vw, 28px); display: flex; flex-direction: column; gap: 16px; }
body.gp .gp-check__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 20px; }
body.gp .gp-check h2 { margin: 0; font-weight: 600; font-size: clamp(24px, 2.6vw, 32px); }
body.gp .gp-check__note { margin: 0; font-size: 14px; color: var(--gp-muted); }
body.gp .gp-check form { display: flex; flex-wrap: wrap; gap: 10px; position: relative; }
body.gp .gp-check__field { position: relative; flex: 1 1 320px; min-width: 0; }
body.gp .gp-check input[type="text"] {
	width: 100%; box-sizing: border-box; min-height: 52px; padding: 12px 14px; border: 1px solid var(--gp-ink) !important; border-radius: 0 !important;
	background: var(--gp-bg); color: var(--gp-ink); font: 400 17px var(--gp-sans);
}
body.gp .gp-check button.gp-btn { min-height: 52px; padding: 12px 26px; }
body.gp .gp-sugg { position: absolute; z-index: 40; left: 0; right: 0; top: 100%; margin: 0; padding: 0; list-style: none; background: var(--gp-bg); border: 1px solid var(--gp-ink); border-top: 0; box-shadow: 0 14px 30px rgba(35, 56, 44, .14); }
body.gp .gp-sugg[hidden] { display: none; }
body.gp .gp-sugg li { padding: 11px 14px; cursor: pointer; line-height: 1.35; }
body.gp .gp-sugg li + li { border-top: 1px solid var(--gp-line); }
body.gp .gp-sugg li[aria-selected="true"], body.gp .gp-sugg li:hover { background: var(--gp-card); }
body.gp .gp-sugg small { display: block; color: var(--gp-muted); font-size: 13px; }
body.gp .gp-answer { background: var(--gp-card); padding: 16px 18px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
body.gp .gp-answer[hidden] { display: none; }
body.gp .gp-answer__text { display: flex; flex-direction: column; gap: 6px; flex: 1 1 360px; }
body.gp .gp-answer__head { margin: 0; font-size: 17px; font-weight: 600; }
body.gp .gp-answer[data-tone="ok"] .gp-answer__head { color: var(--gp-ok); }
body.gp .gp-answer__body { margin: 0; font-size: 15px; line-height: 1.5; color: var(--gp-muted); }
body.gp .gp-answer .gp-btn { white-space: nowrap; }

/* ---------- home sections ---------- */
body.gp .gp-sec { padding-top: 56px; padding-bottom: 8px; }
body.gp .gp-sec__head { border-bottom: 1px solid var(--gp-ink); padding-bottom: 14px; display: flex; flex-direction: column; gap: 10px; }
body.gp .gp-sec__head--row { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 14px; }
body.gp .gp-sec h2 { margin: 0; font-weight: 600; font-size: clamp(30px, 4vw, 44px); line-height: 1.1; }
body.gp .gp-sec__lede { margin: 0; color: var(--gp-muted); font-size: 16px; line-height: 1.6; max-width: 760px; }
body.gp .gp-ribbon { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 16px; border-top: 1px solid var(--gp-ink); border-bottom: 1px solid var(--gp-ink); padding: 14px 0; font-size: 16px; text-decoration: none; margin-top: 40px; }
body.gp .gp-ribbon b { color: var(--gp-accent); font-family: var(--gp-serif); font-size: 20px; font-weight: 600; }
body.gp .gp-ribbon span:last-child { font-weight: 600; }
body.gp .gp-occ { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); column-gap: 56px; list-style: none; margin: 0; padding: 0; }
body.gp .gp-occ a { display: flex; align-items: baseline; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--gp-line); text-decoration: none; }
body.gp .gp-occ__n { font-size: 13px; color: var(--gp-accent); font-weight: 600; width: 24px; flex: 0 0 auto; }
body.gp .gp-occ__name { font-family: var(--gp-serif); font-size: clamp(26px, 3vw, 38px); flex: 1; line-height: 1.15; }
body.gp .gp-occ__note { font-size: 15px; color: var(--gp-muted); white-space: nowrap; }
body.gp .gp-occ a:hover .gp-occ__name, body.gp .gp-occ a:focus-visible .gp-occ__name { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }

/* product cards (home, category, related) */
body.gp .gp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 250px), 1fr)); gap: 32px 18px; list-style: none; margin: 24px 0 0; padding: 0; }
body.gp .gp-card { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: var(--gp-ink); }
body.gp .gp-card__img { position: relative; display: block; background: var(--gp-card); }
body.gp .gp-card__img img { display: block; width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; }
/* WooCommerce clearfix (.products ul::before/::after) became an empty first grid cell in "You may also like" (11-05). */
body.gp .gp-grid::before, body.gp .gp-grid::after { content: none; display: none; }
body.gp .gp-card--out .gp-card__img img { opacity: .55; }
body.gp .gp-card__tag { position: absolute; left: 8px; top: 8px; background: var(--gp-band); color: var(--gp-band-ink); font-size: 12px; font-weight: 600; letter-spacing: .06em; padding: 5px 8px; }
body.gp .gp-card__name { font-family: var(--gp-serif); font-size: clamp(17px, 1.7vw, 21px); font-weight: 600; line-height: 1.2; }
body.gp .gp-card__price { font-size: 15px; color: var(--gp-muted); }
body.gp .gp-card__price del { opacity: .7; }
body.gp .gp-card__price ins { text-decoration: none; }
body.gp .gp-card:hover .gp-card__name, body.gp .gp-card:focus-visible .gp-card__name { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }

/* dark band (Grab & Go) */
body.gp .gp-band { background: var(--gp-band); color: var(--gp-band-ink); margin-top: 64px; }
body.gp .gp-band .gp-wrap { padding-top: 56px; padding-bottom: 56px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: 36px; align-items: center; }
body.gp .gp-band img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
body.gp .gp-band__text { display: flex; flex-direction: column; gap: 18px; }
body.gp .gp-band .gp-eyebrow { color: var(--gp-band-accent); }
body.gp .gp-band h2 { margin: 0; color: var(--gp-band-ink); font-weight: 400; font-size: clamp(34px, 5vw, 60px); line-height: 1.04; }
body.gp .gp-band p { margin: 0; font-size: 17px; line-height: 1.65; color: var(--gp-band-muted); }
body.gp .gp-band__actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
body.gp .gp-band__actions a:not(.gp-btn) { color: var(--gp-band-ink); }

/* reviews */
body.gp .gp-reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 24px; }
body.gp .gp-reviews[hidden] { display: none; }
body.gp .gp-review { margin: 0; background: var(--gp-card); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
body.gp .gp-stars { color: var(--gp-accent); letter-spacing: 3px; }
body.gp .gp-review blockquote { margin: 0; padding: 0; border: 0; font-family: var(--gp-serif); font-style: italic; font-size: 20px; line-height: 1.4; color: var(--gp-ink); }
body.gp .gp-review figcaption { font-size: 14px; color: var(--gp-muted); }
body.gp .gp-links { display: flex; flex-wrap: wrap; gap: 10px 18px; }
body.gp .gp-links a { font-weight: 600; }

/* delivery copy + towns */
body.gp .gp-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 36px; padding-top: 64px; }
body.gp .gp-two > div { display: flex; flex-direction: column; gap: 14px; }
body.gp .gp-two h2 { margin: 0; font-weight: 600; font-size: clamp(28px, 3.6vw, 40px); line-height: 1.12; }
body.gp .gp-two p { margin: 0; color: var(--gp-muted); line-height: 1.7; }
body.gp .gp-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
body.gp .gp-chips a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; border: 1px solid var(--gp-ink); text-decoration: none; padding: 10px 16px; font-size: 15px; }
body.gp .gp-chips a:hover, body.gp .gp-chips a:focus-visible { background: var(--gp-ink); color: var(--gp-bg); }
body.gp .gp-rows { list-style: none; margin: 0; padding: 0; }
body.gp .gp-rows a { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--gp-line); text-decoration: none; min-height: 44px; box-sizing: border-box; }
body.gp .gp-rows a:hover span:first-child, body.gp .gp-rows a:focus-visible span:first-child { text-decoration: underline; text-underline-offset: 4px; }

/* visit */
body.gp .gp-visit { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); border: 1px solid var(--gp-line); margin-top: 64px; margin-bottom: 64px; }
body.gp .gp-map { background: #eef2ec; min-height: 340px; position: relative; display: block; overflow: hidden; }
body.gp .gp-map svg.gp-map__art { position: absolute; inset: 0; width: 100%; height: 100%; }
body.gp .gp-map__pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -100%); }
body.gp .gp-map__tag { position: absolute; left: 16px; bottom: 16px; background: var(--gp-bg); color: var(--gp-ink); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; padding: 8px 12px; }
body.gp .gp-visit__info { padding: clamp(22px, 3vw, 32px); display: flex; flex-direction: column; gap: 18px; }
body.gp .gp-visit h2 { margin: 0; font-weight: 600; font-size: clamp(28px, 3.6vw, 40px); line-height: 1.12; }
body.gp .gp-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 14px 0; border-top: 1px solid var(--gp-line); border-bottom: 1px solid var(--gp-line); }
body.gp .gp-rating[hidden] { display: none; }
body.gp .gp-rating b { font-family: var(--gp-serif); font-size: 30px; font-weight: 600; line-height: 1; }
body.gp .gp-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 18px; font-size: 15px; line-height: 1.6; }
body.gp .gp-facts b { display: block; color: var(--gp-accent); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
body.gp .gp-facts span { color: var(--gp-muted); }
body.gp .gp-actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* ---------- footer ---------- */
body.gp .gp-footer { background: var(--gp-band); color: var(--gp-band-muted); font-size: 15px; line-height: 1.8; }
body.gp .gp-footer a { color: var(--gp-band-ink); text-decoration: none; }
body.gp .gp-footer a:hover, body.gp .gp-footer a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
body.gp .gp-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 28px; padding-top: 48px; padding-bottom: 36px; }
body.gp .gp-footer h2 { margin: 0 0 8px; color: var(--gp-band-ink); font-family: var(--gp-sans); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
body.gp .gp-footer__brand b { display: block; color: var(--gp-band-ink); font-family: var(--gp-serif); font-size: 24px; font-weight: 600; line-height: 1.2; margin-bottom: 6px; }
body.gp .gp-footer ul { list-style: none; margin: 0; padding: 0; }
body.gp .gp-footer li a { display: inline-block; padding: 3px 0; }
body.gp .gp-footer__small { padding-top: 4px; padding-bottom: 28px; display: flex; justify-content: center; text-align: center; font-size: 13px; line-height: 1.6; }
body.gp .gp-footer__small p { margin: 0; flex: 0 1 720px; }

/* ---------- WooCommerce: shared ---------- */
body.gp .woocommerce .woocommerce-message, body.gp .woocommerce .woocommerce-info, body.gp .woocommerce .woocommerce-error { border-radius: 0; border-top-color: var(--gp-ink); background: var(--gp-card); color: var(--gp-ink); }
body.gp .woocommerce .woocommerce-message::before, body.gp .woocommerce .woocommerce-info::before { color: var(--gp-ink); }
body.gp .woocommerce a.button, body.gp .woocommerce button.button, body.gp .woocommerce input.button, body.gp .woocommerce #respond input#submit, body.gp .woocommerce a.button.alt, body.gp .woocommerce button.button.alt, body.gp .woocommerce input.button.alt {
	border-radius: 0; background: var(--gp-accent); color: #fff; font-family: var(--gp-sans); font-weight: 600; min-height: 48px; padding: 12px 22px;
}
body.gp .woocommerce a.button:hover, body.gp .woocommerce button.button:hover, body.gp .woocommerce a.button.alt:hover, body.gp .woocommerce button.button.alt:hover { background: var(--gp-accent-dark); color: #fff; }
body.gp .woocommerce .quantity .qty { min-height: 48px; border: 1px solid var(--gp-ink); border-radius: 0; }
body.gp .site-main.gp-main { max-width: var(--gp-max); margin: 0 auto; padding: 0 16px 64px; box-sizing: border-box; }

/* the owner's thank-you note (mu-plugin cf-thanks-banner.php), same words, Garden Press colors */
body.gp .cf-thanks { background: var(--gp-card); color: var(--gp-ink); border-bottom: 1px solid var(--gp-line); font-family: var(--gp-serif); }
body.gp .cf-thanks .cf-thanks-sign { color: var(--gp-accent); }
body.gp .cf-thanks-x, body.gp .cf-thanks-x:hover, body.gp .cf-thanks-x:focus { color: var(--gp-ink) !important; }

/* ---------- category / shop page ---------- */
body.gp .gp-shop { padding-bottom: 64px; }
body.gp .gp-shop__head { display: flex; flex-direction: column; gap: 12px; padding: 18px 0 8px; }
body.gp .gp-shop__head h1 { margin: 0; font-weight: 400; font-size: clamp(40px, 5vw, 72px); line-height: 1.02; }
body.gp .gp-shop__lede .cf-cat-intro { text-align: left !important; margin: 0 !important; max-width: 760px !important; font-size: 17px !important; color: var(--gp-ink); }
body.gp .gp-shop__lede .cf-cat-intro p { margin: 0; }
body.gp .gp-shop__sub { margin: 0; font-size: 16px; line-height: 1.6; color: var(--gp-muted); max-width: 760px; }
body.gp .gp-shop__sub a { color: var(--gp-ink); font-weight: 600; }
body.gp .gp-shop__check { margin: 18px 0 0; }
body.gp .gp-shop__check .gp-check { padding: 16px 18px; gap: 12px; }
body.gp .gp-shop__check .gp-check h2 { font-size: clamp(20px, 2vw, 24px); }
body.gp .gp-shop__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 18px; padding: 12px 0; border-top: 1px solid var(--gp-ink); border-bottom: 1px solid var(--gp-ink); }
body.gp .gp-shop__bar .gp-chips { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 2px; max-width: 100%; }
body.gp .gp-shop__bar .gp-chips li { flex: 0 0 auto; }
body.gp .gp-shop__bar .gp-chips a { font-size: 14px; padding: 9px 14px; white-space: nowrap; }
body.gp .gp-chips a[aria-current] { background: var(--gp-ink); color: var(--gp-bg); }
body.gp .gp-shop__sort { display: flex; align-items: center; gap: 14px; margin-left: auto; }
body.gp .gp-shop__sort .woocommerce-result-count { margin: 0; font-size: 14px; color: var(--gp-muted); float: none; }
body.gp .gp-shop__sort .woocommerce-ordering { margin: 0; float: none; }
body.gp .gp-shop__sort select { border: 1px solid var(--gp-ink); border-radius: 0; background: var(--gp-bg); color: var(--gp-ink); font: 400 14px var(--gp-sans); padding: 8px 10px; min-height: 44px; }
body.gp .gp-shop__notes:empty { display: none; }
body.gp .gp-shop__notes { margin-top: 16px; }
body.gp .gp-shop__notes .cf-affirm-note { border-radius: 0 !important; background: var(--gp-card) !important; border-color: var(--gp-line) !important; color: var(--gp-ink) !important; }
body.gp .gp-pages { margin-top: 40px; }
body.gp .gp-pages .woocommerce-pagination ul.page-numbers { border: 0; display: flex; justify-content: center; gap: 6px; }
body.gp .gp-pages .woocommerce-pagination ul.page-numbers li { border: 0; }
body.gp .gp-pages .page-numbers a, body.gp .gp-pages .page-numbers span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; border: 1px solid var(--gp-ink); color: var(--gp-ink); font-size: 15px; }
body.gp .gp-pages .page-numbers span.current { background: var(--gp-ink); color: var(--gp-bg); }
body.gp .gp-empty { padding: 40px 0; font-size: 17px; }
body.gp .gp-about { border-top: 1px solid var(--gp-ink); margin-top: 56px; padding-top: 20px; max-width: 760px; }
body.gp .gp-about h2 { margin: 0 0 10px; font-weight: 600; font-size: 28px; }
body.gp .gp-about__text { color: var(--gp-muted); line-height: 1.7; }
@media (max-width: 640px) {
	body.gp .gp-shop__sort { margin-left: 0; width: 100%; justify-content: space-between; }
}

/* ---------- product page ---------- */
body.gp.woocommerce-page #primary .site-main, body.gp.single-product .site-main { max-width: var(--gp-max); margin: 0 auto; padding: 0 16px 64px; box-sizing: border-box; }
body.gp.single-product div.product { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px 48px; align-items: start; margin-top: 18px; }
@media (min-width: 900px) { body.gp.single-product div.product { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); } }
body.gp.single-product div.product > * { grid-column: 1 / -1; }
body.gp.single-product div.product > .woocommerce-product-gallery, body.gp.single-product div.product > .summary { width: auto !important; float: none !important; margin: 0 !important; }
@media (min-width: 900px) {
	/* Not sticky (launch check 11-05): the tabs and "You may also like" share this grid, so a sticky photo slid over them. */
	body.gp.single-product div.product > .woocommerce-product-gallery { grid-column: 1; }
	body.gp.single-product div.product > .summary { grid-column: 2; }
}
body.gp.single-product .woocommerce-product-gallery img { aspect-ratio: 4 / 5; object-fit: cover; background: var(--gp-card); }
body.gp.single-product .woocommerce-product-gallery .flex-control-thumbs { display: flex; gap: 8px; margin-top: 8px !important; }
body.gp.single-product .woocommerce-product-gallery .flex-control-thumbs li { width: 72px !important; }
body.gp.single-product .summary { display: flex; flex-direction: column; gap: 14px; }
body.gp.single-product .summary .product_title { margin: 0; font-weight: 400; font-size: clamp(40px, 5vw, 64px); line-height: 1.02; }
body.gp.single-product .summary > p.price { margin: 0; font-family: var(--gp-serif); font-size: 28px; font-weight: 600; color: var(--gp-ink); }
body.gp.single-product .summary .cf-rv-line { margin: 0; }
body.gp.single-product .summary .cf-rv-stars { color: var(--gp-accent); }
body.gp.single-product .summary .woocommerce-product-details__short-description { color: var(--gp-muted); }
body.gp.single-product .summary form.cart { margin: 0; }
body.gp.single-product .summary .single_add_to_cart_button, body.gp.single-product .summary button.single_add_to_cart_button.button.alt {
	width: 100%; min-height: 58px; border-radius: 0 !important; background: var(--gp-accent) !important; color: #fff !important; font: 600 17px/1.2 var(--gp-sans) !important; letter-spacing: .04em;
}
body.gp.single-product .summary .single_add_to_cart_button:hover { background: var(--gp-accent-dark) !important; }
body.gp .gp-trust { list-style: none; margin: 6px 0 0; padding: 0; border-top: 1px solid var(--gp-line); }
body.gp .gp-trust li > span, body.gp .gp-trust li > a { display: flex; }
body.gp .gp-trust li { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--gp-line); font-size: 15px; }
body.gp .gp-trust li > a:only-child { flex: 1; justify-content: space-between; gap: 12px; text-decoration: none; }
body.gp .gp-trust li > a:only-child span:last-child { font-weight: 600; color: var(--gp-accent); }
body.gp .gp-trust li > span:last-child { color: var(--gp-muted); text-align: right; }
body.gp .summary .cf-rv-card { border-radius: 0; border-color: var(--gp-line); background: var(--gp-card); }
body.gp .summary .cf-rv-card p { font-family: var(--gp-serif) !important; font-style: italic; }
body.gp .summary .cf-rv-stars { color: var(--gp-accent); }
body.gp .summary .cf-affirm-note { border-radius: 0 !important; }

/* description tabs → one plain section */
body.gp.single-product .woocommerce-tabs { margin-top: 24px; border-top: 1px solid var(--gp-ink); padding-top: 8px; }
body.gp.single-product .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 12px !important; display: flex; gap: 18px; }
body.gp.single-product .woocommerce-tabs ul.tabs::before, body.gp.single-product .woocommerce-tabs ul.tabs li::before, body.gp.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.gp.single-product .woocommerce-tabs ul.tabs li { border: 0 !important; background: transparent !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important; }
body.gp.single-product .woocommerce-tabs ul.tabs li a { font-family: var(--gp-sans); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--gp-muted) !important; padding: 12px 0 !important; }
body.gp.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--gp-ink) !important; border-bottom: 2px solid var(--gp-ink); }
body.gp.single-product .woocommerce-tabs .panel { max-width: 760px; color: var(--gp-muted); line-height: 1.7; }
body.gp.single-product .woocommerce-tabs .panel h2 { font-size: 24px; color: var(--gp-ink); }
body.gp .gp-related { margin-top: 56px; }
body.gp .gp-related h2 { margin: 0; padding-bottom: 12px; border-bottom: 1px solid var(--gp-ink); font-weight: 600; font-size: clamp(28px, 3.6vw, 40px); }

/* Clayton Product Flow restyled (its own CSS sets these as variables under html.cpf-on) */
html.cpf-on body.gp .cpf-flow { --ink: #23382c; --text: #23382c; --muted: #4d5b52; --gold: #8a3b1f; --gold-soft: #eef2ee; --line: #d5ddd6; --ok: #2f6b3a; }
html.cpf-on body.gp .cpf-urgency { --ink: #23382c; --gold: #8a3b1f; --gold-soft: #eef2ee; border-radius: 0 !important; background: var(--gp-card); color: var(--gp-ink); }
html.cpf-on body.gp .cpf-flow .cpf-lbl { font-size: 13px; letter-spacing: .14em; color: var(--gp-ink); }
html.cpf-on body.gp .cpf-flow :is(button, input, select, textarea, .cpf-size-btn, .cpf-opt, .cpf-pill, .cpf-chip, .cpf-day, .cpf-card, .cpf-pop, .cpf-sel, .cpf-msg, .cpf-note, .cpf-warn, .cpf-gg, .cpf-gg-ok, .cpf-gg-alt, .cpf-gg-outside, .cpf-gg-pickup, .cpf-insp-panel, .cpf-cal, .cpf-summary, .cpf-extras, .cpf-card-img, .cpf-today, .cpf-fee, .cpf-sugg-btn, .cpf-skip-btn, .cpf-insp-toggle, .cpf-occ-pick) {
	border-radius: 0 !important;
}
html.cpf-on body.gp .cpf-modal :is(.cpf-card, button, input, textarea) { border-radius: 0 !important; }
html.cpf-on body.gp .cpf-cal-head span, body.gp .cpf-modal .cpf-card h3 { font-family: var(--gp-serif) !important; font-weight: 600; color: var(--gp-ink); }
html.cpf-on body.gp .cpf-flow [class*="lff-"], html.cpf-on body.gp .cpf-flow [class*="lff-"] * { border-radius: 0 !important; }

/* ---------- owner 10-27 (phone review) ---------- */
/* status band: one line, the message is the link; phone on its own on narrow screens */
body.gp .gp-status__now span[aria-hidden] { font-weight: 600; }
body.gp .gp-status__tel { opacity: .9; white-space: nowrap; }
@media (max-width: 699px) {
	body.gp .gp-status .gp-wrap { gap: 4px 14px; padding-top: 8px; padding-bottom: 8px; font-size: 13px; line-height: 1.4; }
	body.gp .gp-status__dot { width: 8px; height: 8px; }
}

/* hero art: the print + the season line under it */
body.gp .gp-hero__art { justify-self: center; width: 100%; max-width: 420px; display: flex; flex-direction: column; align-items: center; gap: 18px; }
body.gp .gp-print .gp-print__name { display: block; margin: 12px 0 0; font-family: var(--gp-serif); font-size: 18px; color: var(--gp-ink); text-align: center; }
body.gp .gp-print .gp-print__price { display: block; margin: 2px 0 0; font-size: 14px; color: var(--gp-muted); text-align: center; }
body.gp .gp-print .gp-print__price .amount { color: var(--gp-muted); }
body.gp a.gp-season { color: var(--gp-band-ink); text-decoration: none; font-size: 15px; text-align: center; line-height: 1.4; }
body.gp a.gp-season b { color: var(--gp-band-accent); font-family: var(--gp-serif); font-size: 18px; font-weight: 600; }
body.gp a.gp-season:hover, body.gp a.gp-season:focus-visible { text-decoration: underline; text-underline-offset: 3px; }

/* phone hero: keep the desktop look, but a small print BESIDE the headline instead of a full-width photo below it */
@media (max-width: 699px) {
	body.gp .gp-hero .gp-wrap { grid-template-columns: minmax(0, 1fr) 40%; gap: 14px 14px; padding-top: 26px; padding-bottom: 30px; align-items: start; }
	body.gp .gp-hero__text { display: contents; }
	body.gp .gp-hero .gp-eyebrow { grid-column: 1 / -1; grid-row: 1; font-size: 11px; letter-spacing: .14em; }
	body.gp .gp-hero h1 { grid-column: 1; grid-row: 2; font-size: clamp(32px, 9.4vw, 44px); line-height: 1; align-self: center; }
	body.gp .gp-hero__art { grid-column: 2; grid-row: 2; gap: 10px; }
	body.gp .gp-print { padding: 6px 6px 8px; transform: rotate(2deg); box-shadow: 0 10px 24px rgba(0, 0, 0, .3); }
	body.gp .gp-print .gp-print__name { font-size: 13px; margin-top: 6px; line-height: 1.2; }
	body.gp .gp-print .gp-print__price { font-size: 12px; }
	body.gp a.gp-season { font-size: 12px; }
	body.gp a.gp-season b { display: block; font-size: 14px; }
	body.gp .gp-hero__lede { grid-column: 1 / -1; grid-row: 3; font-size: 15px; }
	body.gp .gp-hero__actions { grid-column: 1 / -1; grid-row: 4; }
}

/* phone menu: still a swipe row, now it SHOWS it swipes — a fade + arrow at the edge that goes away at the end */
body.gp .gp-nav { position: relative; }
body.gp .gp-nav__more { display: none; }
@media (max-width: 899px) {
	body.gp .gp-nav__more {
		display: flex; align-items: center; justify-content: flex-end; position: absolute; top: 0; right: 0; bottom: 0; width: 56px;
		padding: 0; border: 0; border-radius: 0; cursor: pointer; color: var(--gp-ink); font-size: 22px; line-height: 1;
		background: linear-gradient(to right, rgba(255, 255, 255, 0), #fff 60%); transition: opacity .2s ease;
	}
	body.gp .gp-nav.is-end .gp-nav__more { opacity: 0; pointer-events: none; }
	body.gp .gp-nav > ul { padding-right: 48px; scroll-snap-type: x proximity; }
	body.gp .gp-nav > ul > li { scroll-snap-align: start; }
}
@media (max-width: 899px) and (prefers-reduced-motion: no-preference) {
	body.gp .gp-nav:not(.is-end):not(.was-moved) .gp-nav__more span { animation: gp-nudge 1.6s ease-in-out 3; }
}
@keyframes gp-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }

/* ---------- audit 10-27 (Fable) + owner answers ---------- */
/* the thank-you note is off in the new design (owner); it stays on the current site until the switch */
body.gp .cf-thanks { display: none !important; }
/* "from $78.95" on one line */
body.gp .gp-print__price .amount, body.gp .gp-print__price .woocommerce-Price-currencySymbol, body.gp .gp-print__price bdi { display: inline; margin: 0; font: inherit; color: inherit; }
/* desktop hero: Shop Flowers shows without scrolling */
body.gp .gp-hero h1 { font-size: clamp(44px, 5vw, 72px); }
body.gp .gp-hero__art { max-width: 360px; }
/* status band: a full-size tap target */
body.gp .gp-status__now { min-height: 44px; padding: 0 4px; }
@media (max-width: 699px) {
	body.gp .gp-status .gp-wrap { padding-top: 0; padding-bottom: 0; }
	body.gp .gp-status__tel { display: none; } /* the number is in the hero, visit block and footer */
	body.gp .gp-header { padding-top: 10px; }
	body.gp .gp-nav { margin-top: 8px; }
	/* phone hero: a bigger photo, a calmer headline */
	body.gp .gp-hero .gp-wrap { grid-template-columns: minmax(0, 1fr) 47%; }
	body.gp .gp-hero .gp-eyebrow { display: none; }
	body.gp .gp-hero h1 { grid-row: 1; font-size: clamp(28px, 8vw, 34px); }
	body.gp .gp-hero__art { grid-row: 1; max-width: none; }
	body.gp .gp-hero__lede { grid-row: 2; }
	body.gp .gp-hero__actions { grid-row: 3; }
	body.gp .gp-print .gp-print__name { font-size: 14px; }
	body.gp .gp-print .gp-print__price, body.gp a.gp-season { font-size: 14px; }
	body.gp a.gp-season b { font-size: 15px; }
}

/* category pages */
body.gp details.gp-shop__check > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 16px; border: 1px solid var(--gp-ink); font-family: var(--gp-serif); font-size: 18px; font-weight: 600; }
body.gp details.gp-shop__check > summary::-webkit-details-marker { display: none; }
body.gp details.gp-shop__check[open] > summary { display: none; } /* open = the full box with its own title */
body.gp .gp-shop__notes .ldr-free-places, body.gp .gp-shop__notes [style*="radius"] { border-radius: 0 !important; }
body.gp .gp-shop__bar .gp-chips { -webkit-mask-image: linear-gradient(to right, #000 85%, transparent); mask-image: linear-gradient(to right, #000 85%, transparent); padding-right: 24px; }
@media (max-width: 640px) {
	body.gp .gp-shop__head h1 { font-size: clamp(30px, 8vw, 40px); }
	body.gp .gp-shop__sort .woocommerce-result-count { display: none; }
	body.gp .gp-shop__sort, body.gp .gp-shop__sort .woocommerce-ordering, body.gp .gp-shop__sort select { width: 100%; }
}

/* product page */
body.gp.single-product .summary .quantity { display: none !important; } /* every order is one arrangement (owner) */
body.gp .gp-pd-from { margin: -8px 0 0; font-size: 14px; color: var(--gp-muted); }
body.gp .summary > p.price .gp-size { font-family: var(--gp-sans); font-size: 16px; font-weight: 500; color: var(--gp-muted); }

/* home, phone: shorter page */
@media (max-width: 699px) {
	body.gp .gp-reviews { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; -webkit-overflow-scrolling: touch; padding-bottom: 6px; -webkit-mask-image: linear-gradient(to right, #000 88%, transparent); mask-image: linear-gradient(to right, #000 88%, transparent); }
	body.gp .gp-review { flex: 0 0 85%; scroll-snap-align: start; }
	body.gp .gp-map { min-height: 180px; }
	body.gp .gp-footer__grid { grid-template-columns: 1fr 1fr; gap: 22px 18px; }
	body.gp .gp-footer__brand { grid-column: 1 / -1; }
}

/* phone hero, owner 10-27 (2nd look): the headline stays in its column, the season line sits under it (beside the
   photo), and the paragraph starts below both with room to breathe */
@media (max-width: 699px) {
	body.gp .gp-hero .gp-wrap { grid-template-columns: minmax(0, 1fr) 46%; column-gap: 18px; row-gap: 0; align-items: start; }
	body.gp .gp-hero__art { display: contents; }
	body.gp .gp-print { grid-column: 2; grid-row: 1 / span 2; align-self: start; max-width: none; margin-top: 4px; }
	body.gp .gp-hero h1 { grid-column: 1; grid-row: 1; align-self: start; font-size: clamp(26px, 7.2vw, 32px); line-height: 1.05; overflow-wrap: break-word; }
	body.gp a.gp-season { grid-column: 1; grid-row: 2; align-self: end; text-align: left; font-size: 14px; margin-top: 16px; }
	body.gp a.gp-season b { display: block; font-size: 16px; }
	body.gp .gp-hero__lede { grid-column: 1 / -1; grid-row: 3; margin-top: 28px; font-size: 15.5px; line-height: 1.6; }
	body.gp .gp-hero__actions { grid-column: 1 / -1; grid-row: 4; margin-top: 20px; }
}
@media (max-width: 699px) {
	/* the headline fills its column beside the photo, a word or two per line (owner 10-27) */
	body.gp .gp-hero h1 { font-size: clamp(30px, 9.6vw, 40px); line-height: 1.02; letter-spacing: -.01em; }
}
@media (max-width: 699px) {
	/* owner 10-27 (3rd look): season line stays UNDER the photo; only the spacing changes */
	body.gp .gp-hero__art { display: flex; grid-column: 2; grid-row: 1; gap: 12px; align-items: stretch; }
	body.gp .gp-print { grid-column: auto; grid-row: auto; margin-top: 0; }
	body.gp a.gp-season { grid-column: auto; grid-row: auto; align-self: auto; margin-top: 0; text-align: center; font-size: 13px; line-height: 1.35; }
	body.gp a.gp-season b { display: block; font-size: 15px; }
	body.gp .gp-hero h1 { grid-column: 1; grid-row: 1; align-self: center; }
	body.gp .gp-hero__lede { grid-row: 2; margin-top: 28px; }
	body.gp .gp-hero__actions { grid-row: 3; margin-top: 20px; }
}

/* ---------- owner 10-27: trust strip back under the hero, and a hero button that follows today ---------- */
body.gp .gp-trust-strip { border-bottom: 1px solid var(--gp-line); background: var(--gp-bg); }
body.gp .gp-trust-strip ul { list-style: none; margin: 0 auto; padding-top: 14px; padding-bottom: 14px; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 0; font-size: 15px; color: var(--gp-muted); }
body.gp .gp-trust-strip li { position: relative; padding: 0 18px; white-space: nowrap; line-height: 1.4; }
body.gp .gp-trust-strip li + li::before { content: ""; position: absolute; left: 0; top: 50%; width: 4px; height: 4px; margin-top: -2px; background: var(--gp-accent); }
body.gp .gp-trust-strip b { color: var(--gp-ink); font-weight: 600; }
body.gp .gp-trust-strip a { color: var(--gp-ink); text-decoration: none; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; min-height: 32px; }
body.gp .gp-trust-strip a:hover span[data-gp-trust] { text-decoration: underline; text-underline-offset: 3px; }
body.gp .gp-hero__actions { align-items: center; }
body.gp a.gp-hero__alt { color: var(--gp-band-ink); font-weight: 600; text-underline-offset: 3px; }
body.gp a.gp-hero__addr { flex-basis: 100%; color: var(--gp-band-muted); font-size: 14px; }
@media (max-width: 699px) {
	body.gp .gp-trust-strip ul { font-size: 13px; padding-top: 10px; padding-bottom: 10px; }
	body.gp .gp-trust-strip li { padding: 0 10px; }
	body.gp .gp-trust-strip li:first-child { flex-basis: 100%; text-align: center; }
	body.gp .gp-trust-strip li:first-child a { justify-content: center; }
	body.gp .gp-trust-strip li:nth-child(2)::before { display: none; }
	body.gp .gp-trust-strip__opt { display: none; }
	body.gp .gp-hero__actions .gp-btn { flex: 1 1 100%; } /* a full-width button for the thumb */
	body.gp a.gp-hero__alt { flex: 1 1 100%; text-align: center; }
}

/* ---------- owner 10-27 (4th look): product cards + the list under Add to cart ---------- */
/* cards: every photo on the same soft card colour (white and grey photo backgrounds blend in), no sticky underline after a tap */
body.gp .gp-card__img { background: var(--gp-card); overflow: hidden; }
body.gp .gp-card__img img { mix-blend-mode: multiply; }
body.gp .gp-grid { row-gap: 26px; }
body.gp .gp-card { gap: 6px; }
body.gp .gp-card__name { font-size: clamp(17px, 1.7vw, 20px); }
body.gp .gp-card__price, body.gp .gp-card__price * { color: var(--gp-muted) !important; font-weight: 400 !important; font-size: 15px; }
body.gp .gp-card:hover .gp-card__name, body.gp .gp-card:focus-visible .gp-card__name { text-decoration: none; }
@media (hover: hover) { body.gp .gp-card:hover .gp-card__name { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; } }
body.gp .gp-card:focus-visible .gp-card__name { text-decoration: underline; text-underline-offset: 4px; }

/* the list under Add to cart: one clean row each */
body.gp .gp-trust { margin: 8px 0 0; border-top: 1px solid var(--gp-line); }
body.gp .gp-trust li { display: block; padding: 0; border-bottom: 1px solid var(--gp-line); font-size: inherit; }
body.gp .gp-trust__row { display: flex; flex-direction: column; gap: 2px; padding: 13px 28px 13px 0; position: relative; text-decoration: none; color: var(--gp-ink); }
body.gp .gp-trust__t { font-size: 15px; font-weight: 600; color: var(--gp-ink); }
body.gp .gp-trust__s { font-size: 14px; color: var(--gp-muted); }
body.gp a.gp-trust__row::after { content: "›"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 22px; color: var(--gp-accent); }
body.gp a.gp-trust__row .gp-trust__s { color: var(--gp-accent); }
@media (hover: hover) { body.gp a.gp-trust__row:hover .gp-trust__t { text-decoration: underline; text-underline-offset: 3px; } }
body.gp .gp-trust li > a.gp-trust__row { flex: none; justify-content: flex-start; gap: 2px; }

/* ---------- owner 10-27 (5th look): phones ---------- */
@media (max-width: 699px) {
	body.gp a.gp-hero__addr { text-align: center; } /* the address centred under the full-width button */
	/* trust strip: ONE line — the Google rating + "Best Local Florist in Clayton" */
	body.gp .gp-trust-strip ul { flex-wrap: nowrap; justify-content: center; font-size: 12.5px; padding-top: 9px; padding-bottom: 9px; }
	body.gp .gp-trust-strip li { padding: 0 8px; }
	body.gp .gp-trust-strip li:first-child { flex-basis: auto; }
	body.gp .gp-trust-strip li:nth-child(2)::before { display: block; }
	body.gp .gp-trust-strip li:nth-child(n+3) { display: none; }
	body.gp .gp-trust-strip .gp-stars { letter-spacing: 0; font-size: 11px; }
}
body.gp .gp-home-check .gp-check { padding: clamp(18px, 3vw, 28px); gap: 16px; } /* the home box keeps its full size when open */
body.gp .gp-home-check .gp-check h2 { font-size: clamp(24px, 2.6vw, 32px); }

/* ---------- owner 10-27 (choice A): on phones the serif is for big headlines only; product names, the menu, search
   and small labels use the clean paragraph font (crisper at small sizes) ---------- */
@media (max-width: 699px) {
	body.gp .gp-card__name { font-family: var(--gp-sans); font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: 0; }
	body.gp .gp-nav a, body.gp .gp-nav summary { font-family: var(--gp-sans); font-size: 15px; font-weight: 500; }
	body.gp .gp-sub a { font-family: var(--gp-sans); font-size: 15px; }
	body.gp .gp-search input[type="search"] { font-family: var(--gp-sans); font-size: 16px; }
	body.gp .gp-print .gp-print__name { font-family: var(--gp-sans); font-weight: 600; font-size: 13px; }
	body.gp a.gp-season b { font-family: var(--gp-sans); font-size: 14px; }
	body.gp details.gp-shop__check > summary { font-family: var(--gp-sans); font-size: 15px; }
	body.gp .gp-ribbon b, body.gp .gp-footer__brand b { font-family: var(--gp-sans); }
	body.gp .gp-occ__name { font-size: 24px; }
}

/* ---------- pre-launch review fixes (10-28) ---------- */
/* N1: on desktop the row fits, so it must not clip the Occasions panel (overflow-x:auto also clips vertically) */
@media (min-width: 900px) {
	body.gp .gp-nav > ul { overflow: visible; }
}
/* 3rd menu level (Sympathy › Standing Sprays…) */
body.gp .gp-sub2 { margin: 0 0 6px 14px !important; padding-left: 12px !important; border-left: 1px solid var(--gp-line); }
body.gp .gp-sub2 a { font-size: 15px; min-height: 40px; }
body.gp .gp-sub2 li + li { border-top: 0; }
@media (max-width: 899px) {
	body.gp .gp-sub { max-height: 70vh; overflow-y: auto; }
}
/* N2: cart, account and 404 sit in the page width like everything else; Woo buttons in the site's square rust style */
body.gp.woocommerce-cart #gp-main, body.gp.woocommerce-account #gp-main, body.gp.error404 #gp-main {
	max-width: var(--gp-max); margin: 0 auto; padding: 24px 16px 64px; box-sizing: border-box;
}
body.gp.woocommerce-cart a.checkout-button, body.gp.woocommerce-cart .button, body.gp.woocommerce-account .button,
body.gp.woocommerce-cart button[name="update_cart"], body.gp.woocommerce-cart button[name="apply_coupon"] {
	border-radius: 0 !important; background: var(--gp-accent) !important; color: #fff !important; border: 0 !important;
	font: 600 16px/1.2 var(--gp-sans) !important; min-height: 48px; padding: 14px 22px !important; text-transform: none !important;
}
body.gp.woocommerce-cart a.checkout-button:hover, body.gp.woocommerce-cart .button:hover, body.gp.woocommerce-account .button:hover { background: var(--gp-accent-dark) !important; }
body.gp.woocommerce-cart button[name="update_cart"] { display: none !important; } /* nothing to update: no quantity boxes */
body.gp .gp-qty { font-weight: 600; }
body.gp.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 24px; padding: 0; border-top: 1px solid var(--gp-line); }
body.gp.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--gp-line); }
body.gp.woocommerce-account .woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 44px; text-decoration: none; }
body.gp.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { font-weight: 600; }
/* A1: the skip link shows when it has focus */
body.gp .skip-link.gp-sr:focus {
	position: fixed !important; left: 12px; top: 12px; width: auto; height: auto; clip: auto; overflow: visible; z-index: 100000;
	padding: 12px 16px; background: #fff; color: var(--gp-ink); outline: 2px solid var(--gp-accent); font: 600 16px/1.2 var(--gp-sans);
}
/* A2: a focus ring you can see on the green band, the footer and the rust "same-day" band */
body.gp .gp-status a:focus-visible, body.gp .gp-footer a:focus-visible { outline-color: var(--gp-band-accent); }
body.gp .gp-status[data-state="urgent"] a:focus-visible { outline-color: #fff; }
body.gp .gp-status[data-state="closed"] a:focus-visible { outline-color: var(--gp-accent); }
/* A4: the search box shows focus */
body.gp .gp-search:focus-within { outline: 2px solid var(--gp-accent); outline-offset: 4px; }
/* A8 + A9 */
body.gp .gp-footer li a { display: inline-block; padding: 8px 0; }
body.gp .gp-card__price del { opacity: 1; }
/* home: the two help paragraphs carried over from the current page */
body.gp .gp-two__h3 { font-size: clamp(19px, 2vw, 22px); margin: 22px 0 6px; }
/* category FAQ (carried over from the current category template) */
body.gp .gp-faq { margin: 48px 0 0; max-width: 820px; }
body.gp .gp-faq h2 { font-size: clamp(24px, 2.6vw, 32px); margin: 0 0 12px; }
body.gp .gp-faq__item { border-top: 1px solid var(--gp-line); }
body.gp .gp-faq__item:last-child { border-bottom: 1px solid var(--gp-line); }
body.gp .gp-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 52px; padding: 10px 0; cursor: pointer; list-style: none; font: 600 17px/1.35 var(--gp-sans); color: var(--gp-ink); }
body.gp .gp-faq__item summary::-webkit-details-marker { display: none; }
body.gp .gp-faq__item summary::after { content: "+"; font-size: 22px; font-weight: 400; flex: 0 0 auto; }
body.gp .gp-faq__item[open] summary::after { content: "–"; }
body.gp .gp-faq__a { padding: 0 0 14px; color: var(--gp-muted); }
body.gp .gp-faq__a p { margin: 0 0 10px; }
/* N5: phones — a long category intro shows three lines and "Read more" */
body.gp .gp-shop__lede.is-clamped { max-height: 4.8em; overflow: hidden; }
body.gp button.gp-more { background: none; border: 0; padding: 6px 0; min-height: 44px; color: var(--gp-ink); font: 600 15px/1 var(--gp-sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* ---------- footer, owner 11-05: logo over the address + the badges row (2024 award, SAF Proud Member) ---------- */
body.gp .gp-footer__brand > img { display: block; width: 112px; height: auto; margin: 0 0 14px; }
body.gp .gp-footer__brand p { margin: 0 0 10px; }
body.gp .gp-footer__brand p:last-child { margin-bottom: 0; }
body.gp .gp-footer__brand strong { color: var(--gp-band-ink); font-weight: 600; }
body.gp .gp-footer__note { display: block; margin-top: 2px; font-size: 13.5px; font-style: italic; line-height: 1.45; }
body.gp .gp-footer__badges { border-top: 1px solid rgba(251, 247, 242, .18); padding-top: 28px; padding-bottom: 22px; display: flex; justify-content: center; align-items: flex-start; gap: 12px; }
body.gp .gp-footer a.gp-badge { flex: 1 1 0; min-width: 0; max-width: 260px; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 0; color: var(--gp-band-muted); text-decoration: none; }
body.gp .gp-badge__tile { display: flex; align-items: center; justify-content: center; width: 100%; max-width: 200px; height: 84px; padding: 10px 14px; box-sizing: border-box; background: #fff; }
body.gp .gp-badge__tile img { display: block; width: auto; height: auto; max-width: 100%; max-height: 64px; }
body.gp .gp-badge__cap { font: italic 400 13px/1.45 var(--gp-serif); text-align: center; color: var(--gp-band-muted); }
body.gp .gp-footer a.gp-badge:hover .gp-badge__cap, body.gp .gp-footer a.gp-badge:focus-visible .gp-badge__cap { color: var(--gp-band-ink); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 700px) {
	body.gp .gp-footer__brand > img { width: 160px; margin-bottom: 18px; }
	body.gp .gp-footer__badges { gap: 20px; padding-top: 32px; }
	body.gp .gp-badge__tile { height: 96px; }
	body.gp .gp-badge__tile img { max-height: 76px; }
	body.gp .gp-badge__cap { font-size: 14px; }
}

/* ---------- newsletter box above the footer (cf-news, snippet-printed): in the Garden Press look (11-05) ---------- */
body.gp .cf-news { background: var(--gp-card); border-top: 1px solid var(--gp-line); }
body.gp .cf-news-in { max-width: var(--gp-max); padding: 32px 16px; }
body.gp .cf-news h2 { font-family: var(--gp-serif); font-weight: 400; color: var(--gp-ink); }
body.gp .cf-news-copy p { color: var(--gp-muted); }
body.gp .cf-news-form input[type=email] { border-radius: 0; border-color: var(--gp-ink); min-height: 52px; }
body.gp .cf-news-form button { border-radius: 0; background: var(--gp-accent); min-height: 52px; font: 600 16px/1.2 var(--gp-sans); }
body.gp .cf-news-form button:hover, body.gp .cf-news-form button:focus-visible { background: var(--gp-accent-dark); }

/* ---------- Lily's chat bubble on phones (11-05): look only, nothing Lily says or does ---------- */
@media (max-width: 699px) {
	/* 48 px, 10 px from the corner (was 60 px at 20 px): it covered the end of the hero address */
	body.gp #lily-bubble { width: 48px; height: 48px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); font-size: 21px; }
	body.gp #lily-panel { right: 10px; bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- sold-out product page: the next-step line (owner 11-05) ---------- */
body.gp .gp-soldout { margin: 10px 0 0; font-size: 16px; line-height: 1.6; }
body.gp .gp-soldout a { color: var(--gp-accent); font-weight: 600; text-underline-offset: 3px; }
