/*
Theme Name: The Perfume Factory
Theme URI: https://theperfumefactory.co.uk
Author: Blackpool Web
Description: Bespoke WooCommerce theme for The Perfume Factory — reproduces the approved editorial mock-ups. Big brand smells. Low brand prices.
Version: 0.3.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: perfumefactory
*/

/* ============================ TOKENS ============================ */
:root{
  --ink:#0E1B3A; --ink-deep:#0b1530; --royal:#2A5BD7; --royal-h:#2150c4;
  --gold:#C9A24B; --gold-text:#9a7d35; --porcelain:#F7F6F2; --canvas:#e9e7e1;
  --pale:#E7EDF8; --body:#2b3550; --muted:#6a7287; --faint:#8a93a8;
  --line:#e6e3da; --line-warm:#efece4; --line-cool:#eef0f4;
  --success:#1F8A5B; --error:#b4453a;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Manrope',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --shadow-card:0 26px 46px -28px rgba(14,27,58,.5);
  --shell:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;line-height:1.55;font-size:15px}
img{max-width:100%;height:auto;display:block}
a{color:var(--royal);text-decoration:none}
a:hover{color:var(--royal-h)}
::selection{background:var(--royal);color:#fff}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:6px}

.pf-shell{max-width:var(--shell);margin:0 auto;padding:0 40px}
.pf-center{text-align:center}
.is-gold{color:var(--gold)}

.pf-eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.2em;font-size:12px;color:var(--royal);font-weight:500}
.pf-eyebrow-royal{color:var(--royal)}
.pf-eyebrow-gold{color:var(--gold-text)}
.pf-h1{font-family:var(--serif);font-weight:600;font-size:46px;line-height:1.02;color:var(--ink)}
.pf-h2{font-family:var(--serif);font-weight:500;font-size:40px;line-height:1.05;color:var(--ink)}
.pf-on-dark{color:#fff}

/* ============================ FRAME (rounded card) ============================ */
.pf-frame{position:relative;max-width:var(--shell);margin:14px auto 40px;background:var(--porcelain);border-radius:18px;box-shadow:0 30px 80px -50px rgba(14,27,58,.5)}

/* ============================ BUTTONS ============================ */
.pf-btn,.button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--sans);font-weight:600;font-size:15px;line-height:1;
  padding:15px 26px;border-radius:10px;border:1px solid transparent;cursor:pointer;
  background:var(--royal);color:#fff;transition:background .2s,box-shadow .2s,transform .2s;text-align:center}
.pf-btn:hover,.button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background:var(--royal-h);color:#fff}
.pf-btn-royal{background:var(--royal);color:#fff}.pf-btn-royal:hover{background:var(--royal-h);color:#fff}
.pf-btn-dark{background:var(--ink);color:#fff}.pf-btn-dark:hover{background:#1b2e58;color:#fff}
.pf-btn-ghost{background:transparent;color:var(--porcelain);border:1px solid var(--gold)}.pf-btn-ghost:hover{background:rgba(201,162,75,.12);color:var(--porcelain)}
.pf-btn-outline{background:transparent;border:1px solid #cdd5e4;color:var(--ink)}.pf-btn-outline:hover{background:#fff;border-color:var(--ink);color:var(--ink)}
.pf-btn-lg{padding:15px 26px;font-size:15px}
.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background:var(--royal)}
.woocommerce #respond input#submit.alt:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--royal-h)}

/* ============================ ANNOUNCE ============================ */
.pf-announce{background:var(--ink);color:#dfe6f5;text-align:center;font-size:12.5px;letter-spacing:.04em;padding:9px 16px;border-radius:18px 18px 0 0}
.pf-announce-gold{color:var(--gold)}

/* ============================ HEADER ============================ */
.pf-header{position:sticky;top:0;z-index:40;background:rgba(247,246,242,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);box-shadow:0 6px 22px -18px rgba(14,27,58,.6)}
.pf-header-in{display:flex;align-items:center;justify-content:space-between;padding:18px 40px}
.pf-brand{display:flex;align-items:center;gap:10px;color:var(--ink)}
.pf-brand:hover{color:var(--ink)}
.pf-monogram{display:inline-flex;flex-shrink:0}
.pf-brand-word{font-family:var(--serif);font-weight:600;font-size:24px;letter-spacing:.01em;color:var(--ink);white-space:nowrap}
.pf-nav{display:flex;gap:30px;font-size:14px;font-weight:500;color:#2b3550}
.pf-nav a{color:inherit}
.pf-nav a:hover{color:var(--ink)}
.pf-header-right{display:flex;align-items:center;gap:12px}
.pf-basket{display:inline-flex;align-items:center;gap:9px;background:none;border:1px solid #cdd5e4;border-radius:999px;padding:8px 15px;font-size:13px;font-weight:600;color:var(--ink)}
.pf-basket:hover{color:var(--ink);border-color:#aab4c8}
.pf-basket-count{min-width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;background:var(--royal);color:#fff;border-radius:999px;font-size:12px;padding:0 6px}
.pf-basket-count.is-empty{background:#aab4c8}
.pf-burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #cdd5e4;border-radius:10px;background:#fff;cursor:pointer;color:var(--ink)}

.pf-main{display:block}

/* ============================ HERO ============================ */
.pf-hero{display:grid;grid-template-columns:1.05fr .95fr}
.pf-hero-left{background:var(--ink);color:var(--porcelain);padding:72px 54px 58px}
.pf-hero-eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
.pf-hero-h1{font-family:var(--serif);font-weight:500;font-size:60px;line-height:1.02;letter-spacing:-.01em;margin-bottom:20px}
.pf-hero-h1 em{font-style:italic;color:var(--gold)}
.pf-hero-sub{font-size:16.5px;line-height:1.6;color:#b9c3da;max-width:440px;margin-bottom:32px}
.pf-hero-cta{display:flex;gap:13px;flex-wrap:wrap;margin-bottom:40px}
.pf-hero-stats{display:flex;gap:38px;border-top:1px solid rgba(201,162,75,.3);padding-top:22px}
.pf-stat b{font-family:var(--serif);font-size:34px;color:#fff;line-height:1;display:block}
.pf-stat b.is-gold{color:var(--gold)}
.pf-stat span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#8c98b6;margin-top:4px;display:block}
.pf-hero-right{background:#EDEAE2;display:flex;align-items:center;justify-content:center;padding:44px;min-height:460px;position:relative;overflow:hidden}
.pf-hero-cap{position:absolute;left:20px;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-family:var(--mono);font-size:11px;letter-spacing:.34em;color:#c7c0ac;text-transform:uppercase}
.pf-hero-card{position:relative;width:300px;max-width:100%;aspect-ratio:3/4;background:#fff;border:1px solid #d8c7a3;border-radius:14px;overflow:hidden;box-shadow:0 36px 60px -34px rgba(14,27,58,.5);display:flex;align-items:center;justify-content:center;padding:26px}
.pf-hero-card img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.pf-hero-card-no{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:#6f7da0}
.pf-hero-badge{position:absolute;top:14px;right:14px;background:var(--gold);color:#2a2008;font-weight:800;font-size:18px;width:54px;height:54px;border-radius:999px;display:flex;align-items:center;justify-content:center;transform:rotate(8deg)}

/* ============================ TRUST ============================ */
.pf-trust{background:#fff;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:center;gap:10px 30px;padding:15px 24px;font-size:13px;font-weight:600;color:#2b3550}
.pf-trust span{display:inline-flex;align-items:center;gap:8px}
.pf-dot{width:7px;height:7px;border-radius:999px;display:inline-block;flex-shrink:0}
.pf-dot-green{background:var(--success)}.pf-dot-blue{background:var(--royal)}.pf-dot-gold{background:var(--gold)}

/* ============================ FIND YOUR SCENT ============================ */
.pf-finder{background:var(--porcelain);padding:54px 40px;border-bottom:1px solid var(--line)}
.pf-finder .pf-eyebrow{margin-bottom:12px}
.pf-finder-lead{text-align:center;font-size:14.5px;line-height:1.6;color:var(--muted);max-width:460px;margin:10px auto 26px}
.pf-finder-controls{max-width:640px;margin:0 auto}
.pf-finder-label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7a8298;text-align:center;margin-bottom:8px}
.pf-chiprow{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.pf-chiprow+.pf-finder-label{margin-top:16px}
.pf-chiprow[data-group="mood"]{margin-bottom:28px}
.pf-chip2{font-size:12.5px;font-weight:600;cursor:pointer;border-radius:999px;padding:8px 15px;border:1px solid #d8dde8;background:#fff;color:#46506b;font-family:inherit;transition:background .2s,color .2s,border-color .2s}
.pf-chip2:hover{border-color:#aab4c8}
.pf-chip2.is-active{border-color:var(--ink);background:var(--ink);color:#fff}

.pf-finder-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:760px;margin:0 auto}
.pf-fcard{background:#fff;border:1px solid var(--line-warm);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .28s,box-shadow .28s}
.pf-fcard:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(14,27,58,.45)}
.pf-fcard.is-hidden{display:none}
.pf-fcard-media{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;background:#fff;padding:16px}
.pf-fcard-media img{max-height:100%;width:auto;object-fit:contain;mix-blend-mode:multiply}
.pf-fcard-body{padding:13px 14px 15px;display:flex;flex-direction:column;gap:6px;flex:1}
.pf-fcard-row{display:flex;justify-content:space-between;align-items:center}
.pf-fcard-type{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#5a6680}
.pf-price-sm{font-family:var(--serif);font-size:20px;color:var(--ink)}
.pf-fcard-name{font-family:var(--serif);font-weight:600;font-size:19px;line-height:1.05;color:var(--ink)}
.pf-fcard-add{margin-top:auto;width:100%;background:var(--ink);color:#fff;border-radius:8px;padding:9px;font-weight:600;font-size:12.5px}
.pf-fcard-add:hover{background:#1b2e58;color:#fff}
.pf-finder-foot{text-align:center;font-size:12.5px;color:var(--faint);margin-top:18px}
.pf-finder-link{color:var(--royal);border-bottom:1px solid var(--gold)}
.pf-no-plain{background:none;border:none;padding:0}

/* ============================ BUILD YOUR 5 ============================ */
.pf-bundles{background:var(--ink);color:var(--porcelain);padding:50px 40px}
.pf-bundles .pf-eyebrow{color:var(--gold);letter-spacing:.24em;margin-bottom:6px}
.pf-bundles-lead{text-align:center;font-size:14.5px;line-height:1.6;color:#b3bdd6;max-width:480px;margin:10px auto 26px}
.pf-bslots{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.pf-bslot{width:92px;aspect-ratio:3/4;border-radius:12px;position:relative;overflow:hidden;border:1px dashed rgba(201,162,75,.5);background:rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center}
.pf-bslot-plus{font-family:var(--serif);font-size:30px;color:rgba(201,162,75,.6)}
.pf-bslot.is-filled{border-style:solid;border-color:rgba(201,162,75,.6);background:#fff}
.pf-bslot.is-filled .pf-bslot-plus{display:none}
.pf-bslot img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.pf-bslot-x{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:999px;border:none;background:rgba(14,27,58,.72);color:#fff;font-size:13px;cursor:pointer;display:none;z-index:2;line-height:1;align-items:center;justify-content:center}
.pf-bslot.is-filled .pf-bslot-x{display:flex}
.pf-bbar{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:30px}
.pf-bstatus{font-size:12.5px;color:#9fb0d8}
.pf-bprice{font-family:var(--serif);font-size:40px;line-height:1;color:var(--gold)}
.pf-bpicker{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 14px;scroll-snap-type:x mandatory}
.pf-bpick{flex:0 0 128px;scroll-snap-align:start;background:var(--porcelain);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.pf-bpick-media{aspect-ratio:1/1;position:relative;background:#fff;display:flex;align-items:center;justify-content:center;padding:10px}
.pf-bpick-media img{max-height:100%;width:auto;object-fit:contain;mix-blend-mode:multiply}
.pf-bpick-body{padding:9px 10px 11px;display:flex;flex-direction:column;gap:6px;flex:1}
.pf-bpick-name{font-family:var(--serif);font-weight:600;font-size:15px;line-height:1.05;color:var(--ink)}
.pf-bpick-add{margin-top:auto;background:var(--ink);color:#fff;border:none;border-radius:7px;padding:7px;font-family:inherit;font-weight:600;font-size:11.5px;cursor:pointer;transition:background .2s}
.pf-bpick-add:hover{background:#1b2e58}
.pf-bundles-note{text-align:center;font-size:12.5px;color:#9fb0d8;margin-top:16px}

/* ============================ RANGE GRID ============================ */
.pf-range{padding:54px 40px 20px}
.pf-range-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}
.pf-range-head .pf-eyebrow{margin-bottom:10px}
.pf-range .pf-h2{font-size:42px}
.pf-showing{font-size:13px;color:var(--faint);margin-top:8px}
.pf-filters{display:flex;gap:8px;flex-wrap:wrap}
.pf-chip{font-family:var(--sans);font-weight:600;font-size:12.5px;padding:8px 15px;border-radius:999px;border:1px solid #d8dde8;background:#fff;color:#46506b;cursor:pointer;transition:.2s}
.pf-chip:hover{border-color:#aab4c8}
.pf-chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.pf-range-more{text-align:center;margin-top:30px;padding-bottom:10px}

/* ============================ PRODUCT CARDS (loop) ============================ */
.woocommerce ul.products,ul.products.columns-4{display:grid !important;grid-template-columns:repeat(4,1fr);gap:18px;margin:0;list-style:none;padding:0}
.woocommerce ul.products li.product,ul.products li.pf-card{width:auto !important;margin:0 !important;float:none !important;background:#fff;border:1px solid var(--line-warm);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .28s,box-shadow .28s}
ul.products li.pf-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-card)}
.pf-card-media{position:relative;display:flex;align-items:center;justify-content:center;background:#fff;aspect-ratio:1/1.04;padding:18px}
.pf-card-media img{width:auto;max-height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.pf-card:hover .pf-card-media img{transform:scale(1.05)}
.pf-no{position:absolute;top:12px;left:12px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:#6f7da0}
.pf-card-body{padding:15px 16px 17px;display:flex;flex-direction:column;gap:9px;flex:1;border-top:1px solid #f0ede5}
.pf-card-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pf-pill{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#5a6680;border:1px solid #d8dde8;border-radius:999px;padding:3px 8px;font-weight:600}
.pf-price,.pf-price .woocommerce-Price-amount{font-family:var(--serif);font-weight:600;font-size:23px;color:var(--ink)}
.pf-card-name{display:block;font-family:var(--serif);font-weight:600;font-size:21px;line-height:1.1;color:var(--ink)}
.pf-card-family{font-size:12.5px;color:var(--muted);margin-top:-2px}
.pf-card-foot{margin-top:auto}
.pf-card-foot .button,.pf-card-foot .button.alt{width:100%;background:var(--ink);color:#fff;font-weight:600;font-size:13.5px;padding:11px;border-radius:9px}
.pf-card-foot .button:hover,.pf-card-foot .button.alt:hover{background:#1b2e58;color:#fff}
.pf-card.is-oos .pf-card-foot .button{background:#fff;color:var(--error);border:1px solid #e2c4c0}
.pf-card.is-oos .pf-card-foot .button:hover{background:#fff;color:var(--error)}

/* ============================ WHY US ============================ */
.pf-why{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding:48px 40px 8px}
.pf-why-col{border-top:2px solid var(--gold);padding-top:16px}
.pf-why-h{font-family:var(--serif);font-size:24px;margin-bottom:7px;color:var(--ink)}
.pf-why-col p{font-size:13.5px;line-height:1.55;color:var(--muted)}

/* ============================ SOCIAL PROOF ============================ */
.pf-social-wrap{background:var(--porcelain);padding:6px 40px 46px}
.pf-social-wrap .pf-eyebrow{margin-bottom:18px;color:var(--gold-text);font-size:11px}
.pf-social{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.pf-social-col{padding:24px 26px;border-right:1px solid var(--line-warm)}
.pf-social-col:last-child{border-right:none}
.pf-social-stars{color:var(--gold);font-size:12px;letter-spacing:.28em;margin-bottom:11px}
.pf-social-col p{font-family:var(--serif);font-size:19px;line-height:1.35;color:var(--ink);margin-bottom:12px}
.pf-social-col cite{font-style:normal;font-size:12px;letter-spacing:.03em;color:var(--faint)}

/* ============================ EVENTS / QR ============================ */
.pf-events{margin:52px 40px 40px;background:linear-gradient(95deg,#0E1B3A,#16264d 70%);border-radius:16px;color:var(--porcelain);display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;padding:42px 46px}
.pf-events-copy .pf-eyebrow{color:var(--gold);margin-bottom:14px}
.pf-events-copy h2{margin-bottom:12px;max-width:430px}
.pf-events-copy p{font-size:15px;line-height:1.6;color:#b3bdd6;max-width:430px}
.pf-qr{background:#fff;border-radius:14px;padding:16px;width:150px}
.pf-qr-img{aspect-ratio:1;border:1px solid #e3e6ee;border-radius:8px;position:relative;background:repeating-linear-gradient(0deg,#0E1B3A 0 4px,transparent 4px 8px),repeating-linear-gradient(90deg,#0E1B3A 0 4px,transparent 4px 8px);background-size:8px 8px;overflow:hidden}
.pf-qr-img i{position:absolute;width:30px;height:30px;border:5px solid #0E1B3A;background:#fff}
.pf-qr-img i:nth-child(1){top:8px;left:8px}
.pf-qr-img i:nth-child(2){top:8px;right:8px}
.pf-qr-img i:nth-child(3){bottom:8px;left:8px}
.pf-qr-cap{text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--ink);margin-top:9px}

/* ============================ SHOP / ARCHIVE ============================ */
.pf-page,.woocommerce-page .pf-shop{padding:40px 0 70px}
.woocommerce .woocommerce-result-count{color:var(--faint);font-family:var(--mono);font-size:12px}
.woocommerce .woocommerce-ordering select{padding:9px 12px;border-radius:9px;border:1px solid var(--line)}

/* ============================ SINGLE PRODUCT ============================ */
.single-product div.product{display:grid;grid-template-columns:1fr 1fr;gap:42px;max-width:var(--shell);margin:40px auto;padding:0 40px}
.single-product .woocommerce-product-gallery{margin:0}
.single-product .woocommerce-product-gallery img{border-radius:16px;background:#fff;border:1px solid var(--line)}
.single-product div.product .product_title{font-family:var(--serif);font-weight:600;font-size:38px;line-height:1.05;color:var(--ink)}
.single-product .price,.single-product div.product p.price{font-family:var(--serif);font-weight:600;font-size:30px;color:var(--ink)}
.single-product .woocommerce-product-details__short-description{color:var(--muted);margin:10px 0}
.pf-counts{display:inline-flex;align-items:center;gap:8px;background:#fff7e6;border:1px solid #ecd9a8;color:#6b551f;border-radius:10px;padding:9px 13px;font-size:13px;margin:10px 0}
.pf-counts svg{color:var(--gold-text)}
.single-product form.cart{margin:16px 0}
.single-product .quantity input{height:44px;border-radius:9px;border:1px solid var(--line)}

/* back-in-stock capture */
.pf-bis{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin:14px 0}
.pf-bis-lead{font-size:14px;color:var(--muted);margin:4px 0 12px}
.pf-bis-form{display:flex;gap:10px;flex-wrap:wrap}
.pf-bis-form input[type=email]{flex:1;min-width:200px;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:9px;font-family:var(--sans);font-size:15px}
.pf-bis-form select{height:46px;padding:0 12px;border:1px solid var(--line);border-radius:9px;font-family:var(--sans);background:#fff}
.pf-bis-msg{margin-top:10px;font-size:14px;font-weight:600}
.pf-bis-msg.is-ok{color:var(--success)}
.pf-bis-msg.is-err{color:var(--error)}

/* scent block */
.pf-scent{max-width:var(--shell);margin:8px auto 50px;padding:0 40px}
.pf-scent-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:24px;background:var(--porcelain);border:1px solid var(--line);border-radius:18px;padding:30px}
.pf-bar{margin:12px 0}
.pf-bar-label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:600}
.pf-bar-track{height:8px;border-radius:999px;background:#e6e3da;overflow:hidden}
.pf-bar-track span{display:block;height:100%;background:linear-gradient(90deg,var(--royal),#5b86e8)}
.pf-warmth{margin-top:14px}
.pf-warmth-track{height:8px;border-radius:999px;background:linear-gradient(90deg,#cfe0f5,#e7d6ad);position:relative}
.pf-warmth-dot{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:var(--ink);border:2px solid #fff;transform:translate(-50%,-50%);box-shadow:0 1px 4px rgba(0,0,0,.3)}
.pf-notes-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px}
.pf-notes-h{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--royal);margin-bottom:8px}
.pf-notes-col ul{list-style:none}
.pf-notes-col li{font-size:14px;color:var(--ink);padding:3px 0;border-bottom:1px solid var(--line-warm)}

/* ============================ CART / CHECKOUT ============================ */
.woocommerce-cart .pf-page,.woocommerce-checkout .pf-page{max-width:var(--shell);margin:0 auto;padding:40px}
.pf-nudge{display:flex;align-items:center;gap:10px;background:#fff7e6;border:1px solid #ecd9a8;color:#6b551f;border-radius:12px;padding:13px 16px;margin-bottom:18px;font-weight:600}
.pf-nudge.is-complete{background:#e8f5ee;border-color:#bfe3cf;color:var(--success)}
.pf-cart-progress{background:var(--porcelain);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px}
.pf-prog-track{height:8px;border-radius:999px;background:#e6e3da;overflow:hidden;margin:8px 0}
.pf-prog-track span{display:block;height:100%;background:var(--gold);transition:width .3s}
.pf-prog-dots{display:flex;gap:6px}
.pf-prog-dots span{flex:1;height:6px;border-radius:999px;background:#e0ddd4}
.pf-prog-dots span.on{background:var(--gold)}
.woocommerce table.shop_table{border-radius:14px;border:1px solid var(--line);overflow:hidden}
.woocommerce .cart-collaterals .cart_totals h2{font-family:var(--serif);font-size:24px;color:var(--ink)}

/* ============================ CONTENT PAGES ============================ */
.pf-page-hero{background:var(--ink);color:#fff;padding:60px 40px 54px;margin-bottom:8px}
.pf-page-hero .pf-shell{padding:0}
.pf-page-hero .pf-eyebrow{color:var(--gold)}
.pf-page-hero .pf-hero-h1,.pf-page-hero h1{color:#fff;font-size:48px;margin-top:10px;font-family:var(--serif);font-weight:500;line-height:1.02}
.pf-page-hero .pf-hero-sub{color:#b9c3da;max-width:580px;margin-top:10px}
.pf-prose{max-width:760px;font-size:16px;color:var(--body)}
.pf-prose h2{font-family:var(--serif);font-size:30px;color:var(--ink);margin:28px 0 10px}
.pf-prose h3{font-family:var(--serif);font-size:25px;color:var(--ink);margin:22px 0 8px}
.pf-prose p{margin:0 0 14px}.pf-prose ul{margin:0 0 14px 20px}
.pf-page-head{padding:30px 0 10px}

/* ============================ FOOTER ============================ */
.pf-footer{background:var(--ink-deep);color:#aab4cf;padding:44px 40px 30px;border-radius:0 0 18px 18px}
.pf-footer-in{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:24px}
.pf-foot-word{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-weight:600;font-size:22px;color:#fff;margin-bottom:10px}
.pf-foot-brand p{font-size:13px;line-height:1.6;max-width:240px;color:#aab4cf}
.pf-foot-col{font-size:13px;line-height:2.1}
.pf-foot-col h4{color:#fff;font-weight:600;margin-bottom:6px;font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:13px}
.pf-foot-col a{display:block;color:#aab4cf}
.pf-foot-col a:hover{color:#fff}
.pf-foot-bottom{border-top:1px solid #1c2949;margin-top:18px;padding-top:18px}
.pf-foot-bottom-in{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#7a86a5;flex-wrap:wrap;gap:8px}
.pf-foot-credit{font-family:var(--mono);letter-spacing:.06em}

/* ============================ RESPONSIVE ============================ */
@media(max-width:960px){
  .pf-why{grid-template-columns:repeat(2,1fr)}
  .pf-social{grid-template-columns:1fr}
  .pf-social-col{border-right:none;border-bottom:1px solid var(--line-warm)}
  .pf-finder-grid{grid-template-columns:1fr;max-width:340px}
  .single-product div.product,.pf-scent-grid{grid-template-columns:1fr}
  .woocommerce ul.products,ul.products.columns-4{grid-template-columns:repeat(2,1fr)}
  .pf-footer-in{grid-template-columns:1fr 1fr;gap:24px}
}
@media(max-width:760px){
  .pf-frame{margin:8px 0 0;border-radius:0}
  .pf-announce{border-radius:0}
  .pf-footer{border-radius:0}
  .pf-nav{display:none}
  .pf-burger{display:inline-flex}
  .pf-header-in{padding:15px 18px}
  .pf-hero{grid-template-columns:1fr}
  .pf-hero-left{padding:34px 22px}
  .pf-hero-right{padding:34px 22px;min-height:0}
  .pf-hero-h1{font-size:40px}
  .pf-finder,.pf-bundles,.pf-range,.pf-social-wrap{padding-left:18px;padding-right:18px}
  .pf-why{grid-template-columns:repeat(2,1fr);padding-left:18px;padding-right:18px}
  .pf-trust{padding:13px 16px;gap:8px 16px;font-size:12px}
  .pf-events{grid-template-columns:1fr;margin:30px 12px;padding:28px 20px}
  .pf-range-head{align-items:flex-start}
  .pf-footer-in{grid-template-columns:1fr 1fr}
  .pf-foot-bottom-in{flex-direction:column;gap:8px;text-align:center}
  .woocommerce ul.products,ul.products.columns-4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:430px){
  .pf-hero-h1{font-size:34px}
  .pf-h2,.pf-range .pf-h2{font-size:30px}
  .woocommerce ul.products,ul.products.columns-4{grid-template-columns:1fr 1fr;gap:12px}
  .pf-why,.pf-notes-cols,.pf-footer-in{grid-template-columns:1fr}
}

/* mobile nav sheet */
body.pf-nav-open .pf-nav{display:flex;position:fixed;inset:0 0 0 auto;width:80%;max-width:320px;background:var(--porcelain);flex-direction:column;align-items:flex-start;gap:6px;padding:80px 26px;z-index:60;box-shadow:-20px 0 60px -30px rgba(0,0,0,.5)}
body.pf-nav-open .pf-nav a{font-size:18px;padding:10px 0;width:100%;border-bottom:1px solid var(--line)}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
