/* ============================================================================
   FurFam "Etsy style" (2026-10-15). A layer over css/furfam-2026.css, loaded after it only while the style
   flag is on (index.php $etsy_style; body.style-etsy). EVERY rule is scoped under body.style-etsy (pinned by
   tests/test.etsy_css.js). Spec: docs/superpowers/specs/2026-10-15-furfam-etsy-style-design.md; the boards it
   names are the source of truth for layout. Colours: the "Quiet Neutrals" palette (2026-10-17, see TOKENS),
   which replaces the boards' colours.
   ========================================================================== */

/* ==== TOKENS (spec §5) ==== */
@font-face{font-family:"Fraunces";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/fraunces-latin.woff2) format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700.woff2) format("woff2");}
/* The boards' bold is 700: pass-B's 600 and 800 faces (furfam-2026.css) are redeclared on the 700 file, so the visually hidden
   Size/Font chips (600/800) and the drawer's template text (800) don't fetch two more files */
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-700.woff2) format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-700.woff2) format("woff2");}
/* Quiet Neutrals (2026-10-17), one job per colour: marigold = do this (Create, Add to cart, Checkout, the home CTAs, the
   cart count, the guiding ring, the upload card); the one soft green = good news about money and shipping, text on it is
   ink; peach = warm or special (gift pill, hero, promise, "Ready to see yours?"); ink, greys, white, cream and stone =
   plain information; red = errors only. */
body.style-etsy{
  --e-page:#FAF8F5;--e-ink:#312B36;--e-ink-hover:#534D4C;--e-ink-active:#605957;--e-ink-2:#665E5C;--e-ink-3:#736B68;
  --e-line:#E0DAD6;--e-field:#928681;--e-focus:0 0 0 2px #FAF8F5,0 0 0 4px #426BDB;--e-stone:#EFECEA;
  --e-peach:#FFF3E7;--e-peach-2:#FFE0C3;
  --e-gold:#F6C445;--e-gold-2:#E9AE1F;--e-gold-glow:0 6px 16px rgba(233,174,31,.35);
  --e-sun:#FFF6DA;--e-sun-hover:#FFEFC2;--e-disabled:#C8BDB7;
  --e-green:#36662A;--e-green-fill:#CFE5BA;--e-green-tint:#EEF5E7;   /* strong (icons, tracker, titles on the tint: 6.10:1) / fill (ink text 10.18:1) / tint */
  --e-error:#C7102F;--e-error-tint:#FDECEF;--e-scrim:#33140042;
  --e-s1:0 2px 8px 0 #150A040A,0 4px 12px 2px #150A040F;
  --e-s2:0 8px 16px 0 #150A040A,0 12px 20px 2px #150A040F;
  --e-ring:0 0 0 3px #FFF,0 0 0 5px #312B36;
  --e-serif:"Fraunces",Georgia,serif;
  --ff-ring:ffRing 2.4s ease-out infinite;--ff-ring-static:none;   /* the guiding pulse (section PULSE) */
}

/* ==== BASE (spec §5, §13) ==== */
body.style-etsy:is(.page-home,.page-order,.page-thanks){background:var(--e-page);color:var(--e-ink);font-size:16px;line-height:1.45;letter-spacing:-.01em;font-variant-numeric:lining-nums;}
body.style-etsy:is(.page-home,.page-order,.page-thanks) :is(h1,h2,h3,h4,h5,h6){color:var(--e-ink);font-weight:700;letter-spacing:-.02em;line-height:1.2;}
body.style-etsy :is(b,strong){font-weight:700;}
body.style-etsy:is(.page-home,.page-order,.page-thanks) a:not(.ff-btn){color:var(--e-ink);}
body.style-etsy :is(a,button,input,select,textarea,label,summary,[tabindex]):focus-visible{outline:none!important;box-shadow:var(--e-focus)!important;}
@media (forced-colors:active){body.style-etsy :is(a,button,input,select,textarea,label,summary,[tabindex]):focus-visible{outline:2px solid CanvasText!important;outline-offset:2px;}}   /* High Contrast drops box-shadows */
/* Pill buttons: dark; the marigold ones are the "Design your blanket" links below, Create / Add to cart (BUY BOX) and
   Checkout (DRAWER) */
body.style-etsy .ff-btn{min-height:48px;padding:12px 24px;border-radius:999px;font:700 16px/20px var(--ff-font);letter-spacing:-.01em;box-shadow:none;transform:none;}
body.style-etsy .ff-btn-primary{background:var(--e-ink);color:var(--e-page);}
body.style-etsy .ff-btn-primary:hover{background:var(--e-ink-hover);color:var(--e-page);transform:none;}
body.style-etsy .ff-btn-primary:active{background:var(--e-ink-active);}
/* Anchors only (the home hero and closing CTAs, the empty cart's link): #generate-preview-btn has its own rules, and the
   pass-B home's disabled name-step <button> is never painted as an action. Ink on marigold 8.43:1, on marigold-2 6.89:1. */
body.style-etsy a.ff-btn.ff-btn-primary{background:var(--e-gold);color:var(--e-ink);box-shadow:var(--e-gold-glow);}
body.style-etsy a.ff-btn.ff-btn-primary:hover, body.style-etsy a.ff-btn.ff-btn-primary:active{background:var(--e-gold-2);color:var(--e-ink);}
body.style-etsy .ff-btn-ghost{background:transparent;color:var(--e-ink);border:1px solid var(--e-ink);}
body.style-etsy .ff-btn-ghost:hover{background:#3314000D;border-color:var(--e-ink);}
body.style-etsy .ff-note{font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink-2);}
body.style-etsy .ff-note strong{color:var(--e-ink);}

/* ==== HEADER (spec §6; boards Main, Order, HomePhone) ==== */
/* Shipping strip (phone) and pill (desktop): green fill + ink text (10.18:1); the truck in strong green (5.04:1) */
body.style-etsy .ff-topbar{min-height:36px;padding:8px 0;background:var(--e-green-fill);color:var(--e-ink);font-size:14px;line-height:20px;font-weight:400;letter-spacing:0;}
body.style-etsy .ff-topbar strong{font-weight:700;}
body.style-etsy .ff-topbar i{color:var(--e-green);}
body.style-etsy nav#mainNav.ff-nav{min-height:72px;padding:12px 0;background:var(--e-page);border-bottom:1px solid var(--e-line);animation:none;box-shadow:none;}
body.style-etsy nav#mainNav .container{max-width:1280px;padding-left:32px;padding-right:32px;}
body.style-etsy.page-order nav#mainNav .container{max-width:1464px;}
body.style-etsy .ff-brand img{height:32px;width:auto;}
@media (min-width:992px){body.style-etsy .ff-brand{margin-right:40px;}}   /* board Main: 40 px between the logo and the first nav link */
body.style-etsy .ff-nav-links{gap:0 24px;}
body.style-etsy .ff-nav-links .nav-link{padding:12px 0;font-size:16px;line-height:20px;font-weight:500;color:var(--e-ink);}
body.style-etsy .ff-nav-links .nav-link:hover{color:var(--e-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;}
body.style-etsy .ff-nav-links .nav-link.active{color:var(--e-ink);font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;}
body.style-etsy .ff-nav-secondary{gap:12px;}
body.style-etsy .ff-ship-pill{gap:8px;padding:6px 12px;border-radius:16px;background:var(--e-green-fill);color:var(--e-ink);font-size:13px;line-height:16px;letter-spacing:0;}
body.style-etsy .ff-ship-pill i{font-size:18px;color:var(--e-green);}
body.style-etsy .ff-ship-pill b{font-weight:700;}
body.style-etsy .ff-ship-pill small{font-size:13px;line-height:16px;color:var(--e-ink);opacity:1;}
body.style-etsy a#view-cart.ff-cart-link{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border-radius:50%;color:var(--e-ink);font-size:22px;}
body.style-etsy a#view-cart.ff-cart-link:hover{background:#3314000D;color:var(--e-ink);border-radius:50%;}
/* Cart count: marigold with an ink number (8.43:1); a cream ring parts the pale disc from the ink cart glyph */
body.style-etsy a#view-cart span#cart-count{top:4px;right:2px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--e-gold);color:var(--e-ink);box-shadow:0 0 0 2px var(--e-page);font:700 11px/20px var(--ff-font);letter-spacing:0;}
body.style-etsy .toggle-navigation .nav-link{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border-radius:50%;color:var(--e-ink);font-size:22px;}
body.style-etsy .toggle-navigation .nav-link:hover, body.style-etsy .toggle-navigation .nav-link[aria-expanded="true"]{background:#3314000D;}
@media (max-width:991.98px){
  body.style-etsy nav#mainNav.ff-nav{min-height:56px;padding:0;}   /* 56 px with the border (board HomePhone); the 48 px buttons set the content height */
  body.style-etsy nav#mainNav .container{padding-left:16px;padding-right:8px;}
  body.style-etsy .ff-nav-secondary{gap:4px;}
  body.style-etsy #navbar{position:absolute;top:calc(100% + 1px);left:0;right:0;z-index:20;padding:8px 16px 16px;background:#fff;border-bottom:1px solid var(--e-line);box-shadow:var(--e-s1);}
  body.style-etsy .ff-nav-links{gap:0;}
  body.style-etsy .ff-nav-links .nav-link{display:flex;align-items:center;min-height:48px;padding:0;font-size:18px;line-height:24px;}
}

/* ==== FOOTER (spec §6; boards Main, OrderPhone) ==== */
body.style-etsy .ff-footer{margin-top:64px;padding:48px 0 0;background:#EFECEA;color:var(--e-ink);font-size:16px;line-height:22px;}
body.style-etsy .ff-footer .container{max-width:1280px;padding-left:32px;padding-right:32px;}
body.style-etsy.page-order .ff-footer .container{max-width:1464px;}   /* board Order: footer lines up with the wide header */
body.style-etsy .ff-footer a{color:var(--e-ink);}
body.style-etsy .ff-footer a:hover{color:var(--e-ink);text-decoration:underline;text-underline-offset:3px;}
body.style-etsy .ff-footer-grid{display:flex;flex-wrap:wrap;gap:32px 48px;}
body.style-etsy .ff-footer-brand{flex:1.4 1 240px;min-width:0;}
body.style-etsy .ff-footer-col{flex:.8 1 140px;min-width:0;}
body.style-etsy .ff-footer-news{flex:1.4 1 280px;min-width:0;max-width:520px;}
body.style-etsy .ff-footer-logo{gap:8px;margin:-12px 0 0;min-height:44px;font-size:20px;line-height:24px;font-weight:700;letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-footer-logo i{font-size:28px;}
body.style-etsy .ff-footer-brand p{margin:8px 0 0;max-width:280px;color:var(--e-ink-2);}
body.style-etsy .ff-footer-social{margin-top:16px;width:48px;height:48px;border:1px solid var(--e-ink);font-size:22px;color:var(--e-ink);}
body.style-etsy .ff-footer-social:hover{background:#3314000D;text-decoration:none;}
body.style-etsy .ff-footer h6{margin:0 0 8px;font-size:16px;line-height:20px;font-weight:700;letter-spacing:-.01em;color:var(--e-ink);}
body.style-etsy .ff-footer li{margin:0;}
body.style-etsy .ff-footer-col a{display:inline-flex;align-items:center;min-height:44px;}
body.style-etsy .ff-footer-news p{margin:0;color:var(--e-ink-2);}
body.style-etsy .ff-footer-news .quick_form_8_css{background:transparent!important;overflow:visible!important;}   /* Zoho's inline overflow:hidden clipped the focus ring */
body.style-etsy .ff-footer-news #zcampaignOptinForm{display:flex!important;flex-wrap:wrap;gap:8px;margin:16px 0 0!important;}
body.style-etsy .ff-footer-news #zcampaignOptinForm > :not(.SIGNUP_FLD):not(#errorMsgDiv){flex:0 0 100%;min-width:0;}   /* Zoho's success wrapper as a full-width row, so its 90%-wide message has a width */
body.style-etsy .ff-footer-news #SIGNUP_HEADING{display:none!important;}   /* Zoho's empty 15 px heading strip */
body.style-etsy .ff-footer-news #errorMsgDiv{flex:0 0 100%;margin:0!important;padding:8px 12px!important;border:0!important;border-radius:8px;background:#FDECEF!important;color:#C7102F!important;font-size:14px!important;line-height:20px;}
body.style-etsy #Zc_SignupSuccess{border-color:var(--e-line)!important;}   /* Zoho's inline success colours (its #498C84 text failed AA) */
body.style-etsy #signupSuccessMsg{color:var(--e-ink)!important;}
body.style-etsy .ff-footer-news .SIGNUP_FLD{margin:0!important;height:48px!important;}
body.style-etsy .ff-footer-news .SIGNUP_FLD:has(input[type="text"]){flex:1 1 200px;width:auto!important;}   /* Zoho's #errorMsgDiv is the form's first div, so no :first-of-type */
body.style-etsy .ff-footer-news .SIGNUP_FLD:has(input[type="button"]){flex:0 0 auto;width:auto!important;}
body.style-etsy .ff-footer-news .SIGNUP_FLD input[type="text"]{height:48px!important;padding:8px 12px!important;border:1px solid var(--e-field)!important;border-radius:8px!important;background:#fff!important;color:var(--e-ink)!important;font:400 16px/20px var(--ff-font)!important;letter-spacing:-.01em!important;}
body.style-etsy .ff-footer-news .SIGNUP_FLD input[type="button"]{height:48px!important;margin:0!important;padding:0 24px!important;border-radius:24px!important;background:var(--e-ink)!important;color:var(--e-page)!important;font:700 16px/20px var(--ff-font)!important;letter-spacing:-.01em!important;}
body.style-etsy .ff-footer-news small{display:block;margin-top:12px;font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink-2);opacity:1;}
body.style-etsy .ff-footer-news small a{color:var(--e-ink)!important;text-underline-offset:2px;}   /* the live link carries Bootstrap .text-white (!important) */
body.style-etsy .ff-footer-bottom{align-items:center;gap:4px 24px;margin-top:48px;padding:16px 0 24px;border-top:1px solid var(--e-line);font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink);}
body.style-etsy .ff-footer-bottom nav{flex-wrap:wrap;gap:0 24px;}
body.style-etsy .ff-footer-bottom nav a{display:inline-flex;align-items:center;min-height:44px;}
@media (max-width:767.98px){   /* board OrderPhone: 32 / 16 / 24 padding, 24 px column gap, ink text, 4 px under headings */
  body.style-etsy .ff-footer{padding-top:32px;}
  body.style-etsy .ff-footer .container{padding-left:16px;padding-right:16px;}
  body.style-etsy .ff-footer-grid{gap:32px 24px;}
  body.style-etsy .ff-footer-logo{margin-top:0;}
  body.style-etsy .ff-footer-brand p{margin-top:4px;max-width:none;line-height:23px;color:var(--e-ink);}
  body.style-etsy .ff-footer h6{margin-bottom:4px;}
  body.style-etsy .ff-footer-news p{line-height:23px;color:var(--e-ink);}
  body.style-etsy .ff-footer-news #zcampaignOptinForm{margin-top:12px!important;}
  body.style-etsy .ff-footer-news small{color:var(--e-ink);}
  body.style-etsy .ff-footer-bottom{margin-top:32px;gap:4px 16px;}
  body.style-etsy .ff-footer-bottom nav{gap:0 16px;}
}
@media (min-width:768px){   /* board Order's footer, which differs from Main's */
  body.style-etsy.page-order .ff-footer-grid{gap:32px;}
  body.style-etsy.page-order .ff-footer-brand{flex-basis:220px;}
  body.style-etsy.page-order .ff-footer-col{flex-basis:120px;}
  body.style-etsy.page-order .ff-footer-col + .ff-footer-col{flex-basis:160px;}
  body.style-etsy.page-order .ff-footer h6{margin-bottom:2px;}
  body.style-etsy.page-order .ff-footer-logo{margin-top:-8px;}
  body.style-etsy.page-order :is(.ff-footer-brand,.ff-footer-news) p{max-width:none;margin-top:4px;line-height:1.45;color:var(--e-ink);}
  body.style-etsy.page-order .ff-footer-news p{margin-top:10px;}
  body.style-etsy.page-order .ff-footer-news small{color:var(--e-ink);}
  body.style-etsy.page-order .ff-footer-social{border:0;background:#fff;}
  body.style-etsy.page-order .ff-footer-social:hover{background:#F3F1EF;}   /* the white fill above outranks the base :hover tint, which is invisible over white */
  body.style-etsy.page-order .ff-footer-bottom{padding:12px 0;}
}

/* ==== HOME (spec §7; boards Main, HomePhone) ==== */
body.style-etsy:is(.page-home,.page-thanks) .container{max-width:1280px;padding-left:32px;padding-right:32px;}
body.style-etsy.page-home .ff-section{padding:64px 0 0;}
body.style-etsy .ff-section-head{margin:0 0 24px;max-width:none;text-align:left;}
body.style-etsy .ff-section-head h2{margin:0;font-size:24px;line-height:32px;font-weight:700;letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-section-head p{margin:4px 0 0;font-size:16px;line-height:22px;color:var(--e-ink-2);}
/* Hero */
body.style-etsy .ff-hero.ff-hero-etsy{display:block;min-height:0;padding:32px 0 0;background:transparent;overflow:visible;overflow-x:clip;}
body.style-etsy .ff-hero-panel{max-width:1216px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:48px;padding:48px;border-radius:24px;background:var(--e-peach);overflow:hidden;}
body.style-etsy .ff-hero-etsy .ff-hero-copy{position:relative;z-index:5;flex:1 1 500px;min-width:min(340px,100%);max-width:560px;display:flex;flex-direction:column;justify-content:center;}
body.style-etsy .ff-hero-etsy .ff-hero-h1{margin:0;font:400 56px/1.02 var(--e-serif);letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-hero-h1 .ff-accent{display:block;margin:0;font-size:1em;letter-spacing:-.02em;color:var(--e-ink);}   /* the headline is all ink */
body.style-etsy .ff-hero-etsy .ff-hero-lede{max-width:none;margin:16px 0 0;font-size:20px;line-height:1.4;letter-spacing:-.02em;color:var(--e-ink-2);}
body.style-etsy .ff-hero-etsy .ff-hero-lede em{font-weight:700;color:var(--e-ink);}
body.style-etsy .ff-hero-etsy .ff-hero-cta{margin-top:32px;min-height:56px;padding:14px 28px;border-radius:28px;font-size:16px;}
/* Under the button (2026-10-20, option B): pets + stars, then price and guarantee */
body.style-etsy .ff-proof{margin:20px 0 0;text-align:center;font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink-2);}
body.style-etsy .ff-proof b{font-weight:700;color:var(--e-ink);}
body.style-etsy a.ff-proof-rating{display:inline-flex;align-items:center;gap:12px;text-align:left;color:inherit;text-decoration:none;}
body.style-etsy .ff-proof-pets{display:flex;flex:0 0 auto;}
body.style-etsy .ff-proof-pets img{width:40px;height:40px;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #150A0414;}
body.style-etsy .ff-proof-pets img + img{margin-left:-10px;}
body.style-etsy .ff-proof-text{display:flex;flex-direction:column;gap:2px;}
body.style-etsy .ff-proof-score{display:inline-flex;align-items:center;gap:8px;font-size:16px;line-height:20px;}
body.style-etsy .ff-proof-stars{display:block;fill:var(--e-gold-2);}
body.style-etsy a.ff-proof-rating:hover .ff-proof-count{color:var(--e-ink);text-decoration:underline;text-underline-offset:3px;}
body.style-etsy .ff-proof-sub{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px;margin:10px 0 0;}
body.style-etsy .ff-proof-dot{width:4px;height:4px;border-radius:50%;background:var(--e-line);}
body.style-etsy .ff-proof-guarantee{display:inline-flex;align-items:center;gap:6px;color:var(--e-ink);}
body.style-etsy .ff-proof-check{flex:0 0 18px;}
body.style-etsy .ff-proof-check circle{fill:var(--e-green-fill);}
body.style-etsy .ff-proof-check path{fill:none;stroke:var(--e-green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:399.98px){body.style-etsy .ff-proof-pets img{width:32px;height:32px;}}   /* the count stays on one line */
@media (max-width:359.98px){body.style-etsy .ff-proof-pets img:nth-child(n+4){display:none;}}
body.style-etsy .ff-hero-art{flex:1 1 460px;min-width:min(340px,100%);display:flex;align-items:center;justify-content:center;padding:20px 0 36px;}
body.style-etsy .ff-hero-stage{position:relative;width:min(460px,100%);aspect-ratio:1/1;}
body.style-etsy .ff-hero-stage .ff-hero-img{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;border-radius:24px;background:#EFECEA;box-shadow:var(--e-s2);}
body.style-etsy .ff-doodle{position:absolute;z-index:2;pointer-events:none;}
body.style-etsy .ff-doodle-1{left:-46px;top:70px;transform:rotate(-6deg);}
body.style-etsy .ff-doodle-2{left:6px;top:18px;transform:rotate(12deg);}
body.style-etsy .ff-doodle-3{left:44px;top:-18px;transform:rotate(-14deg);}
body.style-etsy .ff-doodle-4{right:-42px;top:250px;transform:rotate(8deg);}
body.style-etsy .ff-doodle-5{right:30px;bottom:-40px;transform:rotate(-10deg);}
body.style-etsy .ff-hero-bubble{position:absolute;z-index:3;left:-48px;bottom:-18px;width:132px;height:132px;border:6px solid #fff;border-radius:50%;overflow:hidden;background:#EFECEA;box-shadow:var(--e-s2);}
body.style-etsy .ff-hero-bubble img{display:block;width:100%;height:100%;object-fit:cover;}
body.style-etsy .ff-hero-arrow{position:absolute;z-index:3;left:88px;bottom:38px;filter:drop-shadow(0 0 2px rgba(255,255,255,.85));pointer-events:none;}
body.style-etsy .ff-hero-arrow-sm{display:none;}
body.style-etsy .ff-hero-etsy .ff-badge-instant{display:none;}
body.style-etsy .ff-hero-seal{position:absolute;z-index:4;top:4px;right:-40px;width:168px;height:172px;animation:ffFloat 4s ease-in-out infinite;}
body.style-etsy :is(.ff-hero-seal,.ff-seal) img{display:block;width:100%;height:100%;object-fit:contain;transform:rotate(8deg);filter:drop-shadow(0 6px 10px rgba(21,10,4,.18));transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
body.style-etsy :is(.ff-hero-seal,.ff-seal) img:hover{transform:rotate(-3deg) scale(1.06);}
@keyframes ffFloat{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
/* Make it yours */
body.style-etsy .ff-make-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}   /* 3 across down to 720 px (no orphan); a scroll row below */
body.style-etsy .ff-make-card{display:flex;flex-direction:column;background:none;border:0;border-radius:8px 8px 0 0;overflow:hidden;color:var(--e-ink);}
body.style-etsy .ff-make-card:hover{transform:none;box-shadow:none;}
body.style-etsy .ff-make-card img{aspect-ratio:4/3;border-radius:8px;background:#EFECEA;transition:transform .4s cubic-bezier(.5,0,.2,1);}
body.style-etsy .ff-make-card:hover img{transform:scale(1.04);}
body.style-etsy .ff-make-card h3{margin:12px 0 0;font-size:16px;line-height:20px;font-weight:700;letter-spacing:-.01em;}
body.style-etsy .ff-make-card:hover h3{text-decoration:underline;text-underline-offset:3px;}
body.style-etsy .ff-make-card p{margin:4px 0 0;font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink-2);}
/* Loved by Pet Parents (Flickity groupCells: 3 a page) */
body.style-etsy .ff-reviews{overflow:visible;}
body.style-etsy .ff-review-carousel{position:relative;}
body.style-etsy .ff-review-carousel .flickity-viewport{overflow:hidden;border-radius:8px;}
body.style-etsy .ff-review-card{width:calc((100% - 48px) / 3);margin-right:24px;flex-direction:column;gap:0;padding:16px;border:0;border-radius:8px;background:#fff;}
body.style-etsy .ff-review-photo{width:100%;}
body.style-etsy .ff-review-photo img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:center 30%;border-radius:8px;background:#EFECEA;}
body.style-etsy .ff-review-body .stars{display:flex;gap:2px;margin:16px 0 0;color:var(--e-gold-2);font-size:14px;}
body.style-etsy .ff-review-quote{margin:12px 0 16px;font-size:16px;line-height:1.45;font-weight:400;letter-spacing:-.01em;color:var(--e-ink);}
body.style-etsy .ff-review-name{margin:0;padding-top:12px;border-top:1px solid var(--e-line);font-size:14px;line-height:18px;letter-spacing:0;font-weight:700;color:var(--e-ink);}
body.style-etsy .ff-review-name .verified-buyer{font-weight:400;color:var(--e-ink-2);}
body.style-etsy .ff-review-carousel .flickity-prev-next-button{top:0;width:48px;height:48px;margin-top:calc(16px + ((100% - 48px) / 3 - 32px) / 2 - 24px);transform:none;border-radius:50%;background:#fff;box-shadow:var(--e-s2);color:var(--e-ink);}
body.style-etsy .ff-review-carousel .flickity-prev-next-button.previous{left:-24px;}
body.style-etsy .ff-review-carousel .flickity-prev-next-button.next{right:-24px;}
body.style-etsy .ff-review-carousel .flickity-prev-next-button .flickity-button-icon{left:30%;top:30%;width:40%;height:40%;fill:var(--e-ink);}
body.style-etsy .ff-review-carousel .flickity-page-dots{position:static;bottom:auto;margin-top:12px;display:flex;justify-content:center;}
body.style-etsy .ff-review-carousel .flickity-page-dots .dot{position:relative;width:44px;height:44px;margin:0;border-radius:0;background:transparent;opacity:1;}
body.style-etsy .ff-review-carousel .flickity-page-dots .dot::after{content:"";position:absolute;left:19px;top:19px;width:6px;height:6px;border-radius:50%;border:1px solid var(--e-field);}
body.style-etsy .ff-review-carousel .flickity-page-dots .dot.is-selected::after{background:var(--e-ink);border-color:var(--e-ink);}
/* Ready to see yours? A peach panel (bookends the peach hero, like the order page's promise box), ink text, marigold CTA */
body.style-etsy .ff-cta-band{padding:64px 0 0;background:none;color:var(--e-ink);text-align:left;}
body.style-etsy .ff-cta-panel{position:relative;overflow:hidden;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:48px;max-width:1216px;margin:0 auto;padding:64px 48px;border-radius:24px;background:var(--e-peach);}
body.style-etsy .ff-cta-copy{position:relative;z-index:2;min-width:0;display:flex;flex-direction:column;align-items:flex-start;}
body.style-etsy section.ff-cta-band h2{margin:0;font:400 40px/1.1 var(--e-serif);letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-cta-sub{max-width:560px;margin:12px 0 0;font-size:20px;line-height:1.4;letter-spacing:-.02em;color:var(--e-ink-2);}
body.style-etsy .ff-cta-band-btn{width:100%;max-width:400px;min-height:56px;margin:32px 0 0;border-radius:28px;}   /* marigold: a.ff-btn.ff-btn-primary (BASE) */
body.style-etsy .ff-cta-band .ff-note{margin:12px 0 0;text-align:left;color:var(--e-ink-2);}
body.style-etsy .ff-cta-band .ff-note strong{color:var(--e-ink);}
body.style-etsy .ff-cta-guarantee{display:flex;align-items:center;gap:8px;margin:24px 0 0;font-size:14px;line-height:20px;font-weight:700;letter-spacing:0;color:var(--e-ink);}
body.style-etsy .ff-cta-art{position:relative;min-width:0;height:320px;}
body.style-etsy .ff-cta-spark{position:absolute;z-index:0;pointer-events:none;fill:none;stroke:var(--e-ink);stroke-width:1.6;stroke-linejoin:round;}   /* ink line drawings, like the hero doodles (a peach-2 fill would vanish on peach) */
body.style-etsy .ff-cta-spark-1{left:4%;top:8%;} body.style-etsy .ff-cta-spark-2{left:46%;top:-2%;} body.style-etsy .ff-cta-spark-3{right:1%;top:46%;} body.style-etsy .ff-cta-spark-4{left:2%;top:88%;} body.style-etsy .ff-cta-spark-5{right:12%;bottom:-4%;}
body.style-etsy .ff-cta-fan{position:absolute;z-index:1;left:50%;top:50%;width:440px;height:290px;margin:-145px 0 0 -220px;}
body.style-etsy .ff-fan-card{position:absolute;top:34px;width:190px;padding:8px;background:#fff;border-radius:10px;box-shadow:0 10px 24px rgba(21,10,4,.18);transition:transform .4s cubic-bezier(.3,.7,.2,1);}
body.style-etsy .ff-fan-card img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;border-radius:4px;background:#EFECEA;}
body.style-etsy .ff-fan-l{left:0;z-index:1;transform:rotate(-9deg);}
body.style-etsy .ff-fan-m{left:125px;top:12px;z-index:3;transform:rotate(-1deg);}
body.style-etsy .ff-fan-r{left:250px;z-index:2;transform:rotate(8deg);}
body.style-etsy .ff-cta-panel:hover .ff-fan-l{transform:translate(-16px,6px) rotate(-13deg);}
body.style-etsy .ff-cta-panel:hover .ff-fan-m{transform:translateY(-8px) rotate(-1deg);}
body.style-etsy .ff-cta-panel:hover .ff-fan-r{transform:translate(16px,6px) rotate(12deg);}
@media (min-width:900px) and (max-width:1099.98px){body.style-etsy .ff-cta-fan{transform:scale(.8);}}
@media (max-width:899.98px){
  body.style-etsy:is(.page-home,.page-thanks) .container{padding-left:16px;padding-right:16px;}
  body.style-etsy .ff-hero-panel{padding:32px 24px;}
  body.style-etsy .ff-hero-etsy .ff-hero-h1{font-size:36px;line-height:1.08;}
  body.style-etsy .ff-review-carousel .flickity-prev-next-button.previous{left:-8px;}
  body.style-etsy .ff-review-carousel .flickity-prev-next-button.next{right:-8px;}
  body.style-etsy .ff-cta-panel{grid-template-columns:minmax(0,1fr);gap:24px;padding:32px 24px;text-align:center;}
  body.style-etsy .ff-cta-art{order:-1;}
  body.style-etsy .ff-cta-copy{align-items:center;}
  body.style-etsy .ff-cta-band .ff-note{text-align:center;}
  body.style-etsy .ff-cta-guarantee{justify-content:center;}
}
@media (max-width:719.98px){
  body.style-etsy .ff-hero.ff-hero-etsy{padding:0;}
  body.style-etsy .ff-hero-etsy > .container{padding:0;}
  body.style-etsy .ff-hero-panel{gap:20px;padding:0 16px 32px;border-radius:0 0 24px 24px;}
  body.style-etsy .ff-hero-art{order:-1;flex:1 1 100%;padding:28px 0 36px;}
  body.style-etsy .ff-hero-stage{width:300px;}
  body.style-etsy .ff-doodle-1{width:24px;height:24px;left:-34px;top:54px;}
  body.style-etsy .ff-doodle-2{width:14px;height:14px;left:6px;top:14px;}
  body.style-etsy .ff-doodle-3{width:20px;height:20px;left:34px;top:-12px;}
  body.style-etsy .ff-doodle-4{width:20px;height:20px;right:-32px;top:186px;}
  body.style-etsy .ff-doodle-5{width:14px;height:14px;right:22px;bottom:-26px;}
  body.style-etsy .ff-hero-bubble{width:84px;height:84px;left:-26px;bottom:-8px;}
  body.style-etsy .ff-hero-arrow{display:none;}
  body.style-etsy .ff-hero-arrow-sm{display:block;left:60px;bottom:28px;}
  body.style-etsy .ff-hero-seal{width:104px;height:106px;top:-4px;right:-18px;}
  body.style-etsy .ff-hero-etsy .ff-hero-lede{margin-top:12px;font-size:18px;line-height:24px;}
  body.style-etsy .ff-hero-etsy .ff-hero-cta{margin-top:24px;}
  body.style-etsy .ff-make-grid{display:flex;gap:12px;margin:12px -16px 0;padding:4px 16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:16px;scrollbar-width:none;}
  body.style-etsy .ff-make-card{flex:0 0 280px;scroll-snap-align:start;}
  body.style-etsy .ff-review-card{width:100%;margin-right:16px;}
  body.style-etsy .ff-review-carousel .flickity-prev-next-button{margin-top:calc(16px + (100% - 32px) / 2 - 24px);}
  body.style-etsy .ff-review-carousel .flickity-page-dots{gap:6px;height:24px;align-items:center;}   /* board HomePhone: a dot per review fits 390 px */
  body.style-etsy .ff-review-carousel .flickity-page-dots .dot{flex:0 0 6px;height:6px;}
  body.style-etsy .ff-review-carousel .flickity-page-dots .dot::after{left:0;top:0;}
  body.style-etsy .ff-review-body .stars{margin-top:12px;}
  body.style-etsy .ff-review-quote{margin:8px 0 16px;min-height:69px;}
  body.style-etsy.page-home .ff-section{padding-top:32px;}
  body.style-etsy.page-home .ff-section-head p{line-height:23px;}
  body.style-etsy .ff-make .ff-section-head{margin-bottom:0;}
  body.style-etsy .ff-reviews .ff-section-head{margin-bottom:16px;}
  body.style-etsy .ff-cta-band{padding-top:32px;}
  body.style-etsy.page-home .ff-footer{margin-top:48px;}
  body.style-etsy .ff-cta-panel{gap:20px;margin:0 auto;padding:32px 16px;}
  body.style-etsy .ff-cta-art{width:276px;height:184px;margin:0 auto;}
  body.style-etsy .ff-cta-fan{left:0;top:0;width:276px;height:184px;margin:0;transform:none;}
  body.style-etsy .ff-fan-card{top:28px;width:120px;}
  body.style-etsy .ff-fan-m{left:78px;top:8px;}
  body.style-etsy .ff-fan-r{left:156px;}
  body.style-etsy .ff-cta-spark-1{width:14px;height:14px;left:-22px;top:8px;}
  body.style-etsy .ff-cta-spark-2{width:10px;height:10px;left:47%;top:-12px;}
  body.style-etsy .ff-cta-spark-3{width:16px;height:16px;right:-24px;top:44px;}
  body.style-etsy .ff-cta-spark-4{width:10px;height:10px;left:-14px;top:auto;bottom:8px;}
  body.style-etsy .ff-cta-spark-5{width:12px;height:12px;right:-10px;bottom:-6px;}
  body.style-etsy section.ff-cta-band h2{font-size:32px;}
  body.style-etsy .ff-cta-sub{margin-top:12px;font-size:16px;line-height:23px;letter-spacing:-.01em;}
  body.style-etsy .ff-cta-band-btn{margin-top:24px;padding:14px 24px;}
  body.style-etsy .ff-cta-guarantee{align-items:flex-start;margin-top:16px;}
}

/* ==== HOW IT WORKS (spec §7.3; boards Main, Order) — shared by home and order ==== */
/* A white card with a hairline and ink text (plain information) */
body.style-etsy .ff-steps-section{padding:64px 0 0;background:none;}
body.style-etsy .ff-steps-section > .container{width:calc(100% - 64px);max-width:1216px;padding:48px;border-radius:24px;background:#fff;border:1px solid var(--e-line);color:var(--e-ink);}
body.style-etsy.page-order .ff-steps-section > .container{max-width:1400px;padding:48px clamp(20px,3.4vw,48px);}
body.style-etsy .ff-steps-section .ff-section-head{margin:0;}
body.style-etsy .ff-steps-section .ff-section-head h2{font:400 32px/1.1 var(--e-serif);letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-steps-section .ff-section-head p{margin-top:8px;color:var(--e-ink-2);}
body.style-etsy .ff-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px;}
body.style-etsy .ff-step{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-areas:"img img" "n kick" "h h" "p p";align-items:center;align-content:start;column-gap:12px;padding:0;background:none;border-radius:0;text-align:left;color:var(--e-ink);}
body.style-etsy .ff-step img{grid-area:img;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;background:#EFECEA;}
body.style-etsy .ff-step-n{grid-area:n;position:static;width:32px;height:32px;margin-top:16px;border-radius:50%;background:var(--e-ink);color:var(--e-page);font:700 14px/32px var(--ff-font);text-align:center;}
body.style-etsy .ff-step-kicker{grid-area:kick;margin:16px 0 0;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--e-ink-2);}
body.style-etsy .ff-step h3{grid-area:h;margin:12px 0 0;font-size:20px;line-height:24px;font-weight:700;letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-step p:not(.ff-step-kicker){grid-area:p;margin:8px 0 0;font-size:16px;line-height:1.5;color:var(--e-ink);}
body.style-etsy.page-order .ff-steps-section .ff-section-head{text-align:center;}
body.style-etsy.page-order .ff-step{position:relative;grid-template-areas:"img img" "kick kick" "h h" "p p";}
body.style-etsy.page-order .ff-step-n{position:absolute;top:12px;left:12px;margin:0;font-size:16px;}
body.style-etsy.page-order .ff-step h3{margin-top:6px;}
body.style-etsy.page-order :is(.ff-steps-section .ff-section-head p,.ff-step p:not(.ff-step-kicker)){line-height:1.45;}
@media (max-width:899.98px){   /* 720-899: the hero's 16 px inset; 3 steps in a row */
  body.style-etsy .ff-steps-section > .container{width:calc(100% - 32px);padding:32px 24px;}
  body.style-etsy .ff-steps{gap:24px;}
}
@media (max-width:719.98px){
  body.style-etsy .ff-steps{grid-template-columns:minmax(0,1fr);gap:32px;}
  body.style-etsy .ff-steps-section > .container{padding:32px 16px;}
  body.style-etsy.page-order .ff-steps-section{padding-top:32px;}
  body.style-etsy.page-order .ff-steps-section > .container{padding:32px 16px;}
  body.style-etsy.page-order .ff-steps-section .ff-section-head{text-align:left;}
  body.style-etsy.page-order .ff-steps{margin-top:24px;}
  body.style-etsy.page-order .ff-step{position:static;grid-template-areas:"img img" "n kick" "h h" "p p";}
  body.style-etsy.page-order .ff-step-n{position:static;margin:16px 0 0;font-size:14px;}
  body.style-etsy.page-order .ff-step h3{margin-top:12px;}
  body.style-etsy.page-home .ff-steps-section .ff-section-head h2{font-size:28px;}
  body.style-etsy.page-home .ff-steps{margin-top:24px;}
  body.style-etsy.page-home .ff-step p:not(.ff-step-kicker){line-height:23px;}
}

/* ==== ORDER LAYOUT (spec §8.1-8.2; boards Order, OrderPhone) ==== */
body.style-etsy.page-order .ff-order{background:var(--e-page);}
body.style-etsy #design-ready-toast:not(.show){display:none;}   /* an unused Bootstrap toast held a 44 px gap above How It Works */
body.style-etsy .ff-order-grid.container{max-width:calc(1400px + 2 * clamp(16px,2.3vw,32px));padding:32px clamp(16px,2.3vw,32px) 0;}
@media (min-width:960px){
  body.style-etsy .ff-order-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(392px,460px);gap:32px 64px;align-items:start;}
  body.style-etsy .ff-order-left{display:flex;flex-direction:column;gap:32px;min-width:0;}
  body.style-etsy .ff-order-right, body.style-etsy #product-order-options{position:static;display:block;min-width:0;}
  body.style-etsy .ff-gallery .ff-thumb-col{display:block!important;}
  body.style-etsy .ff-gallery .flickity-page-dots{display:none;}
}
@media (max-width:959.98px){
  body.style-etsy .ff-order-grid{display:flex;flex-direction:column;align-items:stretch;gap:32px;}
  body.style-etsy .ff-order-grid.container{padding-top:0;}
  body.style-etsy .ff-order-left, body.style-etsy .ff-order-right, body.style-etsy #product-order-options{display:contents;}
  body.style-etsy .ff-gallery{order:-1;margin:0 calc(-1 * clamp(16px,2.3vw,32px)) 2px;}   /* + 32 px gap = 30 px dots + 4 px (OrderPhone) */
  body.style-etsy .ff-product-info{order:0;}
  body.style-etsy .ff-order-trust{order:1;} body.style-etsy .ff-order-reviews{order:2;} body.style-etsy .ff-promise{order:3;}
  body.style-etsy .ff-gallery .ff-thumb-col{display:none!important;}
}
/* Gallery: 60 px thumbs on the left, square main image on #EFECEA */
body.style-etsy .ff-gallery{--bs-gutter-x:0;display:flex;flex-wrap:nowrap;gap:12px;align-items:flex-start;}   /* margins: the ≤959 px block above */
body.style-etsy .ff-gallery > .ff-thumb-col{flex:0 0 60px;width:60px;max-width:60px;padding:0;}
body.style-etsy .ff-gallery > .ff-main-col{flex:1 1 auto;width:auto;max-width:none;min-width:0;padding:0;}
body.style-etsy .ff-thumb-col .thumbnails-container{max-height:none;overflow:visible;}
body.style-etsy .ff-thumb-col .view-product_images{gap:6px;}
body.style-etsy .ff-thumb-col .thumbnail-cell{width:60px;height:60px;margin:0;border:0;border-radius:8px;overflow:hidden;background:#EFECEA;opacity:.6;cursor:pointer;transition:opacity .15s;}
body.style-etsy .ff-thumb-col .thumbnail-cell:hover{opacity:.85;}
body.style-etsy .ff-thumb-col .thumbnail-cell.is-selected{opacity:1;outline:2px solid var(--e-ink);outline-offset:0;}
body.style-etsy .ff-gallery:has(.main-carousel .carousel-cell:first-child.is-selected) .ff-thumb-col .thumbnail-cell:first-child{opacity:1;outline:2px solid var(--e-ink);outline-offset:0;}   /* the live JS marks no thumb before the first slide change */
body.style-etsy .ff-thumb-col .thumbnail-cell div.image{width:100%;height:100%;}
body.style-etsy section#order-page-2 .ff-thumb-col .thumbnail-cell div.image > img:not(.copyright){width:100%;height:100%;min-height:0;object-fit:cover;border-radius:0;}
body.style-etsy .ff-main-col .gallery-wrapper{position:relative;container-type:inline-size;}
body.style-etsy .ff-main-col .product-image-container{margin:0;background:none;border-radius:0;box-shadow:none;overflow:visible;}
body.style-etsy .ff-main-col .flickity-viewport{border-radius:8px;background:#EFECEA;}
body.style-etsy section#order-page-2 div#product-image-gallery div.carousel-cell div.image > img{border-radius:0;}
body.style-etsy section#order-page-2 div#product-image-gallery div.image div.color-title{display:none!important;}   /* no colour caption over the photo (board) */
body.style-etsy .ff-gallery .flickity-prev-next-button{width:48px;height:48px;background:#fff;box-shadow:var(--e-s2);color:var(--e-ink);}
body.style-etsy .ff-gallery .flickity-prev-next-button.previous{left:16px;}
body.style-etsy .ff-gallery .flickity-prev-next-button.next{right:16px;}
body.style-etsy .ff-gallery .flickity-prev-next-button .flickity-button-icon{left:30%;top:30%;width:40%;height:40%;fill:var(--e-ink);}
/* Polaroid: the sample's before photo (furfam-mockup.css ::before) in a white frame */
body.style-etsy section#order-page-2 form:not(.has-pets) div#product-image-gallery div.carousel-cell div.image::before{left:8%;top:16%;width:24%;height:auto;max-width:none;max-height:none;aspect-ratio:1/1;border:6px solid #fff;outline:0;border-radius:8px;box-shadow:var(--e-s1);background-size:cover;background-position:center;}
body.style-etsy section#order-page-2 form#order-info:is(.status-uploading,.status-pregenerating,.status-generating) div#product-image-gallery div.carousel-cell div.image::before{opacity:0!important;}
/* "Design updated" flash: ink, not furfam-mockup.css's amber var(--alert) (marigold means "do this") */
body.style-etsy section#order-page-2 div#product-image-gallery div.is-selected div.image div.design.updated-design img.custom-design{animation-name:ffInkFlash;}
@keyframes ffInkFlash{0%{box-shadow:0 0 3px 3px rgba(49,43,54,.35)}100%{box-shadow:0 0 0 50px rgba(49,43,54,0)}}
/* Seal (for the CSS badge) and size tab: first slide only, gone while painting */
body.style-etsy .ff-badge-order{display:none!important;}
body.style-etsy .ff-seal{position:absolute;z-index:6;top:16px;right:16px;width:clamp(96px,20cqw,150px);animation:ffFloat 4s ease-in-out infinite;}
body.style-etsy .ff-seal img{height:auto;}
body.style-etsy .ff-size-tab{position:absolute;z-index:6;left:16px;bottom:16px;padding:8px 16px;border-radius:24px;background:var(--e-ink);color:var(--e-page);font-size:16px;line-height:20px;font-weight:700;letter-spacing:-.01em;pointer-events:none;}
body.style-etsy .ff-size-tab:empty{display:none;}
body.style-etsy form#order-info.has-pets .ff-seal,
body.style-etsy form#order-info:is(.status-uploading,.status-pregenerating,.status-generating) :is(.ff-seal,.ff-size-tab){display:none;}
body.style-etsy .gallery-wrapper:has(.main-carousel.flickity-enabled .carousel-cell:first-child:not(.is-selected)) .ff-seal{display:none;}   /* its own rule: a :has() in a list would drop the other two in a browser without :has() */
@media (max-width:959.98px){
  body.style-etsy .ff-main-col .flickity-viewport{border-radius:0;}
  body.style-etsy .ff-gallery .flickity-prev-next-button{top:auto;bottom:12px;transform:none;}
  body.style-etsy .ff-gallery .flickity-prev-next-button.previous{left:auto;right:68px;}
  body.style-etsy .ff-gallery .flickity-prev-next-button.next{right:12px;}
  body.style-etsy .ff-gallery .flickity-page-dots{position:absolute;left:0;right:0;bottom:-30px;height:30px;display:flex;align-items:center;justify-content:center;gap:6px;margin:0;}
  body.style-etsy .ff-gallery .flickity-page-dots .dot{width:6px;height:6px;margin:0;border:1px solid var(--e-field);background:transparent;opacity:1;}
  body.style-etsy .ff-gallery .flickity-page-dots .dot.is-selected{background:var(--e-ink);border-color:var(--e-ink);}
  body.style-etsy .ff-seal{top:12px;right:12px;}
  body.style-etsy .ff-size-tab{left:12px;bottom:18px;padding:8px 14px;}
}

/* ==== ORDER INFO (trust strip, reviews, promise; spec §8.1) ==== */
body.style-etsy .ff-order-trust{display:flex;flex-wrap:wrap;gap:16px 28px;margin:0;padding:24px 0;border-top:1px solid var(--e-line);border-bottom:1px solid var(--e-line);}
body.style-etsy .ff-order-trust li{flex:1 1 200px;min-width:0;gap:12px;font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink-2);}
body.style-etsy .ff-order-trust i{flex:0 0 24px;font-size:20px;color:var(--e-ink);}
body.style-etsy .ff-order-trust b{margin-bottom:4px;font-size:14px;line-height:16px;font-weight:700;color:var(--e-ink);}
body.style-etsy .ff-order-reviews{margin:0;padding:0;border-radius:0;background:none;}
body.style-etsy .ff-review-list{display:flex;flex-direction:column;}
body.style-etsy .ff-reviews-head{display:contents;}
body.style-etsy .ff-reviews-head h2{margin:0;font-size:20px;line-height:24px;font-weight:700;letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-reviews-head div.total-rating > p{display:block;margin:12px 0 0;font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink);}   /* a block: flex would split the sentence's bare text nodes */
body.style-etsy .ff-reviews-head .ff-stars{display:inline-block;margin-right:4px;vertical-align:middle;color:var(--e-gold-2);font-size:18px;letter-spacing:2px;}   /* the board's 84 px of stars and 10 px gap */
body.style-etsy .ff-reviews-head span.total-rating{display:inline-block;margin-right:6px;vertical-align:middle;font:400 32px/1.1 var(--e-serif);font-variant-numeric:lining-nums;letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-review-item-who .small{font-size:inherit;}   /* Bootstrap .small would make the name and date 12.25 px */
body.style-etsy .ff-review-grid{order:1;display:block;margin-top:16px;border-top:1px solid var(--e-line);}
body.style-etsy .ff-reviews-head .view-all-reviews-container{order:2;margin-top:24px;}
body.style-etsy .view-all-reviews-btn{width:auto;min-height:48px;padding:12px 24px;border:1px solid var(--e-ink);border-radius:24px;background:transparent;color:var(--e-ink);font-size:16px;}
body.style-etsy .ff-review-item{grid-template-columns:minmax(0,1fr) 72px;grid-template-areas:"stars img" "text img" "who img" "rel img";column-gap:24px;align-items:start;padding:16px 0;border-bottom:1px solid var(--e-line);border-radius:0;background:none;}
body.style-etsy .ff-review-item:nth-child(-n+3){display:grid;}   /* first three rows only; pass-B's n+4 hide stays */
body.style-etsy .ff-review-item-head{display:contents;}
body.style-etsy .ff-review-item-img{grid-area:img;width:72px;height:72px;aspect-ratio:auto;border-radius:8px;object-fit:cover;object-position:center 30%;}
body.style-etsy .ff-review-item-head .stars{grid-area:stars;display:flex;gap:2px;color:var(--e-gold-2);font-size:14px;}
body.style-etsy .ff-review-item > .d-flex{grid-area:text;}
body.style-etsy .ff-review-item-text{margin:8px 0 0;font-size:16px;line-height:1.45;color:var(--e-ink);}
body.style-etsy .ff-review-item-who{grid-area:who;display:flex;flex-wrap:wrap;align-items:center;gap:0;margin-top:8px;font-size:14px;line-height:20px;letter-spacing:0;}
body.style-etsy .ff-review-item-who .fw-bold{font-weight:700;color:var(--e-ink);}
body.style-etsy .ff-review-item-who .text-muted::before{content:"";display:inline-block;width:1px;height:14px;margin:0 8px;background:var(--e-line);vertical-align:-2px;}
body.style-etsy .ff-review-item-who .text-muted{color:var(--e-ink-2)!important;}
body.style-etsy .ff-review-item .related-review-link{grid-area:rel;}
body.style-etsy .ff-promise{display:flex;flex-wrap:wrap;gap:24px 32px;padding:32px;border-radius:24px;background:var(--e-peach);}
body.style-etsy .ff-promise > div{flex:1 1 260px;min-width:0;gap:16px;font-size:16px;line-height:1.45;color:var(--e-ink);}
body.style-etsy .ff-promise i{flex:0 0 32px;font-size:28px;color:var(--e-ink);}
body.style-etsy .ff-promise b{margin-bottom:4px;font-size:16px;line-height:20px;font-weight:700;color:var(--e-ink);}
@media (max-width:959.98px){body.style-etsy .ff-order-trust{margin-top:-32px;border-top:0;}}   /* stacked: the accordions' last line is its divider */
@media (max-width:575.98px){   /* board OrderPhone: big 4.9 on the left, stars over the sentence, full-width "View all" */
  body.style-etsy .ff-reviews-head div.total-rating > p{position:relative;padding-left:56px;color:var(--e-ink-2);}
  body.style-etsy .ff-reviews-head div.total-rating > p strong{color:var(--e-ink);}
  body.style-etsy .ff-reviews-head .ff-stars{display:block;margin:0;letter-spacing:2px;}
  body.style-etsy .ff-reviews-head span.total-rating{position:absolute;left:0;top:50%;margin:0;line-height:1;transform:translateY(-50%);}
  body.style-etsy .view-all-reviews-btn{width:100%;}
  body.style-etsy .ff-promise{padding:24px;}
  body.style-etsy .ff-promise > div{gap:12px;}
  body.style-etsy .ff-promise i{flex-basis:28px;}
}

/* ==== BUY BOX (spec §8.3; boards Order, OrderPhone, Pet1-Pet8) ==== */
/* Top, re-ordered without moving markup: badge, price + FREE SHIPPING, title, subtitle, stars, options, add to cart,
   guarantee, payments, accordions */
body.style-etsy{--e-alert-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23C7102F'/%3E%3Cpath d='M8 4.2v4.6' stroke='%23FAF8F5' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='11.6' r='1.05' fill='%23FAF8F5'/%3E%3C/svg%3E");}   /* circle-! on the error red (hint + status alert) */
body.style-etsy .ff-product-info{display:flex;flex-direction:column;}
body.style-etsy .ff-order-meta{display:contents;}
body.style-etsy .ff-product-info .ff-pill{order:1;align-self:flex-start;margin:0;padding:4px 8px;border-radius:16px;background:var(--e-peach-2);color:var(--e-ink);font-size:12px;line-height:16px;font-weight:700;letter-spacing:.01em;text-transform:none;}
body.style-etsy .ff-order-pricebox{order:2;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;}
body.style-etsy .ff-order-pricebox .ff-order-price{margin:0;font:700 24px/32px var(--ff-font);letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-order-ship{display:inline-block;padding:3px 6px;border-radius:16px;background:var(--e-green-fill);color:var(--e-ink);font-size:11px;line-height:1;font-weight:700;letter-spacing:.01em;}
body.style-etsy .ff-order-title{order:3;margin:8px 0 0;font:700 20px/24px var(--ff-font);letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy .ff-order-headline{order:4;margin:6px 0 0;font-size:16px;line-height:1.45;color:var(--e-ink-2);}
body.style-etsy .ff-product-info .ff-share{order:5;}
body.style-etsy #product-rating{order:5;min-height:44px;}
body.style-etsy #product-rating a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink);}
body.style-etsy #product-rating .review-stars{display:inline-flex;align-items:center;gap:1px;color:var(--e-gold-2);font-size:14px;}
body.style-etsy #product-rating .ff-rating-num{margin-left:7px;font-weight:700;color:var(--e-ink);}
body.style-etsy #product-rating .total-reviews{margin-left:8px;color:var(--e-ink);text-decoration:underline;text-underline-offset:3px;}
body.style-etsy #product-rating.total-reviews-0 > a, body.style-etsy #product-rating.total-reviews-0 .review-stars{display:none;}   /* no reviews: only the .no-reviews link (spec 3.1); (1,3,x) beats the two rules above */
body.style-etsy #order-options.ff-steps-form{order:6;display:flex;flex-direction:column;gap:24px;margin-top:12px;padding:0;border-radius:0;background:none;counter-reset:none;}
body.style-etsy #add-to-cart-container{order:7;margin-top:0;}   /* empty: no gap; 24 px once Add to cart shows (below) */
@media (min-width:577px){body.style-etsy form#order-info.status-complete #add-to-cart-container{margin-top:24px;}}
body.style-etsy .ff-guarantee-line{order:8;}
body.style-etsy #payment-methods{order:9;}
body.style-etsy #item-details.ff-accordion{order:10;}
/* Option groups: plain labels, no step numbers */
body.style-etsy .ff-steps-form .product-option, body.style-etsy .ff-steps-form div#pet-gallery{padding:0;}
body.style-etsy .ff-steps-form .product-option::before, body.style-etsy .ff-steps-form div#pet-gallery::before{content:none;}
body.style-etsy .ff-steps-form .product-option > .label, body.style-etsy .ff-steps-form div#pet-gallery > .label{display:inline-block;margin:0 0 6px;font-size:14px;line-height:16px;font-weight:700;letter-spacing:0;color:var(--e-ink);}
body.style-etsy .ff-steps-form :is(.product-option-background-style,.product-option-product-color) > .value{display:inline-block;margin:0 0 6px;font-size:14px;line-height:16px;font-weight:400;letter-spacing:0;color:var(--e-ink);}
body.style-etsy .ff-steps-form :is(.product-option-background-style,.product-option-product-color) > .value:not(:empty)::before{content:": ";}
body.style-etsy .ff-steps-form .product-option-background-style > :is(.label,.value){margin-bottom:12px;}
body.style-etsy .ff-steps-form .product-option:not(.product-option-background-style,.product-option-product-color) > .label{display:block;}   /* a block label: no strut line above the field */
body.style-etsy .ff-steps-form :is(.product-option-background-style,.product-option-product-color){display:flex;flex-wrap:wrap;line-height:16px;}   /* one 16 px row; flex drops the space before ": " */
body.style-etsy .ff-steps-form :is(.product-option-background-style,.product-option-product-color) > .field{flex:0 0 100%;min-width:0;}
/* Size + Font: the select proxies (§8.3.2, §8.3.5) */
body.style-etsy .ff-proxy-select{display:none;}
body.style-etsy :is(.product-option-size,.product-option-font) .ff-proxy-select{display:block;width:100%;height:48px;padding:0 40px 0 12px;border:1px solid var(--e-field);border-radius:8px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23312B36' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 10px center/24px no-repeat;color:var(--e-ink);font:400 16px/20px var(--ff-font);letter-spacing:-.01em;cursor:pointer;appearance:none;-webkit-appearance:none;}
body.style-etsy .ff-proxy-select:hover{border-color:#2314109E;}
body.style-etsy .ff-proxy-select:focus-visible{border-color:var(--e-ink);}
body.style-etsy .ff-steps-form :is(.product-option-size,.product-option-font) > .value{display:none;}
body.style-etsy .ff-steps-form :is(.product-option-size,.product-option-font) .view-options{position:absolute!important;width:1px!important;height:1px!important;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
/* Background Style: the chips as 72 px tiles; ::before = colour, ::after = the style's mark */
body.style-etsy .product-option-background-style .view-options{display:flex;flex-wrap:wrap;gap:12px;}
body.style-etsy .ff-steps-form .product-option-background-style a.btn-option{position:relative;flex:0 0 auto;width:72px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:0;border-radius:12px!important;background:transparent;box-shadow:none;color:var(--e-ink);font:400 14px/16px var(--ff-font);letter-spacing:0;text-align:center;}
body.style-etsy .product-option-background-style a.btn-option::before{content:"";display:block;width:72px;height:72px;box-sizing:border-box;border:1px solid var(--e-field);border-radius:8px;background:rgb(var(--product-color));transition:box-shadow .15s;}
body.style-etsy .product-option-background-style a.btn-option:is([data-value="370"],[data-value="62"],[data-value="61"])::after{content:"";position:absolute;top:1px;left:1px;width:70px;height:70px;border-radius:7px;pointer-events:none;}
body.style-etsy .product-option-background-style a.btn-option[data-value="370"]::after{background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.55),rgba(255,255,255,0) 70%);}
body.style-etsy .product-option-background-style a.btn-option[data-value="62"]::after{background:url(/images/etsy/bg-confetti-v2.webp) center/cover no-repeat;filter:drop-shadow(0 0 1px rgba(49,43,54,.25));}
body.style-etsy .product-option-background-style a.btn-option[data-value="61"]::after{background:url(/images/etsy/bg-dreamy.webp) center/cover no-repeat;filter:drop-shadow(0 0 1px rgba(49,43,54,.25));}
body.style-etsy .ff-steps-form .product-option-background-style a.btn-option.active{font-weight:700;box-shadow:none;}
body.style-etsy .product-option-background-style a.btn-option.active::before{box-shadow:var(--e-ring);}
body.style-etsy .product-option-background-style a.btn-option:not(.active):hover::before{box-shadow:0 0 0 3px #fff,0 0 0 4px #928681;}
/* Color: 40 px dots in 48 px buttons */
body.style-etsy .product-option-product-color .view-options{display:flex;flex-wrap:wrap;gap:8px;margin-left:-4px;}
body.style-etsy .ff-steps-form a.product-color-button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:4px;border:0;border-radius:50%;background:transparent;}
body.style-etsy .ff-steps-form a.product-color-button span.swatch{width:40px;height:40px;border:1px solid var(--e-field);border-radius:50%;box-shadow:none;transition:box-shadow .15s;}
body.style-etsy .ff-steps-form a.product-color-button.active span.swatch{box-shadow:var(--e-ring);}
body.style-etsy .ff-steps-form a.product-color-button:not(.active):hover span.swatch{box-shadow:0 0 0 3px #fff,0 0 0 4px #928681;}
body.style-etsy .ff-steps-form a.product-color-button:active{transform:scale(.92);}
/* Choose your pet (div#pet-gallery, rendered by the upload manager) */
body.style-etsy .ff-steps-form div#pet-gallery > .label{display:block;margin:0 0 16px;}   /* same specificity as the shared label rule above, which it follows */
body.style-etsy div#pet-gallery .pet-list-container{padding:0;border:0;background:none;}
body.style-etsy div#pet-gallery .pet-list{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:16px 12px;}
body.style-etsy div#pet-gallery :is(.pet-row,.pet-add-tile){gap:6px;min-height:132px;padding:12px 8px;border:1px solid var(--e-field);border-radius:8px;background:#fff;color:var(--e-ink);}
body.style-etsy div#pet-gallery :is(.pet-row,.pet-add-tile):hover{border-color:var(--e-ink);}
body.style-etsy div#pet-gallery :is(.pet-row,.pet-add-tile).selected{border-color:var(--e-ink);box-shadow:inset 0 0 0 1px var(--e-ink);}
body.style-etsy div#pet-gallery .pet-row-thumbnail{flex:0 0 64px;width:64px;max-width:64px;height:64px;background:#EFECEA;}
body.style-etsy div#pet-gallery .pet-row-thumbnail img{object-fit:cover;}
body.style-etsy div#pet-gallery .pet-row-name{font-size:14px;line-height:16px;font-weight:700;letter-spacing:0;color:var(--e-ink);}
body.style-etsy div#pet-gallery .pet-row-status{margin-top:6px;font-size:12px;line-height:16px;letter-spacing:.01em;color:var(--e-ink-2);}
body.style-etsy div#pet-gallery :is(.pet-row,.pet-add-tile).selected .pet-row-status{color:var(--e-ink);font-weight:700;}
body.style-etsy div#pet-gallery .pet-add-tile{border-style:dashed;}
body.style-etsy div#pet-gallery .pet-add-tile.selected{border-style:solid;}
body.style-etsy div#pet-gallery .pet-add-tile i{flex:0 0 64px;width:64px;max-width:64px;height:64px;border:1px dashed var(--e-ink);background:#fff;color:var(--e-ink);font-size:22px;}
body.style-etsy div#pet-gallery .pet-add-tile:hover i{border-style:dashed;background:#fff;color:var(--e-ink);}
body.style-etsy div#pet-gallery .pet-add-tile.selected i{border-style:solid;background:var(--e-ink);color:var(--e-page);}
body.style-etsy div#pet-gallery .pet-row-delete{top:-9px;right:-9px;width:32px;height:32px;border:1px solid var(--e-line);background:#fff;color:var(--e-ink);font-size:13px;}
body.style-etsy div#pet-gallery .pet-row-delete::before{content:"";position:absolute;inset:-6px;border-radius:50%;}
body.style-etsy div#pet-gallery .pet-row-delete:hover{border-color:var(--e-line);background:#F5F3F2;color:var(--e-ink);}   /* red is for errors only; opaque = #3314000D over white, as the button overlaps the tile edge */
body.style-etsy div#pet-gallery .pet-row-delete:active{border-color:var(--e-ink);background:var(--e-ink);color:var(--e-page);}
/* Pet Name */
body.style-etsy .ff-steps-form .product-option-pets-name > .field.type-text{border-radius:8px;}
body.style-etsy .ff-steps-form .type-text input.option{height:48px;padding:8px 12px;border:1px solid var(--e-field);border-radius:8px;background:#fff;color:var(--e-ink);font:400 16px/20px var(--ff-font);letter-spacing:-.01em;box-shadow:none;}
body.style-etsy .ff-steps-form .type-text input.option::placeholder{color:var(--e-ink-3);opacity:1;}
body.style-etsy .ff-steps-form .type-text input.option:hover{border-color:#2314109E;}
body.style-etsy .ff-steps-form .type-text input.option:focus{outline:none;border-color:var(--e-ink);box-shadow:var(--e-focus);}
body.style-etsy form#order-info.generate-preview-incomplete.no-name:not(.no-photo) .ff-steps-form .type-text input.option{border-color:var(--e-error);background:var(--e-error-tint);}
body.style-etsy form#order-info.has-pets.mode-add .ff-steps-form #pet-name-container > .label{display:flex;align-items:center;min-height:36px;}   /* "New pet's name" row = the 36 px Cancel pill (board Pet5) */
body.style-etsy .ff-steps-form #cancel-add-pet{top:0;height:36px;padding:0 15px;border:0;border-radius:18px;background:#3314000D;color:var(--e-ink);font:700 14px/36px var(--ff-font);letter-spacing:0;box-shadow:none;}
body.style-etsy .ff-steps-form #cancel-add-pet:hover{background:#33140030;}
/* Pet Photo: the sunny upload card */
body.style-etsy .ff-steps-form .ff-drop{position:relative;display:flex;align-items:center;margin:0;padding:16px;border:1.5px dashed var(--e-gold-2);border-radius:8px;background:var(--e-sun);transition:background-color .2s;}
body.style-etsy .ff-steps-form .ff-drop:hover, body.style-etsy .ff-steps-form .ff-drop.drag-over{background:var(--e-sun-hover);}
body.style-etsy .ff-steps-form .ff-drop .drop-zone-text{gap:16px;}
body.style-etsy .ff-steps-form .ff-drop .drop-zone-icon{width:48px;height:48px;background:var(--e-gold);color:var(--e-ink);font-size:20px;}
body.style-etsy .ff-steps-form .ff-drop .drop-zone-text-lines{display:flex;flex-direction:column;gap:2px;min-width:0;}
body.style-etsy .ff-steps-form .ff-drop .drop-zone-line-1{font-size:16px;line-height:20px;font-weight:700;letter-spacing:-.01em;color:var(--e-ink);}
body.style-etsy .ff-steps-form .ff-drop .drop-zone-line-2{font-size:14px;line-height:18px;font-weight:400;letter-spacing:0;color:var(--e-ink);text-decoration:underline;}
@media (hover:hover){body.style-etsy .ff-steps-form .ff-drop .desktop{display:inline-block;margin-left:.3em;text-decoration:none;}}   /* inline-block: the underline stops at "Tap to choose a photo" */
body.style-etsy .ff-steps-form .ff-drop .drop-zone-line-3{font-size:12px;line-height:16px;letter-spacing:.01em;color:var(--e-ink-2);}
body.style-etsy form#order-info.generate-preview-incomplete.no-photo .ff-steps-form .ff-drop{border-color:var(--e-error);background:var(--e-error-tint);}
body.style-etsy .ff-steps-form .ff-drop.processing::before{border-color:#fff;border-top-color:var(--e-ink);}
body.style-etsy .ff-steps-form .ff-drop.processing::after{color:var(--e-ink);}
/* Staged photo + progress row: a 96 px photo with the status beside it while busy */
body.style-etsy .ff-steps-form .type-upload_photos > .field.type-upload_photos{display:grid;grid-template-columns:96px minmax(0,1fr);grid-auto-flow:row dense;column-gap:16px;align-items:center;}
body.style-etsy .type-upload_photos > .field.type-upload_photos > *{grid-column:1/-1;}
body.style-etsy .type-upload_photos > .field.type-upload_photos > #preview-area{grid-column:1;}
body.style-etsy form#order-info:is(.status-uploading,.status-pregenerating,.status-generating) .type-upload_photos > .field > #design-status-message{grid-column:2;margin-top:8px;}   /* centres the status on the 96 px photo */
body.style-etsy form#order-info.status-error .type-upload_photos > .field > :is(#generate-preview-wrapper,#change-design-button){order:2;}
body.style-etsy #preview-area:has(.pet-photo-preview){padding-top:8px;}   /* not :not(:empty): the manager leaves an empty container */
body.style-etsy #preview-area .pet-photo-preview{width:96px;height:96px;padding:0;border:1px solid var(--e-line);border-radius:8px;}
body.style-etsy #preview-area .pet-photo-preview img{border-radius:7px!important;}
body.style-etsy #preview-area .pet-photo-remove{top:-9px!important;right:-9px!important;width:32px;height:32px;border:1px solid var(--e-line)!important;color:var(--e-ink);font:400 20px/1 var(--ff-font);}
body.style-etsy #preview-area .pet-photo-remove::before{content:"";position:absolute;inset:-6px;border-radius:50%;}
body.style-etsy #preview-area .pet-photo-remove:hover{border-color:var(--e-line)!important;background:#F5F3F2!important;color:var(--e-ink);}
body.style-etsy #design-status-message{margin:0;text-align:left;}
body.style-etsy #design-status-message > div{padding:0;font-size:14px;line-height:16px;font-weight:700;letter-spacing:0;color:var(--e-ink);}
body.style-etsy form#order-info:is(.status-uploading,.status-pregenerating,.status-generating) #design-status-message{display:flex;flex-direction:column;}
body.style-etsy form#order-info.status-uploading #design-status-message .uploading, body.style-etsy form#order-info:is(.status-pregenerating,.status-generating) #design-status-message .generating{order:1;display:flex;align-items:center;gap:6px;color:var(--e-ink);animation:none;}
body.style-etsy #design-status-message .status-bar{order:2;position:relative;inset:auto;height:12px;margin-top:8px;border:0;border-radius:6px;background:var(--e-sun);box-shadow:inset 0 0 0 1.5px var(--e-gold-2);overflow:visible;container-type:inline-size;}   /* gold, so the photo and painting wait is hard to miss (Brandon 2026-10-28) */
body.style-etsy #design-status-message .status-bar .progress{top:-2px;bottom:auto;height:16px;border-radius:8px;background:linear-gradient(90deg,var(--e-gold),var(--e-gold-2));-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 6px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 6px),transparent);}
body.style-etsy form#order-info.status-error #design-status-message .error, body.style-etsy form#order-info.not-safe-alert #design-status-message .not-safe-alert{display:flex;align-items:flex-start;gap:6px;padding:10px 12px;border-radius:8px;background:var(--e-error-tint);color:var(--e-error);font-size:14px;line-height:16px;font-weight:400;}   /* spec 8.3.10: the board's error alert */
body.style-etsy form#order-info.status-error #design-status-message .error::before, body.style-etsy form#order-info.not-safe-alert #design-status-message .not-safe-alert::before{content:"";flex:0 0 16px;width:16px;height:16px;background:var(--e-alert-icon) center/16px no-repeat;}
body.style-etsy form#order-info.status-error #design-status-message .error > i{display:none;}   /* the live Font Awesome glyph; the ::before circle-! replaces it */
@media (min-width:577px){body.style-etsy form#order-info:is(.status-error,.not-safe-alert) #design-status-message{margin-top:24px;}}   /* the 24 px field gap; on a phone the message sits in the fixed strip */
/* Create My Design Now */
body.style-etsy #generate-preview-wrapper{margin-top:24px;}
body.style-etsy #generate-preview-btn{position:relative;min-height:48px;padding:12px 24px;border:0;border-radius:24px;background:var(--e-gold);color:var(--e-ink);box-shadow:var(--e-gold-glow);font:700 16px/20px var(--ff-font);letter-spacing:-.01em;}
body.style-etsy #generate-preview-btn:hover, body.style-etsy #generate-preview-btn:active{background:var(--e-gold-2);color:var(--e-ink);}
body.style-etsy #generate-preview-btn.is-disabled{border:0;background:var(--e-disabled);color:var(--e-ink);box-shadow:none;cursor:not-allowed;}   /* ink, not the 5 table's cream (1.73:1): the button still takes clicks, so 13's AA applies */
body.style-etsy #generate-preview-wrapper .incomplete-message{margin-top:8px;text-align:left;font-size:14px;line-height:16px;letter-spacing:0;color:var(--e-error);}
body.style-etsy #generate-preview-wrapper .incomplete-message span{display:inline-flex;align-items:center;gap:6px;vertical-align:top;}
body.style-etsy #generate-preview-wrapper .incomplete-message span::before{content:"";flex:0 0 16px;width:16px;height:16px;background:var(--e-alert-icon) center/16px no-repeat;}
body.style-etsy .ff-generate-note{display:flex;align-items:center;gap:6px;margin:8px 0 0;text-align:left;font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink-2);}
body.style-etsy .ff-generate-note i{color:var(--e-ink);font-size:15px;}
/* Add to cart */
body.style-etsy #add-to-cart{min-height:56px;padding:8px 24px;row-gap:2px;border-radius:28px;background:var(--e-gold);color:var(--e-ink);box-shadow:var(--e-gold-glow);font:700 16px/20px var(--ff-font);letter-spacing:-.01em;}
body.style-etsy #add-to-cart:hover, body.style-etsy #add-to-cart:active{background:var(--e-gold-2);color:var(--e-ink);}
body.style-etsy #add-to-cart .item-price{margin-left:0;opacity:1;}   /* pass-B's 8 px column gap is the board's 8 px */
body.style-etsy #add-to-cart .item-description{font-size:12px;line-height:16px;font-weight:400;letter-spacing:.01em;opacity:1;}
/* Guarantee, payments */
body.style-etsy .ff-guarantee-line{position:relative;display:block;margin:16px 0 0;padding-left:28px;text-align:left;font-size:14px;line-height:20px;letter-spacing:0;color:var(--e-ink-2);}   /* a flex row would split "Happiness Guarantee:" from its sentence */
body.style-etsy .ff-guarantee-line::before{content:"";position:absolute;left:0;top:0;width:20px;height:20px;background:url(/images/etsy/icon-shield.webp) center/contain no-repeat;}
body.style-etsy .ff-guarantee-line strong{color:var(--e-ink);}
body.style-etsy .ff-payment-methods{justify-content:flex-start;gap:8px;margin:16px 0 0;opacity:1;}
body.style-etsy.design-2026 .ff-payment-methods img{height:28px;}
/* Accordions (56 px rows, chevron turns 180°) */
body.style-etsy .ff-accordion{margin-top:24px;border-top:1px solid var(--e-line);}
body.style-etsy .ff-accordion .accordion-item{border:0;border-bottom:1px solid var(--e-line);border-radius:0;background:transparent;}
body.style-etsy .ff-accordion .accordion-button, body.style-etsy .ff-accordion .accordion-button:not(.collapsed){min-height:56px;padding:12px 0;border-radius:0;background:transparent;color:var(--e-ink);box-shadow:none;font:700 16px/20px var(--ff-font);letter-spacing:-.01em;}
body.style-etsy .ff-accordion .accordion-button:hover span{text-decoration:underline;}
body.style-etsy .ff-accordion .accordion-button::after, body.style-etsy .ff-accordion .accordion-button:not(.collapsed)::after{width:24px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23312B36' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/24px no-repeat;transition:transform .2s ease-in;}
body.style-etsy .ff-accordion .accordion-button:not(.collapsed)::after{transform:rotate(180deg);}
body.style-etsy .ff-accordion .accordion-body{padding:0 0 24px;font-size:16px;line-height:1.5;color:var(--e-ink);}
body.style-etsy .ff-accordion .shipping-info li p{margin:0;}
body.style-etsy .ff-accordion .shipping-info li + li p{margin-top:12px;}
body.style-etsy #care-instructions-accordion-item .accordion-body p{margin:0;}
body.style-etsy #care-instructions-accordion-item .accordion-body ul{margin:12px 0 0;padding-left:20px;}
body.style-etsy #care-instructions-accordion-item .accordion-body li + li{margin-top:6px;}
/* Item Details (partial.item_details.php) */
body.style-etsy .ff-details > p{margin:0;}
body.style-etsy .ff-details-fabric{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;border-radius:8px;background:var(--e-stone);}
body.style-etsy .ff-details-fabric img{flex:0 0 128px;width:128px;height:128px;box-sizing:border-box;border:1px solid var(--e-line);border-radius:8px;object-fit:cover;background:#fff;}   /* white fleece: a hairline so it reads on the stone note */
body.style-etsy .ff-details-fabric p{min-width:0;margin:0;font-size:14px;line-height:20px;letter-spacing:0;}
body.style-etsy .ff-details-list{display:flex;flex-direction:column;gap:12px;margin:12px 0 0;padding:0;list-style:none;}
body.style-etsy .ff-details-list > li{display:flex;align-items:flex-start;gap:12px;}
body.style-etsy .ff-details-list > li > span:not(.ff-details-ic){min-width:0;padding-top:4px;}
body.style-etsy .ff-details-ic{flex:0 0 32px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--e-peach);}
body.style-etsy .ff-details-ic svg{width:18px;height:18px;stroke:var(--e-ink);}
body.style-etsy :is(.ff-details-sizes,.ff-details-rule){padding-top:12px;border-top:1px solid var(--e-line);}
body.style-etsy .ff-details-sizes{flex-wrap:wrap;}
body.style-etsy .ff-details-sizes ul{flex:1 1 160px;min-width:0;display:flex;flex-direction:column;gap:8px;margin:0;padding:4px 0 0;list-style:none;}
body.style-etsy .ff-details-diagram{position:relative;flex:0 0 120px;width:120px;height:160px;margin-left:auto;}
body.style-etsy .ff-details-diagram span{position:absolute;left:0;bottom:0;padding:4px 6px;border:1px solid var(--e-ink);background:#fff;font-size:12px;line-height:16px;font-weight:700;letter-spacing:0;}
body.style-etsy .ff-details-diagram .is-large{width:120px;height:160px;}
body.style-etsy .ff-details-diagram .is-medium{width:100px;height:120px;}
body.style-etsy .ff-details-diagram .is-baby{width:60px;height:80px;background:var(--e-peach);}
@media (max-width:575.98px){   /* board OrderPhone */
  body.style-etsy .ff-order-headline{margin-top:8px;}
  body.style-etsy #product-rating{margin-top:8px;}
  body.style-etsy #product-rating a{font-size:16px;}
  body.style-etsy #product-rating .total-reviews::before{content:"";display:inline-block;width:1px;height:16px;margin-right:8px;background:var(--e-line);vertical-align:-3px;}
  body.style-etsy #order-options.ff-steps-form{margin-top:24px;}
  body.style-etsy .ff-details-diagram{order:-1;margin:0 calc(50% - 60px);}   /* its own centred row above the sizes */
  body.style-etsy .product-option-product-color .view-options{gap:2px;}
  body.style-etsy div#pet-gallery .pet-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
  body.style-etsy .ff-steps-form div#pet-gallery > .label{margin-bottom:14px;}
  body.style-etsy div#pet-gallery :is(.pet-row,.pet-add-tile){padding:12px 6px;}
  body.style-etsy .ff-payment-methods{justify-content:center;}
  body.style-etsy.design-2026 .ff-payment-methods img{height:24px;}
  body.style-etsy .ff-steps-form .ff-drop .drop-zone-text-lines{gap:4px;}   /* board OrderPhone: 94 px card */
  body.style-etsy .ff-steps-form .ff-drop .drop-zone-line-2{line-height:16px;text-underline-offset:2px;}
  body.style-etsy .ff-guarantee-line{margin-top:24px;}   /* the fixed bar leaves the flow */
}
@media (max-width:576px){body.style-etsy #generate-preview-btn{font-size:0;}}   /* pass-B's phone strip paints the label in ::after */

/* ==== PULSE (spec §10): one slow marigold ring at a time, from the form's state classes ==== */
/* Guiding = no pets yet, or adding one; and nothing busy, complete or failed. Then: the upload card while there is no
   photo, the empty Pet Name field, or the ready Create button (also the phone bar's, which is the same element). */
body.style-etsy form#order-info:is(:not(.has-pets),.mode-add):not(.status-uploading,.status-pregenerating,.status-generating,.status-complete,.status-error).no-photo label.drop-zone.ff-drop:not(.processing)::after,
body.style-etsy form#order-info:is(:not(.has-pets),.mode-add):not(.status-uploading,.status-pregenerating,.status-generating,.status-complete,.status-error):not(.no-photo).no-name .product-option-pets-name > .field.type-text::after,
body.style-etsy form#order-info:is(:not(.has-pets),.mode-add):not(.status-uploading,.status-pregenerating,.status-generating,.status-complete,.status-error):not(.no-photo):not(.no-name) #generate-preview-btn:not(.is-disabled)::before{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;animation:var(--ff-ring);box-shadow:var(--ff-ring-static);}
/* Create clicked while not ready: pulse-animation on the missing field for 2.5 s = one ring */
/* Two standalone rules (a :has() in a list drops the whole list in a browser without :has()). The static ring is what
   reduced motion shows (its --ff-ring-static is the 2 px marigold; the animation is off there). The manager picks the NAME
   field whenever the name is missing, even with no photo: then the message under Create says "add a photo" and the upload
   card keeps its guiding ring, so the name rings only once a photo is there. No ring on an upload card still preparing the
   photo: its ::after is the "Preparing your photo..." caption. */
body.style-etsy label.ff-drop:not(.processing):has(.drop-zone-text.pulse-animation)::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;animation:ffRing 2.4s ease-out 1;box-shadow:var(--ff-ring-static);}
body.style-etsy form#order-info:not(.no-photo) .product-option-pets-name > .field.type-text.pulse-animation::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;animation:ffRing 2.4s ease-out 1;box-shadow:var(--ff-ring-static);}
@keyframes ffRing{0%{box-shadow:0 0 0 0 rgba(246,196,69,.55)}100%{box-shadow:0 0 0 14px rgba(246,196,69,0)}}

/* ==== STUDIO (spec §9; boards Order/OrderPhone "Painting", Pet3, Pet8) ==== */
/* The painting panel covers the gallery in peach; its look is css/furfam-reveal.css. The design canvas (and so the /l.svg
   spinner, and never the customer's photo) is hidden while painting. */
body.style-etsy .ff-studio{position:absolute;z-index:7;inset:0;overflow:hidden;border-radius:8px;background:var(--e-peach);container-type:inline-size;}
body.style-etsy .ff-studio[hidden]{display:none;}
body.style-etsy form#order-info:is(.status-pregenerating,.status-generating) #product-image-gallery .main-carousel .design-canvas{visibility:hidden;}
body.style-etsy form#order-info:is(.status-uploading,.status-pregenerating,.status-generating) .ff-gallery :is(.flickity-prev-next-button,.flickity-page-dots){visibility:hidden;}
/* The panel stays up through its reveal (status-complete): the size tab, arrows and dots stay hidden until it goes. Standalone
   rules, since :has() in a list drops the list in a browser without :has(). */
body.style-etsy .gallery-wrapper:has(.ff-studio:not([hidden])) .ff-size-tab{display:none;}
body.style-etsy .ff-gallery:has(.ff-studio:not([hidden])) :is(.flickity-prev-next-button,.flickity-page-dots){visibility:hidden;}

/* ==== ORDER PHONE BAR (spec §8.4; board OrderPhone) — pass-B's fixed bar, new colours, shapes and paw ==== */
@media (max-width:576px){
  body.style-etsy{--ff-bar-h:73px;}   /* this bar is 73 px (48 paw + padding + border); pass-B's :root value is 72 */
  body.style-etsy #generate-preview-wrapper, body.style-etsy #design-status-message, body.style-etsy #add-to-cart-container{min-height:72px;gap:12px;margin:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--e-line);box-shadow:0 -2px 8px 0 #150A040A,0 -4px 12px 2px #150A040F;}
  body.style-etsy #generate-preview-wrapper::before{width:48px;}
  body.style-etsy form#order-info.no-photo::before{left:16px;bottom:calc(12px + env(safe-area-inset-bottom));width:48px;height:48px;font:700 20px/48px var(--ff-font);letter-spacing:-.02em;color:var(--e-ink);}
  body.style-etsy form#order-info:not(.no-photo) #generate-preview-wrapper::before, body.style-etsy #design-status-message::before{flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:var(--e-peach);color:var(--e-ink);font:900 20px/48px "Font Awesome 7 Pro";text-align:center;}
  body.style-etsy form#order-info:is(.no-photo,.no-name,.status-error) #generate-preview-btn, body.style-etsy form#order-info:is(.no-photo,.no-name) #generate-preview-btn.is-disabled{background:var(--e-ink);color:var(--e-page);box-shadow:none;cursor:pointer;}
  body.style-etsy #generate-preview-btn::after{font-size:16px;font-weight:700;letter-spacing:-.01em;}
  /* Busy: paw + label over the progress bar */
  body.style-etsy form#order-info:is(.status-uploading,.status-pregenerating,.status-generating) #design-status-message{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:16px 20px;gap:0 12px;align-content:center;min-height:calc(var(--ff-bar-h) + env(safe-area-inset-bottom));}   /* fixed rows, no row gap: label over bar beside the 48 px paw */
  body.style-etsy #design-status-message::before{grid-row:1/3;align-self:center;}
  body.style-etsy #design-status-message > div{padding:0;text-align:left;}
  body.style-etsy #design-status-message .status-bar{position:relative;inset:auto;margin-top:8px;}
  /* Error / not-safe: the strip above the bar */
  body.style-etsy form#order-info:is(.status-error,.not-safe-alert) #design-status-message{display:block;bottom:calc(var(--ff-bar-h) + env(safe-area-inset-bottom));min-height:0;padding:10px 16px;border-top:1px solid var(--e-line);background:var(--e-error-tint);box-shadow:none;}
  body.style-etsy form#order-info.status-error #design-status-message .error, body.style-etsy form#order-info.not-safe-alert #design-status-message .not-safe-alert{padding:0;border-radius:0;background:none;}
  /* Complete: the design thumbnail + Add to cart */
  body.style-etsy #add-to-cart-container #mobile-preview{width:52px;height:52px;border-radius:8px;background:#EFECEA;}
  body.style-etsy #add-to-cart-container #add-to-cart{min-height:48px;border-radius:24px;}
  /* the bar's room inside the grey footer, not a cream band under it */
  body.style-etsy.page-order{padding-bottom:0;}
  body.style-etsy.page-order .ff-footer{padding-bottom:calc(var(--ff-bar-h) + 1rem + env(safe-area-inset-bottom));}
}

/* ==== DRAWER (spec §11; boards CartDesktop, CartPhone) ==== */
body.style-etsy #offcanvasCart.ff-drawer{width:440px;max-width:100vw;background:var(--e-page);border-radius:16px 0 0 16px;border:0;box-shadow:var(--e-s2);overflow:hidden;color:var(--e-ink);font-size:16px;transition:transform .45s cubic-bezier(.22,.8,.24,1);}
body.style-etsy :is(.modal-backdrop,.offcanvas-backdrop).show{background:var(--e-scrim);opacity:1;}
body.style-etsy #offcanvasCart .ff-drawer-head{padding:20px 16px 12px 24px;background:transparent;border:0;}
body.style-etsy #offcanvasCart .ff-drawer-head .offcanvas-title{gap:10px;font:400 30px/1.1 var(--e-serif);letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy #offcanvasCart .ff-drawer-head .offcanvas-title i{display:none;}
/* Title doodle: ink paw, ink sprig stem, peach-2 leaves outlined in ink */
body.style-etsy #offcanvasCart .ff-drawer-head .offcanvas-title::after{content:"";flex:none;width:48px;height:32px;margin-top:-8px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 32'%3E%3Cg fill='%23312B36' fill-opacity='.9' transform='rotate(-14 11 14)'%3E%3Cellipse cx='4.5' cy='11' rx='2.1' ry='2.7'/%3E%3Cellipse cx='8.6' cy='5.8' rx='2.1' ry='2.7'/%3E%3Cellipse cx='13.9' cy='5.8' rx='2.1' ry='2.7'/%3E%3Cellipse cx='18' cy='11' rx='2.1' ry='2.7'/%3E%3Cpath d='M11.25 12.2c-2.9 0-5.6 3.4-5.6 6.1 0 2 1.4 3.1 3.2 3.1 1 0 1.7-.5 2.4-.5s1.4.5 2.4.5c1.8 0 3.2-1.1 3.2-3.1 0-2.7-2.7-6.1-5.6-6.1z'/%3E%3C/g%3E%3Cpath d='M26 30C29 23 33 17.5 41 13' fill='none' stroke='%23312B36' stroke-width='1.4' stroke-linecap='round'/%3E%3Cg fill='%23FFE0C3' stroke='%23312B36' stroke-width='1'%3E%3Cellipse cx='27.9' cy='22' rx='3.6' ry='1.7' transform='rotate(-75 27.9 22)'/%3E%3Cellipse cx='32.5' cy='22.8' rx='3.6' ry='1.7' transform='rotate(-18 32.5 22.8)'/%3E%3Cellipse cx='33.9' cy='16' rx='3.6' ry='1.7' transform='rotate(-70 33.9 16)'/%3E%3Cellipse cx='38' cy='16.7' rx='3.6' ry='1.7' transform='rotate(-14 38 16.7)'/%3E%3Cellipse cx='43.4' cy='11.4' rx='3.2' ry='1.6' transform='rotate(-36 43.4 11.4)'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;}
body.style-etsy #offcanvasCart .btn-close{width:44px;height:44px;margin:0;padding:0;border-radius:50%;background-size:14px;opacity:1;}
body.style-etsy #offcanvasCart .btn-close:hover{background-color:#3314000D;}
body.style-etsy #offcanvasCart .ff-drawer-body{display:flex;flex-direction:column;gap:12px;padding:4px 24px 20px;background:transparent;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#D9D3CF transparent;}   /* a thin scrollbar keeps 3 options on one line */
body.style-etsy.loading-cart #offcanvasCart .ff-drawer-head::after{background:var(--e-ink);}
/* Guarantee card: green tint, ink text and title (text on green is always charcoal), strong-green shield */
body.style-etsy .ff-guarantee{gap:12px;margin:0;padding:12px 14px;border-radius:8px;background:var(--e-green-tint);color:var(--e-ink);font-size:13px;line-height:18px;letter-spacing:0;}
body.style-etsy .ff-guarantee i{margin:0;color:var(--e-green);font-size:26px;}
body.style-etsy .ff-guarantee b{margin-bottom:2px;color:var(--e-ink);font-size:14px;line-height:18px;font-weight:700;}
/* Line items */
body.style-etsy .ff-cart-items{display:flex;flex-direction:column;gap:8px;}
body.style-etsy #shopping-cart li.order.ff-cart-item, body.style-etsy #shopping-cart li.order.ff-cart-item:last-child{grid-template-columns:80px minmax(0,1fr);gap:12px;padding:12px;border:1px solid var(--e-line);border-radius:8px;background:#fff;}
body.style-etsy #shopping-cart li.order a.order-image.ff-cart-image{width:80px;height:80px;min-height:0;border-radius:8px;background:#EFECEA;}   /* beats furfam-mockup.css's min-height:100px */
body.style-etsy .ff-cart-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t t" "o o" "p q";align-content:start;min-width:0;}
body.style-etsy .ff-cart-title{grid-area:t;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;font-size:14px;line-height:18px;font-weight:700;letter-spacing:0;color:var(--e-ink);}
body.style-etsy #shopping-cart .order ul.view-product_options.ff-cart-options{grid-area:o;margin:4px 0 0;font-size:12px;line-height:16px;letter-spacing:.01em;color:var(--e-ink-2);}
body.style-etsy #shopping-cart .ff-cart-options li:not(.template){margin:0 .35em 0 0;color:var(--e-ink-2);}   /* items have no .template-copy; pass-B's .5rem margins wrapped the line */
body.style-etsy #shopping-cart .ff-cart-options li:not(.template):not(:last-child)::after{margin-left:.35em;color:var(--e-ink-2);}
body.style-etsy #shopping-cart li.order div.price.ff-cart-price{grid-area:p;align-self:center;padding-top:8px;font-size:17px;line-height:22px;font-weight:700;letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy #shopping-cart li.order div.price.ff-cart-price span.cents{margin-left:1px;font-size:10px;line-height:12px;letter-spacing:0;opacity:1;vertical-align:top;}
body.style-etsy #shopping-cart div.quantity.ff-cart-qty-row{grid-area:q;gap:8px;width:auto;margin:0;padding-top:8px;}
body.style-etsy .ff-qty{align-items:center;padding:1px;border:1px solid var(--e-line);border-radius:999px;background:#fff;overflow:visible;}
body.style-etsy .ff-qty-step{position:relative;width:36px;height:36px;border-radius:50%;background:transparent;color:var(--e-ink);font-size:14px;}
body.style-etsy .ff-qty-step::before{content:"";position:absolute;inset:-4px;border-radius:50%;}
body.style-etsy .ff-qty-step:hover{background:#3314000D;}
body.style-etsy .ff-qty-step:active{background:#33140030;}
body.style-etsy .ff-qty:has(select[data-quantity="1"]) .ff-qty-step[data-delta="-1"]{background:transparent;color:#B5ABA6;cursor:default;}
body.style-etsy #shopping-cart .ff-qty-select select.select-element{width:28px;height:36px;border:0;background:transparent;color:var(--e-ink);font-size:15px;line-height:20px;font-weight:700;letter-spacing:0;text-align:center;text-align-last:center;}
body.style-etsy #shopping-cart div.quantity a.delete-order.ff-cart-delete{position:relative;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--e-ink);}
body.style-etsy #shopping-cart div.quantity a.delete-order.ff-cart-delete::before{content:"";position:absolute;inset:-2px;border-radius:50%;}   /* 44 px hit area (spec 13) without growing the 40 px button */
body.style-etsy #shopping-cart div.quantity a.delete-order.ff-cart-delete:hover{background:#3314000D;color:var(--e-ink);}   /* red is for errors only */
/* Savings card + tracker (data-count from updateSavingsBar). Neutral stone with 1 blanket; green (tint, strong-green
   title, fill and stops) only once a discount is earned: 1 blanket shows no green anywhere. */
body.style-etsy .ff-savings{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 8px;margin:0;padding:14px 14px 12px;border-radius:8px;background:var(--e-stone);color:var(--e-ink);transition:background-color .3s ease;}
body.style-etsy .ff-savings-emoji{width:auto;height:auto;border-radius:0;background:none;font-size:15px;line-height:20px;}
body.style-etsy .ff-savings-copy{display:contents;}
body.style-etsy .ff-savings-copy b{grid-column:2;font-size:15px;line-height:20px;font-weight:700;letter-spacing:-.01em;color:var(--e-ink);}
body.style-etsy .ff-savings-copy span{grid-column:1/-1;margin-top:2px;font-size:13px;line-height:18px;font-weight:400;letter-spacing:0;color:var(--e-ink);}
body.style-etsy .ff-savings-copy b:empty + span{grid-column:2;margin:0;font-size:14px;color:var(--e-ink);}
body.style-etsy .ff-savings.tier-1, body.style-etsy .ff-savings.tier-2{background:var(--e-green-tint);}
body.style-etsy :is(.ff-savings.tier-1,.ff-savings.tier-2) .ff-savings-copy b{font-size:15px;color:var(--e-ink);}
body.style-etsy :is(.ff-savings.tier-1,.ff-savings.tier-2) .ff-savings-copy span{font-weight:400;color:var(--e-ink);}
body.style-etsy .ff-tracker{position:relative;grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0 0;padding:0;list-style:none;}
body.style-etsy .ff-tracker::before, body.style-etsy .ff-tracker::after{content:"";position:absolute;top:12px;left:16.6667%;height:4px;border-radius:2px;}
body.style-etsy .ff-tracker::before{right:16.6667%;background:#3314001F;}
body.style-etsy .ff-tracker::after{width:0;background:var(--e-green);transition:width .5s cubic-bezier(.22,.8,.24,1);}
body.style-etsy .ff-savings[data-count="2"] .ff-tracker::after{width:33.3333%;}
body.style-etsy .ff-savings[data-count="3"] .ff-tracker::after{width:66.6667%;}
body.style-etsy .ff-tracker li{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:4px;}
body.style-etsy .ff-tracker-dot{width:28px;height:28px;border:2px solid var(--e-line);border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23928681'%3E%3Cellipse cx='5.5' cy='10.5' rx='2' ry='2.5'/%3E%3Cellipse cx='9.5' cy='5.5' rx='2' ry='2.5'/%3E%3Cellipse cx='14.5' cy='5.5' rx='2' ry='2.5'/%3E%3Cellipse cx='18.5' cy='10.5' rx='2' ry='2.5'/%3E%3Cpath d='M12 11.5c-2.6 0-5 3.1-5 5.5 0 1.8 1.3 2.8 2.9 2.8.9 0 1.5-.4 2.1-.4s1.2.4 2.1.4c1.6 0 2.9-1 2.9-2.8 0-2.4-2.4-5.5-5-5.5z'/%3E%3C/svg%3E") center/14px no-repeat;}
body.style-etsy .ff-tracker-label{min-height:16px;font-size:12px;line-height:16px;font-weight:700;letter-spacing:0;color:var(--e-ink-2);}
/* Reached stops (a white paw on the strong green, 6.79:1), from 2 blankets: the 1-blanket stop stays grey */
body.style-etsy .ff-savings:is([data-count="2"],[data-count="3"]) .ff-tracker li:nth-child(1) .ff-tracker-dot,
body.style-etsy .ff-savings:is([data-count="2"],[data-count="3"]) .ff-tracker li:nth-child(2) .ff-tracker-dot,
body.style-etsy .ff-savings[data-count="3"] .ff-tracker li:nth-child(3) .ff-tracker-dot{border-color:var(--e-green);background:var(--e-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFFFFF'%3E%3Cellipse cx='5.5' cy='10.5' rx='2' ry='2.5'/%3E%3Cellipse cx='9.5' cy='5.5' rx='2' ry='2.5'/%3E%3Cellipse cx='14.5' cy='5.5' rx='2' ry='2.5'/%3E%3Cellipse cx='18.5' cy='10.5' rx='2' ry='2.5'/%3E%3Cpath d='M12 11.5c-2.6 0-5 3.1-5 5.5 0 1.8 1.3 2.8 2.9 2.8.9 0 1.5-.4 2.1-.4s1.2.4 2.1.4c1.6 0 2.9-1 2.9-2.8 0-2.4-2.4-5.5-5-5.5z'/%3E%3C/svg%3E") center/16px no-repeat;}
body.style-etsy .ff-savings:is([data-count="2"],[data-count="3"]) .ff-tracker li:nth-child(2) .ff-tracker-label,
body.style-etsy .ff-savings[data-count="3"] .ff-tracker li:nth-child(3) .ff-tracker-label{color:var(--e-ink);}
body.style-etsy .ff-savings[data-count="2"] .ff-tracker li:nth-child(2) .ff-tracker-dot,
body.style-etsy .ff-savings[data-count="3"] .ff-tracker li:nth-child(3) .ff-tracker-dot{box-shadow:0 0 0 4px rgba(54,102,42,.16);}   /* the current stop's halo */
/* Pop-in: staggered when the drawer opens; once seen, only the current stop pops on a change */
body.style-etsy #offcanvasCart.show:not(.ff-cart-seen) .ff-savings:is([data-count="1"],[data-count="2"],[data-count="3"]) .ff-tracker li:nth-child(1) .ff-tracker-dot{animation:ccPop .5s cubic-bezier(.34,1.56,.64,1) .25s backwards;}
body.style-etsy #offcanvasCart.show:not(.ff-cart-seen) .ff-savings:is([data-count="2"],[data-count="3"]) .ff-tracker li:nth-child(2) .ff-tracker-dot{animation:ccPop .5s cubic-bezier(.34,1.56,.64,1) .35s backwards;}
body.style-etsy #offcanvasCart.show:not(.ff-cart-seen) .ff-savings[data-count="3"] .ff-tracker li:nth-child(3) .ff-tracker-dot{animation:ccPop .5s cubic-bezier(.34,1.56,.64,1) .45s backwards;}
body.style-etsy #offcanvasCart.ff-cart-seen .ff-savings[data-count="1"] .ff-tracker li:nth-child(1) .ff-tracker-dot,
body.style-etsy #offcanvasCart.ff-cart-seen .ff-savings[data-count="2"] .ff-tracker li:nth-child(2) .ff-tracker-dot,
body.style-etsy #offcanvasCart.ff-cart-seen .ff-savings[data-count="3"] .ff-tracker li:nth-child(3) .ff-tracker-dot{animation:ccPop .5s cubic-bezier(.34,1.56,.64,1) backwards;}
@keyframes ccPop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
/* Empty, adding */
body.style-etsy .ff-cart-empty{padding:40px 16px 72px;color:var(--e-ink-2);}
body.style-etsy :is(.ff-cart-items[data-count="0"],.ff-cart-items[data-count=""]) + .ff-cart-empty{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin-top:-12px;}   /* fills the drawer to centre the block; -12 px cancels the body gap */
body.style-etsy .ff-cart-empty i{font-size:40px;color:var(--e-ink);opacity:.35;}
body.style-etsy .ff-cart-empty p{margin:0;font-size:16px;line-height:24px;color:var(--e-ink-2);}
body.style-etsy .ff-cart-empty .ff-btn{width:auto;margin-top:8px;}
body.style-etsy.adding-to-cart #offcanvasCart .ff-cart-items::before{content:"Adding to your cart\2026";display:flex;align-items:flex-end;height:98px;margin:0;padding:0 12px 16px 96px;border:1px solid var(--e-line);border-radius:8px;font-size:14px;line-height:20px;font-weight:400;color:var(--e-ink-2);background:linear-gradient(90deg,#EFECEA,#F8F6F4 45%,#EFECEA 90%) 12px 12px/72px 72px no-repeat,linear-gradient(90deg,#EFECEA,#F8F6F4 45%,#EFECEA 90%) 96px 18px/55% 12px no-repeat,linear-gradient(90deg,#EFECEA,#F8F6F4 45%,#EFECEA 90%) 96px 38px/35% 10px no-repeat,#fff;animation:ffSkel 1.4s ease-in-out infinite alternate;}
@keyframes ffSkel{from{opacity:.6}to{opacity:1}}
/* Footer: subtotal, shipping, arrival pill, Checkout, or, PayPal */
body.style-etsy #offcanvasCart .ff-drawer-foot{position:relative;z-index:1;padding:16px 24px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--e-line);background:#fff;box-shadow:0 -2px 8px 0 #150A040A,0 -4px 12px 2px #150A040F;}
body.style-etsy #shopping-cart-subtotal.ff-total-row, body.style-etsy #shopping-cart-shipping.ff-total-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 12px;margin:0 0 6px;font-size:14px;line-height:20px;font-weight:500;letter-spacing:0;color:var(--e-ink);}
body.style-etsy #shopping-cart-subtotal.ff-total-row{min-height:28px;}   /* board: 28 px row, 6 px to Shipping */
body.style-etsy #shopping-cart-shipping.ff-total-row{margin-bottom:0;}   /* board: the arrival pill sits 14 px above Checkout, which carries that gap */
body.style-etsy .ff-total-row > [class^="col"]{width:auto;max-width:none;padding:0;}
body.style-etsy #shopping-cart-subtotal .subtotal-container{display:flex;align-items:flex-start;justify-content:flex-end;gap:0;font-size:20px;line-height:24px;font-weight:700;letter-spacing:-.02em;color:var(--e-ink);}
body.style-etsy #shopping-cart-subtotal.ff-total-row span.cents{margin:2px 0 0 1px;font-size:12px;line-height:14px;opacity:1;}
body.style-etsy #offcanvasCart.has-discount #shopping-cart-subtotal .discount{display:flex;align-items:center;gap:8px;margin-right:8px;align-self:center;}
body.style-etsy .ff-total-row .non-discount-subtotal:not(:empty){margin:0;font-size:14px;line-height:20px;font-weight:400;letter-spacing:0;color:var(--e-ink-3);}
body.style-etsy #offcanvasCart.has-discount #shopping-cart-subtotal .discount-amount{font-size:14px;line-height:20px;font-weight:700;letter-spacing:0;color:var(--e-green);}
body.style-etsy #shopping-cart-shipping .shipping{text-align:right;color:var(--e-ink);}   /* pass-B's navy */
body.style-etsy #shopping-cart-shipping.ff-total-row span.shipping span.free-shipping-badge{display:inline-block;padding:3px 8px;border-radius:16px;background:var(--e-green-fill);color:var(--e-ink);font-size:12px;line-height:16px;font-weight:700;letter-spacing:.01em;}
body.style-etsy #shopping-cart-shipping.ff-total-row div.shipping-estimate.ff-arrival{grid-column:1/-1;justify-self:center;display:inline-flex;align-items:center;gap:8px;margin:12px 0 0;padding:6px 14px;border-radius:999px;background:var(--e-green-fill);color:var(--e-ink);font-size:13px;line-height:18px;letter-spacing:0;}
body.style-etsy .ff-arrival i{color:var(--e-green);}
body.style-etsy .ff-arrival b{margin-left:-4px;}   /* the 8 px gap stands in for the space */
/* Checkout: marigold with ink text, like Add to cart (PayPal's button under it turns black: furfam_paypal_color, js/furfam.js) */
body.style-etsy #offcanvasCart a#checkout-button{height:52px;min-height:52px;margin:14px 0 0;padding:0 24px;border-radius:26px;background:var(--e-gold);color:var(--e-ink);box-shadow:var(--e-gold-glow);font:700 16px/20px var(--ff-font);letter-spacing:-.01em;}
body.style-etsy #offcanvasCart a#checkout-button:hover{background:var(--e-gold-2);color:var(--e-ink);}
body.style-etsy #offcanvasCart a#checkout-button:active{background:var(--e-gold-2);}
body.style-etsy #offcanvasCart a#checkout-button.loading{gap:10px;background:var(--e-gold);}   /* board: 18 px spinner, 10 px gap, 16 px label */
body.style-etsy #offcanvasCart a#checkout-button.loading::before{width:18px;height:18px;border:2px solid #312B364D;border-top-color:var(--e-ink);}
body.style-etsy #offcanvasCart a#checkout-button.loading::after{font-size:16px;letter-spacing:-.01em;}
body.style-etsy a#checkout-button .ff-arr{display:inline-block;transition:transform .2s ease;}
body.style-etsy a#checkout-button:hover .ff-arr{transform:translateX(3px);}
body.style-etsy .ff-or{margin:10px 0 0;font-size:13px;line-height:18px;letter-spacing:0;color:var(--e-ink-2);}
body.style-etsy .ff-or::before, body.style-etsy .ff-or::after{background:var(--e-line);}
body.style-etsy #offcanvasCart div#paypal-button-container{margin-top:10px;}
body.style-etsy #offcanvasCart p#cart-add-error{margin:12px 16px 0;color:var(--e-error);}   /* "That didn't go into your cart": an error; beats furfam-2026.css's rule */
body.style-etsy #checkout-sdk-error{color:var(--e-error);}   /* "Couldn't reach the payment provider": an error (5.93:1 on white) */
body.style-etsy #paypal-payment-error{color:var(--e-error);}
@media (max-width:575.98px){
  body.style-etsy #offcanvasCart.ff-drawer{width:100vw;border-radius:0;}
  body.style-etsy:has(#offcanvasCart.show) :is(.modal-backdrop,.offcanvas-backdrop){opacity:0;}
  body.style-etsy #offcanvasCart .ff-drawer-head .offcanvas-title{font-size:26px;}
  body.style-etsy #offcanvasCart .btn-close{width:48px;height:48px;}
  body.style-etsy #shopping-cart li.order.ff-cart-item, body.style-etsy #shopping-cart li.order.ff-cart-item:last-child{grid-template-columns:72px minmax(0,1fr);}
  body.style-etsy #shopping-cart li.order a.order-image.ff-cart-image{width:72px;height:72px;min-height:0;}
  /* Board CartPhone: 16 px gutters, a 60 px head, and a tighter footer */
  body.style-etsy #offcanvasCart .ff-drawer-head{padding:8px 6px 4px 16px;}
  body.style-etsy #offcanvasCart .ff-drawer-body{padding:4px 16px 16px;}
  body.style-etsy .ff-savings{padding:12px 14px 10px;}
  body.style-etsy .ff-tracker{margin-top:10px;}
  body.style-etsy #offcanvasCart .ff-drawer-foot{padding:12px 16px calc(16px + env(safe-area-inset-bottom));}
  body.style-etsy #shopping-cart-subtotal.ff-total-row{margin-bottom:4px;}
  body.style-etsy #shopping-cart-shipping.ff-total-row div.shipping-estimate.ff-arrival{margin-top:10px;}
  body.style-etsy #offcanvasCart a#checkout-button{margin-top:12px;}
  body.style-etsy .ff-or, body.style-etsy #offcanvasCart div#paypal-button-container{margin-top:8px;}
  body.style-etsy #shopping-cart div.quantity.ff-cart-qty-row{gap:6px;}
  body.style-etsy #shopping-cart .ff-qty-select select.select-element{width:26px;}
}

/* ==== WATERCOLOUR ICONS (2026-10-20) ==== */
/* tools/watercolour-icons.php, drawn in place of the glyph */
body.style-etsy :is(.ff-order-trust i, .ff-promise i, .ff-generate-note i, .ff-cta-guarantee i){display:inline-block;flex:0 0 32px;width:32px;height:32px;background:center/contain no-repeat;font-size:0;vertical-align:middle;}
body.style-etsy :is(.ff-order-trust i, .ff-promise i, .ff-generate-note i, .ff-cta-guarantee i)::before{content:none;}
body.style-etsy .ff-promise i{flex-basis:44px;width:44px;height:44px;}
body.style-etsy .ff-generate-note i{flex-basis:20px;width:20px;height:20px;}
body.style-etsy .ff-cta-guarantee i{flex:0 0 24px;width:24px;height:24px;margin-right:4px;}
body.style-etsy :is(.ff-order-trust, .ff-promise, .ff-generate-note, .ff-cta-guarantee) i.fa-bolt{background-image:url(/images/etsy/icon-bolt.webp);}
body.style-etsy :is(.ff-order-trust, .ff-promise, .ff-generate-note, .ff-cta-guarantee) i.fa-shield-check{background-image:url(/images/etsy/icon-shield.webp);}
body.style-etsy :is(.ff-order-trust, .ff-promise, .ff-generate-note, .ff-cta-guarantee) i.fa-truck-fast{background-image:url(/images/etsy/icon-truck.webp);}

/* ==== REDUCED MOTION (spec §13) ==== */
@media (prefers-reduced-motion:reduce){
  body.style-etsy{--ff-ring:none;--ff-ring-static:0 0 0 2px #F6C445;}
  body.style-etsy :is(.ff-hero-seal,.ff-seal){animation:none;}
  body.style-etsy :is(.ff-hero-seal,.ff-seal) img, body.style-etsy .ff-fan-card, body.style-etsy .ff-make-card img{transition:none;}
  body.style-etsy :is(.ff-hero-seal,.ff-seal) img:hover{transform:rotate(8deg);}
  body.style-etsy .ff-make-card:hover img{transform:none;}
  body.style-etsy .ff-cta-panel:hover .ff-fan-l{transform:rotate(-9deg);}
  body.style-etsy .ff-cta-panel:hover .ff-fan-m{transform:rotate(-1deg);}
  body.style-etsy .ff-cta-panel:hover .ff-fan-r{transform:rotate(8deg);}
  body.style-etsy :is(label.ff-drop,.product-option-pets-name > .field.type-text)::after{animation:none!important;}
  body.style-etsy .ff-tracker-dot{animation:none!important;}
  body.style-etsy .ff-tracker::after, body.style-etsy #offcanvasCart.ff-drawer, body.style-etsy a#checkout-button .ff-arr{transition:none;}
  body.style-etsy.adding-to-cart #offcanvasCart .ff-cart-items::before{animation:none;}
}
