/* brand.css - THE BRAND SLOT. This file belongs to the demo, not to the theme.
 *
 * WHAT IT IS
 * theme-default ships this sheet with no paint in it. DefaultHeadInclude.cshtml
 * registers it AFTER default_custom.css, so every rule a brand writes here wins a
 * cascade tie against the theme without !important, and the theme's own sheet is
 * never edited. A theme bump is then a file copy, not a re-copy plus re-append.
 *
 * WHO WRITES IT
 * A demo copies theme-default into a demo-local layer (or its build folder), rewrites
 * THIS file and brand.tokens.json beside it, and delivers the copy. It never appends
 * brand CSS to default_custom.css: an appended sheet is a fork of the theme that the
 * next theme release silently discards or silently fails to receive.
 *
 * WHAT GOES HERE, in this order
 *   1. The token block below, filled from brand.tokens.json (css section). Only the
 *      tokens the brand changes; an omitted token keeps the theme value.
 *   2. Brand-only component rules: the logo lockup, a signature section, a motif.
 *      A rule that would help every demo is not a brand rule: it is a theme fix and
 *      belongs in default_custom.css upstream (Distribution PR), not here.
 *
 * WHAT DOES NOT GO HERE
 *   - --dw-color-button-primary and the rest of the per-scheme palette. They live in
 *     the GENERATED System/Styles/ColorSchemes pair (.css AND .json), block #19 of
 *     default_custom.css. brand.tokens.json carries the scheme table a generator
 *     writes into that pair; this sheet only consumes the result.
 *   - Fonts. The Typography pair loads them (Google Fonts import) and sets
 *     --dw-font-family per role. This sheet may reference a brand font by name.
 *
 * WHY :root:root
 * DefaultHeadInclude.cshtml inlines a render-critical copy of six --td-* tokens in a
 * head <style> element, and its position relative to this sheet's link element is up
 * to the platform. A doubled :root (specificity 0,2,0) beats the inline :root (0,1,0)
 * whatever the source order, so a brand token cannot lose to the neutral copy and no
 * !important is needed.
 *
 * AUTHORING GUARDS (the same G1 to G4 as default_custom.css): never type the
 * comment-close sequence inside comment prose; keep the sentinel rule below so a
 * CSSOM assert can prove the sheet parsed; !important every override of a
 * Bootstrap/Swift flex utility in every tier; never write a numeric-leading id
 * selector. Never write a marker string into the page from here (no content: that
 * names the brand file, no debug banner).
 */

/* The sentinel. Inert: nothing in a Swift document carries the attribute. */
[data-td-block="brand"] { --td-block: brand; }

/* 1. Brand tokens. Ships with every declaration commented out, so the slot paints
 *    nothing until a demo fills it. Uncomment and set what the brand changes.
 *
 * :root:root {
 *   --td-ink:          #1F2933;
 *   --td-ink-soft:     #323F4B;
 *   --td-slate:        #3E4C59;
 *   --td-slate-mid:    #52606D;
 *   --td-slate-light:  #CBD2D9;
 *   --td-grey-light:   #F5F7FA;
 *   --td-hairline:     #E4E7EB;
 *   --td-white:        #FFFFFF;
 *   --td-accent:       #3E4C59;
 *   --td-accent-soft:  rgba(62, 76, 89, .07);
 *   --td-radius:       12px;
 *   --td-radius-sm:    8px;
 *   --td-shadow-soft:  0 1px 2px rgba(31, 41, 51, .06), 0 12px 28px -14px rgba(31, 41, 51, .22);
 *   --td-logo-h:       1.75rem;
 *   --td-logo-w-phone: 132px;
 *   --td-logo-w-laptop: 170px;
 *   --td-hero-max-h:   60vh;
 *   --td-edge-mask:    url("data:image/svg+xml,...");
 *   --td-edge-fill-hero:   #RRGGBB;
 *   --td-edge-fill-alt:    #RRGGBB;
 *   --td-edge-fill-footer: #RRGGBB;
 *   --td-button-primary-ink-primary: #RRGGBB;
 * }
 *
 * The first thirteen are the theme's own token block (the first six also have the
 * inline head copy). The logo and hero tokens size blocks #13, #23 and the
 * image-height caps. The edge and button-ink tokens are the hooks of blocks #22 and
 * #30; set them only when the brand needs them (README, "Opt-in hooks").
 *
 * The accent on dark grounds: a brand whose accent is dark on light schemes sets a
 * lighter one per dark scheme, for example
 *   [data-dw-colorscheme="dark"], [data-dw-colorscheme="darksubtle"] { --td-accent: #4FB184; }
 */

/* 2. Brand-only component rules go below this line. */

/* Kukkatoimitus (scripts/p5-storefront.py): tokens above, then the wordmark and dark-ground accent. */
:root:root {
  --td-ink: #1E2B22;
  --td-ink-soft: #2A4A36;
  --td-slate: #2F6B3F;
  --td-slate-mid: #4E6B55;
  --td-slate-light: #C9D8C4;
  --td-grey-light: #F3F7F1;
  --td-hairline: #E3EDDF;
  --td-white: #FFFFFF;
  --td-accent: #2F6B3F;
  --td-accent-soft: rgba(47, 107, 63, .08);
}
[data-dw-colorscheme="dark"], [data-dw-colorscheme="darksubtle"], [data-dw-colorscheme="primary"] { --td-accent: #F2C1D5; }
/* Poster photos: a deep-green scrim on the text side keeps white hero copy legible over bright flower photography. */
[data-swift-poster] > figure::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(20, 42, 28, .78) 0%, rgba(20, 42, 28, .45) 50%, rgba(20, 42, 28, 0) 80%); }
@media (max-width: 991.98px) { [data-swift-poster] > figure::after { background: rgba(20, 42, 28, .55); } }
/* Button hover and inactive states (scripts/p5-storefront.py hover_rules): every pair asserted >= 4.5:1 before writing. */
.dw-colorscheme-light, [data-dw-colorscheme="light"] { --kt-p1-hover: #265632; --kt-p1-ink: #FFFFFF; --kt-p2-hover: #722F4B; --kt-p2-ink: #FFFFFF; }  /* 8.54 / 9.44 */
.dw-colorscheme-lightgrey1, [data-dw-colorscheme="lightgrey1"] { --kt-p1-hover: #265632; --kt-p1-ink: #FFFFFF; --kt-p2-hover: #722F4B; --kt-p2-ink: #FFFFFF; }  /* 8.54 / 9.44 */
.dw-colorscheme-lightgrey2, [data-dw-colorscheme="lightgrey2"] { --kt-p1-hover: #265632; --kt-p1-ink: #FFFFFF; --kt-p2-hover: #722F4B; --kt-p2-ink: #FFFFFF; }  /* 8.54 / 9.44 */
.dw-colorscheme-dark, [data-dw-colorscheme="dark"] { --kt-p1-hover: #D6D9D4; --kt-p1-ink: #1E2B22; --kt-p2-hover: #D5AABB; --kt-p2-ink: #1E2B22; }  /* 10.35 / 7.23 */
.dw-colorscheme-darksubtle, [data-dw-colorscheme="darksubtle"] { --kt-p1-hover: #D6D9D4; --kt-p1-ink: #1E2B22; --kt-p2-hover: #D5AABB; --kt-p2-ink: #1E2B22; }  /* 10.35 / 7.23 */
.dw-colorscheme-primary, [data-dw-colorscheme="primary"] { --kt-p1-hover: #E0E0E0; --kt-p1-ink: #1E2B22; --kt-p2-hover: #D5AABB; --kt-p2-ink: #1E2B22; }  /* 11.17 / 7.23 */
.dw-colorscheme-secondary, [data-dw-colorscheme="secondary"] { --kt-p1-hover: #E0E0E0; --kt-p1-ink: #1E2B22; --kt-p2-hover: #C8D1C4; --kt-p2-ink: #1E2B22; }  /* 11.17 / 9.39 */
:root [data-dw-colorscheme]:not([data-dw-colorscheme=""]) :is(.btn-primary, [data-dw-button="primary"]) {
  --bs-btn-hover-bg: var(--kt-p1-hover); --bs-btn-hover-border-color: var(--kt-p1-hover); --bs-btn-hover-color: var(--kt-p1-ink);
  --bs-btn-active-bg: var(--kt-p1-hover); --bs-btn-active-border-color: var(--kt-p1-hover); --bs-btn-active-color: var(--kt-p1-ink); }
:root [data-dw-colorscheme]:not([data-dw-colorscheme=""]) :is(.btn-secondary, [data-dw-button="secondary"]) {
  --bs-btn-hover-bg: var(--kt-p2-hover); --bs-btn-hover-border-color: var(--kt-p2-hover); --bs-btn-hover-color: var(--kt-p2-ink);
  --bs-btn-active-bg: var(--kt-p2-hover); --bs-btn-active-border-color: var(--kt-p2-hover); --bs-btn-active-color: var(--kt-p2-ink); }
/* The inactive tier wins over the block #30 ink and every hover (theme defect: default_custom.css restates the ink at 0,7,0). */
:is(.btn, [data-dw-button]):is(:disabled, .disabled, [disabled]),
:is(.btn, [data-dw-button]):is(:disabled, .disabled, [disabled]):hover,
fieldset:disabled .btn, fieldset:disabled .btn:hover, .btn-check:disabled + .btn, .btn-check:disabled + .btn:hover {
  opacity: 1 !important; background-color: var(--td-hairline) !important; border-color: var(--td-slate-light) !important;
  color: var(--td-slate) !important; }

/* Floral accents (scripts/p5-storefront.py floral_rules): blush + leaf over the green, inline SVG only. */
:root:root { --kt-petal: #E7A3BC; --kt-leaf: #5E8C5A; --kt-leaf-soft: #EEF4EA; --kt-blush: #FDF5F8;
  --kt-rose-ink: #7A2E4F; --kt-line: #DCE8D6;
  --kt-sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='20' viewBox='0 0 140 20'%3E%3Cpath d='M2 10H44M96 10H138' stroke='%23A9C4A0' stroke-width='1.2' stroke-linecap='round'/%3E%3Cpath d='M57 10Q51 2.5 45 8Q51 13.5 57 10Z M83 10Q89 2.5 95 8Q89 13.5 83 10Z' fill='%235E8C5A'/%3E%3Cg transform='translate(60.64 0.6400000000000006) scale(0.78)' fill-opacity='1'%3E%3Cg fill='%23E7A3BC'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3C/svg%3E");
  --kt-leaf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 17C3 8.5 8.5 3.5 17.5 3C17.5 11.5 12 17 3 17Z' fill='%235E8C5A'/%3E%3Cpath d='M3.5 16.5L13 7' stroke='%23fff' stroke-width='1.1' stroke-linecap='round'/%3E%3C/svg%3E");
  --kt-blossoms: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'%3E%3Cg transform='translate(19.8 23.8) scale(0.85)' fill-opacity='0.12'%3E%3Cg fill='%23C9708F'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3Cg transform='translate(144.0 16.0) scale(0.5)' fill-opacity='0.11'%3E%3Cg fill='%235E8C5A'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%235E8C5A'/%3E%3C/g%3E%3Cg transform='translate(95.6 83.6) scale(0.7)' fill-opacity='0.1'%3E%3Cg fill='%23C9708F'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3Cg transform='translate(188.8 112.8) scale(0.6)' fill-opacity='0.11'%3E%3Cg fill='%23C9708F'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3Cg transform='translate(39.4 153.4) scale(0.55)' fill-opacity='0.1'%3E%3Cg fill='%235E8C5A'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%235E8C5A'/%3E%3C/g%3E%3Cg transform='translate(138.4 180.4) scale(0.8)' fill-opacity='0.12'%3E%3Cg fill='%23C9708F'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3Cg transform='translate(11.2 91.2) scale(0.4)' fill-opacity='0.09'%3E%3Cg fill='%23C9708F'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3C/svg%3E"); }
/* Wordmark in the heading serif (same font-size and line-height, so the header box keeps its height). */
[data-dw-itemtype="swift-v2_logo"] span.fs-4 { font-family: "Playfair Display", Georgia, serif; font-weight: 600; letter-spacing: .01em; }
/* Section headings: a leaf-flower-leaf sprig under the title (centred under centred text). */
main [data-swift-text] h2::after, main .item_swift-v2_productlistinfo h1.h3::after {
  content: ""; display: block; width: 140px; max-width: 60%; height: 20px; margin: .55rem 0 0;
  background: var(--kt-sprig) left center / contain no-repeat; pointer-events: none; }
main .text-center h2::after { margin-inline: auto; background-position: center; }
main [data-dw-colorscheme="dark"] h2::after, main [data-dw-colorscheme="darksubtle"] h2::after, main [data-dw-colorscheme="primary"] h2::after { display: none; }
/* List bullets in running text. */
main [data-swift-text] ul { list-style-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cg transform='translate(0 0) scale(1)' fill-opacity='1'%3E%3Cg fill='%23C9708F'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3C/svg%3E"); }
/* Feature icons on the home page in the rose ink. */
main [data-dw-itemtype="swift-v2_feature"] svg { color: var(--kt-rose-ink); }
/* Petal buttons: a leaf-shaped radius (two round, two tight corners) on every labelled button in main, modals and footer. */
:is(main, footer, .modal) [data-dw-button]:not([data-dw-button=""]):not(.rounded-circle) { --dw-btn-border-radius: 1.15rem .35rem; }
/* Hero: a white flowering branch rising from the bottom-left corner over the dark scrim, under the text layer
   (the text container is z-index 1); on phones it sits bottom-right below the buttons. */
[data-swift-poster]::after { content: ""; position: absolute; left: 1.5%; bottom: 0; width: clamp(110px, 16vw, 230px); aspect-ratio: 1;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg opacity='0.5'%3E%3Cpath d='M198 198C160 168 128 132 84 70M134 126C150 108 162 84 166 58' stroke='%23FFFFFF' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3Cg fill='%23FFFFFF'%3E%3Cellipse cx='168' cy='178' rx='13' ry='5.5' transform='rotate(-25 168 178)'/%3E%3Cellipse cx='146' cy='140' rx='13' ry='5.5' transform='rotate(-70 146 140)'/%3E%3Cellipse cx='120' cy='128' rx='13' ry='5.5' transform='rotate(20 120 128)'/%3E%3Cellipse cx='104' cy='96' rx='13' ry='5.5' transform='rotate(-60 104 96)'/%3E%3Cellipse cx='156' cy='104' rx='13' ry='5.5' transform='rotate(35 156 104)'/%3E%3Cellipse cx='172' cy='86' rx='13' ry='5.5' transform='rotate(-75 172 86)'/%3E%3C/g%3E%3Cg transform='translate(62.0 44.0) scale(1.5)' fill-opacity='1'%3E%3Cg fill='%23FFFFFF'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23F2C1D5'/%3E%3C/g%3E%3Cg transform='translate(152.2 38.2) scale(1.15)' fill-opacity='1'%3E%3Cg fill='%23FFFFFF'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23F2C1D5'/%3E%3C/g%3E%3Cg transform='translate(106.4 94.4) scale(0.8)' fill-opacity='1'%3E%3Cg fill='%23FFFFFF'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23F2C1D5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") right bottom / contain no-repeat; pointer-events: none; z-index: 0;
  transform: scaleX(-1); }
@media (max-width: 991.98px) { [data-swift-poster]::after { left: auto; right: 2%; transform: none; } }
/* Soft blossom pattern on the lightgrey2 text panel of the home split row and on the "Order for this week" band. */
main [data-dw-itemtype="swift-v2_text"][data-dw-colorscheme="lightgrey2"],
main section[data-dw-colorscheme="lightgrey2"][data-swift-gridrow="1Column"] { background-image: var(--kt-blossoms); background-size: 220px; }
/* Footer: a blush branch in the bottom-right corner, clear of the link columns; on phones top-right beside the wordmark. */
footer[data-swift-page-footer] { isolation: isolate; }
footer[data-swift-page-footer]::after { content: ""; position: absolute; right: 1.5rem; bottom: 1rem; width: clamp(90px, 12vw, 180px); aspect-ratio: 1;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg opacity='0.55'%3E%3Cpath d='M198 198C160 168 128 132 84 70M134 126C150 108 162 84 166 58' stroke='%239DBF94' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3Cg fill='%239DBF94'%3E%3Cellipse cx='168' cy='178' rx='13' ry='5.5' transform='rotate(-25 168 178)'/%3E%3Cellipse cx='146' cy='140' rx='13' ry='5.5' transform='rotate(-70 146 140)'/%3E%3Cellipse cx='120' cy='128' rx='13' ry='5.5' transform='rotate(20 120 128)'/%3E%3Cellipse cx='104' cy='96' rx='13' ry='5.5' transform='rotate(-60 104 96)'/%3E%3Cellipse cx='156' cy='104' rx='13' ry='5.5' transform='rotate(35 156 104)'/%3E%3Cellipse cx='172' cy='86' rx='13' ry='5.5' transform='rotate(-75 172 86)'/%3E%3C/g%3E%3Cg transform='translate(62.0 44.0) scale(1.5)' fill-opacity='1'%3E%3Cg fill='%23F2C1D5'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3Cg transform='translate(152.2 38.2) scale(1.15)' fill-opacity='1'%3E%3Cg fill='%23F2C1D5'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3Cg transform='translate(106.4 94.4) scale(0.8)' fill-opacity='1'%3E%3Cg fill='%23F2C1D5'%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(0 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='6.6' rx='3.7' ry='5.1' transform='rotate(288 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.7' fill='%23D9A441'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") right bottom / contain no-repeat; pointer-events: none; }
@media (max-width: 767.98px) { footer[data-swift-page-footer]::after { bottom: auto; top: calc(var(--td-edge-h, 40px) + 1.25rem); width: 84px; } }
/* PLP: rows become soft petal cards; hover lifts gently with a petal-pink border (no modal or dropdown lives in the row). */
main article.product { border: 1px solid transparent; border-radius: 1.4rem .45rem; padding: .35rem .6rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease; }
main article.product:hover, main article.product:focus-within { transform: translateY(-2px); border-color: var(--kt-petal);
  background-color: var(--kt-blush); box-shadow: 0 10px 24px -14px rgba(122, 46, 79, .45); }
/* Stock text: Bootstrap .text-success #198754 is 4.53 on white but 4.23 on the blush hover ground; the brand green holds 6+. */
main article.product .text-success { color: var(--td-slate) !important; }
main article.product figure img { border-radius: .9rem .3rem; }
main .carousel-item img.mw-100 { border-radius: 1.6rem .5rem; }
@media (prefers-reduced-motion: reduce) { main article.product, main article.product:hover { transition: none; transform: none; } }
/* Prices in the rose ink. */
main .item_swift-v2_productprice .text-price { color: var(--kt-rose-ink); font-weight: 600; }
/* PDP: Specifications heading carries a leaf; the Florist facts table gets soft-green alternating rows in a petal frame. */
main h2#specifications::before { content: ""; display: inline-block; width: .8em; height: .8em; margin-right: .4rem; vertical-align: -.02em;
  background: var(--kt-leaf-icon) center / contain no-repeat; }
main .item_swift-v2_productfielddisplaygroups .table-responsive { border: 1px solid var(--kt-line); border-radius: 1.25rem .4rem; }
main .item_swift-v2_productfielddisplaygroups table { margin-bottom: 0; }
main .item_swift-v2_productfielddisplaygroups table > tbody > tr > * { border-bottom-color: var(--kt-line); padding: .55rem .9rem; line-height: 1.45; }
main .item_swift-v2_productfielddisplaygroups table > tbody > tr:nth-child(odd) > * { --bs-table-bg: var(--kt-leaf-soft); --bs-table-bg-type: var(--kt-leaf-soft); }
main .item_swift-v2_productfielddisplaygroups table > tbody > tr:last-child > * { border-bottom: 0; }
main .item_swift-v2_productfielddisplaygroups table > tbody > tr > :first-child { color: #2A4A36; font-weight: 600; }
