﻿:root{--pfm-teal:#00b997;--pfm-teal-dark:#009b80;--pfm-teal-text:#08766a;--pfm-mint:#e9fbf7;--pfm-soft:#f6fbfa;--pfm-bg:#fbfdfc;--pfm-text:#151919;--pfm-muted:#657273;--pfm-line:#e2eeee;--pfm-card:#fff;--pfm-wood:#d6a66b;--pfm-charcoal:#1a1a1a;--pfm-radius:18px;--pfm-shadow:0 18px 60px rgba(30,80,70,.11)}
*{box-sizing:border-box}body.pfm-theme{margin:0;background:linear-gradient(180deg,#f4fffc 0,#fff 260px);color:var(--pfm-text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;letter-spacing:.01em}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}input,select,textarea,button{font:inherit}.pfm-container{width:min(1180px,calc(100% - 40px));margin:auto}.pfm-center{text-align:center}.pfm-trustbar{height:38px;display:flex;align-items:center;justify-content:center;gap:70px;font-size:13px;color:#111;background:#f5fffc;border-bottom:1px solid var(--pfm-line);white-space:nowrap}.pfm-trustbar span:first-child,.pfm-trustbar b{color:var(--pfm-teal-text)}.pfm-site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--pfm-line)}.pfm-header-inner{height:76px;width:min(1280px,calc(100% - 40px));margin:auto;display:flex;align-items:center;gap:32px}.pfm-logo{display:flex;align-items:center;font-weight:900;font-size:25px;letter-spacing:-.05em}.pfm-logo small{font-weight:500;color:#888;margin-left:3px}.pfm-logo-mark{display:inline-grid;place-items:center;width:34px;height:34px;margin-right:8px;border:3px solid var(--pfm-teal);border-right-color:transparent;color:transparent}.pfm-nav{margin-left:auto}.pfm-nav ul,.pfm-mobile-panel ul{display:flex;gap:34px;margin:0;padding:0;list-style:none}.pfm-nav a{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.pfm-actions{display:flex;align-items:center;gap:18px;font-size:22px}.pfm-cart{position:relative}.pfm-cart span{position:absolute;top:-10px;right:-12px;background:var(--pfm-teal);color:white;border-radius:999px;font-size:11px;padding:2px 6px}.pfm-menu-toggle{display:none;border:0;background:transparent;font-size:24px}.pfm-mobile-panel{display:none}.pfm-hero{width:min(1280px,calc(100% - 40px));margin:36px auto 0;min-height:520px;background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);box-shadow:var(--pfm-shadow);display:grid;grid-template-columns:1fr 1.35fr;overflow:hidden}.pfm-hero-copy{padding:88px 56px}.pfm-kicker{color:var(--pfm-teal-text);font-weight:900;text-transform:uppercase;font-size:13px}.pfm-hero h1,.pfm-page h1,.pfm-about-hero h1,.pfm-contact-hero h1{font-family:Poppins,Inter,sans-serif;font-size:54px;line-height:1.05;margin:14px 0 22px;letter-spacing:-.05em}.pfm-hero p,.pfm-about-hero p,.pfm-contact-hero p{font-size:18px;line-height:1.7;color:#303a3a;max-width:460px}.pfm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 28px;border-radius:4px;background:var(--pfm-teal);color:#fff;text-transform:uppercase;font-weight:900;font-size:13px;letter-spacing:.06em;border:1px solid var(--pfm-teal);cursor:pointer}.pfm-btn:hover{background:var(--pfm-teal-dark)}.pfm-btn-outline{background:white;color:#111;border-color:#202626;margin-left:14px}.pfm-btn-outline:hover{background:#f8f8f8;color:#111}.pfm-hero-media{position:relative;background:linear-gradient(90deg,#fff,#f2f8f6);display:grid;place-items:center;min-height:480px}.pfm-hero-media img{width:100%;height:100%;object-fit:cover}.pfm-feature-strip{width:min(1180px,calc(100% - 40px));margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--pfm-line);border-top:0;border-radius:0 0 var(--pfm-radius) var(--pfm-radius);overflow:hidden}.pfm-feature-strip.pfm-inset{border-radius:var(--pfm-radius);border-top:1px solid var(--pfm-line);margin-bottom:34px}.pfm-feature-strip div{padding:24px 28px;display:flex;gap:12px;align-items:center;border-right:1px solid var(--pfm-line)}.pfm-feature-strip div:last-child{border-right:0}.pfm-feature-strip span{font-size:24px;color:var(--pfm-teal-text)}.pfm-feature-strip strong{display:block;font-size:14px}.pfm-feature-strip small{display:block;color:var(--pfm-muted);font-size:12px}.pfm-section{padding:56px 0}.pfm-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.pfm-section h2,.pfm-section-head h2,.pfm-split h2{font-size:30px;margin:0;font-family:Poppins,Inter}.pfm-section-head a{color:var(--pfm-teal-text);font-weight:900;text-transform:uppercase;font-size:13px}.pfm-style-grid,.pfm-catalogue-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px}.pfm-catalogue-grid{grid-template-columns:repeat(3,1fr)}.pfm-style-card{background:#fff;border:1px solid var(--pfm-line);border-radius:14px;padding:16px;text-align:left;transition:.2s;display:block}.pfm-style-card:hover{transform:translateY(-4px);box-shadow:var(--pfm-shadow)}.pfm-style-card img{display:block;width:100%;height:138px;object-fit:cover;border-radius:8px;margin-bottom:14px;background:#f7f7f7}.pfm-style-card strong{display:block}.pfm-style-card small{color:var(--pfm-muted)}.pfm-mounts{background:var(--pfm-mint);padding:38px 0}.pfm-mount-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}.pfm-mount-card{display:block;text-align:center}.pfm-mount-card img{height:58px;object-fit:cover;border:1px solid #dfe8e5;border-radius:4px}.pfm-mount-card span{display:block;margin-top:8px;font-size:13px}.pfm-benefit-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-top:28px}.pfm-benefit-grid div{text-align:center}.pfm-benefit-grid span{font-size:34px;color:var(--pfm-teal-text)}.pfm-benefit-grid h3{font-size:16px}.pfm-benefit-grid p{color:var(--pfm-muted);font-size:14px}.pfm-split{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center;background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);box-shadow:var(--pfm-shadow);padding:34px;margin-bottom:40px}.pfm-split img{border-radius:14px;height:360px;width:100%;object-fit:cover}.pfm-split p{color:var(--pfm-muted);line-height:1.8}.pfm-footer{margin-top:60px;background:#fff;border-top:1px solid var(--pfm-line)}.pfm-footer-grid{padding:52px 0;display:grid;grid-template-columns:2fr repeat(4,1fr);gap:32px}.pfm-footer h4{margin-top:0}.pfm-footer a{display:block;margin:9px 0;color:#344}.pfm-newsletter{display:flex}.pfm-newsletter input{height:42px;border:1px solid var(--pfm-line);padding:0 12px;min-width:0}.pfm-newsletter button{background:var(--pfm-teal);color:white;border:0;padding:0 18px;text-transform:uppercase;font-weight:800}.pfm-made{text-align:center;padding:20px;border-top:1px solid var(--pfm-line)}.pfm-builder{width:min(1280px,calc(100% - 40px));margin:36px auto}.pfm-builder-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);padding:22px;margin-bottom:24px}.pfm-builder-progress span{font-weight:900;text-transform:uppercase}.pfm-builder-progress .active{color:var(--pfm-teal-text)}.pfm-builder-progress small{display:block;color:var(--pfm-muted);font-weight:600}.pfm-builder-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:28px}.pfm-preview-panel,.pfm-options-panel,.pfm-shop-header,.pfm-card,.pfm-page{background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);box-shadow:var(--pfm-shadow)}.pfm-preview-panel{padding:28px}.pfm-preview-label{display:inline-block;background:#aaa;color:#fff;text-transform:uppercase;padding:8px 14px;border-radius:4px}.pfm-live-frame{min-height:560px;display:grid;place-items:center}.pfm-live-frame img{width:min(88%,520px);height:480px;object-fit:cover;border-radius:4px;box-shadow:0 20px 50px rgba(0,0,0,.2)}.pfm-zoom{display:flex;align-items:center;gap:16px}.pfm-zoom input{flex:1;accent-color:var(--pfm-teal)}.pfm-zoom button,.pfm-tabs button,.pfm-glazing button{border:1px solid var(--pfm-line);background:#fff;border-radius:8px;padding:10px 16px}.pfm-options-panel{padding:28px}.pfm-option{border:1px solid var(--pfm-line);border-radius:12px;padding:20px;margin-bottom:16px}.pfm-option h3{margin:0 0 16px;text-transform:uppercase;font-size:15px;letter-spacing:.08em}.pfm-option h3 a,.pfm-help{float:right;color:var(--pfm-teal-text);text-transform:none}.pfm-option label{display:inline-grid;gap:8px;margin-right:14px;color:#333}.pfm-option input{height:46px;border:1px solid var(--pfm-line);border-radius:6px;padding:0 14px}.pfm-tabs{display:inline-flex;background:#f6f6f6;border-radius:8px;padding:4px;margin-bottom:16px}.pfm-tabs button:first-child{background:#fff;color:var(--pfm-teal-text)}.pfm-mini-swatches{display:flex;gap:12px;flex-wrap:wrap}.pfm-mini-swatches span{width:52px;height:52px;border:1px solid var(--pfm-line);border-radius:4px;background:#fff}.pfm-mini-swatches span.selected,.pfm-mini-swatches span:first-child{outline:2px solid var(--pfm-teal)}.pfm-mini-swatches span:nth-child(2){background:#f5efe5}.pfm-mini-swatches span:nth-child(3){background:#f3e8cf}.pfm-mini-swatches span:nth-child(4){background:#d9d6d0}.pfm-mini-swatches span:nth-child(5){background:#bbb}.pfm-mini-swatches span:nth-child(6){background:#222}.pfm-mini-swatches.frames span:nth-child(1){background:#111}.pfm-mini-swatches.frames span:nth-child(2){background:#202020}.pfm-mini-swatches.frames span:nth-child(3){background:#c9975e}.pfm-mini-swatches.frames span:nth-child(4){background:#9a7158}.pfm-mini-swatches.frames span:nth-child(5){background:#fff}.pfm-glazing{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pfm-review{display:flex;align-items:center;gap:24px;border-top:1px solid var(--pfm-line);padding-top:20px}.pfm-review img{width:70px;height:70px;object-fit:cover;border-radius:6px}.pfm-review dl{display:grid;grid-template-columns:auto auto;gap:4px 16px;flex:1}.pfm-review dt{font-weight:800}.pfm-review dd{margin:0;color:var(--pfm-muted)}.pfm-review strong{font-size:24px}.pfm-builder-cta{position:sticky;bottom:18px;margin-top:18px;display:flex;justify-content:center;align-items:center;background:var(--pfm-teal);color:#fff;height:58px;border-radius:6px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.pfm-content{padding:50px 0}.pfm-page,.pfm-card{padding:42px}.pfm-page h1{font-size:42px}.pfm-shop-header{padding:45px;margin:0 0 30px}.pfm-shop-header h1{font-family:Poppins,Inter;font-size:46px;margin:0 0 10px}.pfm-catalogue{display:grid;grid-template-columns:250px 1fr;gap:28px}.pfm-filter{background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);padding:24px;height:max-content}.pfm-filter label{display:block;margin:12px 0}.pfm-colour-dots{display:flex;gap:10px;margin:12px 0 24px}.pfm-colour-dots span{width:28px;height:28px;border-radius:50%;background:#111;border:1px solid #ddd}.pfm-colour-dots span:nth-child(2){background:#fff}.pfm-colour-dots span:nth-child(3){background:#d6a66b}.pfm-colour-dots span:nth-child(4){background:#bbb}.pfm-colour-dots span:nth-child(5){background:#6e432a}.pfm-about-hero,.pfm-contact-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.pfm-about-hero img,.pfm-contact-hero img{border-radius:14px;height:420px;width:100%;object-fit:cover}.pfm-icon-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}.pfm-icon-row span{color:var(--pfm-teal-text);font-weight:800}.pfm-contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:28px 0}.pfm-contact-form{display:grid;grid-template-columns:1fr 1fr;gap:32px}.pfm-contact-form form{display:grid;gap:14px}.pfm-contact-form input,.pfm-contact-form select,.pfm-contact-form textarea{border:1px solid var(--pfm-line);border-radius:6px;padding:14px}.pfm-contact-form textarea{min-height:130px}.pfm-map{min-height:360px;border-radius:14px;background:linear-gradient(135deg,#edf6f4,#fff);border:1px solid var(--pfm-line);display:grid;place-items:center;text-align:center;padding:30px}.pfm-map:first-letter{font-size:50px}.woocommerce .woocommerce-breadcrumb{color:var(--pfm-muted);margin:24px 0!important}.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(4,1fr);gap:28px}.woocommerce ul.products li.product{float:none!important;width:auto!important;margin:0!important;background:#fff;border:1px solid var(--pfm-line);border-radius:14px;padding:18px!important;box-shadow:none;transition:.2s}.woocommerce ul.products li.product:hover{box-shadow:var(--pfm-shadow);transform:translateY(-3px)}.woocommerce ul.products li.product img{border-radius:10px;background:#f7f7f7}.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:17px!important;color:#111}.woocommerce div.product{background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);padding:34px;margin:34px 0;box-shadow:var(--pfm-shadow)}.woocommerce div.product .summary .price{color:#111;font-size:28px}.woocommerce button.button,.woocommerce a.button,.woocommerce input.button,.woocommerce #respond input#submit{background:var(--pfm-teal)!important;color:#fff!important;border-radius:4px!important;text-transform:uppercase!important;font-weight:900!important}.woocommerce-cart-form,.cart-collaterals .cart_totals,.woocommerce-checkout-review-order,.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register{background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);padding:24px;box-shadow:var(--pfm-shadow)}.woocommerce table.shop_table{border-color:var(--pfm-line);border-radius:12px}.woocommerce-message,.woocommerce-info{border-top-color:var(--pfm-teal)}.woocommerce-message::before,.woocommerce-info::before{color:var(--pfm-teal-text)}
@media(max-width:980px){.pfm-trustbar{gap:20px;overflow:auto;justify-content:flex-start;padding:0 15px}.pfm-nav{display:none}.pfm-menu-toggle{display:block}.pfm-mobile-panel.open{display:block;padding:20px}.pfm-mobile-panel ul{display:grid}.pfm-header-inner{height:68px}.pfm-hero{grid-template-columns:1fr}.pfm-hero-copy{padding:44px 28px}.pfm-hero h1,.pfm-page h1,.pfm-about-hero h1,.pfm-contact-hero h1{font-size:36px}.pfm-feature-strip,.pfm-style-grid,.pfm-benefit-grid,.pfm-footer-grid,.pfm-builder-grid,.pfm-mount-grid,.pfm-catalogue,.pfm-catalogue-grid,.pfm-split,.pfm-about-hero,.pfm-contact-hero,.pfm-contact-grid,.pfm-contact-form,.woocommerce ul.products{grid-template-columns:1fr!important}.pfm-live-frame{min-height:380px}.pfm-live-frame img{height:320px}.pfm-glazing{grid-template-columns:1fr 1fr}.pfm-builder-progress{grid-template-columns:repeat(5,1fr);font-size:12px}.pfm-review{display:grid}.pfm-btn-outline{margin:12px 0 0}.pfm-footer-grid{gap:18px}.pfm-feature-strip div{border-right:0;border-bottom:1px solid var(--pfm-line)}.pfm-icon-row{grid-template-columns:1fr 1fr}.pfm-contact-form{padding:24px}}

/* PhotoFramers V2 polish: closer to the selected mint/modern mockup */
body.pfm-theme{background:#fbfefd!important;font-size:15px}.pfm-site-header{box-shadow:0 1px 0 rgba(0,0,0,.03)}
.pfm-header-inner{height:72px}.pfm-logo{letter-spacing:-.045em}.pfm-logo-mark{border-width:3px;border-radius:0}.pfm-actions{font-size:20px}
.pfm-hero{max-width:1300px;min-height:445px;margin-top:42px;grid-template-columns:0.88fr 1.42fr;border-radius:20px;background:#fff;box-shadow:0 22px 70px rgba(15,70,65,.10)}
.pfm-hero-copy{padding:74px 58px 60px}.pfm-hero h1{font-size:50px;line-height:1.08;letter-spacing:-.055em;margin-bottom:22px}.pfm-hero p{font-size:17px;max-width:450px;line-height:1.65}.pfm-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}.pfm-btn{white-space:nowrap;min-width:174px;letter-spacing:.045em}.pfm-btn-outline{margin-left:0}.pfm-hero-media{min-height:445px;background:#f7fbfa}.pfm-hero-media img{object-fit:cover;object-position:center;width:100%;height:100%}
.pfm-feature-strip{max-width:1180px;margin-top:0;box-shadow:0 12px 30px rgba(15,70,65,.04)}.pfm-feature-strip div{padding:22px 26px}.pfm-feature-strip strong{line-height:1.2}.pfm-feature-strip small{line-height:1.2}
.pfm-section{padding:62px 0}.pfm-section-head h2,.pfm-section h2,.pfm-split h2{letter-spacing:-.035em}.pfm-style-grid{gap:22px}.pfm-style-card{border-radius:12px;padding:14px}.pfm-style-card img{height:132px;object-fit:cover;background:#f7faf9}.pfm-mounts{background:#eafbfa;padding:48px 0}.pfm-mount-card img{width:130px;height:55px}.pfm-benefit-grid span{color:var(--pfm-teal-text)}
.pfm-split{margin-top:20px}.pfm-split img{height:330px}.pfm-builder-grid{grid-template-columns:1.05fr 1fr}.pfm-live-frame{min-height:500px}.pfm-live-frame img{height:430px;object-fit:cover}.pfm-builder-cta{box-shadow:0 10px 35px rgba(0,185,151,.18)}
@media(max-width:980px){.pfm-hero{grid-template-columns:1fr;margin-top:18px;min-height:0}.pfm-hero-copy{padding:38px 24px}.pfm-hero h1{font-size:34px}.pfm-hero-media{min-height:250px}.pfm-btn{min-width:160px}.pfm-feature-strip{grid-template-columns:1fr 1fr!important}.pfm-style-card img{height:180px}.pfm-mount-card img{width:100%;height:60px}.pfm-split img{height:260px}}

/* Functional frame builder and product configurator */
.pfm-builder-grid{align-items:start}
.pfm-builder-grid form,.pfm-builder-grid button{font:inherit}
.pfm-frame-preview{width:min(78%,430px);aspect-ratio:3/4;margin:auto;background:#111;padding:24px;box-shadow:0 24px 50px rgba(0,0,0,.24);transition:transform .18s ease,background .18s ease}
.pfm-frame-preview[data-frame="natural-oak"]{background:#c9975e}.pfm-frame-preview[data-frame="white-wood"]{background:#f7f7f2}.pfm-frame-preview[data-frame="silver-gallery"]{background:#b8b6b0}.pfm-frame-preview[data-frame="walnut"]{background:#6e432a}
.pfm-frame-mount{display:grid;place-items:center;width:100%;height:100%;background:#fff;padding:34px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.pfm-frame-mount img{width:100%;height:100%;object-fit:cover;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.pfm-help-link{display:inline-block;margin-top:12px;color:var(--pfm-teal-text);font-weight:800}
.pfm-frame-options label,.pfm-mount-options label,.pfm-glazing label{cursor:pointer}
.pfm-frame-options{display:grid;grid-template-columns:repeat(5,minmax(84px,1fr));gap:12px}
.pfm-frame-options label{display:grid;gap:7px;border:1px solid var(--pfm-line);border-radius:8px;padding:7px;background:#fff}
.pfm-frame-options label.selected{border-color:var(--pfm-teal);box-shadow:0 0 0 1px var(--pfm-teal)}
.pfm-frame-options input,.pfm-mount-options input,.pfm-glazing input,.pfm-config-choices input{position:absolute;opacity:0;pointer-events:none}
.pfm-frame-options img{width:100%;height:56px;object-fit:cover;border-radius:5px}.pfm-frame-options span{width:auto!important;height:auto!important;border:0!important;background:transparent!important;font-size:11px;font-weight:800;line-height:1.15}
.pfm-mount-options{display:flex;gap:12px;flex-wrap:wrap}.pfm-mount-options label{display:grid;gap:6px;text-align:center}.pfm-mount-options label>span{display:block}.pfm-mount-options em{font-style:normal;font-size:11px;color:var(--pfm-muted);max-width:68px}.pfm-mount-options label.selected>span{outline:2px solid var(--pfm-teal)}
.pfm-glazing label{border:1px solid var(--pfm-line);border-radius:8px;padding:12px;min-height:74px;background:#fff;display:grid;align-content:center;gap:4px;text-align:center}.pfm-glazing label.selected{border-color:var(--pfm-teal);box-shadow:0 0 0 1px var(--pfm-teal)}.pfm-glazing strong{font-size:12px}.pfm-glazing small{color:var(--pfm-muted)}
.pfm-product-config{border:1px solid var(--pfm-line);border-radius:14px;padding:18px;margin:20px 0;background:#fff}.pfm-config-row{border-top:1px solid var(--pfm-line);padding:16px 0}.pfm-config-row:first-child{border-top:0;padding-top:0}.pfm-config-row>span{display:block;font-weight:900;text-transform:uppercase;font-size:13px;letter-spacing:.05em;margin-bottom:12px}.pfm-config-row label{margin-right:10px}.pfm-config-row input[type=number]{height:42px;width:120px;border:1px solid var(--pfm-line);border-radius:7px;padding:0 10px;margin-left:6px}.pfm-config-choices{display:flex;gap:10px;flex-wrap:wrap}.pfm-config-choices label{border:1px solid var(--pfm-line);border-radius:8px;padding:9px 11px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;background:#fff}.pfm-config-choices label.selected{border-color:var(--pfm-teal);box-shadow:0 0 0 1px var(--pfm-teal)}.pfm-config-choices i{width:24px;height:24px;border:1px solid #ddd;border-radius:4px}.pfm-config-frame-buttons img{width:42px;height:32px;object-fit:cover;border-radius:4px}.pfm-live-price{font-weight:800}.pfm-live-price strong{color:var(--pfm-teal-dark)}
@media(max-width:980px){.pfm-frame-options{grid-template-columns:repeat(3,1fr)}.pfm-frame-preview{width:min(84%,300px);padding:18px}.pfm-frame-mount{padding:24px}.pfm-config-row label{display:grid;margin:0 0 10px}.pfm-config-row input[type=number]{margin-left:0;width:100%}}

/* Phase 2 design system */
:root{
  --pfm-space-1:6px;
  --pfm-space-2:10px;
  --pfm-space-3:16px;
  --pfm-space-4:24px;
  --pfm-space-5:36px;
  --pfm-radius-sm:8px;
  --pfm-radius-md:12px;
  --pfm-focus:0 0 0 3px rgba(0,185,151,.22);
}
body.pfm-theme{letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.pfm-svg{width:1.25em;height:1.25em;display:inline-block;vertical-align:-.22em;flex:0 0 auto}
.pfm-kicker{letter-spacing:.08em}
.pfm-btn,.woocommerce button.button,.woocommerce a.button,.woocommerce input.button{transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.pfm-btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;box-shadow:var(--pfm-focus)}
.pfm-btn:hover,.woocommerce button.button:hover,.woocommerce a.button:hover{transform:translateY(-1px)}
.pfm-card,.pfm-shop-header,.pfm-preview-panel,.pfm-options-panel,.pfm-order-summary-card,.woocommerce-cart-form,.cart-collaterals .cart_totals,.woocommerce-checkout #customer_details,.woocommerce-checkout #order_review,.woocommerce-MyAccount-content,.woocommerce-MyAccount-navigation{border-radius:var(--pfm-radius-md);box-shadow:0 14px 44px rgba(21,80,74,.08)}
.pfm-site-header{box-shadow:0 1px 0 rgba(18,30,28,.05);background:rgba(255,255,255,.94)}
.pfm-trustbar{gap:clamp(18px,5vw,76px);font-size:12px;font-weight:700;color:#1c2b2a}
.pfm-trustbar span{display:inline-flex;align-items:center;gap:8px}.pfm-trustbar .pfm-svg{color:var(--pfm-teal-text);font-size:15px}
.pfm-header-inner{gap:24px}.pfm-logo{font-size:24px;min-width:max-content}.pfm-logo-mark{position:relative;border-radius:2px}.pfm-logo-mark::before,.pfm-logo-mark::after{content:"";position:absolute;background:var(--pfm-teal)}.pfm-logo-mark::before{width:16px;height:3px;left:7px;top:7px}.pfm-logo-mark::after{width:16px;height:3px;left:7px;bottom:7px}
.pfm-nav a{position:relative;padding:8px 0}.pfm-nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--pfm-teal);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.pfm-nav a:hover::after,.pfm-nav .current-menu-item>a::after{transform:scaleX(1)}
.pfm-actions a,.pfm-menu-toggle{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:999px;color:#101616}.pfm-actions a:hover,.pfm-menu-toggle:hover{background:var(--pfm-mint);color:var(--pfm-teal-dark)}.pfm-actions .pfm-svg,.pfm-menu-toggle .pfm-svg{font-size:21px}.pfm-cart span{top:-4px;right:-3px;min-width:18px;height:18px;display:grid;place-items:center;padding:0;font-size:10px}
.pfm-mobile-panel{border-top:1px solid var(--pfm-line);background:#fff}.pfm-mobile-panel a{display:block;padding:14px 20px;font-weight:800;text-transform:uppercase;font-size:13px}.pfm-mobile-panel a:hover{background:var(--pfm-mint)}
.pfm-feature-strip div{min-width:0}.pfm-feature-strip span{display:grid;place-items:center;color:var(--pfm-teal-text)}.pfm-feature-strip .pfm-svg{font-size:24px}.pfm-feature-strip strong{letter-spacing:-.01em}.pfm-feature-strip small{margin-top:2px}
.pfm-section-head{gap:18px}.pfm-section-head a{display:inline-flex;align-items:center;min-height:36px}
.pfm-style-card,.pfm-mount-card,.pfm-filter,.pfm-contact-grid .pfm-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.pfm-style-card:hover,.pfm-contact-grid .pfm-card:hover{border-color:#ccebe5}
.pfm-icon-row span,.pfm-contact-icon{display:inline-flex;align-items:center;gap:8px;color:var(--pfm-teal-text);font-weight:800}.pfm-icon-row .pfm-svg,.pfm-contact-icon .pfm-svg{font-size:24px}
.pfm-benefit-grid span{display:inline-grid;place-items:center;color:var(--pfm-teal-text)}.pfm-benefit-grid .pfm-svg{font-size:36px}
.pfm-contact-form label{display:grid;gap:7px;font-size:13px;font-weight:800}.pfm-contact-form input,.pfm-contact-form select,.pfm-contact-form textarea{width:100%}.pfm-map{color:#20312f}.pfm-map>span{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 12px;border-radius:50%;background:var(--pfm-teal);color:#fff}.pfm-map .pfm-svg{font-size:30px}
.pfm-footer{box-shadow:0 -1px 0 rgba(18,30,28,.05)}.pfm-footer p{color:var(--pfm-muted);line-height:1.7}.pfm-footer h4{font-size:13px;text-transform:uppercase;letter-spacing:.08em}.pfm-footer a{color:#293838}.pfm-footer a:hover{color:var(--pfm-teal-dark)}.pfm-made{display:flex;align-items:center;justify-content:center;gap:10px;color:#293838}.pfm-made .pfm-svg{color:var(--pfm-teal-text)}.pfm-newsletter input{border-radius:6px 0 0 6px}.pfm-newsletter button{border-radius:0 6px 6px 0}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:980px){
  .pfm-container{width:min(100% - 28px,1180px)}
  .pfm-trustbar{height:34px;justify-content:flex-start;overflow-x:auto;padding:0 14px;gap:22px}
  .pfm-trustbar span{flex:0 0 auto}
  .pfm-header-inner{width:calc(100% - 28px);height:64px;gap:10px}
  .pfm-logo{font-size:20px}.pfm-logo-mark{width:28px;height:28px;margin-right:7px}
  .pfm-actions{margin-left:auto;gap:4px}.pfm-actions a{width:34px;height:34px}
  .pfm-actions a[aria-label="Search"],.pfm-actions a[aria-label="Account"]{display:none}
  .pfm-mobile-panel.open{display:block}
  .pfm-feature-strip{grid-template-columns:1fr 1fr!important;width:calc(100% - 28px)}
  .pfm-feature-strip div{padding:16px 14px}
  .pfm-footer-grid{grid-template-columns:1fr!important;padding:34px 0}
  .pfm-newsletter{max-width:420px}
  .pfm-contact-grid{grid-template-columns:1fr!important}
  .pfm-card{padding:24px}
}

/* Phase 3 frame builder UX */
.pfm-builder-progress span{position:relative;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;text-transform:none;letter-spacing:0}
.pfm-builder-progress b{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#edf5f3;color:#1d2928;font-size:14px}
.pfm-builder-progress .active b{background:var(--pfm-teal);color:#fff}
.pfm-builder-progress small{grid-column:2}
.pfm-tabs{display:grid;grid-template-columns:1fr 1fr;width:min(100%,390px)}
.pfm-tabs button{min-height:42px;border:0;background:transparent;color:#1a2524;font-weight:800}
.pfm-tabs button:first-child{background:transparent;color:#1a2524}
.pfm-tabs button.active{background:#fff;color:var(--pfm-teal-dark);box-shadow:0 1px 8px rgba(20,70,65,.08)}
.pfm-size-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:10px 0 12px}
.pfm-size-grid label{display:grid!important;gap:8px;margin:0!important;font-weight:800;font-size:13px;color:#263433}
.pfm-size-grid input{width:100%}
.pfm-standard-sizes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.pfm-standard-sizes[hidden]{display:none}
.pfm-standard-sizes button{display:grid;gap:3px;align-content:center;min-height:62px;padding:10px;border:1px solid var(--pfm-line);border-radius:8px;background:#fff;font-weight:900;text-align:center;cursor:pointer}
.pfm-standard-sizes button small{font-size:11px;color:var(--pfm-muted);font-weight:700}
.pfm-standard-sizes button:hover,.pfm-standard-sizes button.selected{border-color:var(--pfm-teal);box-shadow:0 0 0 1px var(--pfm-teal)}
.pfm-size-error{margin:8px 0 0;color:#9f2d20;font-weight:800;font-size:13px}
.pfm-size-error[hidden]{display:none}
.pfm-preview-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.pfm-preview-meta span{border:1px solid var(--pfm-line);border-radius:10px;padding:12px;background:#fbfefd;color:var(--pfm-muted);font-size:13px}
.pfm-preview-meta strong{display:block;color:#162120;font-size:15px}
.pfm-review-copy{flex:1;min-width:0}
.pfm-review-copy h3{margin:0 0 10px;text-transform:uppercase;font-size:14px;letter-spacing:.07em}
.pfm-review-price{display:grid;gap:4px;text-align:right;min-width:170px}
.pfm-review-price strong{font-size:25px}
.pfm-review-price small{display:block;color:var(--pfm-muted);font-weight:700}
.pfm-builder-cta.disabled,.pfm-builder-cta:disabled,.single_add_to_cart_button.disabled:disabled{opacity:.55;cursor:not-allowed;transform:none}
.pfm-frame-preview{max-width:430px;max-height:520px}
@media(max-width:980px){
  .pfm-builder{width:calc(100% - 28px);margin-top:20px}
  .pfm-builder-progress{grid-template-columns:repeat(5,minmax(44px,1fr));gap:8px;padding:12px}
  .pfm-builder-progress span{display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;font-size:10px;gap:5px}
  .pfm-builder-progress b{grid-row:auto;width:28px;height:28px;font-size:12px}
  .pfm-builder-progress small{display:none}
  .pfm-preview-panel,.pfm-options-panel{padding:18px}
  .pfm-size-grid,.pfm-preview-meta{grid-template-columns:1fr}
  .pfm-standard-sizes{grid-template-columns:1fr 1fr}
  .pfm-review{grid-template-columns:70px 1fr;gap:14px}
  .pfm-review-price{grid-column:1/-1;text-align:left}
  .pfm-builder-cta{bottom:10px;height:auto;min-height:54px;padding:12px 16px;text-align:center}
}


/* ============================================================
   Phase 4B/4C — Frame Styles catalogue v2
   Appended 2026-05-30 — supersedes the .pfm-catalogue / .pfm-filter
   rules earlier in this file when the .pfm-catalogue--v2 modifier
   is present. Keeps the old selectors as a safe fallback.
   ============================================================ */

.pfm-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--pfm-muted);font-size:13px;margin:24px 0 12px}
.pfm-breadcrumb a{color:var(--pfm-muted)}
.pfm-breadcrumb a:hover{color:var(--pfm-teal-text)}
.pfm-breadcrumb span[aria-hidden]{color:#b5c5c2}
.pfm-breadcrumb [aria-current]{color:var(--pfm-text);font-weight:600}

.pfm-shop-header--catalogue{padding:36px 40px}
.pfm-shop-header__row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}
.pfm-shop-header__copy{flex:1 1 320px;min-width:0}
.pfm-shop-header--catalogue h1{font-size:38px;margin:0 0 8px}
.pfm-shop-header--catalogue p{margin:0;color:var(--pfm-muted);font-size:15px;max-width:520px}

.pfm-sort{display:inline-grid;gap:6px;align-self:flex-end}
.pfm-sort__label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pfm-muted)}
.pfm-sort__select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%231a1a1a' stroke-width='1.8'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center/12px;border:1px solid var(--pfm-line);border-radius:8px;padding:10px 38px 10px 16px;font-size:14px;font-weight:600;min-width:200px;cursor:pointer}
.pfm-sort__select:hover{border-color:#c5d5d3}
.pfm-sort__select:focus-visible{outline:0;box-shadow:var(--pfm-focus);border-color:var(--pfm-teal)}

.pfm-catalogue--v2{display:grid;grid-template-columns:260px 1fr;gap:28px;margin-bottom:48px}
.pfm-catalogue__mobile-bar{display:none;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.pfm-catalogue__mobile-btn{justify-content:center;gap:8px;font-size:13px;min-height:46px;padding:0 16px;position:relative}
.pfm-catalogue__mobile-btn select{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}

.pfm-filter--v2{background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);padding:24px;height:max-content;position:sticky;top:96px}
.pfm-filter__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--pfm-line)}
.pfm-filter__header h3{margin:0;font-size:15px;font-weight:700;letter-spacing:.02em}
.pfm-filter__clear{background:transparent;border:0;color:var(--pfm-teal-text);font-size:13px;font-weight:700;cursor:pointer;padding:4px 6px}
.pfm-filter__clear:hover{color:var(--pfm-teal-dark);text-decoration:underline}
.pfm-filter__close{display:none;background:transparent;border:0;cursor:pointer;font-size:18px;color:#101616;padding:4px}

.pfm-filter__form{display:flex;flex-direction:column;gap:22px}
.pfm-filter__group{border:0;padding:0;margin:0;display:grid;gap:10px}
.pfm-filter__legend{padding:0;font-size:14px;font-weight:700;color:var(--pfm-text);letter-spacing:.02em;margin-bottom:4px}

.pfm-filter__options{display:grid;gap:10px}
.pfm-filter__option{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;padding:4px 0;margin:0!important}
.pfm-filter__option input{accent-color:var(--pfm-teal);width:16px;height:16px;flex:0 0 auto;cursor:pointer}
.pfm-filter__option-name{flex:1}
.pfm-filter__option-count{color:var(--pfm-muted);font-size:13px;font-variant-numeric:tabular-nums}
.pfm-filter__option:hover .pfm-filter__option-name{color:var(--pfm-teal-dark)}

.pfm-filter__swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.pfm-filter__swatch{position:relative;cursor:pointer;display:grid;place-items:center;margin:0!important;aspect-ratio:1}
.pfm-filter__swatch input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pfm-filter__swatch-dot{display:block;width:28px;height:28px;border-radius:50%;border:1px solid #d8e0de;transition:transform .15s ease,box-shadow .15s ease}
.pfm-filter__swatch:hover .pfm-filter__swatch-dot{transform:scale(1.08)}
.pfm-filter__swatch input:checked + .pfm-filter__swatch-dot{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--pfm-teal);transform:scale(1.1)}
.pfm-filter__swatch input:focus-visible + .pfm-filter__swatch-dot{box-shadow:var(--pfm-focus)}

.pfm-filter__cta{display:flex!important;justify-content:center;margin-top:6px}

.pfm-catalogue__results{min-width:0}
.pfm-catalogue__count{margin-bottom:18px;font-size:14px;color:var(--pfm-muted)}
.pfm-catalogue__count [data-pfm-count]{color:var(--pfm-text);font-weight:700}

.pfm-catalogue-grid--v2{grid-template-columns:repeat(4,1fr);gap:18px}

.pfm-style-card--v2{position:relative;background:#fff;border:1px solid var(--pfm-line);border-radius:14px;padding:12px;display:block;text-align:left;overflow:hidden}
.pfm-style-card--v2:hover{box-shadow:var(--pfm-shadow);transform:translateY(-3px)}
.pfm-style-card--v2.pfm-style-card--hidden{display:none}
.pfm-style-card__media{background:#f3f7f5;border-radius:10px;aspect-ratio:1;overflow:hidden;margin-bottom:12px;display:grid;place-items:center}
.pfm-style-card__media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;margin:0;border-radius:0;background:transparent}
.pfm-style-card__title{display:block;font-size:14px;font-weight:700;color:var(--pfm-text);margin-bottom:2px}
.pfm-style-card__price{display:block;color:var(--pfm-muted);font-size:13px}
.pfm-style-card__fav{position:absolute;top:18px;right:18px;width:32px;height:32px;display:grid;place-items:center;background:#fff;border:1px solid var(--pfm-line);border-radius:999px;cursor:pointer;color:#9aa9a7;z-index:2;transition:color .15s ease,border-color .15s ease,transform .15s ease}
.pfm-style-card__fav:hover{color:var(--pfm-teal-text);border-color:var(--pfm-teal);transform:scale(1.06)}
.pfm-style-card__fav.is-saved{color:#e35d6a;border-color:#e35d6a}
.pfm-style-card__fav .pfm-svg{width:16px;height:16px}

.pfm-catalogue__empty{margin:28px 0;padding:24px;background:var(--pfm-soft);border:1px dashed var(--pfm-line);border-radius:12px;text-align:center;color:var(--pfm-muted)}

.pfm-catalogue__loadmore-wrap{margin-top:28px;text-align:center}
.pfm-catalogue__loadmore{min-width:240px}
.pfm-catalogue__loadmore[hidden]{display:none}

@media(max-width:980px){
  .pfm-shop-header--catalogue{padding:24px 22px}
  .pfm-shop-header--catalogue h1{font-size:28px}
  .pfm-shop-header__row{flex-direction:column;align-items:stretch;gap:14px}
  .pfm-sort{align-self:stretch;display:none}
  .pfm-catalogue--v2{grid-template-columns:1fr!important;gap:16px}
  .pfm-catalogue__mobile-bar{display:grid}
  .pfm-filter--v2{position:fixed;inset:0;z-index:200;border-radius:0;padding:22px;overflow:auto;transform:translateX(-100%);transition:transform .25s ease;height:100vh}
  .pfm-filter--v2.is-open{transform:translateX(0)}
  .pfm-filter__close{display:inline-grid;place-items:center}
  .pfm-catalogue-grid--v2{grid-template-columns:1fr 1fr;gap:14px}
  .pfm-style-card--v2{padding:10px}
  .pfm-style-card__fav{top:14px;right:14px;width:28px;height:28px}
}



/* ============================================================
   Phase 5A — Single product page (design 04).
   Custom layout: breadcrumb, 2-col gallery+summary, sections,
   About/Why/Perfect-For trio. Configurator (Mount/Glazing/
   FrameColour) is preview-only in 5A; Phase 5B will wire it up.
   ============================================================ */

/* Override the Phase 1 .woocommerce div.product card so our custom layout breathes. */
.woocommerce div.product.pfm-product-page{background:transparent;border:0;box-shadow:none;padding:0;margin:24px 0 0}

.pfm-product-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:42px;align-items:flex-start;margin:18px 0 56px}

/* ---- Gallery ---- */
.pfm-product-gallery{display:grid;grid-template-columns:78px 1fr;gap:18px}
.pfm-product-gallery__thumbs{display:flex;flex-direction:column;gap:10px;max-height:560px;overflow:auto}
.pfm-product-gallery__thumb{padding:0;background:#fff;border:1px solid var(--pfm-line);border-radius:8px;cursor:pointer;overflow:hidden;aspect-ratio:1;display:grid;place-items:center}
.pfm-product-gallery__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pfm-product-gallery__thumb.is-active{border-color:var(--pfm-teal);box-shadow:0 0 0 1px var(--pfm-teal)}
.pfm-product-gallery__thumb:hover{border-color:#c5d5d3}

.pfm-product-gallery__main{position:relative;background:#f6f9f8;border-radius:14px;overflow:hidden;aspect-ratio:1;display:grid;place-items:center}
.pfm-product-gallery__main img{width:100%;height:100%;object-fit:cover;display:block}
.pfm-product-gallery__zoom{position:absolute;top:14px;right:14px;width:34px;height:34px;display:grid;place-items:center;background:#fff;border:1px solid var(--pfm-line);border-radius:999px;cursor:pointer;z-index:2;color:#101616}
.pfm-product-gallery__zoom:hover{color:var(--pfm-teal-text);border-color:var(--pfm-teal)}
.pfm-product-gallery__zoom .pfm-svg{width:16px;height:16px}
.pfm-product-gallery__nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;display:grid;place-items:center;background:rgba(255,255,255,.92);border:1px solid var(--pfm-line);border-radius:999px;cursor:pointer;z-index:2;font-size:22px;line-height:1;color:#101616;padding:0}
.pfm-product-gallery__nav:hover{color:var(--pfm-teal-text);border-color:var(--pfm-teal)}
.pfm-product-gallery__nav--prev{left:14px}
.pfm-product-gallery__nav--next{right:14px}

/* ---- Summary ---- */
.pfm-product-summary{display:flex;flex-direction:column;gap:18px}
.pfm-product-summary__kicker{margin:0;color:var(--pfm-teal-text);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.06em}
.pfm-product-summary__title{font-family:Poppins,Inter,sans-serif;font-size:38px;line-height:1.08;margin:0;letter-spacing:-.025em}
.pfm-product-summary__rating{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--pfm-muted)}
.pfm-stars{display:inline-flex;gap:2px}
.pfm-star .pfm-svg{width:18px;height:18px;color:#dde6e5}
.pfm-star.is-full .pfm-svg,.pfm-star.is-half .pfm-svg{color:#1bb795}
.pfm-product-summary__rating-num{color:var(--pfm-text);font-weight:700}
.pfm-product-summary__rating-sep{color:#cad4d2}
.pfm-trustpilot-badge{color:#00b67a;font-weight:700}

.pfm-product-summary__excerpt{color:#3a4847;font-size:15px;line-height:1.6;margin:0}
.pfm-product-summary__excerpt p{margin:0 0 6px}

.pfm-product-summary__price-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid var(--pfm-line);border-bottom:1px solid var(--pfm-line);padding:18px 0;margin:6px 0}
.pfm-product-summary__price{margin:0;font-size:34px;font-weight:800;color:var(--pfm-text);font-family:Inter,sans-serif;letter-spacing:-.02em}
.pfm-product-summary__price .woocommerce-Price-amount{font-size:34px!important;color:var(--pfm-text)}
.pfm-product-summary__price del{color:var(--pfm-muted);font-size:.6em;margin-right:8px}
.pfm-product-summary__lead-time{margin:0;color:var(--pfm-muted);font-size:13px;display:inline-flex;align-items:center;gap:8px}
.pfm-product-summary__lead-icon{color:var(--pfm-teal-text)}

/* Sections */
.pfm-product-section{border:1px solid var(--pfm-line);border-radius:14px;padding:18px 20px;background:#fff;display:grid;gap:14px}
.pfm-product-section__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}
.pfm-product-section__header h3{margin:0;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--pfm-text)}
.pfm-product-section__num{color:var(--pfm-muted);margin-right:4px;font-weight:700}
.pfm-product-section__link{color:var(--pfm-teal-text);font-size:13px;font-weight:700;text-transform:none}
.pfm-product-section__link:hover{color:var(--pfm-teal-dark);text-decoration:underline}
.pfm-product-section__hint{margin:0;color:var(--pfm-muted);font-size:13px}

/* SIZE section — style WooCommerce variation form into pills */
.pfm-product-section--size table.variations{margin:0;border:0}
.pfm-product-section--size table.variations tbody{display:flex;flex-direction:column;gap:10px}
.pfm-product-section--size table.variations tr{display:flex;flex-direction:column;gap:8px}
.pfm-product-section--size table.variations th,
.pfm-product-section--size table.variations td{padding:0;border:0;background:transparent;display:block;width:auto;text-align:left}
.pfm-product-section--size table.variations th.label{font-size:12px;color:var(--pfm-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.pfm-product-section--size table.variations select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%231a1a1a' stroke-width='1.8'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center/12px;border:1px solid var(--pfm-line);border-radius:8px;padding:12px 38px 12px 16px;font-size:14px;font-weight:600;min-width:200px;cursor:pointer;width:100%;max-width:340px}
.pfm-product-section--size .reset_variations{display:inline-block;margin-top:8px;font-size:13px;color:var(--pfm-teal-text)}
.pfm-product-section--size .woocommerce-variation-price{margin:8px 0}
.pfm-product-section--size .woocommerce-variation-availability p{margin:0;color:var(--pfm-muted);font-size:13px}
.pfm-product-section--size .quantity{margin-right:10px}
.pfm-product-section--size .quantity input.qty{height:46px;border:1px solid var(--pfm-line);border-radius:8px;padding:0 10px;width:72px}
.pfm-product-section--size button.single_add_to_cart_button{background:var(--pfm-teal)!important;color:#fff!important;border:0!important;border-radius:8px!important;height:54px!important;padding:0 28px!important;font-size:14px!important;font-weight:900!important;letter-spacing:.06em!important;text-transform:uppercase!important;width:100%;margin-top:14px}
.pfm-product-section--size button.single_add_to_cart_button:hover{background:var(--pfm-teal-dark)!important;transform:none!important}

/* MOUNT swatch row */
.pfm-product-section__swatches{display:flex;gap:10px;flex-wrap:wrap}
.pfm-swatch{width:34px;height:34px;border-radius:50%;border:1px solid #d8e0de;display:inline-block}
.pfm-swatch.is-active{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--pfm-teal)}

/* GLAZING cards */
.pfm-product-section__glazing-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pfm-glazing-card{border:1px solid var(--pfm-line);border-radius:10px;padding:14px 12px;text-align:center;background:#fff;display:grid;gap:4px;align-content:center;min-height:84px}
.pfm-glazing-card strong{font-size:13px;font-weight:700;color:var(--pfm-text)}
.pfm-glazing-card small{color:var(--pfm-muted);font-size:11px;line-height:1.3}
.pfm-glazing-card.is-active{border-color:var(--pfm-teal);box-shadow:0 0 0 1px var(--pfm-teal)}

/* FRAME COLOUR style mini chips */
.pfm-product-section__styles{display:flex;gap:10px;flex-wrap:wrap}
.pfm-style-mini{display:grid;place-items:center;width:64px;height:64px;border:1px solid var(--pfm-line);border-radius:8px;overflow:hidden;background:#fff;transition:.15s ease}
.pfm-style-mini img{width:100%;height:100%;object-fit:cover}
.pfm-style-mini:hover{border-color:#c5d5d3;transform:translateY(-2px)}
.pfm-style-mini.is-active{border-color:var(--pfm-teal);box-shadow:0 0 0 1px var(--pfm-teal)}

/* Trust strip inside the product summary */
.pfm-product-trust{margin-top:10px}
.pfm-product-trust.pfm-feature-strip{grid-template-columns:repeat(4,1fr)}

/* Below the fold: About / Why / Perfect For */
.pfm-product-extras{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;background:#fff;border:1px solid var(--pfm-line);border-radius:var(--pfm-radius);padding:34px;margin-bottom:48px}
.pfm-product-extras__col h2{font-family:Poppins,Inter,sans-serif;font-size:20px;margin:0 0 14px;letter-spacing:-.01em}
.pfm-product-extras__about p{color:#3a4847;line-height:1.65;margin:0 0 10px}
.pfm-checklist{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.pfm-checklist li{display:flex;gap:10px;align-items:flex-start;color:#3a4847;font-size:14px;line-height:1.5}
.pfm-checklist li .pfm-svg{color:var(--pfm-teal-text);flex:0 0 auto;margin-top:2px}
.pfm-perfect-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pfm-perfect-grid div{display:grid;gap:8px;text-align:center;padding:14px 8px;border:1px solid var(--pfm-line);border-radius:10px;background:#fbfdfd}
.pfm-perfect-grid span{color:var(--pfm-teal-text);font-size:24px;display:inline-block}
.pfm-perfect-grid strong{font-size:13px;font-weight:700}

@media(max-width:980px){
  .pfm-product-grid{grid-template-columns:1fr;gap:20px;margin:12px 0 36px}
  .pfm-product-gallery{grid-template-columns:1fr;gap:10px}
  .pfm-product-gallery__thumbs{order:2;flex-direction:row;max-height:none;overflow-x:auto;padding-bottom:4px}
  .pfm-product-gallery__thumb{flex:0 0 64px}
  .pfm-product-gallery__main{order:1;aspect-ratio:1}
  .pfm-product-summary__title{font-size:28px}
  .pfm-product-summary__price,.pfm-product-summary__price .woocommerce-Price-amount{font-size:28px!important}
  .pfm-product-section__glazing-cards{grid-template-columns:1fr 1fr}
  .pfm-product-trust.pfm-feature-strip{grid-template-columns:1fr 1fr!important}
  .pfm-product-extras{grid-template-columns:1fr;padding:24px;gap:24px}
  .pfm-perfect-grid{grid-template-columns:1fr 1fr}
}



/* ============================================================
   Phase 5B — Product page configurator (Mount + Glazing pickers).
   Replaces the 5A preview-only swatches/cards with real radio inputs.
   ============================================================ */

.pfm-product-section__value{color:var(--pfm-muted);font-size:13px;font-weight:600}

/* Mount picker */
.pfm-mount-picker{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pfm-mount-option{position:relative;display:grid;place-items:center;cursor:pointer;margin:0!important;padding:0;border:0;background:transparent}
.pfm-mount-option input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.pfm-mount-option__dot{display:block;width:34px;height:34px;border-radius:50%;border:1px solid #d8e0de;transition:transform .15s ease,box-shadow .15s ease}
.pfm-mount-option:hover .pfm-mount-option__dot{transform:scale(1.08)}
.pfm-mount-option input:checked + .pfm-mount-option__dot{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--pfm-teal);transform:scale(1.1)}
.pfm-mount-option input:focus-visible + .pfm-mount-option__dot{box-shadow:var(--pfm-focus)}
.pfm-mount-option.is-active .pfm-mount-option__dot{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--pfm-teal)}

/* Glazing picker */
.pfm-glazing-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pfm-glazing-picker .pfm-glazing-card{position:relative;cursor:pointer;margin:0!important;border:1px solid var(--pfm-line);border-radius:10px;padding:14px 12px;text-align:center;background:#fff;display:grid;gap:4px;align-content:center;min-height:88px;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.pfm-glazing-picker .pfm-glazing-card input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pfm-glazing-picker .pfm-glazing-card:hover{border-color:#c5d5d3;transform:translateY(-1px)}
.pfm-glazing-picker .pfm-glazing-card.is-active{border-color:var(--pfm-teal);box-shadow:0 0 0 1px var(--pfm-teal)}
.pfm-glazing-picker .pfm-glazing-card input:focus-visible ~ small{outline:0}
.pfm-glazing-picker .pfm-glazing-card strong{font-size:12px;font-weight:700;color:var(--pfm-text);line-height:1.25}
.pfm-glazing-picker .pfm-glazing-card small{color:var(--pfm-muted);font-size:11px;line-height:1.3;display:block}
.pfm-glazing-card__extra{display:block;color:var(--pfm-teal-dark);font-weight:700;margin-top:2px}
.pfm-glazing-card__extra .woocommerce-Price-amount{color:var(--pfm-teal-dark)!important;font-size:11px!important}

/* Live "Configured Price" indicator inside the price row */
.pfm-product-summary__price [data-pfm-price-display]{display:inline-block;transition:opacity .12s ease}
.pfm-product-summary__price.is-updating [data-pfm-price-display]{opacity:.4}
.pfm-product-summary__configured-note{display:block;font-size:12px;color:var(--pfm-muted);font-weight:600;margin-top:4px}
.pfm-product-summary__configured-note[hidden]{display:none}

@media(max-width:980px){
  .pfm-glazing-picker{grid-template-columns:1fr 1fr}
  .pfm-mount-option__dot{width:32px;height:32px}
}



/* ============================================================
   Phase 5C hotfix — product page layout corrections.
   Addresses: empty whitespace beside gallery when no gallery
   images exist, crammed trust strip in narrow summary column,
   defensive layout overrides for any Woo default conflicts.
   ============================================================ */

/* Reset Woo default container behaviors on our custom wrapper */
.woocommerce div.product.pfm-product-page,
div.product.pfm-product-page {
  display: block !important;
  width: 100% !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 24px 0 0 !important;
}

.pfm-product-grid {
  display: grid !important;
  grid-template-columns: 1.05fr 1fr !important;
  gap: 42px !important;
  align-items: flex-start !important;
  width: 100% !important;
  max-width: 100% !important;
}

.pfm-product-gallery,
.pfm-product-summary {
  min-width: 0 !important;
  width: auto !important;
  float: none !important;
}

/* When only the featured image exists, collapse the thumb rail
   so the main image fills the entire gallery column. */
.pfm-product-gallery--single {
  grid-template-columns: 1fr !important;
}
.pfm-product-gallery--single .pfm-product-gallery__thumbs {
  display: none !important;
}

.pfm-product-gallery__main {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
}
.pfm-product-gallery__main img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Compact trust strip designed for narrow summary column.
   Replaces the old .pfm-product-trust feature-strip variant. */
.pfm-product-trust-compact {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin-top: 4px;
  padding: 16px 12px;
  background: #fff;
  border: 1px solid var(--pfm-line);
  border-radius: 12px;
}
.pfm-product-trust-compact div {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 0 4px;
  min-width: 0;
}
.pfm-product-trust-compact span {
  color: var(--pfm-teal-text);
  display: inline-grid;
  place-items: center;
  font-size: 22px;
}
.pfm-product-trust-compact .pfm-svg {
  width: 22px;
  height: 22px;
}
.pfm-product-trust-compact strong {
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--pfm-text);
}

/* Hide the legacy product-trust variant if it slips back in */
.pfm-product-trust.pfm-feature-strip { display: none !important; }

/* Tighten the frame colour mini chips in narrow column */
.pfm-product-section--colour .pfm-product-section__styles {
  gap: 8px !important;
  flex-wrap: wrap !important;
}
.pfm-product-section--colour .pfm-style-mini {
  width: 56px !important;
  height: 56px !important;
}

/* Mobile collapse */
@media(max-width:980px) {
  .pfm-product-trust-compact {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .pfm-product-trust-compact div:nth-child(5) {
    grid-column: 1 / -1;
  }
}



/* ============================================================
   Phase 5D — Product page design-04 alignment.
   - Pill-style size + moulding pickers (replaces Woo dropdowns)
   - Glazing cards with icons on top
   - Trust strip moved below gallery in left column
   - Flat About / Why / Perfect-For row (no box)
   - Sticky bottom Add-to-Basket bar
   ============================================================ */

/* Gallery column wraps gallery + trust strip */
.pfm-product-gallery-col {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
}

/* Trust strip below gallery — horizontal icon-then-text layout matching design 04 */
.pfm-product-trust-below {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  background: transparent;
  padding: 14px 0 0;
  border-top: 1px solid var(--pfm-line);
}
.pfm-product-trust-below > div {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  min-width: 0;
}
.pfm-product-trust-below > div > span {
  color: var(--pfm-teal-text);
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
}
.pfm-product-trust-below > div > span .pfm-svg {
  width: 22px;
  height: 22px;
}
.pfm-product-trust-below > div > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.pfm-product-trust-below strong {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--pfm-text);
}
.pfm-product-trust-below small {
  font-size: 11px;
  color: var(--pfm-muted);
  line-height: 1.3;
  margin-top: 2px;
}

/* Pill pickers (replace Woo dropdown look) */
.pfm-pills-host {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 4px;
}
.pfm-pill-group__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--pfm-muted);
  margin: 0 0 8px;
}
.pfm-pill-group__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.pfm-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  font-size: 13px;
  font-weight: 700;
  color: var(--pfm-text);
  background: #fff;
  border: 1px solid var(--pfm-line);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease, background .15s ease;
  white-space: nowrap;
}
a.pfm-pill {
  text-decoration: none;
}
.pfm-pill:hover {
  border-color: #c5d5d3;
  transform: translateY(-1px);
}
.pfm-pill.is-active {
  border-color: var(--pfm-teal);
  box-shadow: 0 0 0 1px var(--pfm-teal) inset;
  color: var(--pfm-teal-dark);
}
.pfm-pill[disabled],
.pfm-pill.is-disabled {
  opacity: .45;
  cursor: not-allowed;
}

/* Hide the underlying Woo variations table (still in the DOM, still submits) */
.pfm-product-section--size .pfm-product-section__woo-form table.variations {
  display: none !important;
}
/* The Woo variation availability/price strip also clutters — keep accessible but compact */
.pfm-product-section--size .woocommerce-variation {
  margin: 8px 0 0;
}
.pfm-product-section--size .woocommerce-variation-price,
.pfm-product-section--size .single_variation_wrap .woocommerce-variation-description {
  display: none !important; /* price shows in the summary already */
}

/* Glazing card — icon on top */
.pfm-glazing-picker .pfm-glazing-card {
  padding: 16px 10px 14px;
  min-height: 108px;
  gap: 6px;
  align-content: start;
  justify-items: center;
}
.pfm-glazing-card__icon {
  display: inline-grid;
  place-items: center;
  color: var(--pfm-teal-text);
  margin-bottom: 4px;
  width: 36px;
  height: 36px;
  border: 1px solid var(--pfm-line);
  border-radius: 8px;
  background: #fbfdfd;
}
.pfm-glazing-card.is-active .pfm-glazing-card__icon {
  color: var(--pfm-teal-dark);
  border-color: var(--pfm-teal);
  background: var(--pfm-mint);
}

/* Frame colour mini chips — bigger, framed look */
.pfm-product-section--colour .pfm-product-section__styles {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.pfm-product-section--colour .pfm-style-mini {
  width: 56px !important;
  height: 56px !important;
  border-radius: 8px !important;
  border: 1px solid var(--pfm-line);
}

/* Flatten About/Why/Perfect-For — no white box */
.pfm-product-extras.pfm-product-extras--flat {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 32px 0 28px;
  margin-bottom: 32px;
  border-top: 1px solid var(--pfm-line);
}
.pfm-product-extras--flat .pfm-product-extras__col h2 {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0;
  margin: 0 0 12px;
}

/* Sticky bottom CTA bar */
.pfm-sticky-cta {
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 60;
  background: transparent;
  padding: 0;
  margin: 32px -20px 0;
}
.pfm-sticky-cta__inner {
  background: var(--pfm-teal);
  color: #fff;
  border-radius: 10px;
  padding: 14px 22px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: center;
  box-shadow: 0 10px 30px rgba(0,185,151,.18);
}
.pfm-sticky-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: transparent;
  border: 0;
  color: #fff;
  font-weight: 900;
  font-size: 16px;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 0;
  width: 100%;
  min-height: 36px;
}
.pfm-sticky-cta__btn:hover { opacity: .94; }
.pfm-sticky-cta__icon {
  display: inline-grid;
  place-items: center;
  color: #fff;
}
.pfm-sticky-cta__sep {
  opacity: .8;
}
.pfm-sticky-cta__price {
  font-weight: 900;
}
.pfm-sticky-cta__sub {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  opacity: .92;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.pfm-sticky-cta__sub .pfm-svg {
  width: 14px;
  height: 14px;
  color: rgba(255,255,255,.85);
}
.pfm-sticky-cta__sub-sep {
  opacity: .55;
}

@media(max-width:980px) {
  .pfm-product-trust-below {
    grid-template-columns: 1fr 1fr;
    gap: 4px;
  }
  .pfm-product-trust-below > div:nth-child(5) {
    grid-column: 1 / -1;
  }
  .pfm-product-extras.pfm-product-extras--flat {
    padding: 24px 0;
  }
  .pfm-sticky-cta {
    margin: 24px -10px 0;
  }
  .pfm-sticky-cta__inner {
    border-radius: 8px;
    padding: 12px 16px 10px;
  }
  .pfm-sticky-cta__btn {
    font-size: 14px;
  }
}



/* ============================================================
   Phase 5E hotfix — design 04 parity polish.
   - Hide Woo's inline ADD TO CART + quantity (sticky bar IS the
     primary CTA on addon products).
   - Polish pills: bigger, with optional caption (e.g. "29.7 x 42cm").
   - Beef up sticky bottom bar (bigger text, more padding).
   - Constrain main image aspect so it stops eating the viewport.
   ============================================================ */

/* Hide the duplicate Woo add-to-cart UI on addon products.
   The sticky bottom CTA programmatically clicks this button on submit. */
.pfm-product-section--size .pfm-product-section__woo-form .quantity,
.pfm-product-section--size .pfm-product-section__woo-form button.single_add_to_cart_button,
.pfm-product-section--size .pfm-product-section__woo-form input.single_add_to_cart_button {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* Also hide the variations reset link clutter */
.pfm-product-section--size .reset_variations { display: none !important; }
/* And the .single_variation wrap area when empty */
.pfm-product-section--size .single_variation:empty,
.pfm-product-section--size .single_variation_wrap > .woocommerce-variation-add-to-cart {
  display: none !important;
}
/* The container that holds qty + button — keep block but visually compact */
.pfm-product-section--size .variations_button,
.pfm-product-section--size .variations_form .single_variation_wrap {
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

/* Pills with dimension caption */
.pfm-pill {
  min-height: 56px;
  padding: 8px 18px;
  flex-direction: column;
  gap: 2px;
  line-height: 1.15;
}
.pfm-pill--with-caption {
  min-width: 96px;
}
.pfm-pill__name {
  font-size: 14px;
  font-weight: 800;
}
.pfm-pill__caption {
  font-size: 11px;
  font-weight: 600;
  color: var(--pfm-muted);
}
.pfm-pill.is-active .pfm-pill__caption { color: var(--pfm-teal-dark); }

/* Constrain the gallery main image so it doesn't fill the whole viewport.
   Design 04 shows a portrait-ish frame at maybe 4:5 — but we'll cap by
   height instead of changing aspect so existing photos keep their fit. */
.pfm-product-gallery__main {
  max-height: 600px !important;
  aspect-ratio: auto !important;
  height: 540px !important;
}
@media(max-width:980px) {
  .pfm-product-gallery__main {
    height: auto !important;
    max-height: 460px !important;
  }
}

/* Sticky bar — bigger, more prominent (matches design 04 emphasis) */
.pfm-sticky-cta__inner {
  padding: 18px 26px 14px;
  gap: 8px;
}
.pfm-sticky-cta__btn {
  font-size: 18px;
  letter-spacing: .05em;
  gap: 14px;
  min-height: 44px;
}
.pfm-sticky-cta__btn[disabled] {
  opacity: .7;
  cursor: wait;
}
.pfm-sticky-cta__icon svg {
  width: 22px;
  height: 22px;
}
.pfm-sticky-cta__price {
  font-size: 18px;
  font-weight: 900;
}
.pfm-sticky-cta__sub {
  font-size: 12px;
}
.pfm-sticky-cta__sub .pfm-svg {
  width: 14px;
  height: 14px;
}

/* Ensure the sticky bar is wide enough to feel like a primary CTA */
.pfm-sticky-cta {
  margin-left: 0;
  margin-right: 0;
}

@media(max-width:980px) {
  .pfm-pill { min-height: 50px; padding: 6px 14px; }
  .pfm-pill__name { font-size: 13px; }
  .pfm-pill__caption { font-size: 10px; }
  .pfm-sticky-cta__btn { font-size: 15px; }
  .pfm-sticky-cta__price { font-size: 15px; }
}



/* ============================================================
   Phase 5F micro-polish.
   - Filled stars instead of hollow outlines.
   - Slightly shorter gallery (lets trust strip be visible in the
     first viewport on most desktops).
   - Tidy moulding pills (no caption → smaller).
   ============================================================ */

/* Filled stars */
.pfm-star.is-full svg {
  fill: currentColor !important;
}
.pfm-star.is-half svg {
  fill: currentColor !important;
  opacity: .55;
}
.pfm-star:not(.is-full):not(.is-half) svg {
  fill: none;
  opacity: .35;
}

/* Gallery height — tighter so the trust strip below shows in viewport */
.pfm-product-gallery__main {
  height: 460px !important;
  max-height: 460px !important;
}
@media(max-width:980px) {
  .pfm-product-gallery__main {
    height: 380px !important;
    max-height: 380px !important;
  }
}

/* Moulding pills (no caption) compact better */
.pfm-pill:not(.pfm-pill--with-caption) {
  min-height: 44px;
  padding: 0 18px;
  min-width: 0;
}
.pfm-pill:not(.pfm-pill--with-caption) .pfm-pill__name {
  font-size: 13px;
}



/* ============================================================
   Phase 5G — section header layout to match design 04
   - Header row: title + "Change" link (right)
   - Sublabel row below header (current selection text)
   - Larger mount swatches (40px)
   ============================================================ */

/* Hide the inline value (right-aligned label) when we have a sublabel below */
.pfm-product-section--with-sublabel .pfm-product-section__value {
  display: none !important;
}

.pfm-product-section__sublabel {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--pfm-text);
}

/* "Change" button styling — same as the link variant */
.pfm-product-section__change {
  background: transparent;
  border: 0;
  padding: 4px 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--pfm-teal-text);
  cursor: pointer;
  text-transform: none;
}
.pfm-product-section__change:hover { color: var(--pfm-teal-dark); }

/* Bigger mount swatches (closer to design proportions) */
.pfm-mount-option__dot {
  width: 40px !important;
  height: 40px !important;
}
.pfm-mount-picker {
  gap: 12px;
}

/* Slightly bigger glazing card icon to match design */
.pfm-glazing-card__icon {
  width: 40px;
  height: 40px;
  margin-bottom: 6px;
}
.pfm-glazing-card__icon svg {
  width: 22px;
  height: 22px;
}

/* Tighter section padding so things feel more compact (matches design) */
.pfm-product-section {
  padding: 16px 18px;
}



/* ============================================================
   Phase 5H — research-driven fixes:
   1. Product page is rendering OUTSIDE any container (block theme
      bypasses single-product.php override). Self-constrain.
   2. Gallery main was forced to 460px but the natural image is
      859px tall, so the bottom was being clipped. Remove the
      forced height; let aspect-ratio + object-fit decide.
   3. Sticky bar inherited the unconstrained grid width
      (1905px). Constrain to the page width.
   ============================================================ */

/* 1. Self-constrain the product page wrapper (NO main/container exists) */
body > .pfm-product-page,
.pfm-product-page.product {
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* 2. Gallery image — no forced height, let aspect-ratio handle it */
.pfm-product-gallery__main {
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
}
.pfm-product-gallery__main img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

/* 3. Sticky bar — stay inside the constrained page width */
.pfm-sticky-cta {
  position: sticky !important;
  bottom: 16px !important;
  left: auto !important;
  right: auto !important;
  z-index: 60 !important;
  margin: 32px 0 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
.pfm-sticky-cta__inner {
  max-width: 100% !important;
}

@media(max-width:1220px) {
  body > .pfm-product-page,
  .pfm-product-page.product {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}



/* ============================================================
   Phase 5H.2 — specificity fix.
   Earlier rule .woocommerce div.product.pfm-product-page set
   margin: 24px 0 0 !important; which beat the new 5H rule
   on specificity. Use matching specificity to override.
   ============================================================ */

.woocommerce div.product.pfm-product-page,
body.woocommerce div.product.pfm-product-page,
body div.product.pfm-product-page {
  max-width: 1180px !important;
  margin: 24px auto 0 !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

@media(max-width:1220px) {
  .woocommerce div.product.pfm-product-page,
  body.woocommerce div.product.pfm-product-page {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* Phase 5H.3 — leave room for the sticky bar at the bottom of the page */
.woocommerce div.product.pfm-product-page,
body.woocommerce div.product.pfm-product-page {
  padding-bottom: 140px !important;
}
@media(max-width:980px) {
  .woocommerce div.product.pfm-product-page,
  body.woocommerce div.product.pfm-product-page {
    padding-bottom: 120px !important;
  }
}

/* Phase 5I — compact trust strip (5 items in ~560px column) */
.pfm-product-trust-below {
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 4px !important;
  padding: 16px 0 0 !important;
}
.pfm-product-trust-below > div {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  gap: 6px !important;
  padding: 6px 4px !important;
}
.pfm-product-trust-below > div > span {
  flex: 0 0 auto;
}
.pfm-product-trust-below > div > div {
  align-items: center;
}
.pfm-product-trust-below strong {
  font-size: 11px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
.pfm-product-trust-below small {
  font-size: 10px !important;
  line-height: 1.25 !important;
  color: var(--pfm-muted);
}

/* Phase 5J — fix wait-cursor on disabled sticky button + compact bar height */
.pfm-sticky-cta__btn,
.pfm-sticky-cta__btn:hover,
.pfm-sticky-cta__btn[disabled],
.pfm-sticky-cta__btn.is-pending {
  cursor: default !important;
}
.pfm-sticky-cta__btn[disabled],
.pfm-sticky-cta__btn.is-pending {
  cursor: not-allowed !important;
}
.pfm-sticky-cta__btn:not([disabled]):not(.is-pending) {
  cursor: pointer !important;
}

/* Compact sticky bar (was 99px, target ~64px) */
.pfm-sticky-cta__inner {
  padding: 10px 22px 8px !important;
  gap: 4px !important;
}
.pfm-sticky-cta__btn {
  font-size: 16px !important;
  min-height: 32px !important;
  gap: 12px !important;
}
.pfm-sticky-cta__price {
  font-size: 16px !important;
}
.pfm-sticky-cta__sub {
  font-size: 11px !important;
  margin: 0 !important;
}
.pfm-sticky-cta__icon svg {
  width: 18px !important;
  height: 18px !important;
}

/* ============================================================
   Phase 5K — Typography alignment to theme spec.
   - Headings: Poppins. Body: Inter.
   - Body 15px, kicker 13px, buttons 13px.
   - Product title 42px desktop / 34px mobile (Standard page H1).
   - Feature strip bold 14px / small 12px.
   ============================================================ */

/* Defensive: ensure body font + base size everywhere on the product page */
body.pfm-theme,
body.pfm-theme .pfm-product-page,
body.pfm-theme .pfm-product-page * {
  font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
}
body.pfm-theme {
  font-size: 15px;
}

/* Headings use Poppins */
.pfm-product-summary__title,
.pfm-product-extras--flat .pfm-product-extras__col h2 {
  font-family: Poppins, Inter, sans-serif !important;
}

/* Product page H1 — 42px desktop, matches "Standard page H1" */
.pfm-product-summary__title {
  font-size: 42px !important;
  line-height: 1.06 !important;
  letter-spacing: -.025em !important;
  font-weight: 800 !important;
}

/* Kicker — 13px (small label / kicker) */
.pfm-product-summary__kicker {
  font-size: 13px !important;
  letter-spacing: .06em !important;
  font-weight: 800 !important;
}

/* Body / excerpt — 15px */
.pfm-product-summary__excerpt,
.pfm-product-summary__excerpt p,
.pfm-product-extras--flat .pfm-product-extras__about p,
.pfm-checklist li {
  font-size: 15px !important;
  line-height: 1.6 !important;
}

/* Price — keep prominent but cap to match heading scale (42px on H1) */
.pfm-product-summary__price,
.pfm-product-summary__price .woocommerce-Price-amount {
  font-size: 32px !important;
  font-weight: 800 !important;
  letter-spacing: -.02em !important;
}
.pfm-product-summary__lead-time { font-size: 13px !important; }

/* Section labels (button-sized 13px) */
.pfm-product-section__header h3 {
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: .06em !important;
}
.pfm-product-section__link,
.pfm-product-section__change {
  font-size: 13px !important;
  font-weight: 700 !important;
}
.pfm-product-section__sublabel {
  font-size: 14px !important;
  font-weight: 600 !important;
}

/* Pill labels — name 14px / dimension caption 12px */
.pfm-pill__name { font-size: 14px !important; }
.pfm-pill__caption { font-size: 12px !important; }

/* Glazing card text — strong 13px (button) / small 11-12px */
.pfm-glazing-picker .pfm-glazing-card strong { font-size: 13px !important; }
.pfm-glazing-picker .pfm-glazing-card small { font-size: 11px !important; }

/* Sticky bar — button text 13px (per "Buttons: 13px" spec) */
.pfm-sticky-cta__btn { font-size: 13px !important; }
.pfm-sticky-cta__price { font-size: 13px !important; }
.pfm-sticky-cta__sub { font-size: 12px !important; }

/* Feature strip (trust below gallery) */
.pfm-product-trust-below strong { font-size: 12px !important; }
.pfm-product-trust-below small { font-size: 11px !important; }

/* About / Why / Perfect-For section headings */
.pfm-product-extras--flat .pfm-product-extras__col h2 {
  font-size: 16px !important;
  font-weight: 800 !important;
}

/* Mobile: hero / page headings drop to 34px */
@media (max-width: 980px) {
  .pfm-product-summary__title {
    font-size: 34px !important;
  }
  .pfm-product-summary__price,
  .pfm-product-summary__price .woocommerce-Price-amount {
    font-size: 26px !important;
  }
}


/* ============================================================
   PHASE 5L — Design System Tokens (canonical, per theme spec)
   This block is the SOURCE OF TRUTH for fonts, colours, sizes,
   radii, shadows, container widths. All subsequent CSS should
   reference these tokens rather than hardcoded values.
   ============================================================ */
:root {
  /* Font families */
  --pfm-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --pfm-font-heading: "Poppins", "Inter", system-ui, sans-serif;

  /* Font size scale */
  --pfm-text-xs: 12px;
  --pfm-text-sm: 13px;
  --pfm-text-base: 15px;
  --pfm-text-md: 17px;
  --pfm-text-lg: 18px;
  --pfm-text-xl: 22px;
  --pfm-text-2xl: 30px;
  --pfm-text-3xl: 42px;
  --pfm-text-hero: 50px;

  /* Brand palette */
  --pfm-teal: #00B997;
  --pfm-teal-dark: #009B80;
  --pfm-teal-soft: #E9FBF7;

  /* Surfaces */
  --pfm-bg: #FBFDFC;
  --pfm-soft: #F6FBFA;
  --pfm-mint: #EAFBFA;
  --pfm-card: #FFFFFF;

  /* Text */
  --pfm-text: #151919;
  --pfm-heading: #101414;
  --pfm-muted: #657273;

  /* Lines */
  --pfm-line: #E2EEEE;

  /* Material */
  --pfm-wood: #D6A66B;
  --pfm-oak: #C99A63;
  --pfm-charcoal: #1A1A1A;

  /* Status */
  --pfm-success: #00B997;
  --pfm-warning: #D6A66B;
  --pfm-danger: #D9534F;

  /* Layout */
  --pfm-container: 1180px;
  --pfm-container-wide: 1280px;

  /* Radii */
  --pfm-radius: 18px;
  --pfm-radius-sm: 12px;

  /* Shadows */
  --pfm-shadow: 0 18px 60px rgba(30, 80, 70, 0.11);
  --pfm-shadow-soft: 0 12px 30px rgba(15, 70, 65, 0.05);
}

/* Global body */
body.pfm-theme {
  font-family: var(--pfm-font-body) !important;
  font-size: var(--pfm-text-base) !important;
  line-height: 1.6 !important;
  color: var(--pfm-text) !important;
  letter-spacing: 0.01em !important;
  background: linear-gradient(180deg, #F4FFFC 0, #FFFFFF 260px) !important;
}

/* All headings use Poppins */
body.pfm-theme h1,
body.pfm-theme h2,
body.pfm-theme h3,
body.pfm-theme h4,
body.pfm-theme h5,
body.pfm-theme h6 {
  font-family: var(--pfm-font-heading) !important;
  font-weight: 800;
  letter-spacing: -0.045em;
  color: var(--pfm-heading);
}

/* ============================================================
   PHASE 5L — Product Page applied to design tokens
   ============================================================ */

/* Product H1 — Standard page H1 scale (42px / 800 Poppins, tight letter-spacing) */
.pfm-product-summary__title {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-3xl) !important; /* 42px */
  font-weight: 800 !important;
  letter-spacing: -0.045em !important;
  line-height: 1.12 !important;
  color: var(--pfm-heading) !important;
  margin: 0 0 8px !important;
}

/* Kicker */
.pfm-product-summary__kicker {
  font-size: var(--pfm-text-sm) !important; /* 13px */
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  color: var(--pfm-teal-text) !important;
}

/* Excerpt / body / paragraph copy */
.pfm-product-summary__excerpt,
.pfm-product-summary__excerpt p {
  font-size: var(--pfm-text-base) !important; /* 15px */
  line-height: 1.6 !important;
  color: var(--pfm-text) !important;
}

/* Price — heading-sized but Inter (numbers) */
.pfm-product-summary__price,
.pfm-product-summary__price .woocommerce-Price-amount {
  font-family: var(--pfm-font-body) !important;
  font-size: 32px !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: var(--pfm-heading) !important;
}
.pfm-product-summary__lead-time {
  font-size: var(--pfm-text-sm) !important;
  color: var(--pfm-muted) !important;
}

/* Section labels (SIZE / MOUNT / GLAZING / FRAME COLOUR) — button scale 13px / 900 */
.pfm-product-section__header h3 {
  font-family: var(--pfm-font-body) !important;
  font-size: var(--pfm-text-sm) !important; /* 13px */
  font-weight: 900 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  color: var(--pfm-heading) !important;
}
.pfm-product-section__link,
.pfm-product-section__change {
  font-size: var(--pfm-text-sm) !important; /* 13px */
  font-weight: 700 !important;
  color: var(--pfm-teal-text) !important;
}
.pfm-product-section__sublabel {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--pfm-text) !important;
  margin: 0 0 12px !important;
}

/* Sections use token border + radius */
.pfm-product-section {
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius-sm) !important; /* 12px */
  background: var(--pfm-card) !important;
  padding: 18px 20px !important;
}

/* Pills — feature-strip scale */
.pfm-pill {
  font-family: var(--pfm-font-body) !important;
  border-radius: var(--pfm-radius-sm) !important;
  border: 1px solid var(--pfm-line) !important;
  background: var(--pfm-card) !important;
}
.pfm-pill__name {
  font-size: 14px !important;
  font-weight: 800 !important;
}
.pfm-pill__caption {
  font-size: var(--pfm-text-xs) !important; /* 12px */
  color: var(--pfm-muted) !important;
  font-weight: 600 !important;
}
.pfm-pill.is-active {
  border-color: var(--pfm-teal) !important;
  box-shadow: 0 0 0 1px var(--pfm-teal) inset !important;
  color: var(--pfm-teal-dark) !important;
}

/* Glazing card — strong = button scale, small = xs */
.pfm-glazing-picker .pfm-glazing-card strong {
  font-size: var(--pfm-text-sm) !important; /* 13px */
  font-weight: 800 !important;
}
.pfm-glazing-picker .pfm-glazing-card small {
  font-size: 11px !important;
  color: var(--pfm-muted) !important;
}
.pfm-glazing-card__icon {
  border: 1px solid var(--pfm-line) !important;
  background: var(--pfm-bg) !important;
  color: var(--pfm-teal-text) !important;
}
.pfm-glazing-card.is-active .pfm-glazing-card__icon {
  border-color: var(--pfm-teal) !important;
  background: var(--pfm-teal-soft) !important;
  color: var(--pfm-teal-dark) !important;
}

/* Sticky CTA — button scale per spec */
.pfm-sticky-cta__inner {
  background: var(--pfm-teal) !important;
  border-radius: var(--pfm-radius-sm) !important; /* 12px to be coherent with sections */
  box-shadow: 0 10px 35px rgba(0, 185, 151, 0.18) !important;
}
.pfm-sticky-cta__btn {
  font-family: var(--pfm-font-body) !important;
  font-size: var(--pfm-text-sm) !important; /* 13px per spec */
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.045em !important;
}
.pfm-sticky-cta__price {
  font-size: var(--pfm-text-sm) !important;
  font-weight: 900 !important;
}
.pfm-sticky-cta__sub {
  font-size: var(--pfm-text-xs) !important; /* 12px */
}

/* Trust strip below gallery — feature-strip scale */
.pfm-product-trust-below {
  border-top: 1px solid var(--pfm-line) !important;
}
.pfm-product-trust-below strong {
  font-size: var(--pfm-text-xs) !important; /* 12px */
  font-weight: 700 !important;
  color: var(--pfm-text) !important;
}
.pfm-product-trust-below small {
  font-size: 11px !important;
  color: var(--pfm-muted) !important;
}
.pfm-product-trust-below span {
  color: var(--pfm-teal-text) !important;
}

/* Stars — use teal token (was hardcoded #1bb795) */
.pfm-star.is-full .pfm-svg,
.pfm-star.is-half .pfm-svg {
  color: var(--pfm-teal-text) !important;
  fill: currentColor !important;
}
.pfm-product-summary__rating-num {
  font-weight: 700 !important;
  color: var(--pfm-text) !important;
}
.pfm-trustpilot-badge {
  color: #00B67A !important; /* Trustpilot brand green */
  font-weight: 700 !important;
}

/* Breadcrumb */
.pfm-breadcrumb {
  font-size: var(--pfm-text-sm) !important; /* 13px */
  color: var(--pfm-muted) !important;
}
.pfm-breadcrumb a:hover { color: var(--pfm-teal-text) !important; }
.pfm-breadcrumb [aria-current] { color: var(--pfm-text) !important; }

/* Extras (About / Why / Perfect-For) */
.pfm-product-extras--flat .pfm-product-extras__col h2 {
  font-family: var(--pfm-font-heading) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: var(--pfm-heading) !important;
}
.pfm-product-extras--flat .pfm-product-extras__about p,
.pfm-product-extras--flat .pfm-checklist li {
  font-size: var(--pfm-text-base) !important; /* 15px */
  line-height: 1.6 !important;
  color: var(--pfm-text) !important;
}
.pfm-checklist .pfm-svg { color: var(--pfm-teal-text) !important; }

/* Container — respect token in case anything still uses it */
.pfm-container {
  width: min(var(--pfm-container), calc(100% - 40px)) !important;
}

/* Product page wrapper uses --pfm-container token */
.woocommerce div.product.pfm-product-page,
body.woocommerce div.product.pfm-product-page,
body div.product.pfm-product-page {
  max-width: var(--pfm-container) !important;
}

/* ===== Mobile typography overrides ===== */
@media (max-width: 980px) {
  .pfm-product-summary__title { font-size: 34px !important; }
  .pfm-product-summary__price,
  .pfm-product-summary__price .woocommerce-Price-amount { font-size: 26px !important; }
  .pfm-product-summary__excerpt,
  .pfm-product-summary__excerpt p { font-size: var(--pfm-text-base) !important; }
}



/* ============================================================
   PHASE 6 — System-wide application of the canonical design
   tokens (defined in Phase 5L). Applies to:
   - Header + trust bar + nav
   - Homepage hero + sections + style cards + mount swatches
   - Buttons (primary + outline)
   - Frame Styles catalogue cards
   - WooCommerce archive / single / cart / checkout
   - Footer
   - Mobile breakpoints
   ============================================================ */

/* ---- HEADER + TRUST BAR ---- */
.pfm-trustbar {
  font-size: var(--pfm-text-sm) !important; /* 13px */
  color: var(--pfm-text) !important;
}
.pfm-site-header {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(14px) !important;
  border-bottom: 1px solid var(--pfm-line) !important;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.03) !important;
}
.pfm-header-inner {
  height: 72px !important;
  width: min(var(--pfm-container-wide), calc(100% - 40px)) !important;
  margin: auto !important;
  gap: 32px !important;
}
.pfm-logo {
  font-family: var(--pfm-font-body) !important;
  font-size: 25px !important;
  font-weight: 900 !important;
  letter-spacing: -0.045em !important;
  color: var(--pfm-heading) !important;
}
.pfm-logo-mark {
  width: 34px !important;
  height: 34px !important;
  border: 3px solid var(--pfm-teal) !important;
  border-right-color: transparent !important;
}
.pfm-nav a {
  font-family: var(--pfm-font-body) !important;
  font-size: var(--pfm-text-sm) !important; /* 13px */
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: var(--pfm-heading) !important;
}
.pfm-nav ul {
  gap: 34px !important;
}

/* ---- BUTTONS (canonical) ---- */
.pfm-btn,
a.pfm-btn,
button.pfm-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  min-width: 174px !important;
  padding: 0 28px !important;
  border-radius: 4px !important;
  border: 1px solid var(--pfm-teal) !important;
  background: var(--pfm-teal) !important;
  color: #FFFFFF !important;
  font-family: var(--pfm-font-body) !important;
  font-size: var(--pfm-text-sm) !important; /* 13px */
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.045em !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease !important;
}
.pfm-btn:hover {
  background: var(--pfm-teal-dark) !important;
  border-color: var(--pfm-teal-dark) !important;
  color: #FFFFFF !important;
}
.pfm-btn-outline,
a.pfm-btn-outline,
button.pfm-btn-outline {
  background: #FFFFFF !important;
  color: #111111 !important;
  border-color: #202626 !important;
}
.pfm-btn-outline:hover {
  background: #F8F8F8 !important;
  color: #111111 !important;
}

/* ---- HERO ---- */
.pfm-hero {
  width: min(var(--pfm-container-wide), calc(100% - 40px)) !important;
  margin: 42px auto 0 !important;
  min-height: 445px !important;
  grid-template-columns: 0.88fr 1.42fr !important;
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: 20px !important;
  box-shadow: var(--pfm-shadow) !important;
  overflow: hidden !important;
}
.pfm-hero-copy {
  padding: 74px 58px 60px !important;
}
.pfm-hero h1 {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-hero) !important; /* 50px */
  font-weight: 900 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.055em !important;
  color: var(--pfm-heading) !important;
  margin: 14px 0 22px !important;
}
.pfm-hero p {
  font-size: var(--pfm-text-md) !important; /* 17px */
  line-height: 1.65 !important;
  color: var(--pfm-text) !important;
  max-width: 450px !important;
}
.pfm-hero-media {
  min-height: 445px !important;
  background: var(--pfm-soft) !important;
  display: grid !important;
  place-items: center !important;
}
.pfm-hero-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}
.pfm-hero-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
  margin-top: 26px !important;
}

/* ---- KICKER (generic) ---- */
.pfm-kicker {
  font-size: var(--pfm-text-sm) !important; /* 13px */
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  color: var(--pfm-teal-text) !important;
}

/* ---- SECTION HEADS ---- */
.pfm-section h2,
.pfm-section-head h2,
.pfm-split h2 {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-2xl) !important; /* 30px */
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.035em !important;
  color: var(--pfm-heading) !important;
  margin: 0 !important;
}
.pfm-section { padding: 62px 0 !important; }
.pfm-section-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 26px !important;
}
.pfm-section-head a {
  font-size: var(--pfm-text-sm) !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  color: var(--pfm-teal-text) !important;
}

/* ---- PAGE H1 ---- */
.pfm-page h1,
.pfm-about-hero h1,
.pfm-contact-hero h1 {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-3xl) !important; /* 42px */
  line-height: 1.12 !important;
  font-weight: 800 !important;
  letter-spacing: -0.045em !important;
  color: var(--pfm-heading) !important;
}

/* ---- STYLE CARDS (homepage + frame-styles) ---- */
.pfm-style-grid {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 22px !important;
}
.pfm-style-card {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius-sm) !important; /* 12px */
  padding: 14px !important;
  transition: 0.2s ease !important;
  display: block !important;
  text-align: left !important;
  color: var(--pfm-text) !important;
}
.pfm-style-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--pfm-shadow) !important;
}
.pfm-style-card img {
  display: block !important;
  width: 100% !important;
  height: 132px !important;
  object-fit: cover !important;
  background: #F7FAF9 !important;
  border-radius: 8px !important;
  margin-bottom: 14px !important;
}
.pfm-style-card strong,
.pfm-style-card__title {
  font-size: var(--pfm-text-md) !important; /* 17px */
  font-weight: 800 !important;
  color: var(--pfm-heading) !important;
}
.pfm-style-card small,
.pfm-style-card__price {
  font-size: var(--pfm-text-xs) !important; /* 12px */
  color: var(--pfm-muted) !important;
}

/* ---- MOUNT COLOUR SECTION ---- */
.pfm-mounts {
  background: var(--pfm-mint) !important; /* #EAFBFA per spec */
  padding: 48px 0 !important;
}
.pfm-mount-grid {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr) !important;
  gap: 22px !important;
}
.pfm-mount-card img {
  width: 130px !important;
  height: 55px !important;
  object-fit: cover !important;
  border: 1px solid #DFE8E5 !important;
  border-radius: 4px !important;
  background: var(--pfm-card) !important;
}
.pfm-mount-card span {
  display: block !important;
  margin-top: 8px !important;
  font-size: var(--pfm-text-sm) !important; /* 13px */
}

/* ---- FEATURE STRIP ---- */
.pfm-feature-strip strong {
  font-size: 14px !important; /* feature strip bold */
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}
.pfm-feature-strip small {
  font-size: var(--pfm-text-xs) !important; /* 12px */
  color: var(--pfm-muted) !important;
}
.pfm-feature-strip span {
  color: var(--pfm-teal-text) !important;
}

/* ---- WOOCOMMERCE (archive + single + cart + checkout) ---- */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 28px !important;
}
.woocommerce ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: 14px !important;
  padding: 18px !important;
  box-shadow: none !important;
  transition: 0.2s ease !important;
}
.woocommerce ul.products li.product:hover {
  box-shadow: var(--pfm-shadow) !important;
  transform: translateY(-3px) !important;
}
.woocommerce ul.products li.product img {
  border-radius: 10px !important;
  background: #F7F7F7 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: var(--pfm-text-md) !important; /* 17px */
  font-weight: 800 !important;
  color: var(--pfm-heading) !important;
}

/* Default product div — but NOT when our custom .pfm-product-page wraps it (already styled) */
.woocommerce div.product:not(.pfm-product-page) {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 34px !important;
  margin: 34px 0 !important;
  box-shadow: var(--pfm-shadow) !important;
}
.woocommerce div.product:not(.pfm-product-page) .summary .price {
  color: var(--pfm-heading) !important;
  font-size: 28px !important;
  font-weight: 800 !important;
}

/* Woo buttons everywhere */
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--pfm-teal) !important;
  color: #FFFFFF !important;
  border-radius: 4px !important;
  text-transform: uppercase !important;
  font-weight: 900 !important;
  font-size: var(--pfm-text-sm) !important; /* 13px */
  letter-spacing: 0.045em !important;
  min-height: 46px !important;
  padding: 0 28px !important;
}
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover {
  background: var(--pfm-teal-dark) !important;
}

/* Cart / checkout / account cards */
.woocommerce-cart-form,
.cart-collaterals .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce-MyAccount-content,
.woocommerce-MyAccount-navigation {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 24px !important;
  box-shadow: var(--pfm-shadow) !important;
}
.woocommerce table.shop_table {
  border-color: var(--pfm-line) !important;
  border-radius: var(--pfm-radius-sm) !important;
}
.woocommerce-message,
.woocommerce-info {
  border-top-color: var(--pfm-teal) !important;
}
.woocommerce-message::before,
.woocommerce-info::before {
  color: var(--pfm-teal-text) !important;
}

/* ---- FOOTER ---- */
.pfm-footer {
  background: var(--pfm-card) !important;
  border-top: 1px solid var(--pfm-line) !important;
}
.pfm-footer a:hover { color: var(--pfm-teal-text) !important; }

/* ---- MOBILE ---- */
@media (max-width: 980px) {
  .pfm-container,
  .pfm-container-wide {
    width: min(100% - 28px, var(--pfm-container)) !important;
  }
  .pfm-section { padding: 38px 0 !important; }
  .pfm-trustbar {
    gap: 20px !important;
    overflow: auto !important;
    justify-content: flex-start !important;
    padding: 0 15px !important;
  }
  .pfm-nav { display: none !important; }
  .pfm-menu-toggle { display: block !important; }
  .pfm-header-inner { height: 68px !important; }
  .pfm-logo { font-size: 22px !important; }

  .pfm-hero {
    grid-template-columns: 1fr !important;
    margin-top: 18px !important;
    min-height: 0 !important;
  }
  .pfm-hero-copy { padding: 38px 24px !important; }
  .pfm-hero-media { min-height: 250px !important; }
  .pfm-hero h1 { font-size: 34px !important; line-height: 1.1 !important; }
  .pfm-hero p { font-size: var(--pfm-text-base) !important; /* 15px */ }
  .pfm-section h2,
  .pfm-section-head h2 { font-size: 24px !important; }

  .pfm-style-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .pfm-style-card img { height: 160px !important; }

  .pfm-mount-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .pfm-benefit-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .pfm-feature-strip,
  .pfm-builder-grid,
  .pfm-catalogue,
  .pfm-split,
  .pfm-about-hero,
  .pfm-contact-hero,
  .pfm-contact-form,
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
  .pfm-feature-strip {
    grid-template-columns: 1fr 1fr !important;
  }
}



/* ============================================================
   Phase 6.cart — Cart page layout (design 05).
   - "Your Basket" header + subtitle + free-delivery progress bar
   - 2-col grid: line items left, Order Summary card right
   - Custom line-item layout (image + meta + qty + price + remove)
   - Payment-method logos
   - Mid-page trust strip
   ============================================================ */

/* Container for the cart content area (no .pfm-container wrapper exists on cart, self-constrain like product page) */
body.woocommerce-cart {
  background: linear-gradient(180deg, #F4FFFC 0, #FFFFFF 260px) !important;
}
body.woocommerce-cart .entry-content,
body.woocommerce-cart main,
body.woocommerce-cart .wp-block-post-content {
  max-width: var(--pfm-container) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Cart header */
.pfm-cart-header {
  margin: 28px 0 20px;
}
.pfm-cart-header__title {
  font-family: var(--pfm-font-heading);
  font-size: var(--pfm-text-3xl); /* 42px */
  font-weight: 800;
  letter-spacing: -0.045em;
  color: var(--pfm-heading);
  margin: 0 0 8px;
  line-height: 1.12;
}
.pfm-cart-header__sub {
  margin: 0 0 22px;
  color: var(--pfm-muted);
  font-size: var(--pfm-text-base);
}

/* Free-delivery progress bar */
.pfm-cart-progress {
  background: var(--pfm-card);
  border: 1px solid var(--pfm-line);
  border-radius: var(--pfm-radius-sm);
  padding: 14px 18px;
  margin-bottom: 24px;
}
.pfm-cart-progress__row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.pfm-cart-progress__icon {
  color: var(--pfm-teal-text);
  display: inline-grid;
  place-items: center;
  background: var(--pfm-teal-soft);
  border-radius: 999px;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
}
.pfm-cart-progress__icon .pfm-svg { width: 16px; height: 16px; }
.pfm-cart-progress__msg {
  margin: 0;
  flex: 1;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-text);
}
.pfm-cart-progress__remaining {
  color: var(--pfm-muted);
  font-size: var(--pfm-text-sm);
  font-weight: 700;
  flex: 0 0 auto;
}
.pfm-cart-progress__bar {
  height: 6px;
  background: var(--pfm-line);
  border-radius: 999px;
  overflow: hidden;
}
.pfm-cart-progress__fill {
  height: 100%;
  background: var(--pfm-teal);
  transition: width 0.3s ease;
}
.pfm-cart-progress.is-complete .pfm-cart-progress__fill { background: var(--pfm-success); }

/* 2-column cart layout: items LEFT, totals RIGHT */
/* removed: grid was applied to wrong wrapper */
.woocommerce-cart .woocommerce-disabled-grid-marker { display: none; }
/* Cart messages / progress / header span both columns */
.woocommerce-cart .woocommerce .woocommerce-notices-wrapper,
.woocommerce-cart .pfm-cart-header,
.woocommerce-cart .pfm-cart-trust,
.woocommerce-cart .pfm-cart-tagline {
  grid-column: 1 / -1;
}

.woocommerce-cart .woocommerce-cart-form {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
}

/* Cart line-items table */
.woocommerce-cart table.shop_table {
  border: 0 !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
}
.woocommerce-cart table.shop_table thead {
  display: none; /* Design has no column headers */
}
.woocommerce-cart table.shop_table tr.cart_item {
  border-bottom: 1px solid var(--pfm-line);
}
.woocommerce-cart table.shop_table tr.cart_item:last-child {
  border-bottom: 0;
}
.woocommerce-cart table.shop_table td {
  border: 0 !important;
  padding: 22px !important;
  vertical-align: middle;
  background: transparent !important;
}
.woocommerce-cart table.shop_table td.product-thumbnail {
  width: 100px;
  padding-right: 0 !important;
}
.woocommerce-cart table.shop_table td.product-thumbnail img {
  width: 100px;
  height: 100px;
  border-radius: 8px;
  object-fit: cover;
  background: #F7F7F7;
  display: block;
}
.woocommerce-cart table.shop_table td.product-name {
  padding-left: 18px !important;
}
.woocommerce-cart table.shop_table td.product-name a {
  font-size: var(--pfm-text-md); /* 17px */
  font-weight: 800;
  color: var(--pfm-heading);
  text-decoration: none;
}
.woocommerce-cart .wc-item-meta,
.woocommerce-cart dl.variation {
  margin: 6px 0 0 !important;
  padding: 0 !important;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-muted);
}
.woocommerce-cart .wc-item-meta li,
.woocommerce-cart dl.variation dt,
.woocommerce-cart dl.variation dd {
  margin: 0 !important;
  padding: 0 !important;
  display: inline;
  font-weight: 500;
}
.woocommerce-cart .wc-item-meta li::after,
.woocommerce-cart dl.variation dd::after {
  content: "  ·  ";
  color: #cad4d2;
}
.woocommerce-cart .wc-item-meta li:last-child::after,
.woocommerce-cart dl.variation dd:last-child::after { content: ""; }
.woocommerce-cart dl.variation dt {
  font-weight: 600;
  color: var(--pfm-text);
}
.woocommerce-cart dl.variation dt::after { content: ": "; }

.woocommerce-cart .product-quantity .quantity input.qty {
  height: 40px;
  width: 70px;
  border: 1px solid var(--pfm-line);
  border-radius: 8px;
  padding: 0 10px;
  font-weight: 700;
  text-align: center;
}
.woocommerce-cart .product-subtotal {
  font-weight: 800;
  font-size: var(--pfm-text-md);
  color: var(--pfm-heading);
  text-align: right;
}
.woocommerce-cart .product-remove {
  text-align: right;
  width: 80px;
}
.woocommerce-cart .product-remove a.remove {
  font-size: 0; /* hide the × */
  width: auto !important;
  height: auto !important;
  position: relative;
  display: inline-block;
  background: transparent !important;
  color: var(--pfm-teal-text) !important;
}
.woocommerce-cart .product-remove a.remove::after {
  content: "Remove";
  font-size: var(--pfm-text-sm);
  font-weight: 700;
  color: var(--pfm-teal-text);
  text-decoration: underline;
}
.woocommerce-cart .product-remove a.remove:hover::after { color: var(--pfm-teal-dark); }

/* Coupon row + Update button bottom */
.woocommerce-cart table.shop_table .actions {
  padding: 16px 22px !important;
  background: var(--pfm-soft);
  border-top: 1px solid var(--pfm-line);
}
.woocommerce-cart .coupon { display: inline-flex; gap: 8px; align-items: center; }
.woocommerce-cart .coupon input[type="text"] {
  height: 42px;
  border: 1px solid var(--pfm-line);
  border-radius: 8px;
  padding: 0 12px;
  min-width: 180px;
}

/* Order Summary card (right column) */
.woocommerce-cart .cart-collaterals {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  position: sticky;
  top: 92px;
}
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 24px !important;
  box-shadow: var(--pfm-shadow) !important;
  width: 100% !important;
  float: none !important;
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--pfm-font-heading);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  color: var(--pfm-heading);
}
.woocommerce-cart .cart_totals table {
  border: 0 !important;
  border-collapse: collapse !important;
  width: 100%;
  margin: 0 0 12px;
  background: transparent !important;
}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
  border: 0 !important;
  padding: 10px 0 !important;
  background: transparent !important;
  font-size: var(--pfm-text-base);
}
.woocommerce-cart .cart_totals table .cart-subtotal th,
.woocommerce-cart .cart_totals table .shipping th { color: var(--pfm-muted); font-weight: 500; }
.woocommerce-cart .cart_totals table .order-total {
  border-top: 1px solid var(--pfm-line) !important;
  font-size: var(--pfm-text-md) !important;
  font-weight: 800;
}
.woocommerce-cart .cart_totals table .order-total th { padding-top: 14px !important; }
.woocommerce-cart .cart_totals table .order-total td { padding-top: 14px !important; }
.woocommerce-cart .cart_totals .order-total strong,
.woocommerce-cart .cart_totals .order-total .amount {
  font-size: 22px;
  font-weight: 900;
  color: var(--pfm-heading);
}
.woocommerce-cart .wc-proceed-to-checkout {
  padding: 16px 0 0 !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 54px;
  background: var(--pfm-teal) !important;
  color: #FFFFFF !important;
  border-radius: var(--pfm-radius-sm) !important;
  font-size: var(--pfm-text-sm) !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
  background: var(--pfm-teal-dark) !important;
}
.woocommerce-cart .cart_totals .includes_tax,
.woocommerce-cart .cart_totals small {
  font-size: 12px;
  color: var(--pfm-muted);
}

/* Payment logos */
.pfm-cart-payment-logos {
  text-align: center;
  margin-top: 18px;
}
.pfm-cart-payment-logos__label {
  margin: 0 0 8px;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-muted);
}
.pfm-cart-payment-logos__row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.pfm-pay-logo {
  display: inline-grid;
  place-items: center;
  min-width: 50px;
  height: 30px;
  padding: 0 10px;
  border: 1px solid var(--pfm-line);
  border-radius: 6px;
  background: #fff;
  font-size: 11px;
  font-weight: 800;
  color: var(--pfm-text);
}
.pfm-pay-logo--visa { color: #1A1F71; font-style: italic; }
.pfm-pay-logo--mc { color: #EB001B; }
.pfm-pay-logo--amex { color: #006FCF; }
.pfm-pay-logo--paypal { color: #003087; }
.pfm-pay-logo--apple { color: #000; }

/* Trust strip below cart */
.pfm-cart-trust {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  padding: 28px;
  background: var(--pfm-card);
  border: 1px solid var(--pfm-line);
  border-radius: var(--pfm-radius);
  margin: 32px 0 18px;
}
.pfm-cart-trust > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
}
.pfm-cart-trust span {
  color: var(--pfm-teal-text);
  font-size: 28px;
}
.pfm-cart-trust .pfm-svg { width: 28px; height: 28px; }
.pfm-cart-trust strong {
  font-size: var(--pfm-text-sm);
  font-weight: 800;
  color: var(--pfm-heading);
}
.pfm-cart-trust small {
  font-size: 12px;
  color: var(--pfm-muted);
  line-height: 1.4;
  max-width: 180px;
}

.pfm-cart-tagline {
  text-align: center;
  color: var(--pfm-muted);
  font-size: var(--pfm-text-base);
  margin: 0 0 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.pfm-cart-tagline::before {
  content: "";
  width: 14px;
  height: 14px;
  background: var(--pfm-teal);
  -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.6l-1-1a5.5 5.5 0 1 0-7.8 7.8l1 1L12 21l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8Z'/%3E%3C/svg%3E") no-repeat center/contain;
          mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.6l-1-1a5.5 5.5 0 1 0-7.8 7.8l1 1L12 21l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8Z'/%3E%3C/svg%3E") no-repeat center/contain;
}

@media (max-width: 980px) {
  /* removed: grid was applied to wrong wrapper */
.woocommerce-cart .woocommerce-disabled-grid-marker { display: none; }
  .woocommerce-cart .cart-collaterals { position: static; }
  .woocommerce-cart table.shop_table td { padding: 14px !important; }
  .woocommerce-cart table.shop_table td.product-thumbnail { width: 80px; }
  .woocommerce-cart table.shop_table td.product-thumbnail img { width: 80px; height: 80px; }
  .pfm-cart-trust { grid-template-columns: 1fr 1fr; padding: 20px; }
  .pfm-cart-header__title { font-size: 32px; }
}



/* ============================================================
   Phase 6.cart (revised) — Cart page styles for the EXISTING
   wrapper classes rendered by inc/woocommerce-layout.php.
   - .pfm-cart-page (outer main)
   - .pfm-page-intro (h1 + sub)
   - .pfm-delivery-bar (+ .pfm-delivery-bar-copy, .pfm-delivery-icon, .pfm-delivery-track)
   - .pfm-cart-layout (grid)
   - .pfm-cart-main (left)
   - .pfm-cart-sidebar (right)
   - .pfm-order-summary-card
   - .pfm-vat-note
   PLUS my additions (.pfm-cart-extras-*).
   ============================================================ */

/* Outer wrapper — already a main.pfm-main with .pfm-container inside */
.pfm-woo-page.pfm-cart-page {
  padding-bottom: 60px;
}

/* Page intro (Your Basket title) */
.pfm-cart-page .pfm-page-intro {
  margin: 28px 0 20px;
}
.pfm-cart-page .pfm-page-intro h1 {
  font-family: var(--pfm-font-heading);
  font-size: var(--pfm-text-3xl); /* 42px */
  font-weight: 800;
  letter-spacing: -0.045em;
  color: var(--pfm-heading);
  line-height: 1.12;
  margin: 0 0 8px;
}
.pfm-cart-page .pfm-page-intro p {
  margin: 0;
  color: var(--pfm-muted);
  font-size: var(--pfm-text-base);
}

/* Delivery bar */
.pfm-cart-page .pfm-delivery-bar {
  background: var(--pfm-card);
  border: 1px solid var(--pfm-line);
  border-radius: var(--pfm-radius-sm);
  padding: 14px 18px;
  margin: 0 0 24px;
}
.pfm-cart-page .pfm-delivery-bar-copy {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-text);
  margin-bottom: 10px;
}
.pfm-cart-page .pfm-delivery-icon {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  background: var(--pfm-teal-soft);
  border-radius: 999px;
  font-size: 16px;
  color: var(--pfm-teal-text);
  flex: 0 0 auto;
}
.pfm-cart-page .pfm-delivery-track {
  height: 6px;
  background: var(--pfm-line);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 6px;
}
.pfm-cart-page .pfm-delivery-track > span {
  display: block;
  height: 100%;
  background: var(--pfm-teal);
  transition: width 0.3s ease;
}
.pfm-cart-page .pfm-delivery-bar > small {
  display: block;
  text-align: right;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-muted);
  font-weight: 700;
}

/* 2-column cart layout */
.pfm-cart-page .pfm-cart-layout {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 28px;
  align-items: flex-start;
}

/* Left column: cart form */
.pfm-cart-page .pfm-cart-main {
  min-width: 0;
}
.pfm-cart-page .woocommerce-cart-form {
  background: var(--pfm-card);
  border: 1px solid var(--pfm-line);
  border-radius: var(--pfm-radius);
  padding: 0;
  box-shadow: none;
  overflow: hidden;
}
.pfm-cart-page table.shop_table {
  border: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
.pfm-cart-page table.shop_table thead { display: none; }
.pfm-cart-page table.shop_table tr.cart_item {
  border-bottom: 1px solid var(--pfm-line);
}
.pfm-cart-page table.shop_table tr.cart_item:last-of-type { border-bottom: 0; }
.pfm-cart-page table.shop_table td {
  border: 0 !important;
  padding: 22px !important;
  vertical-align: middle;
  background: transparent !important;
}
.pfm-cart-page td.product-thumbnail { width: 110px; padding-right: 0 !important; }
.pfm-cart-page td.product-thumbnail img {
  width: 100px; height: 100px;
  border-radius: 8px;
  object-fit: cover;
  background: #F7F7F7;
  display: block;
}
.pfm-cart-page td.product-name { padding-left: 18px !important; }
.pfm-cart-page td.product-name a {
  font-size: var(--pfm-text-md);
  font-weight: 800;
  color: var(--pfm-heading);
  text-decoration: none;
}
.pfm-cart-page .wc-item-meta,
.pfm-cart-page dl.variation {
  margin: 6px 0 0 !important;
  padding: 0 !important;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-muted);
}
.pfm-cart-page .wc-item-meta li,
.pfm-cart-page dl.variation dt,
.pfm-cart-page dl.variation dd {
  margin: 0 !important; padding: 0 !important;
  display: inline; font-weight: 500;
}
.pfm-cart-page dl.variation dt { font-weight: 600; color: var(--pfm-text); }
.pfm-cart-page dl.variation dt::after { content: ": "; }
.pfm-cart-page .wc-item-meta li::after,
.pfm-cart-page dl.variation dd::after { content: "  ·  "; color: #cad4d2; }
.pfm-cart-page .wc-item-meta li:last-child::after,
.pfm-cart-page dl.variation dd:last-child::after { content: ""; }

.pfm-cart-page .product-quantity .quantity input.qty {
  height: 40px; width: 70px;
  border: 1px solid var(--pfm-line);
  border-radius: 8px;
  padding: 0 10px;
  font-weight: 700; text-align: center;
}
.pfm-cart-page .product-subtotal {
  font-weight: 800;
  font-size: var(--pfm-text-md);
  color: var(--pfm-heading);
  text-align: right;
}
.pfm-cart-page .product-remove { text-align: right; width: 80px; }
.pfm-cart-page .product-remove a.remove {
  font-size: 0 !important;
  background: transparent !important;
  width: auto !important; height: auto !important;
  color: var(--pfm-teal-text) !important;
}
.pfm-cart-page .product-remove a.remove::after {
  content: "Remove";
  font-size: var(--pfm-text-sm);
  font-weight: 700;
  color: var(--pfm-teal-text);
  text-decoration: underline;
}
.pfm-cart-page .product-remove a.remove:hover::after { color: var(--pfm-teal-dark); }

.pfm-cart-page table.shop_table .actions {
  padding: 16px 22px !important;
  background: var(--pfm-soft);
  border-top: 1px solid var(--pfm-line);
}
.pfm-cart-page .coupon { display: inline-flex; gap: 8px; align-items: center; }
.pfm-cart-page .coupon input[type="text"] {
  height: 42px;
  border: 1px solid var(--pfm-line);
  border-radius: 8px;
  padding: 0 12px;
  min-width: 180px;
}

/* Right column: order summary card */
.pfm-cart-page .pfm-cart-sidebar {
  position: sticky;
  top: 92px;
  min-width: 0;
}
.pfm-cart-page .pfm-order-summary-card {
  background: var(--pfm-card);
  border: 1px solid var(--pfm-line);
  border-radius: var(--pfm-radius);
  padding: 24px;
  box-shadow: var(--pfm-shadow);
}
.pfm-cart-page .pfm-order-summary-card > h2 {
  font-family: var(--pfm-font-heading);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  color: var(--pfm-heading);
  display: block !important; /* override inc/woocommerce-layout.php's wp_head style that hides .cart_totals h2 inside pfm-cart-sidebar */
}

.pfm-cart-page .cart_totals {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.pfm-cart-page .cart_totals > h2 { display: none; }
.pfm-cart-page .cart_totals table {
  border: 0 !important;
  border-collapse: collapse !important;
  width: 100%;
  margin: 0 0 12px;
  background: transparent !important;
}
.pfm-cart-page .cart_totals table th,
.pfm-cart-page .cart_totals table td {
  border: 0 !important;
  padding: 10px 0 !important;
  background: transparent !important;
  font-size: var(--pfm-text-base);
}
.pfm-cart-page .cart_totals .cart-subtotal th,
.pfm-cart-page .cart_totals .shipping th {
  color: var(--pfm-muted); font-weight: 500;
}
.pfm-cart-page .cart_totals .order-total {
  border-top: 1px solid var(--pfm-line) !important;
}
.pfm-cart-page .cart_totals .order-total th,
.pfm-cart-page .cart_totals .order-total td { padding-top: 14px !important; }
.pfm-cart-page .cart_totals .order-total strong,
.pfm-cart-page .cart_totals .order-total .amount {
  font-size: 22px;
  font-weight: 900;
  color: var(--pfm-heading);
}
.pfm-cart-page .wc-proceed-to-checkout {
  padding: 16px 0 0 !important;
  margin: 0 !important;
}
.pfm-cart-page .wc-proceed-to-checkout .checkout-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 54px;
  background: var(--pfm-teal) !important;
  color: #FFFFFF !important;
  border-radius: var(--pfm-radius-sm) !important;
  font-size: var(--pfm-text-sm) !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}
.pfm-cart-page .wc-proceed-to-checkout .checkout-button:hover {
  background: var(--pfm-teal-dark) !important;
}
.pfm-cart-page .pfm-vat-note {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--pfm-muted);
  text-align: center;
}

/* Payment logos */
.pfm-cart-extras-payment {
  text-align: center;
  margin-top: 18px;
}
.pfm-cart-extras-payment__label {
  margin: 0 0 8px;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-muted);
}
.pfm-cart-extras-payment__row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.pfm-pay-logo {
  display: inline-grid;
  place-items: center;
  min-width: 50px;
  height: 30px;
  padding: 0 10px;
  border: 1px solid var(--pfm-line);
  border-radius: 6px;
  background: #fff;
  font-size: 11px;
  font-weight: 800;
  color: var(--pfm-text);
}
.pfm-pay-logo--visa { color: #1A1F71; font-style: italic; }
.pfm-pay-logo--mc { color: #EB001B; }
.pfm-pay-logo--amex { color: #006FCF; }
.pfm-pay-logo--paypal { color: #003087; }
.pfm-pay-logo--apple { color: #000; }

/* Bottom trust strip */
.pfm-cart-extras-trust {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  padding: 28px;
  background: var(--pfm-card);
  border: 1px solid var(--pfm-line);
  border-radius: var(--pfm-radius);
  margin: 32px 0 18px;
}
.pfm-cart-extras-trust > div {
  display: flex; flex-direction: column;
  align-items: center; text-align: center; gap: 6px;
}
.pfm-cart-extras-trust span { color: var(--pfm-teal-text); }
.pfm-cart-extras-trust .pfm-svg { width: 26px; height: 26px; }
.pfm-cart-extras-trust strong {
  font-size: var(--pfm-text-sm);
  font-weight: 800;
  color: var(--pfm-heading);
}
.pfm-cart-extras-trust small {
  font-size: 12px;
  color: var(--pfm-muted);
  line-height: 1.4;
  max-width: 180px;
}

/* Tagline */
.pfm-cart-extras-tagline {
  text-align: center;
  color: var(--pfm-muted);
  font-size: var(--pfm-text-base);
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.pfm-cart-extras-tagline .pfm-svg {
  color: var(--pfm-teal-text);
  width: 16px; height: 16px;
}

/* Empty cart polish */
.pfm-cart-page .cart-empty {
  background: var(--pfm-card);
  border: 1px solid var(--pfm-line);
  border-radius: var(--pfm-radius);
  padding: 38px;
  text-align: center;
  font-size: var(--pfm-text-md);
  color: var(--pfm-muted);
}
.pfm-cart-page .return-to-shop a {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 46px; min-width: 174px; padding: 0 28px;
  border-radius: 4px;
  background: var(--pfm-teal);
  color: #FFFFFF !important;
  font-size: var(--pfm-text-sm);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.045em;
  margin-top: 18px;
  text-decoration: none;
}

@media (max-width: 980px) {
  .pfm-cart-page .pfm-cart-layout { grid-template-columns: 1fr; gap: 18px; }
  .pfm-cart-page .pfm-cart-sidebar { position: static; }
  .pfm-cart-page table.shop_table td { padding: 14px !important; }
  .pfm-cart-page td.product-thumbnail { width: 84px; }
  .pfm-cart-page td.product-thumbnail img { width: 76px; height: 76px; }
  .pfm-cart-page .pfm-page-intro h1 { font-size: 32px; }
  .pfm-cart-extras-trust { grid-template-columns: 1fr 1fr; padding: 20px; }
}


/* Phase 6.cart hot fixes:
   - Hide the auto WP "Cart" page title (theme renders its own h1 via .pfm-page-intro)
   - Improve delivery bar layout (icon left, message, remaining right-aligned)
*/
body.woocommerce-cart .entry-title,
body.woocommerce-cart .wp-block-post-title,
body.page-id-8 > .entry-title,
body.page-id-8 .wp-block-post-title {
  display: none !important;
}

/* Delivery bar tweaks — icon | message | small-right */
.pfm-cart-page .pfm-delivery-bar { padding: 16px 20px !important; }
.pfm-cart-page .pfm-delivery-bar-copy { gap: 14px; align-items: center; margin-bottom: 8px; }
.pfm-cart-page .pfm-delivery-bar-copy strong { flex: 1; font-weight: 600; }
.pfm-cart-page .pfm-delivery-bar-copy strong .woocommerce-Price-amount { font-weight: 800; color: var(--pfm-heading); }
.pfm-cart-page .pfm-delivery-bar > small {
  display: block;
  text-align: right;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-muted);
  font-weight: 700;
  margin-top: 4px;
}
.pfm-cart-page .pfm-delivery-bar > small .woocommerce-Price-amount { color: var(--pfm-text); }

/* Phase 6.cart fix-2: break out of WP block-template's narrow container.
   The block theme wraps page content at ~600px; we need full width for the cart layout. */
body.woocommerce-cart .wp-block-post-content,
body.woocommerce-cart .entry-content,
body.woocommerce-cart .wp-block-group,
body.woocommerce-checkout .wp-block-post-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .wp-block-post-content,
body.woocommerce-account .entry-content {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.woocommerce-cart main.pfm-cart-page,
body.woocommerce-checkout main.pfm-checkout-page,
body.woocommerce-account main.pfm-account-page,
body.woocommerce main.pfm-thankyou-page {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Hide the WP auto page title on cart/checkout/account (we render our own .pfm-page-intro h1) */
body.woocommerce-cart > .wp-site-blocks > header + main h1:first-child:not(.pfm-page-intro h1),
body.woocommerce-cart .wp-block-post-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .wp-block-post-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .wp-block-post-title,
body.woocommerce-account .entry-title { display: none !important; }

/* Last-resort: hide any h1 outside .pfm-page-intro on cart page */
body.woocommerce-cart h1 { display: none; }
body.woocommerce-cart .pfm-page-intro h1,
body.woocommerce-cart .pfm-cart-extras-trust h1,
body.woocommerce-cart .cart_totals h2,
body.woocommerce-cart .pfm-order-summary-card > h2 { display: block !important; }

/* Phase 6.cart fix-3: column widths, remove double colons, hide cart_totals h2 */

/* Set cart table columns to reasonable widths */
.pfm-cart-page table.shop_table { table-layout: fixed; width: 100%; }
.pfm-cart-page table.shop_table .product-remove { width: 70px !important; }
.pfm-cart-page table.shop_table .product-thumbnail { width: 110px !important; }
.pfm-cart-page table.shop_table .product-name { width: auto !important; min-width: 0; }
.pfm-cart-page table.shop_table .product-price { width: 90px !important; }
.pfm-cart-page table.shop_table .product-quantity { width: 100px !important; }
.pfm-cart-page table.shop_table .product-subtotal { width: 90px !important; }

/* Product name wraps normally (not per-character) */
.pfm-cart-page td.product-name a {
  word-break: normal !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
  hyphens: none !important;
  line-height: 1.3;
}

/* Remove the duplicate colon I was adding (wc-item-meta + variation tables already include ":") */
.pfm-cart-page dl.variation dt::after { content: "" !important; }

/* Variation label cleaner */
.pfm-cart-page dl.variation { display: block !important; }
.pfm-cart-page dl.variation dt {
  display: inline !important;
  font-weight: 600 !important;
  color: var(--pfm-text) !important;
  margin-right: 4px !important;
}
.pfm-cart-page dl.variation dd {
  display: inline !important;
  font-weight: 500 !important;
  color: var(--pfm-muted) !important;
  margin-right: 10px !important;
}
.pfm-cart-page dl.variation dd::after { content: "" !important; }

/* Hide the inner "Cart totals" h2 (we have our own "Order Summary" h2 outside it) */
.pfm-cart-page .pfm-order-summary-card .cart_totals > h2,
.pfm-cart-page .cart_totals > h2 {
  display: none !important;
}
/* Make sure our Order Summary h2 is shown */
.pfm-cart-page .pfm-order-summary-card > h2 { display: block !important; }

/* Phase 6.cart fix-4: row layout polish
   - Wider items column (give name room to breathe)
   - Remove fixed table-layout so cells size to content
   - Compact qty/price columns
*/

/* Cart grid: more space for items, narrower sidebar */
.pfm-cart-page .pfm-cart-layout {
  grid-template-columns: 2fr 1fr !important;
  gap: 24px !important;
}

/* Auto table layout so the name column expands */
.pfm-cart-page table.shop_table {
  table-layout: auto !important;
}
.pfm-cart-page table.shop_table .product-remove,
.pfm-cart-page table.shop_table .product-thumbnail,
.pfm-cart-page table.shop_table .product-name,
.pfm-cart-page table.shop_table .product-price,
.pfm-cart-page table.shop_table .product-quantity,
.pfm-cart-page table.shop_table .product-subtotal {
  width: auto !important;
}

/* Compact: shrink thumbnail + qty so the name has room */
.pfm-cart-page td.product-thumbnail { padding: 16px !important; }
.pfm-cart-page td.product-thumbnail img { width: 80px !important; height: 80px !important; }
.pfm-cart-page td.product-name { padding: 16px 12px !important; }
.pfm-cart-page td.product-price,
.pfm-cart-page td.product-quantity,
.pfm-cart-page td.product-subtotal {
  padding: 16px 8px !important;
  white-space: nowrap;
  text-align: center;
}
.pfm-cart-page td.product-quantity .quantity input.qty {
  width: 56px !important;
  height: 36px !important;
}
.pfm-cart-page td.product-remove {
  padding: 16px 6px !important;
  text-align: center;
}
.pfm-cart-page td.product-name a {
  font-size: var(--pfm-text-base) !important;
  font-weight: 800 !important;
}

/* Phase 6.cart fix-5: kill the outer .pfm-page card on cart/checkout/account.
   The page-level white card with 42px padding was eating ~120px of width and
   creating a nested-card feel. These pages have their OWN cards inside. */
body.woocommerce-cart article.pfm-page,
body.woocommerce-checkout article.pfm-page,
body.woocommerce-account article.pfm-page,
body.page-id-8 article.pfm-page,
body.page-id-7 article.pfm-page {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Also remove the inner main padding so content uses full width */
body.woocommerce-cart main.pfm-cart-page,
body.woocommerce-checkout main.pfm-checkout-page,
body.woocommerce-account main.pfm-account-page {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Use the WIDER 1280px container on cart for more breathing room */
body.woocommerce-cart .pfm-content.pfm-container {
  max-width: var(--pfm-container-wide) !important;
  width: min(var(--pfm-container-wide), calc(100% - 40px)) !important;
}


/* ============================================================
   Phase 7 — Checkout page (design 06).
   Uses existing inc/woocommerce-layout.php wrappers:
     .pfm-checkout-page, .pfm-page-intro, .pfm-checkout-steps, .pfm-checkout-layout
   Layout: 2-col grid with WC's form.checkout split into customer-details (left)
   and order-review (right) via CSS Grid.
   ============================================================ */

/* --- Outer wrapper (kill the white outer card like we did for cart) --- */
body.woocommerce-checkout article.pfm-page,
body.page-id-9 article.pfm-page {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.woocommerce-checkout .pfm-content.pfm-container {
  max-width: var(--pfm-container-wide) !important;
  width: min(var(--pfm-container-wide), calc(100% - 40px)) !important;
}
body.woocommerce-checkout main.pfm-checkout-page {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: none !important;
  width: 100% !important;
}
/* Hide WP auto page title */
body.woocommerce-checkout > .wp-site-blocks h1:first-child:not(.pfm-page-intro h1),
body.woocommerce-checkout .wp-block-post-title,
body.woocommerce-checkout .entry-title { display: none !important; }
body.woocommerce-checkout h1 { display: none; }
body.woocommerce-checkout .pfm-page-intro h1 { display: block !important; }

/* Page intro */
.pfm-checkout-page .pfm-page-intro {
  text-align: center;
  margin: 28px 0 24px;
}
.pfm-checkout-page .pfm-page-intro h1 {
  font-family: var(--pfm-font-heading);
  font-size: var(--pfm-text-3xl);
  font-weight: 800;
  letter-spacing: -0.045em;
  color: var(--pfm-heading);
  margin: 0;
}

/* --- 3-step progress indicator --- */
.pfm-checkout-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 0 0 32px;
  position: relative;
}
.pfm-checkout-steps span {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  font-size: var(--pfm-text-sm);
  font-weight: 700;
  color: var(--pfm-muted);
  padding: 0 12px;
}
.pfm-checkout-steps span small {
  font-size: 12px;
  font-weight: 500;
  margin-top: 2px;
}
.pfm-checkout-steps span strong {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--pfm-line);
  color: var(--pfm-muted);
  font-weight: 800;
  margin-bottom: 8px;
  position: relative;
  z-index: 2;
}
.pfm-checkout-steps span.active {
  color: var(--pfm-heading);
}
.pfm-checkout-steps span.active strong {
  background: var(--pfm-teal);
  color: #fff;
  border-color: var(--pfm-teal);
  box-shadow: 0 0 0 4px var(--pfm-teal-soft);
}
/* Connecting lines between steps */
.pfm-checkout-steps span:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 18px;
  left: calc(50% + 24px);
  right: calc(-50% + 24px);
  height: 2px;
  background: var(--pfm-line);
  z-index: 1;
}

/* --- 2-col checkout layout --- */
.pfm-checkout-page .pfm-checkout-layout {
  /* Container only — actual grid is on form.checkout below */
  display: block;
}
.pfm-checkout-page form.checkout,
.pfm-checkout-page form.woocommerce-checkout {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 28px;
  align-items: flex-start;
}
.pfm-checkout-page #customer_details {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.pfm-checkout-page #order_review_heading {
  display: none; /* design uses "Order Summary" inside the card */
}
.pfm-checkout-page #order_review {
  grid-column: 2;
  position: sticky;
  top: 92px;
}
.pfm-checkout-page .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}

/* --- Section cards (Delivery / Payment / Order Summary) --- */
.pfm-checkout-page .woocommerce-billing-fields,
.pfm-checkout-page .woocommerce-shipping-fields,
.pfm-checkout-page .woocommerce-additional-fields,
.pfm-checkout-page #order_review {
  background: var(--pfm-card);
  border: 1px solid var(--pfm-line);
  border-radius: var(--pfm-radius);
  padding: 24px;
  box-shadow: var(--pfm-shadow-soft);
}
.pfm-checkout-page #order_review {
  box-shadow: var(--pfm-shadow);
}

/* Section headings */
.pfm-checkout-page .woocommerce-billing-fields h3,
.pfm-checkout-page .woocommerce-shipping-fields h3,
.pfm-checkout-page .woocommerce-additional-fields h3 {
  font-family: var(--pfm-font-body);
  font-size: var(--pfm-text-sm);
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pfm-heading);
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--pfm-line);
  display: flex;
  align-items: center;
  gap: 10px;
}
.pfm-checkout-page .woocommerce-billing-fields h3::before {
  content: "1.";
  color: var(--pfm-muted);
  font-weight: 700;
}
.pfm-checkout-page .woocommerce-shipping-fields h3::before {
  content: "2.";
  color: var(--pfm-muted);
  font-weight: 700;
}

/* Form fields */
.pfm-checkout-page .form-row {
  margin: 0 0 16px;
  padding: 0;
}
.pfm-checkout-page .form-row label {
  display: block;
  font-size: var(--pfm-text-sm);
  font-weight: 600;
  color: var(--pfm-text);
  margin-bottom: 6px;
}
.pfm-checkout-page .form-row label .required,
.pfm-checkout-page .form-row label .optional {
  color: var(--pfm-muted);
  font-weight: 500;
  margin-left: 4px;
}
.pfm-checkout-page .form-row input.input-text,
.pfm-checkout-page .form-row textarea,
.pfm-checkout-page .form-row select,
.pfm-checkout-page .select2-selection {
  width: 100% !important;
  height: 46px;
  border: 1px solid var(--pfm-line) !important;
  border-radius: 8px !important;
  padding: 0 14px !important;
  font-family: var(--pfm-font-body);
  font-size: var(--pfm-text-base);
  color: var(--pfm-text);
  background: #fff !important;
  box-shadow: none !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pfm-checkout-page .form-row input.input-text:focus,
.pfm-checkout-page .form-row textarea:focus,
.pfm-checkout-page .form-row select:focus {
  border-color: var(--pfm-teal) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 3px var(--pfm-teal-soft) !important;
}
.pfm-checkout-page .form-row textarea {
  height: auto !important;
  min-height: 100px;
  padding: 12px 14px !important;
  resize: vertical;
}
.pfm-checkout-page .select2-selection__rendered {
  line-height: 44px !important;
  padding-left: 0 !important;
}
.pfm-checkout-page .select2-selection__arrow {
  height: 44px !important;
}

/* Pair fields side-by-side (Title | First name | Last name and Town | County) */
.pfm-checkout-page .woocommerce-billing-fields__field-wrapper,
.pfm-checkout-page .woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
.pfm-checkout-page .form-row.form-row-wide { grid-column: 1 / -1; }
.pfm-checkout-page .form-row.form-row-first { grid-column: 1 / 4; }
.pfm-checkout-page .form-row.form-row-last { grid-column: 4 / 7; }
.pfm-checkout-page #billing_title_field { grid-column: 1 / 2; }
.pfm-checkout-page #billing_first_name_field { grid-column: 2 / 4; }
.pfm-checkout-page #billing_last_name_field { grid-column: 4 / 7; }

/* Checkbox: ship to different address */
.pfm-checkout-page .woocommerce-account-fields,
.pfm-checkout-page .woocommerce-shipping-fields > h3.shipping_address_heading {
  margin-top: 16px;
}
.pfm-checkout-page .woocommerce-account-fields label,
.pfm-checkout-page .form-row.create-account label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: var(--pfm-text-sm);
}

/* --- Order Review (right column) --- */
.pfm-checkout-page #order_review {
  padding: 0; /* Inner sections each have their own padding */
}
.pfm-checkout-page #order_review > * {
  padding: 20px 24px;
}
.pfm-checkout-page table.woocommerce-checkout-review-order-table {
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  width: 100%;
  padding: 0;
}
.pfm-checkout-page table.woocommerce-checkout-review-order-table th,
.pfm-checkout-page table.woocommerce-checkout-review-order-table td {
  border: 0 !important;
  background: transparent !important;
  padding: 8px 0 !important;
  font-size: var(--pfm-text-base);
}
.pfm-checkout-page .woocommerce-checkout-review-order-table thead {
  border-bottom: 1px solid var(--pfm-line);
}
.pfm-checkout-page .woocommerce-checkout-review-order-table thead th {
  font-size: var(--pfm-text-sm);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--pfm-heading);
  padding: 12px 0 !important;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table tbody tr.cart_item {
  border-bottom: 1px dashed var(--pfm-line);
}
.pfm-checkout-page .woocommerce-checkout-review-order-table tbody tr:last-child {
  border-bottom: 0;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table .product-name {
  color: var(--pfm-heading);
  font-weight: 700;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table .wc-item-meta,
.pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation {
  margin: 4px 0 0 !important;
  font-size: 12px;
  color: var(--pfm-muted);
}
.pfm-checkout-page .woocommerce-checkout-review-order-table .product-total {
  text-align: right;
  font-weight: 700;
  color: var(--pfm-heading);
  white-space: nowrap;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table tfoot {
  border-top: 1px solid var(--pfm-line);
}
.pfm-checkout-page .woocommerce-checkout-review-order-table tfoot th,
.pfm-checkout-page .woocommerce-checkout-review-order-table tfoot td {
  padding: 10px 0 !important;
  font-size: var(--pfm-text-base);
}
.pfm-checkout-page .woocommerce-checkout-review-order-table .order-total {
  font-size: var(--pfm-text-md) !important;
  font-weight: 800;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table .order-total strong,
.pfm-checkout-page .woocommerce-checkout-review-order-table .order-total .amount {
  font-size: 22px;
  font-weight: 900;
  color: var(--pfm-heading);
}

/* Payment methods */
.pfm-checkout-page #payment {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 20px 24px !important;
  border-top: 1px solid var(--pfm-line);
}
.pfm-checkout-page #payment ul.payment_methods {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: transparent !important;
  border-bottom: 0 !important;
}
.pfm-checkout-page #payment ul.payment_methods li {
  background: #fff;
  border: 1px solid var(--pfm-line);
  border-radius: 10px;
  margin: 0 0 10px !important;
  padding: 14px 16px !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pfm-checkout-page #payment ul.payment_methods li.wc_payment_method input[type="radio"]:checked + label {
  color: var(--pfm-teal-dark);
}
.pfm-checkout-page #payment ul.payment_methods li:has(input[type="radio"]:checked) {
  border-color: var(--pfm-teal);
  box-shadow: 0 0 0 1px var(--pfm-teal);
}
.pfm-checkout-page #payment ul.payment_methods label {
  font-weight: 700;
  font-size: var(--pfm-text-base);
  color: var(--pfm-text);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.pfm-checkout-page #payment ul.payment_methods label img {
  max-height: 24px;
  width: auto;
}
.pfm-checkout-page #payment .payment_box {
  margin: 12px 0 0 !important;
  padding: 14px !important;
  background: var(--pfm-soft) !important;
  border-radius: 8px !important;
  font-size: var(--pfm-text-sm);
  color: var(--pfm-muted);
}
.pfm-checkout-page #payment .payment_box::before {
  display: none !important;
}

/* Place order button */
.pfm-checkout-page #place_order {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 54px;
  background: var(--pfm-teal) !important;
  color: #FFFFFF !important;
  border-radius: var(--pfm-radius-sm) !important;
  font-family: var(--pfm-font-body);
  font-size: var(--pfm-text-sm) !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  border: 0 !important;
  cursor: pointer;
  margin: 14px 0 0 !important;
}
.pfm-checkout-page #place_order:hover { background: var(--pfm-teal-dark) !important; }
.pfm-checkout-page .woocommerce-terms-and-conditions-wrapper {
  margin: 12px 0 0;
  font-size: 12px;
  color: var(--pfm-muted);
}

/* Mobile */
@media (max-width: 980px) {
  .pfm-checkout-page form.checkout,
  .pfm-checkout-page form.woocommerce-checkout {
    grid-template-columns: 1fr !important;
  }
  .pfm-checkout-page #order_review { position: static; }
  .pfm-checkout-page .woocommerce-billing-fields__field-wrapper,
  .pfm-checkout-page .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: 1fr 1fr !important;
  }
  .pfm-checkout-page .form-row.form-row-first,
  .pfm-checkout-page .form-row.form-row-last,
  .pfm-checkout-page #billing_title_field,
  .pfm-checkout-page #billing_first_name_field,
  .pfm-checkout-page #billing_last_name_field {
    grid-column: 1 / -1 !important;
  }
  .pfm-checkout-steps span { font-size: 11px; }
  .pfm-checkout-steps span small { display: none; }
  .pfm-checkout-page .pfm-page-intro h1 { font-size: 28px; }
}


/* Phase 7.checkout fix-2: kill WC default col2-set 2-col flex + nested cards */

/* Override #customer_details (col2-set) — make it block, full width */
.pfm-checkout-page #customer_details,
.pfm-checkout-page #customer_details.col2-set {
  display: block !important;
  width: 100% !important;
  float: none !important;
}

/* The single outer card is #customer_details */
.pfm-checkout-page #customer_details {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 24px !important;
  box-shadow: var(--pfm-shadow-soft) !important;
}

/* Children NOT cards — let them flow inside #customer_details */
.pfm-checkout-page .woocommerce-billing-fields,
.pfm-checkout-page .woocommerce-shipping-fields,
.pfm-checkout-page .woocommerce-additional-fields {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  width: 100% !important;
  float: none !important;
  clear: both;
  margin-bottom: 24px;
}
.pfm-checkout-page .woocommerce-billing-fields:last-child,
.pfm-checkout-page .woocommerce-shipping-fields:last-child,
.pfm-checkout-page .woocommerce-additional-fields:last-child {
  margin-bottom: 0;
}

/* Field wrapper: clear float-based old layout */
.pfm-checkout-page .woocommerce-billing-fields__field-wrapper,
.pfm-checkout-page .woocommerce-shipping-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 14px 16px !important;
}

/* Form rows — block-level, no floats */
.pfm-checkout-page p.form-row,
.pfm-checkout-page p.form-row-wide,
.pfm-checkout-page p.form-row-first,
.pfm-checkout-page p.form-row-last {
  display: block !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  min-width: 0;
}

.pfm-checkout-page p.form-row-wide,
.pfm-checkout-page p.form-row.form-row-wide,
.pfm-checkout-page #billing_country_field,
.pfm-checkout-page #billing_address_1_field,
.pfm-checkout-page #billing_address_2_field,
.pfm-checkout-page #billing_email_field,
.pfm-checkout-page #billing_phone_field {
  grid-column: 1 / -1 !important;
}

/* Labels: inline, never wrap weirdly */
.pfm-checkout-page .form-row label {
  display: block !important;
  white-space: normal !important;
  margin-bottom: 6px;
  font-size: var(--pfm-text-sm);
  font-weight: 600;
}

/* Inputs: real width, real height */
.pfm-checkout-page .form-row input.input-text,
.pfm-checkout-page .form-row select,
.pfm-checkout-page .form-row textarea {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 46px !important;
  padding: 0 14px !important;
  font-size: var(--pfm-text-base) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-sizing: border-box !important;
}
.pfm-checkout-page .form-row textarea {
  height: auto !important;
  min-height: 100px;
  padding: 12px 14px !important;
}

/* Drop the "1." prefix that turned ugly */
.pfm-checkout-page .woocommerce-billing-fields h3::before,
.pfm-checkout-page .woocommerce-shipping-fields h3::before {
  content: "" !important;
}

/* Phase 7.checkout fix-3: override WC's .col-1/.col-2 floats + force 2-col grid */

/* Full-width col-1 and col-2 inside #customer_details */
.pfm-checkout-page #customer_details .col-1,
.pfm-checkout-page #customer_details .col-2,
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  display: block !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
}
.pfm-checkout-page #customer_details .col-2:last-child {
  margin-bottom: 0 !important;
}

/* Force my 2-col grid to win (higher specificity than earlier rule) */
body.woocommerce-checkout .pfm-checkout-page .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .pfm-checkout-page .woocommerce-shipping-fields__field-wrapper,
body.page-id-9 .woocommerce-billing-fields__field-wrapper,
body.page-id-9 .woocommerce-shipping-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px 16px !important;
}

/* Inputs strict full-width inside grid cells */
body.woocommerce-checkout .pfm-checkout-page p.form-row input.input-text,
body.woocommerce-checkout .pfm-checkout-page p.form-row select,
body.woocommerce-checkout .pfm-checkout-page p.form-row textarea,
body.woocommerce-checkout .pfm-checkout-page p.form-row .select2-selection {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  box-sizing: border-box !important;
  height: 46px !important;
  padding: 0 14px !important;
}
body.woocommerce-checkout .pfm-checkout-page p.form-row textarea {
  height: auto !important;
  min-height: 100px !important;
  padding: 12px 14px !important;
}

/* Full-width form-rows span both grid columns */
body.woocommerce-checkout .pfm-checkout-page p.form-row.form-row-wide,
body.woocommerce-checkout .pfm-checkout-page #billing_country_field,
body.woocommerce-checkout .pfm-checkout-page #billing_address_1_field,
body.woocommerce-checkout .pfm-checkout-page #billing_address_2_field,
body.woocommerce-checkout .pfm-checkout-page #billing_city_field,
body.woocommerce-checkout .pfm-checkout-page #billing_state_field,
body.woocommerce-checkout .pfm-checkout-page #billing_postcode_field,
body.woocommerce-checkout .pfm-checkout-page #billing_phone_field,
body.woocommerce-checkout .pfm-checkout-page #billing_email_field {
  grid-column: 1 / -1 !important;
}

/* First name + Last name share the same row */
body.woocommerce-checkout .pfm-checkout-page #billing_first_name_field {
  grid-column: 1 / 2 !important;
}
body.woocommerce-checkout .pfm-checkout-page #billing_last_name_field {
  grid-column: 2 / 3 !important;
}

/* Labels block on top of input */
body.woocommerce-checkout .pfm-checkout-page p.form-row label {
  display: block !important;
  width: 100% !important;
  white-space: normal !important;
  margin-bottom: 6px !important;
}

/* Phase 7.checkout fix-5: order review item-meta inline pairs
   Each "Label: value" pair on its own line, label+value inline */
.pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation {
  display: grid !important;
  grid-template-columns: max-content 1fr !important;
  gap: 2px 8px !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  font-size: 12px !important;
  color: var(--pfm-muted) !important;
  line-height: 1.5;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation dt {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 600 !important;
  color: var(--pfm-text) !important;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation dd {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 400 !important;
  color: var(--pfm-muted) !important;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation dt::after,
.pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation dd::after {
  content: "" !important;
}

/* Same treatment for wc-item-meta (newer WC versions) */
.pfm-checkout-page .woocommerce-checkout-review-order-table .wc-item-meta {
  display: grid !important;
  grid-template-columns: max-content 1fr !important;
  gap: 2px 8px !important;
  list-style: none !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  font-size: 12px !important;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table .wc-item-meta li {
  display: contents !important;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table .wc-item-meta li::after {
  content: "" !important;
}
.pfm-checkout-page .woocommerce-checkout-review-order-table .wc-item-meta-label {
  font-weight: 600 !important;
  color: var(--pfm-text) !important;
}

/* Phase 7.checkout fix-6: kill default float on dt + reset inner p in dd */
body.woocommerce-checkout .pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation dt {
  float: none !important;
  clear: none !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 600 !important;
}
body.woocommerce-checkout .pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation dd {
  float: none !important;
  clear: none !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 400 !important;
  color: var(--pfm-muted) !important;
}
body.woocommerce-checkout .pfm-checkout-page .woocommerce-checkout-review-order-table dl.variation dd p {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: inherit !important;
}


/* ============================================================
   PHASE 8 — Order Confirmation (07) + My Account (08).
   Aligns existing inc/woocommerce-layout.php wrappers to the
   design tokens (Phase 5L). Kills the outer .pfm-page card on
   both pages (same fix as cart/checkout).
   ============================================================ */

/* --- Kill outer .pfm-page white card on thankyou + account --- */
body.woocommerce-order-received article.pfm-page,
body.woocommerce-account article.pfm-page,
body.page-id-10 article.pfm-page {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* Hide auto WP page titles (we render our own) */
body.woocommerce-order-received h1,
body.woocommerce-account h1 { display: none !important; }
body.woocommerce-order-received .pfm-thankyou-card h1,
body.woocommerce-order-received .pfm-thankyou-card h2,
body.woocommerce-account .pfm-account-welcome h1 { display: block !important; }
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 { display: block !important; }
/* Use the wider container on both */
body.woocommerce-order-received .pfm-content.pfm-container,
body.woocommerce-account .pfm-content.pfm-container {
  max-width: var(--pfm-container-wide) !important;
  width: min(var(--pfm-container-wide), calc(100% - 40px)) !important;
}

/* ============================================================
   07. THANK YOU / ORDER CONFIRMATION
   ============================================================ */
.pfm-thankyou-page {
  padding: 32px 0 80px;
}
.pfm-thankyou-page .pfm-container.pfm-thankyou-card {
  max-width: 720px !important;
  width: min(720px, calc(100% - 40px)) !important;
  margin: 0 auto !important;
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  box-shadow: var(--pfm-shadow) !important;
  padding: 56px 40px !important;
  text-align: center !important;
}

/* Big teal check icon */
.pfm-thankyou-page .pfm-thankyou-icon {
  display: grid !important;
  place-items: center !important;
  width: 84px !important;
  height: 84px !important;
  border-radius: 999px !important;
  background: var(--pfm-teal) !important;
  color: #fff !important;
  font-size: 42px !important;
  font-weight: 900 !important;
  margin: 0 auto 24px !important;
  box-shadow: 0 12px 30px rgba(0, 185, 151, 0.25) !important;
}

/* Title */
.pfm-thankyou-page .pfm-thankyou-card h1 {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-3xl) !important; /* 42px */
  font-weight: 800 !important;
  letter-spacing: -0.045em !important;
  color: var(--pfm-heading) !important;
  margin: 0 0 10px !important;
}
.pfm-thankyou-page .pfm-thankyou-card > p {
  font-size: var(--pfm-text-md) !important;
  color: var(--pfm-muted) !important;
  margin: 0 0 22px !important;
}

/* Order Number pill */
.pfm-thankyou-page .pfm-order-pill {
  display: inline-block !important;
  background: var(--pfm-teal-soft) !important;
  color: var(--pfm-teal-dark) !important;
  padding: 10px 22px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: var(--pfm-text-base) !important;
  margin: 0 0 32px !important;
}
.pfm-thankyou-page .pfm-order-pill strong {
  font-weight: 900 !important;
}

/* WC's default order received text — hide its h2 since the design uses a card */
.pfm-thankyou-page .woocommerce-thankyou-order-received { display: none !important; }
.pfm-thankyou-page ul.order_details {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
  gap: 16px !important;
  list-style: none !important;
  background: var(--pfm-soft) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius-sm) !important;
  padding: 18px 22px !important;
  margin: 0 0 28px !important;
  text-align: left !important;
}
.pfm-thankyou-page ul.order_details li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: var(--pfm-text-xs) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: var(--pfm-muted) !important;
  font-weight: 700 !important;
}
.pfm-thankyou-page ul.order_details li strong {
  display: block !important;
  margin-top: 4px !important;
  font-size: var(--pfm-text-base) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--pfm-heading) !important;
}

/* Order details + customer details cards */
.pfm-thankyou-page .woocommerce-order-details,
.pfm-thankyou-page .woocommerce-customer-details {
  text-align: left !important;
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius-sm) !important;
  padding: 24px !important;
  margin: 18px 0 !important;
  box-shadow: none !important;
}
.pfm-thankyou-page .woocommerce-order-details h2,
.pfm-thankyou-page .woocommerce-customer-details h2 {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-md) !important; /* 17px */
  font-weight: 800 !important;
  margin: 0 0 14px !important;
  letter-spacing: -0.02em !important;
}
.pfm-thankyou-page table.shop_table {
  border: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
.pfm-thankyou-page table.shop_table th,
.pfm-thankyou-page table.shop_table td {
  border: 0 !important;
  padding: 8px 0 !important;
  background: transparent !important;
}

/* Action buttons */
.pfm-thankyou-page .pfm-thankyou-actions {
  display: flex !important;
  gap: 12px !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  margin: 28px 0 24px !important;
}
.pfm-thankyou-page .pfm-thankyou-actions .pfm-btn {
  min-width: 200px !important;
}

/* Feature strip below */
.pfm-thankyou-page .pfm-feature-strip {
  margin: 24px 0 0 !important;
}

/* ============================================================
   08. MY ACCOUNT
   ============================================================ */
.pfm-account-page {
  padding: 28px 0 60px !important;
}
.pfm-account-page .pfm-container.pfm-account-layout {
  display: grid !important;
  grid-template-columns: 260px 1fr !important;
  gap: 28px !important;
  align-items: start !important;
  max-width: var(--pfm-container-wide) !important;
  margin: 0 auto !important;
}

/* Welcome header (spans both columns) */
.pfm-account-page .pfm-account-welcome {
  grid-column: 1 / -1 !important;
  margin: 0 0 12px !important;
}
.pfm-account-page .pfm-account-welcome h1 {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-3xl) !important; /* 42px */
  font-weight: 800 !important;
  letter-spacing: -0.045em !important;
  color: var(--pfm-heading) !important;
  margin: 0 0 6px !important;
}
.pfm-account-page .pfm-account-welcome p {
  margin: 0 !important;
  color: var(--pfm-teal-text) !important;
  font-weight: 800 !important;
  font-size: var(--pfm-text-md) !important;
}

/* Sidebar nav card */
.pfm-account-page .woocommerce-MyAccount-navigation {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 16px !important;
  box-shadow: var(--pfm-shadow-soft) !important;
  position: sticky;
  top: 92px;
}
.pfm-account-page .woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  gap: 4px !important;
}
.pfm-account-page .woocommerce-MyAccount-navigation li {
  margin: 0 !important;
  padding: 0 !important;
}
.pfm-account-page .woocommerce-MyAccount-navigation li a {
  display: block !important;
  padding: 12px 14px !important;
  border-radius: 10px !important;
  font-weight: 700 !important;
  font-size: var(--pfm-text-sm) !important;
  color: var(--pfm-text) !important;
  text-decoration: none !important;
  transition: background 0.15s ease, color 0.15s ease !important;
}
.pfm-account-page .woocommerce-MyAccount-navigation li a:hover {
  background: var(--pfm-soft) !important;
  color: var(--pfm-teal-dark) !important;
}
.pfm-account-page .woocommerce-MyAccount-navigation li.is-active a,
.pfm-account-page .woocommerce-MyAccount-navigation li.is-active a:hover {
  background: var(--pfm-teal-soft) !important;
  color: var(--pfm-teal-dark) !important;
}

/* Main content card */
.pfm-account-page .woocommerce-MyAccount-content {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 28px !important;
  box-shadow: var(--pfm-shadow-soft) !important;
  min-width: 0;
}
.pfm-account-page .woocommerce-MyAccount-content h2 {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-xl) !important; /* 22px */
  font-weight: 800 !important;
  margin: 0 0 14px !important;
  letter-spacing: -0.02em !important;
}
.pfm-account-page .woocommerce-MyAccount-content p {
  font-size: var(--pfm-text-base) !important;
  line-height: 1.6 !important;
  color: var(--pfm-text) !important;
}

/* Tables (Orders, Downloads) */
.pfm-account-page table.shop_table {
  border: 0 !important;
  width: 100% !important;
  margin: 12px 0 !important;
  border-radius: var(--pfm-radius-sm) !important;
  overflow: hidden !important;
  background: transparent !important;
}
.pfm-account-page table.shop_table thead {
  background: var(--pfm-soft) !important;
}
.pfm-account-page table.shop_table thead th {
  font-size: var(--pfm-text-sm) !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: var(--pfm-heading) !important;
  padding: 12px 14px !important;
  border: 0 !important;
}
.pfm-account-page table.shop_table tbody tr {
  border-bottom: 1px solid var(--pfm-line) !important;
}
.pfm-account-page table.shop_table tbody td {
  padding: 14px !important;
  border: 0 !important;
  font-size: var(--pfm-text-base) !important;
  background: transparent !important;
}
.pfm-account-page table.shop_table .button {
  background: var(--pfm-teal) !important;
  color: #fff !important;
  border-radius: 6px !important;
  font-size: var(--pfm-text-sm) !important;
  padding: 8px 14px !important;
  min-height: auto !important;
}

/* Address / form blocks */
.pfm-account-page .woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 18px !important;
  margin: 12px 0 !important;
}
.pfm-account-page .woocommerce-Address {
  background: var(--pfm-soft) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius-sm) !important;
  padding: 20px !important;
}
.pfm-account-page .woocommerce-Address-title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin: 0 0 10px !important;
}
.pfm-account-page .woocommerce-Address-title h2,
.pfm-account-page .woocommerce-Address-title h3 {
  margin: 0 !important;
  font-size: var(--pfm-text-md) !important;
}
.pfm-account-page .edit {
  font-size: var(--pfm-text-sm) !important;
  color: var(--pfm-teal-text) !important;
  font-weight: 700 !important;
}
.pfm-account-page address {
  font-style: normal !important;
  line-height: 1.6 !important;
  color: var(--pfm-text) !important;
  font-size: var(--pfm-text-base) !important;
}

/* Form fields inside My Account */
.pfm-account-page .form-row input.input-text,
.pfm-account-page .form-row select,
.pfm-account-page .form-row textarea {
  width: 100% !important;
  height: 46px !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: 8px !important;
  padding: 0 14px !important;
  font-size: var(--pfm-text-base) !important;
  background: #fff !important;
  box-sizing: border-box !important;
}
.pfm-account-page button.button,
.pfm-account-page input[type="submit"].button {
  background: var(--pfm-teal) !important;
  color: #fff !important;
  border-radius: var(--pfm-radius-sm) !important;
  border: 0 !important;
  padding: 0 24px !important;
  height: 46px !important;
  font-size: var(--pfm-text-sm) !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  cursor: pointer !important;
  min-width: 174px !important;
}
.pfm-account-page button.button:hover,
.pfm-account-page input[type="submit"].button:hover {
  background: var(--pfm-teal-dark) !important;
}

/* Login form (when not logged in) */
.pfm-account-page .woocommerce-form-login,
.pfm-account-page .woocommerce-form-register {
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 28px !important;
  box-shadow: var(--pfm-shadow-soft) !important;
  max-width: 480px !important;
  margin: 0 auto !important;
}

/* Mobile */
@media (max-width: 980px) {
  .pfm-account-page .pfm-container.pfm-account-layout {
    grid-template-columns: 1fr !important;
  }
  .pfm-account-page .woocommerce-MyAccount-navigation {
    position: static !important;
  }
  .pfm-account-page .woocommerce-Addresses {
    grid-template-columns: 1fr !important;
  }
  .pfm-thankyou-page .pfm-container.pfm-thankyou-card {
    padding: 36px 22px !important;
  }
  .pfm-thankyou-page .pfm-thankyou-card h1 {
    font-size: 30px !important;
  }
  .pfm-account-page .pfm-account-welcome h1 {
    font-size: 30px !important;
  }
}


/* Phase 8.5 — Modern centered login/register card (when not logged in) */

/* Center the login form area */
body.woocommerce-account:not(.logged-in) .woocommerce {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 28px 0 60px;
}

/* Style the h2 "Login" above the card */
body.woocommerce-account:not(.logged-in) .woocommerce > h2:first-of-type {
  font-family: var(--pfm-font-heading) !important;
  font-size: var(--pfm-text-3xl) !important; /* 42px */
  font-weight: 800 !important;
  letter-spacing: -0.045em !important;
  color: var(--pfm-heading) !important;
  margin: 0 0 8px !important;
  text-align: center !important;
  display: block !important;
}

/* Subtitle helper (added via ::after on the h2 if no register form, with welcome text) */
body.woocommerce-account:not(.logged-in) .woocommerce > h2:first-of-type::after {
  content: "Welcome back. Sign in to your account.";
  display: block;
  font-family: var(--pfm-font-body);
  font-size: var(--pfm-text-base);
  font-weight: 400;
  color: var(--pfm-muted);
  letter-spacing: 0;
  margin-top: 8px;
}

/* The login card */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register {
  width: 100% !important;
  max-width: 460px !important;
  margin: 24px auto 0 !important;
  background: var(--pfm-card) !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: var(--pfm-radius) !important;
  padding: 32px !important;
  box-shadow: var(--pfm-shadow) !important;
}

/* Form rows */
body.woocommerce-account .woocommerce-form-login .form-row,
body.woocommerce-account .woocommerce-form-register .form-row {
  margin: 0 0 16px !important;
  padding: 0 !important;
  display: block !important;
  width: 100% !important;
}
body.woocommerce-account .woocommerce-form-login .form-row label,
body.woocommerce-account .woocommerce-form-register .form-row label {
  display: block !important;
  font-size: var(--pfm-text-sm) !important;
  font-weight: 600 !important;
  color: var(--pfm-text) !important;
  margin-bottom: 6px !important;
}
body.woocommerce-account .woocommerce-form-login .form-row input.input-text,
body.woocommerce-account .woocommerce-form-register .form-row input.input-text,
body.woocommerce-account .woocommerce-form-login .form-row input[type="password"],
body.woocommerce-account .woocommerce-form-register .form-row input[type="password"] {
  width: 100% !important;
  height: 46px !important;
  border: 1px solid var(--pfm-line) !important;
  border-radius: 8px !important;
  padding: 0 14px !important;
  font-size: var(--pfm-text-base) !important;
  background: #fff !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.woocommerce-account .woocommerce-form-login .form-row input:focus,
body.woocommerce-account .woocommerce-form-register .form-row input:focus {
  outline: 0 !important;
  border-color: var(--pfm-teal) !important;
  box-shadow: 0 0 0 3px var(--pfm-teal-soft) !important;
}

/* Password show/hide eye icon container */
body.woocommerce-account .password-input {
  position: relative;
  width: 100%;
}
body.woocommerce-account .show-password-input {
  top: 13px !important;
  right: 14px !important;
}

/* Remember me + Log in button row */
body.woocommerce-account .woocommerce-form-login .form-row:last-of-type,
body.woocommerce-account .woocommerce-form-login p.form-row:has(button) {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 14px !important;
  margin-bottom: 16px !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme,
body.woocommerce-account .woocommerce-form-register__rememberme {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  font-size: var(--pfm-text-sm) !important;
  font-weight: 600 !important;
  color: var(--pfm-text) !important;
  cursor: pointer !important;
  order: 1;
}
body.woocommerce-account .woocommerce-form-login__rememberme input,
body.woocommerce-account .woocommerce-form-register__rememberme input {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--pfm-teal) !important;
  margin: 0 !important;
}

/* Log in button — full width, teal */
body.woocommerce-account .woocommerce-form-login button[type="submit"],
body.woocommerce-account .woocommerce-form-register button[type="submit"],
body.woocommerce-account button.woocommerce-button.login,
body.woocommerce-account button.woocommerce-button.register {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 52px !important;
  background: var(--pfm-teal) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: var(--pfm-radius-sm) !important;
  font-family: var(--pfm-font-body) !important;
  font-size: var(--pfm-text-sm) !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  cursor: pointer !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  order: 2;
  transition: background 0.15s ease;
}
body.woocommerce-account .woocommerce-form-login button[type="submit"]:hover,
body.woocommerce-account .woocommerce-form-register button[type="submit"]:hover {
  background: var(--pfm-teal-dark) !important;
}

/* Lost password link */
body.woocommerce-account .lost_password {
  text-align: center !important;
  margin: 16px 0 0 !important;
  padding: 16px 0 0 !important;
  border-top: 1px solid var(--pfm-line) !important;
  font-size: var(--pfm-text-sm) !important;
}
body.woocommerce-account .lost_password a {
  color: var(--pfm-teal-text) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
body.woocommerce-account .lost_password a:hover {
  color: var(--pfm-teal-dark) !important;
  text-decoration: underline !important;
}

/* Kill the outer .pfm-page card on the login screen too */
body.woocommerce-account article.pfm-page {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Hide WC "u-columns" 2-col when ONLY login (no register) */
body.woocommerce-account .u-columns,
body.woocommerce-account .u-column1,
body.woocommerce-account .u-column2 {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Tighten WP block layout container */
body.woocommerce-account .wp-block-post-content,
body.woocommerce-account .entry-content {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}

/* Phase 8.5 hotfix: tighter login spacing */

/* Pull card closer to title */
body.woocommerce-account:not(.logged-in) .woocommerce {
  padding: 24px 0 40px !important;
  gap: 0 !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce > h2:first-of-type {
  margin: 0 0 6px !important;
  font-size: 36px !important;
  line-height: 1.1 !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce > h2:first-of-type::after {
  margin-top: 6px !important;
  font-size: 14px !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register {
  margin: 20px auto 0 !important;
  padding: 24px !important;
  max-width: 420px !important;
}

/* Tighter form rows */
body.woocommerce-account .woocommerce-form-login .form-row,
body.woocommerce-account .woocommerce-form-register .form-row {
  margin: 0 0 12px !important;
}
body.woocommerce-account .woocommerce-form-login .form-row label,
body.woocommerce-account .woocommerce-form-register .form-row label {
  margin-bottom: 4px !important;
  font-size: 13px !important;
}
body.woocommerce-account .woocommerce-form-login .form-row input.input-text,
body.woocommerce-account .woocommerce-form-register .form-row input.input-text {
  height: 42px !important;
}

/* Compact button + remember row */
body.woocommerce-account .woocommerce-form-login__rememberme {
  margin: 4px 0 12px !important;
  font-size: 13px !important;
}
body.woocommerce-account .woocommerce-form-login button[type="submit"],
body.woocommerce-account .woocommerce-form-register button[type="submit"] {
  height: 46px !important;
  margin: 0 !important;
}

/* Lost password — less top padding */
body.woocommerce-account .lost_password {
  margin: 14px 0 0 !important;
  padding: 12px 0 0 !important;
  font-size: 13px !important;
}

/* Password eye icon — re-center for 42px field */
body.woocommerce-account .show-password-input {
  top: 11px !important;
}

/* Phase 8.5 fix-2: simplify login form to normal block layout, no :has() tricks */

/* All form-rows: simple block with consistent spacing */
body.woocommerce-account .woocommerce-form-login .form-row,
body.woocommerce-account .woocommerce-form-register .form-row,
body.woocommerce-account .woocommerce-form-lost-password .form-row {
  display: block !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 0 !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Labels: block above input */
body.woocommerce-account .woocommerce-form-login .form-row > label,
body.woocommerce-account .woocommerce-form-register .form-row > label,
body.woocommerce-account .woocommerce-form-lost-password .form-row > label {
  display: block !important;
  margin: 0 0 4px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--pfm-text) !important;
}

/* Password span wrapper sits cleanly below label */
body.woocommerce-account .password-input {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Hide WC's password strength meter if present (login doesn't need it) */
body.woocommerce-account .woocommerce-form-login .woocommerce-password-strength,
body.woocommerce-account .woocommerce-form-login .woocommerce-password-hint {
  display: none !important;
}

/* Remember me checkbox — inline-flex, NOT a separate flex container */
body.woocommerce-account .woocommerce-form-login__rememberme,
body.woocommerce-account .woocommerce-form-register__rememberme {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 4px 0 14px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--pfm-text) !important;
  cursor: pointer !important;
  width: auto !important;
  vertical-align: middle !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme input,
body.woocommerce-account .woocommerce-form-register__rememberme input {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--pfm-teal) !important;
  margin: 0 !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme span {
  margin: 0 !important;
}

/* Submit button — block, full width, separate from remember */
body.woocommerce-account .woocommerce-form-login .form-row button[type="submit"],
body.woocommerce-account .woocommerce-form-register .form-row button[type="submit"],
body.woocommerce-account .woocommerce-form-lost-password .form-row button[type="submit"] {
  display: block !important;
  width: 100% !important;
  height: 46px !important;
  margin: 0 !important;
  background: var(--pfm-teal) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: var(--pfm-radius-sm) !important;
  font-family: var(--pfm-font-body) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  cursor: pointer !important;
  transition: background 0.15s ease !important;
}
body.woocommerce-account .woocommerce-form-login .form-row button[type="submit"]:hover,
body.woocommerce-account .woocommerce-form-register .form-row button[type="submit"]:hover {
  background: var(--pfm-teal-dark) !important;
}

/* The combined remember+button form-row needs to be a regular block */
body.woocommerce-account .woocommerce-form-login p.form-row {
  display: block !important;
  flex-direction: initial !important;
  gap: 0 !important;
}
/* Override the :has() rule that bloated heights */
body.woocommerce-account .woocommerce-form-login p.form-row:has(button) {
  display: block !important;
  flex-direction: initial !important;
  gap: 0 !important;
}

/* Phase 8.5 fix-3: smaller LOG IN button + centered password eye icon */

/* Submit button — slightly smaller height matching input fields */
body.woocommerce-account .woocommerce-form-login .form-row button[type="submit"],
body.woocommerce-account .woocommerce-form-register .form-row button[type="submit"],
body.woocommerce-account .woocommerce-form-lost-password .form-row button[type="submit"] {
  height: 42px !important;
  font-size: 13px !important;
  padding: 0 !important;
}

/* Password eye icon — perfectly centered vertically inside 42px input */
body.woocommerce-account .show-password-input,
body.woocommerce-account .password-input .show-password-input {
  position: absolute !important;
  top: 50% !important;
  right: 12px !important;
  transform: translateY(-50%) !important;
  width: 22px !important;
  height: 22px !important;
  display: inline-grid !important;
  place-items: center !important;
  cursor: pointer !important;
  color: var(--pfm-muted) !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}
body.woocommerce-account .show-password-input:hover {
  color: var(--pfm-teal-text) !important;
}
/* Ensure the password input has room for the icon on the right */
body.woocommerce-account .password-input input.input-text {
  padding-right: 42px !important;
}

/* ============================================================
   Phase 9 — Compatibility shim for the ported bespoke builder.
   The old theme's builder.css references CSS vars that don't exist
   in this design system. Map them to the new tokens here.
   ============================================================ */
:root {
  /* === Colour aliases === */
  --cream-50:   #FBFDFC;
  --cream-100:  #F6FBFA;
  --forest-50:  #E9FBF7;
  --forest-100: #D7F3EC;
  --forest-300: var(--pfm-teal-soft);
  --forest-500: var(--pfm-teal);
  --forest-700: var(--pfm-teal-dark);
  --forest-900: var(--pfm-heading);
  --ink-50:  #F6FBFA;
  --ink-100: var(--pfm-line);
  --ink-200: #D6E0DF;
  --ink-300: #BFCDCC;
  --ink-500: var(--pfm-muted);
  --ink-700: #2A3434;
  --ink-900: var(--pfm-text);

  /* === Spacing scale (4px base) === */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-7: 28px;
  --sp-8: 32px;
  --sp-9: 36px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-14: 56px;
  --sp-16: 64px;
  --sp-20: 80px;
  --sp-24: 96px;

  /* === Typography aliases === */
  --font-display: var(--pfm-font-heading);
  --font-body: var(--pfm-font-body);
}

/* === Container alias the builder-form expects === */
.pfm-builder-page .container,
.pfm-builder-hero .container,
.pf-builder .container {
  width: min(var(--pfm-container-wide), calc(100% - 40px));
  margin-left: auto;
  margin-right: auto;
}

/* === Constrain the builder page wrapper === */
body article.pfm-page:has(.pfm-builder-page),
body.page-template-page-frame-builder article.pfm-page {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
.pfm-builder-page {
  display: block;
  width: 100%;
}

/* Builder hero polishing */
.pfm-builder-hero {
  background: var(--cream-50);
  border-bottom: 1px solid var(--pfm-line);
  padding: var(--sp-12) 0 var(--sp-10);
}
.pfm-builder-hero__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--sp-12);
  flex-wrap: wrap;
}
.pfm-builder-hero h1 {
  font-family: var(--pfm-font-heading);
  font-size: clamp(40px, 4.4vw, 60px);
  line-height: 1;
  letter-spacing: -0.025em;
  font-weight: 800;
  color: var(--pfm-heading);
  margin: var(--sp-3) 0;
}
.pfm-builder-hero h1 em {
  font-style: italic;
  font-weight: 400;
}
.pfm-builder-hero__sub {
  font-size: 16px;
  color: var(--pfm-muted);
  max-width: 580px;
  margin: 0;
  line-height: 1.6;
}
.pfm-builder-hero__stat {
  display: flex;
  gap: var(--sp-4);
  font-size: 13px;
  color: var(--pfm-muted);
  align-items: center;
}
.pfm-builder-hero__stat strong { color: var(--pfm-heading); }
.pfm-builder-hero__stat .sep { opacity: 0.4; }

/* === About + Contact (Design 09/10) appended 20260530_124548 === */
/* =========================================================================
   About Us (Design 09) + Contact Us (Design 10)
   ========================================================================= */

/* Reset any inherited card wrappers so the new band layouts can flow. */
.pfm-page-about .pfm-content,
.pfm-page-contact .pfm-content { display: none; }

.pfm-about,
.pfm-contact {
  background: linear-gradient(180deg, #f5fffc 0, #fff 480px);
  font-family: Inter, system-ui, -apple-system, sans-serif;
  color: var(--pfm-text, #151919);
}
.pfm-about .pfm-container,
.pfm-contact .pfm-container { width: min(1280px, calc(100% - 40px)); margin: 0 auto; }

.pfm-about .pfm-kicker,
.pfm-contact .pfm-kicker {
  color: var(--pfm-teal, #00B997);
  font-weight: 800;
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: 0.06em;
  margin: 0 0 16px;
  display: inline-block;
}
.pfm-about h1, .pfm-contact h1 {
  font-family: Poppins, Inter, sans-serif;
  font-size: 52px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin: 0 0 22px;
  color: #151919;
}
.pfm-about .pfm-lede,
.pfm-contact .pfm-lede {
  font-size: 16px;
  line-height: 1.65;
  color: #303a3a;
  max-width: 480px;
  margin: 0 0 28px;
}

/* =========================================================================
   ABOUT — Hero
   ========================================================================= */
.pfm-about-hero { padding: 50px 0 36px; }
.pfm-about-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 60px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--pfm-line, #e2eeee);
  border-radius: 18px;
  overflow: hidden;
  padding: 0;
}
.pfm-about-hero__copy { padding: 56px 56px 56px 60px; }
.pfm-about-hero__media { height: 100%; }
.pfm-about-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 460px;
  object-fit: cover;
}

.pfm-about-hero__usp {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  margin-top: 16px;
}
.pfm-about-hero__usp > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.pfm-about-hero__usp .ic {
  width: 30px; height: 30px;
  display: grid; place-items: center;
  color: var(--pfm-teal, #00B997);
  font-size: 22px;
}
.pfm-about-hero__usp strong {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  color: #151919;
}

/* =========================================================================
   ABOUT — Our Promise to You
   ========================================================================= */
.pfm-promise { padding: 70px 0 80px; }
.pfm-promise__title {
  text-align: center;
  font-family: Poppins, Inter, sans-serif;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #151919;
  margin: 0 0 48px;
  position: relative;
  padding-bottom: 14px;
}
.pfm-promise__underline {
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 56px; height: 2px;
  background: var(--pfm-teal, #00B997);
}
.pfm-promise__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px;
  max-width: 1080px;
  margin: 0 auto;
}
.pfm-promise__grid > div {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.pfm-promise__grid .ic {
  width: 40px; height: 40px;
  display: grid; place-items: center;
  color: var(--pfm-teal, #00B997);
  font-size: 30px;
}
.pfm-promise__grid h3 {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #151919;
  margin: 0;
  line-height: 1.3;
  max-width: 200px;
}
.pfm-promise__grid p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--pfm-muted, #657273);
  margin: 0;
  max-width: 200px;
}

/* =========================================================================
   ABOUT — Workshop band
   ========================================================================= */
.pfm-workshop-band { padding: 30px 0 60px; }
.pfm-workshop-band__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--pfm-line, #e2eeee);
  border-radius: 18px;
  padding: 40px;
}
.pfm-workshop-band__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
  border-radius: 10px;
}
.pfm-workshop-band__copy h2 {
  font-family: Poppins, Inter, sans-serif;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #151919;
  margin: 0 0 16px;
}
.pfm-workshop-band__copy p {
  color: #303a3a;
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 24px;
  max-width: 440px;
}
.pfm-workshop-band__copy .pfm-btn {
  font-size: 12px;
  letter-spacing: 0.08em;
  padding: 0 32px;
  min-height: 50px;
}

/* =========================================================================
   ABOUT — Footer trust strip
   ========================================================================= */
.pfm-about-trust { padding: 30px 0 70px; }
.pfm-about-trust__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px;
  border-top: 1px solid var(--pfm-line, #e2eeee);
  border-bottom: 1px solid var(--pfm-line, #e2eeee);
  padding: 28px 0;
}
.pfm-about-trust__grid > div {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
}
.pfm-about-trust__grid .ic {
  color: var(--pfm-teal, #00B997);
  font-size: 22px;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.pfm-about-trust__grid strong { display: block; font-weight: 700; color: #151919; font-size: 13px; }
.pfm-about-trust__grid small { display: block; color: var(--pfm-muted, #657273); font-size: 12px; margin-top: 2px; }

/* =========================================================================
   CONTACT — Hero
   ========================================================================= */
.pfm-contact-hero { padding: 40px 0 36px; }
.pfm-contact-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  padding: 40px 30px 40px 40px;
}
.pfm-contact-hero__copy { padding: 10px 20px 10px 0; }
.pfm-contact-hero__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
  box-shadow: 0 22px 70px rgba(30, 80, 70, 0.10);
}

/* =========================================================================
   CONTACT — Details strip (4 cards)
   ========================================================================= */
.pfm-contact-details { padding: 18px 0 30px; }
.pfm-contact-details__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.pfm-contact-card {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.pfm-contact-card .ic {
  width: 32px; height: 32px;
  display: grid; place-items: center;
  color: var(--pfm-teal, #00B997);
  font-size: 22px;
  flex-shrink: 0;
}
.pfm-contact-card h3 {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #151919;
}
.pfm-contact-card p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: #303a3a;
}
.pfm-contact-card a { color: #303a3a; }
.pfm-contact-card a:hover { color: var(--pfm-teal-dark, #009B80); }
.pfm-hours { display: grid; grid-template-columns: auto auto; gap: 4px 14px; margin: 0; font-size: 13px; }
.pfm-hours dt { font-weight: 500; color: #303a3a; }
.pfm-hours dd { margin: 0; color: var(--pfm-muted, #657273); }

/* =========================================================================
   CONTACT — Form + Map card
   ========================================================================= */
.pfm-contact-form-band { padding: 18px 0 50px; }
.pfm-contact-form-card {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  background: #fff;
  border: 1px solid var(--pfm-line, #e2eeee);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 22px 70px rgba(30, 80, 70, 0.06);
}
.pfm-contact-form__col { padding: 40px 44px 36px; }
.pfm-contact-form__col h2 {
  margin: 0 0 22px;
  font-family: Poppins, Inter, sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: #151919;
  letter-spacing: -0.01em;
}
.pfm-contact-feedback {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.45;
}
.pfm-contact-feedback.is-success {
  background: rgba(0,185,151,0.10);
  color: var(--pfm-teal-dark, #009B80);
  border: 1px solid var(--pfm-teal, #00B997);
}
.pfm-contact-feedback.is-error {
  background: #fde8e8;
  color: #a73838;
  border: 1px solid #f3b9b9;
}

.pfm-contact-form .pfm-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.pfm-contact-form .pfm-form-field { margin-bottom: 16px; display: flex; flex-direction: column; gap: 6px; }
.pfm-contact-form .pfm-form-field label {
  font-size: 13px;
  font-weight: 600;
  color: #151919;
}
.pfm-contact-form .pfm-form-field .req { color: var(--pfm-teal, #00B997); }
.pfm-contact-form input[type=text],
.pfm-contact-form input[type=email],
.pfm-contact-form select,
.pfm-contact-form textarea {
  border: 1px solid var(--pfm-line, #e2eeee);
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 14px;
  font-family: inherit;
  color: #151919;
  background: #fff;
  width: 100%;
  box-sizing: border-box;
}
.pfm-contact-form input:focus,
.pfm-contact-form select:focus,
.pfm-contact-form textarea:focus {
  outline: 0;
  border-color: var(--pfm-teal, #00B997);
  box-shadow: 0 0 0 3px rgba(0,185,151,0.15);
}
.pfm-contact-form textarea { min-height: 110px; resize: vertical; }
.pfm-contact-form input::placeholder,
.pfm-contact-form textarea::placeholder { color: #9aa6a6; }

.pfm-contact-send {
  width: 100%;
  height: 50px;
  background: var(--pfm-teal, #00B997);
  color: #fff;
  border: 0;
  border-radius: 8px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.15s;
}
.pfm-contact-send:hover { background: var(--pfm-teal-dark, #009B80); }

/* Map */
.pfm-contact-map__col { position: relative; min-height: 460px; background: #edf3ef; }
.pfm-contact-map { position: absolute; inset: 0; overflow: hidden; }
.pfm-contact-map__svg { display: block; width: 100%; height: 100%; }
.pfm-contact-map__pop {
  position: absolute;
  right: 28px; bottom: 28px;
  background: #fff;
  border-radius: 12px;
  padding: 16px 18px;
  max-width: 240px;
  box-shadow: 0 18px 40px rgba(20, 30, 25, 0.12);
}
.pfm-contact-map__pop strong { font-size: 14px; font-weight: 800; color: #151919; display: block; margin-bottom: 6px; }
.pfm-contact-map__pop p { font-size: 12.5px; line-height: 1.5; color: var(--pfm-muted, #657273); margin: 0 0 10px; }
.pfm-contact-map__link {
  color: var(--pfm-teal, #00B997);
  font-weight: 800;
  font-size: 11.5px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
}
.pfm-contact-map__link:hover { color: var(--pfm-teal-dark, #009B80); }

/* =========================================================================
   CONTACT — Features strip
   ========================================================================= */
.pfm-contact-features { padding: 18px 0 30px; }
.pfm-contact-features__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.pfm-contact-features__grid > div {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.pfm-contact-features__grid .ic {
  color: var(--pfm-teal, #00B997);
  font-size: 22px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.pfm-contact-features__grid strong {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: #151919;
  margin-bottom: 4px;
}
.pfm-contact-features__grid small {
  display: block;
  font-size: 12.5px;
  color: var(--pfm-muted, #657273);
  line-height: 1.5;
}

/* =========================================================================
   CONTACT — Footer trust strip
   ========================================================================= */
.pfm-contact-footer-trust {
  padding: 20px 0 50px;
}
.pfm-contact-footer-trust__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  border-top: 1px solid var(--pfm-line, #e2eeee);
  padding: 22px 0;
  font-size: 13px;
}
.pfm-contact-footer-trust__grid > div {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
  color: #151919;
}
.pfm-contact-footer-trust__grid .ic { color: var(--pfm-teal, #00B997); font-size: 18px; }
.pfm-contact-tagline {
  text-align: center;
  color: var(--pfm-muted, #657273);
  font-size: 14px;
  margin: 24px 0 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.pfm-contact-tagline .pfm-svg { color: var(--pfm-teal, #00B997); }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 980px) {
  .pfm-about h1, .pfm-contact h1 { font-size: 38px; }

  .pfm-about-hero__inner { grid-template-columns: 1fr; }
  .pfm-about-hero__copy { padding: 36px 28px 32px; }
  .pfm-about-hero__media img { min-height: 280px; }
  .pfm-about-hero__usp { grid-template-columns: 1fr 1fr; gap: 18px; }

  .pfm-promise { padding: 50px 0 60px; }
  .pfm-promise__grid { grid-template-columns: 1fr; gap: 28px; }
  .pfm-promise__grid > div { max-width: 320px; margin: 0 auto; }

  .pfm-workshop-band__inner { grid-template-columns: 1fr; gap: 28px; padding: 24px; }
  .pfm-workshop-band__copy h2 { font-size: 26px; }

  .pfm-about-trust__grid { grid-template-columns: 1fr 1fr; gap: 18px; }

  .pfm-contact-hero__inner { grid-template-columns: 1fr; gap: 28px; padding: 30px 18px; }
  .pfm-contact-details__grid { grid-template-columns: 1fr 1fr; gap: 22px; }
  .pfm-contact-form-card { grid-template-columns: 1fr; }
  .pfm-contact-map__col { min-height: 320px; }
  .pfm-contact-features__grid { grid-template-columns: 1fr 1fr; gap: 22px; }
  .pfm-contact-footer-trust__grid { grid-template-columns: 1fr 1fr; gap: 14px; }
}
@media (max-width: 560px) {
  .pfm-contact-form .pfm-form-row { grid-template-columns: 1fr; }
  .pfm-about-trust__grid,
  .pfm-contact-features__grid,
  .pfm-contact-details__grid,
  .pfm-contact-footer-trust__grid { grid-template-columns: 1fr; }
}

/* === About/Contact legacy overrides === */

/* === About/Contact legacy overrides === */

/* === Override legacy theme.css rules so new About/Contact layouts work === */
.pfm-about .pfm-about-hero,
.pfm-contact .pfm-contact-hero {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  align-items: stretch !important;
}
.pfm-about .pfm-about-hero img,
.pfm-contact .pfm-contact-hero img {
  height: auto !important;        /* legacy: height: 420px which fights aspect-ratio */
  border-radius: 0 !important;    /* legacy: 14px which fights card overflow:hidden */
}
.pfm-about .pfm-about-hero__media img {
  border-radius: 0 !important;
  min-height: 460px;
  height: 100% !important;
}
.pfm-contact .pfm-contact-hero__media img {
  border-radius: 14px !important;
  height: auto !important;
}
/* Kill the legacy .pfm-icon-row styling on the About hero (we replaced it). */
.pfm-about .pfm-icon-row { display: none; }
