/*
Theme Name: Everyday Wellbeing Library
Theme URI: https://everydaywellbeinglibrary.com/
Author: Caroline Todd
Description: Bold, accessible WordPress + WooCommerce theme for the Everyday Wellbeing Library self-help guide collection.
Version: 2.3
Text Domain: ewl
*/

:root{
  --navy:#111a3a;
  --navy-2:#1b2758;
  --purple:#7b3ff2;
  --violet:#a760ff;
  --turquoise:#18c8c8;
  --coral:#ff667d;
  --gold:#f5c84c;
  --green:#36b979;
  --cream:#fff9ef;
  --paper:#ffffff;
  --ink:#1d2340;
  --muted:#68708c;
  --line:#e7e9f3;
  --shadow:0 14px 35px rgba(27,39,88,.12);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.65}
a{color:var(--purple);text-decoration:none}
a:hover{color:var(--navy)}
img{max-width:100%;height:auto}
.ewl-container{width:min(1180px,calc(100% - 40px));margin:auto}
.ewl-topbar{background:var(--navy);color:#fff;text-align:center;padding:9px 20px;font-size:.9rem;font-weight:700;letter-spacing:.02em}
.ewl-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.ewl-header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.ewl-brand{display:flex;align-items:center;gap:12px;color:var(--navy);font-weight:900;letter-spacing:-.03em;font-size:1.15rem}
.ewl-logo-mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:900;background:linear-gradient(135deg,var(--purple),var(--turquoise));box-shadow:0 8px 20px rgba(123,63,242,.25)}
.ewl-nav ul{list-style:none;display:flex;gap:24px;align-items:center;padding:0;margin:0}
.ewl-nav a{color:var(--navy);font-weight:700;font-size:.96rem}
.ewl-nav a:hover{color:var(--purple)}
.ewl-menu-toggle{display:none;border:0;background:var(--cream);padding:10px 12px;border-radius:12px;font-weight:800;color:var(--navy)}
.ewl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:13px 22px;font-weight:800;border:2px solid transparent;transition:.2s ease;cursor:pointer}
.ewl-btn-primary{background:var(--coral);color:#fff;box-shadow:0 9px 22px rgba(255,102,125,.25)}
.ewl-btn-primary:hover{transform:translateY(-2px);color:#fff;background:#ee526a}
.ewl-btn-secondary{background:#fff;color:var(--navy);border-color:#fff}
.ewl-btn-outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.ewl-hero{overflow:hidden;background:linear-gradient(130deg,var(--navy) 0%,var(--navy-2) 46%,#3e277d 100%);color:#fff;position:relative}
.ewl-hero:before,.ewl-hero:after{content:"";position:absolute;border-radius:50%;filter:blur(0);opacity:.22}
.ewl-hero:before{width:380px;height:380px;background:var(--turquoise);right:-120px;top:-170px}
.ewl-hero:after{width:300px;height:300px;background:var(--coral);left:43%;bottom:-220px}
.ewl-hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:55px;align-items:center;min-height:620px;padding:74px 0;position:relative;z-index:1}
.ewl-eyebrow{display:inline-block;color:var(--gold);font-size:.82rem;text-transform:uppercase;letter-spacing:.16em;font-weight:900;margin-bottom:14px}
.ewl-hero h1{font-size:clamp(2.6rem,5vw,5.2rem);line-height:.97;margin:0 0 22px;letter-spacing:-.055em;max-width:760px}
.ewl-hero p{font-size:1.16rem;color:#e8ebff;max-width:650px;margin:0 0 30px}
.ewl-hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.ewl-guide-stack{position:relative;height:420px}
.ewl-guide-card{position:absolute;width:260px;height:345px;border-radius:20px;padding:24px;box-shadow:0 25px 60px rgba(0,0,0,.27);border:6px solid rgba(255,255,255,.75);color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.ewl-guide-card small{text-transform:uppercase;letter-spacing:.14em;font-weight:800;opacity:.92}
.ewl-guide-card h3{font-size:2rem;line-height:1.02;margin:0;letter-spacing:-.04em}
.ewl-guide-card span{font-size:.86rem;font-weight:800}
.ewl-guide-card.one{background:linear-gradient(150deg,var(--purple),#4c28b8);left:20px;top:44px;transform:rotate(-8deg)}
.ewl-guide-card.two{background:linear-gradient(150deg,var(--turquoise),#118d9d);left:150px;top:10px;transform:rotate(4deg)}
.ewl-guide-card.three{background:linear-gradient(150deg,var(--coral),#c53d69);left:265px;top:65px;transform:rotate(10deg)}
.ewl-trust-strip{background:var(--gold);color:var(--navy);font-weight:850;text-align:center;padding:16px 20px}
.ewl-section{padding:86px 0}
.ewl-section-soft{background:var(--cream)}
.ewl-section-dark{background:var(--navy);color:#fff}
.ewl-section-head{max-width:760px;margin-bottom:36px}
.ewl-kicker{font-weight:900;color:var(--purple);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem}
.ewl-section h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.045em;line-height:1.05;margin:8px 0 14px}
.ewl-section-head p{color:var(--muted);font-size:1.06rem;margin:0}
.ewl-section-dark .ewl-section-head p{color:#cfd5f7}
.ewl-category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ewl-category-card{min-height:210px;border-radius:var(--radius);padding:28px;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;transition:.2s ease}
.ewl-category-card:hover{transform:translateY(-5px);color:#fff}
.ewl-category-card:after{content:"→";position:absolute;right:24px;top:21px;font-size:1.6rem;font-weight:900}
.ewl-category-card h3{font-size:1.55rem;margin:0 0 4px;letter-spacing:-.03em}
.ewl-category-card p{margin:0;color:rgba(255,255,255,.88);font-size:.94rem}
.cat-anxiety{background:linear-gradient(135deg,#7b3ff2,#a760ff)}
.cat-mindfulness{background:linear-gradient(135deg,#18c8c8,#087f91)}
.cat-recovery{background:linear-gradient(135deg,#ff667d,#cf375d)}
.cat-sleep{background:linear-gradient(135deg,#4058d8,#283892)}
.cat-emotions{background:linear-gradient(135deg,#36b979,#16845a)}
.cat-confidence{background:linear-gradient(135deg,#f0ad27,#e17027)}
.ewl-product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.ewl-product{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(27,39,88,.08);display:flex;flex-direction:column}
.ewl-product-cover{aspect-ratio:4/5;padding:24px;color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.ewl-product-cover small{font-weight:900;text-transform:uppercase;letter-spacing:.13em}
.ewl-product-cover h3{font-size:1.8rem;line-height:1.05;margin:0;letter-spacing:-.04em}
.ewl-cover-purple{background:linear-gradient(150deg,#7b3ff2,#40229c)}
.ewl-cover-coral{background:linear-gradient(150deg,#ff667d,#b52f55)}
.ewl-cover-teal{background:linear-gradient(150deg,#18c8c8,#0b8392)}
.ewl-cover-gold{background:linear-gradient(150deg,#efb62e,#d46b26)}
.ewl-product-body{padding:20px;display:flex;flex-direction:column;flex:1}
.ewl-product-body p{color:var(--muted);font-size:.93rem;margin:0 0 18px}
.ewl-product-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.ewl-price{font-weight:900;color:var(--navy);font-size:1.1rem}
.ewl-link{font-weight:900;color:var(--purple)}
.ewl-free-panel{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;background:linear-gradient(135deg,var(--turquoise),#0f9aae);border-radius:30px;color:#fff;padding:50px;box-shadow:var(--shadow)}
.ewl-free-panel h2{margin-top:0}
.ewl-free-panel p{color:#eaffff}
.ewl-mini-list{display:grid;gap:12px}
.ewl-mini-item{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:16px 18px;font-weight:800}
.ewl-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ewl-step{background:#fff;border-radius:20px;padding:28px;box-shadow:var(--shadow)}
.ewl-step-number{width:46px;height:46px;border-radius:14px;background:var(--gold);display:grid;place-items:center;color:var(--navy);font-weight:950;font-size:1.2rem}
.ewl-step h3{margin:18px 0 8px}
.ewl-step p{color:var(--muted);margin:0}
.ewl-newsletter{background:linear-gradient(120deg,var(--purple),#5132b8);border-radius:30px;color:#fff;padding:52px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.ewl-newsletter h2{margin:0 0 10px}
.ewl-newsletter p{color:#eee8ff;margin:0}
.ewl-newsletter form{display:flex;gap:10px}
.ewl-newsletter input{flex:1;border:0;border-radius:999px;padding:15px 20px;font-size:1rem;min-width:0}
.ewl-newsletter button{border:0;background:var(--gold);color:var(--navy)}
.ewl-disclaimer{font-size:.87rem;color:var(--muted);background:#f7f8fc;border-left:4px solid var(--purple);padding:18px 20px;border-radius:0 12px 12px 0;margin-top:38px}
.ewl-footer{background:#0a1027;color:#cdd2ec;padding:62px 0 30px}
.ewl-footer-grid{display:grid;grid-template-columns:1.3fr .8fr .8fr 1fr;gap:38px}
.ewl-footer h4{color:#fff;margin-top:0}
.ewl-footer a{color:#cdd2ec}
.ewl-footer a:hover{color:var(--gold)}
.ewl-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ewl-footer-bottom{border-top:1px solid #242c50;margin-top:42px;padding-top:22px;font-size:.86rem;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.ewl-content{padding:60px 0}
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(4,1fr);gap:22px}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff;box-shadow:0 8px 25px rgba(27,39,88,.07)}
.woocommerce ul.products li.product .button{background:var(--purple);color:#fff;border-radius:999px}
.woocommerce div.product .button,.woocommerce button.button,.woocommerce a.button{background:var(--purple);color:#fff;border-radius:999px}
@media(max-width:980px){
  .ewl-nav{display:none}.ewl-menu-toggle{display:block}.ewl-hero-grid{grid-template-columns:1fr;min-height:auto}.ewl-guide-stack{height:360px;max-width:600px}.ewl-category-grid{grid-template-columns:repeat(2,1fr)}.ewl-product-grid,.woocommerce ul.products{grid-template-columns:repeat(2,1fr)!important}.ewl-free-panel,.ewl-newsletter{grid-template-columns:1fr}.ewl-footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .ewl-container{width:min(100% - 28px,1180px)}.ewl-header-inner{min-height:70px}.ewl-brand span:last-child{display:none}.ewl-hero-grid{padding:52px 0}.ewl-hero h1{font-size:2.7rem}.ewl-guide-stack{height:300px;transform:scale(.82);transform-origin:left top}.ewl-guide-card.two{left:115px}.ewl-guide-card.three{left:220px}.ewl-category-grid,.ewl-product-grid,.woocommerce ul.products,.ewl-steps,.ewl-footer-grid{grid-template-columns:1fr!important}.ewl-section{padding:60px 0}.ewl-free-panel,.ewl-newsletter{padding:30px 24px}.ewl-newsletter form{flex-direction:column}.ewl-guide-stack{display:none}
}

/* v1.1 – inner pages, resources and richer WooCommerce presentation */
.ewl-page-hero{max-width:850px;margin:0 0 42px}.ewl-page-hero h1{font-size:clamp(2.4rem,5vw,4.4rem);line-height:1;letter-spacing:-.055em;margin:8px 0 16px}.ewl-page-intro,.ewl-page-hero p{font-size:1.08rem;color:var(--muted)}
.ewl-inner-hero{padding:82px 0;color:#fff}.ewl-inner-hero h1{font-size:clamp(2.6rem,5vw,4.8rem);line-height:.98;letter-spacing:-.055em;max-width:860px;margin:8px 0 18px}.ewl-inner-hero p{font-size:1.15rem;max-width:700px;color:rgba(255,255,255,.9)}.ewl-inner-purple{background:linear-gradient(125deg,var(--navy),var(--purple))}.ewl-inner-teal{background:linear-gradient(125deg,#087f91,var(--turquoise))}.ewl-inner-coral{background:linear-gradient(125deg,#a72d50,var(--coral))}
.ewl-article-grid,.ewl-resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.ewl-article-card,.ewl-resource-card{border:1px solid var(--line);border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(27,39,88,.08)}.ewl-article-image img,.ewl-resource-card>a img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.ewl-article-card-body,.ewl-resource-card>div{padding:24px}.ewl-article-card h2,.ewl-resource-card h2{font-size:1.45rem;line-height:1.15;letter-spacing:-.03em;margin:8px 0}.ewl-article-card h2 a,.ewl-resource-card h2 a{color:var(--navy)}.ewl-article-card p,.ewl-resource-card p{color:var(--muted)}.ewl-card-meta{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--purple);font-weight:900}.ewl-badge{display:inline-flex;border-radius:999px;padding:6px 11px;background:var(--gold);color:var(--navy);font-size:.74rem;line-height:1;font-weight:950;text-transform:uppercase;letter-spacing:.1em}.ewl-placeholder-resource{min-height:250px;display:flex;align-items:flex-end;background:linear-gradient(135deg,#fff7dc,#fff)}
.ewl-two-col,.ewl-contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:60px;align-items:start}.ewl-two-col h2,.ewl-contact-grid h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.05;letter-spacing:-.045em}.ewl-colour-panel,.ewl-contact-card{background:linear-gradient(140deg,var(--navy-2),#35256f);border-radius:26px;padding:34px;color:#fff;box-shadow:var(--shadow)}.ewl-colour-panel h3,.ewl-contact-card h3{font-size:1.55rem;margin-top:0}.ewl-colour-panel ul{margin:0;padding-left:20px;display:grid;gap:10px}.ewl-contact-card p{color:#e6e9ff}.ewl-editor-content{margin-top:52px}.ewl-narrow{max-width:880px}.ewl-legal-box{background:#fff;border:1px solid var(--line);border-radius:24px;padding:36px;box-shadow:var(--shadow)}.ewl-legal-box h2{color:var(--navy);margin-top:32px}.ewl-legal-box h2:first-child{margin-top:0}
.ewl-empty{background:var(--cream);border-radius:24px;padding:36px}.ewl-empty-large{padding:70px;max-width:900px}.ewl-empty input[type="search"]{padding:13px 16px;border:1px solid var(--line);border-radius:999px;min-width:260px}.ewl-empty input[type="submit"]{background:var(--purple);color:#fff;border:0;border-radius:999px;padding:13px 20px;font-weight:800}
.ewl-content article>h1{font-size:clamp(2.35rem,5vw,4.2rem);line-height:1;letter-spacing:-.05em}.ewl-content article p,.ewl-content article li{font-size:1.02rem}.ewl-content blockquote{margin:30px 0;padding:24px 28px;background:var(--cream);border-left:5px solid var(--gold);border-radius:0 18px 18px 0;font-size:1.08rem}
.woocommerce .woocommerce-breadcrumb{color:var(--muted);font-size:.88rem;margin-bottom:22px}.woocommerce .woocommerce-breadcrumb a{color:var(--purple)}.woocommerce-products-header__title.page-title,.woocommerce div.product .product_title{font-size:clamp(2.2rem,4vw,3.8rem);line-height:1;letter-spacing:-.05em;color:var(--navy)}.woocommerce ul.products li.product img{border-radius:14px}.woocommerce ul.products li.product .woocommerce-loop-product__title{color:var(--navy);font-size:1.12rem;line-height:1.2}.woocommerce ul.products li.product .price,.woocommerce div.product p.price{color:var(--purple);font-weight:900}.woocommerce span.onsale{background:var(--coral);min-height:auto;min-width:auto;padding:7px 10px;line-height:1;border-radius:999px}.woocommerce div.product div.images img{border-radius:22px}.woocommerce div.product .summary{background:var(--cream);padding:30px;border-radius:24px}.woocommerce div.product form.cart .button{padding:14px 22px}.woocommerce-message,.woocommerce-info{border-top-color:var(--turquoise);background:#f2ffff}.woocommerce-message::before,.woocommerce-info::before{color:var(--turquoise)}.woocommerce-checkout input.input-text,.woocommerce-checkout textarea,.woocommerce-cart input.input-text,.ewl-contact-grid input,.ewl-contact-grid textarea,.ewl-contact-grid select{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit}
@media(max-width:900px){.ewl-article-grid,.ewl-resource-grid{grid-template-columns:repeat(2,1fr)}.ewl-two-col,.ewl-contact-grid{grid-template-columns:1fr}.ewl-colour-panel,.ewl-contact-card{max-width:none}}
@media(max-width:620px){.ewl-article-grid,.ewl-resource-grid{grid-template-columns:1fr}.ewl-inner-hero{padding:58px 0}.ewl-empty-large{padding:34px 24px}.ewl-legal-box{padding:26px 22px}}


/* v1.2 – browse, guide formats, organisations and accessibility */
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:5px}
.ewl-format-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.ewl-format-card{position:relative;overflow:hidden;border-radius:24px;padding:30px;min-height:230px;color:#fff;box-shadow:var(--shadow)}.ewl-format-card h3{font-size:1.65rem;margin:8px 0}.ewl-format-card p{color:rgba(255,255,255,.9);margin-bottom:18px}.ewl-format-card small{text-transform:uppercase;letter-spacing:.13em;font-weight:900}.ewl-format-card a{color:#fff;font-weight:900}.ewl-format-card.quick{background:linear-gradient(145deg,#0b8e9d,var(--turquoise))}.ewl-format-card.full{background:linear-gradient(145deg,#5e2dd0,var(--purple))}.ewl-format-card.workbook{background:linear-gradient(145deg,#ca4b61,var(--coral))}.ewl-format-card:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12);right:-45px;bottom:-55px}
.ewl-topic-band{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.ewl-topic-pill{display:inline-flex;padding:9px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--navy);font-weight:800;font-size:.9rem}.ewl-topic-pill:hover{background:var(--cream)}
.ewl-library-hero{background:linear-gradient(125deg,#101a3a 0%,#3d2d85 48%,#7b3ff2 100%);padding:86px 0;color:#fff}.ewl-library-hero h1{font-size:clamp(3rem,6vw,5.5rem);line-height:.95;letter-spacing:-.06em;margin:8px 0 20px}.ewl-library-hero p{max-width:720px;font-size:1.13rem;color:#eeebff}.ewl-library-search{margin-top:28px;display:flex;gap:10px;max-width:700px}.ewl-library-search input{flex:1;border:0;border-radius:999px;padding:16px 20px;font:inherit;min-width:0}.ewl-library-search button{border:0}
.ewl-org-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.ewl-org-card{border-radius:22px;padding:28px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.ewl-org-card h3{margin:10px 0 8px;color:var(--navy)}.ewl-org-card p{color:var(--muted)}.ewl-icon-disc{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:var(--gold);color:var(--navy);font-weight:950}
.ewl-callout{border-radius:28px;padding:42px;background:linear-gradient(125deg,var(--navy),var(--navy-2));color:#fff;display:grid;grid-template-columns:1.3fr .7fr;gap:35px;align-items:center}.ewl-callout h2{margin:0 0 12px;font-size:clamp(2rem,4vw,3.4rem);line-height:1}.ewl-callout p{color:#dfe4ff}.ewl-callout-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.ewl-faq{display:grid;gap:14px;max-width:900px}.ewl-faq details{border:1px solid var(--line);border-radius:16px;background:#fff;padding:18px 20px}.ewl-faq summary{cursor:pointer;font-weight:900;color:var(--navy)}.ewl-faq details p{color:var(--muted);margin:12px 0 0}
@media(max-width:900px){.ewl-format-grid,.ewl-org-grid{grid-template-columns:1fr}.ewl-callout{grid-template-columns:1fr}.ewl-callout-actions{justify-content:flex-start}.ewl-library-search{flex-direction:column}.ewl-library-search button{width:100%}}
@media(max-width:980px){.ewl-nav.is-open{display:block;position:absolute;left:20px;right:20px;top:75px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:18px}.ewl-nav.is-open ul{display:grid;gap:4px}.ewl-nav.is-open a{display:block;padding:10px 12px}.ewl-header-inner>.ewl-btn{display:none}}


/* v1.4 clean header overrides */
.ewl-header{background:#fff;border-bottom:1px solid rgba(15,23,42,.08);box-shadow:0 4px 18px rgba(15,23,42,.05)}
.ewl-header-inner{min-height:76px;gap:26px}
.ewl-brand{flex:0 0 auto}.ewl-brand span{font-size:1.03rem;line-height:1.15;max-width:220px}.ewl-logo-mark{width:46px;height:46px;border-radius:14px;font-size:.84rem}
.ewl-nav{margin-left:auto}.ewl-nav ul{display:flex;align-items:center;justify-content:flex-end;gap:4px;list-style:none;margin:0;padding:0;flex-wrap:nowrap}
.ewl-nav li{margin:0}.ewl-nav a{display:block;padding:10px 11px;border-radius:10px;text-decoration:none;font-size:.92rem;font-weight:700;color:#17213a;white-space:nowrap}
.ewl-nav a:hover,.ewl-nav .current-menu-item>a{background:rgba(101,46,220,.08);color:#652edc}
@media(max-width:980px){.ewl-header-inner{flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.ewl-nav{width:100%;margin-left:0;overflow-x:auto;padding-bottom:2px}.ewl-nav ul{justify-content:flex-start;min-width:max-content}}


/* v1.5 library discoverability */
.ewl-new-library{background:#fff}
#all-guides{scroll-margin-top:100px}
.woocommerce ul.products li.product .woocommerce-loop-product__title{color:var(--navy);font-weight:800}


/* v1.6 BROWSE THE LIBRARY VISUAL REFINEMENT */
.ewl-library-page .ewl-section-head {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.ewl-library-page .ewl-section-head h1,
.ewl-library-page .ewl-section-head h2 {
    letter-spacing: -0.02em;
}
.ewl-library-page .ewl-format-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-top: 28px;
}
.ewl-library-page .ewl-format-card {
    position: relative;
    min-height: 220px;
    padding: 28px;
    border-radius: 24px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    box-shadow: 0 16px 38px rgba(15, 23, 42, .12);
    transition: transform .2s ease, box-shadow .2s ease;
}
.ewl-library-page .ewl-format-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 46px rgba(15, 23, 42, .17);
}
.ewl-library-page .ewl-format-card:nth-child(1) {
    background: linear-gradient(145deg,#673ab7,#8f5be8);
}
.ewl-library-page .ewl-format-card:nth-child(2) {
    background: linear-gradient(145deg,#079ca8,#20bdc3);
}
.ewl-library-page .ewl-format-card:nth-child(3) {
    background: linear-gradient(145deg,#ee6d5f,#f29267);
}
.ewl-library-page .ewl-format-card h3 {
    color: #fff;
    font-size: 1.55rem;
    margin-bottom: 10px;
}
.ewl-library-page .ewl-format-card p {
    color: rgba(255,255,255,.9);
    margin-bottom: 18px;
}
.ewl-library-page .ewl-format-card .ewl-link {
    color: #fff;
    font-weight: 800;
}
.ewl-library-page .ewl-category-grid {
    gap: 18px;
}
.ewl-library-page .ewl-category-card {
    min-height: 185px;
    padding: 24px;
    border-radius: 22px;
    border: 0;
    box-shadow: 0 10px 28px rgba(15,23,42,.08);
}
.ewl-library-page .ewl-category-card h3 {
    font-size: 1.32rem;
    margin-bottom: 8px;
}
.ewl-library-page .ewl-category-card p {
    max-width: 32ch;
}
.ewl-library-page .ewl-category-card::after {
    content: "Explore →";
    display: block;
    margin-top: 18px;
    font-weight: 800;
    font-size: .9rem;
}
.ewl-library-page .ewl-product-grid,
.ewl-library-page ul.products {
    gap: 28px;
}
.ewl-library-page .ewl-product,
.ewl-library-page ul.products li.product {
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 12px 34px rgba(15,23,42,.08);
    background: #fff;
    transition: transform .2s ease, box-shadow .2s ease;
}
.ewl-library-page .ewl-product:hover,
.ewl-library-page ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(15,23,42,.13);
}
.ewl-library-page ul.products li.product img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    margin: 0;
}
.ewl-library-page ul.products li.product .woocommerce-loop-product__title,
.ewl-library-page ul.products li.product .price,
.ewl-library-page ul.products li.product .button {
    margin-left: 18px;
    margin-right: 18px;
}
.ewl-library-page ul.products li.product .woocommerce-loop-product__title {
    font-size: 1.08rem;
    line-height: 1.35;
    padding-top: 16px;
}
.ewl-library-page ul.products li.product .price {
    color: #0d9fa8;
    font-weight: 800;
}
.ewl-library-page ul.products li.product .button {
    margin-bottom: 20px;
    border-radius: 999px;
}
.ewl-library-page .ewl-section + .ewl-section {
    border-top: 1px solid rgba(15,23,42,.06);
}
@media (max-width: 900px) {
    .ewl-library-page .ewl-format-grid {
        grid-template-columns: 1fr;
    }
    .ewl-library-page .ewl-format-card {
        min-height: 180px;
    }
}


/* v1.7 SINGLE PRODUCT / GUIDE SALES PAGE */
.single-product .site-main,
.single-product main {
    background: #f8fbfc;
}
.single-product div.product {
    max-width: 1180px;
    margin: 34px auto 60px;
    padding: 34px;
    background: #fff;
    border-radius: 28px;
    box-shadow: 0 18px 50px rgba(15,23,42,.08);
}
.single-product div.product .woocommerce-product-gallery {
    border-radius: 22px;
    overflow: hidden;
    background: #edf8f7;
}
.single-product div.product .woocommerce-product-gallery img {
    border-radius: 22px;
}
.single-product div.product .summary {
    padding: 8px 8px 8px 26px;
}
.single-product div.product .product_title {
    font-size: clamp(2rem,4vw,3.25rem);
    line-height: 1.04;
    color: #073d55;
    letter-spacing: -.035em;
    margin-bottom: 14px;
}
.single-product div.product .price {
    color: #0d9fa8 !important;
    font-size: 1.45rem !important;
    font-weight: 800;
}
.single-product div.product .woocommerce-product-details__short-description {
    font-size: 1.08rem;
    line-height: 1.7;
    color: #40586a;
    margin: 20px 0;
}
.single-product div.product form.cart .button,
.single-product div.product .single_add_to_cart_button {
    border: 0;
    border-radius: 999px !important;
    padding: 15px 28px !important;
    font-weight: 800 !important;
    background: #0d9fa8 !important;
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(13,159,168,.2);
}
.single-product div.product .product_meta {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #e1ecee;
    font-size: .92rem;
    color: #647785;
}
.single-product .woocommerce-tabs {
    max-width: 980px;
    margin: 30px auto 0;
}
.single-product .woocommerce-tabs ul.tabs {
    padding: 0 !important;
    border: 0 !important;
}
.single-product .woocommerce-tabs ul.tabs::before { display:none !important; }
.single-product .woocommerce-tabs ul.tabs li {
    border: 0 !important;
    background: #eaf8f7 !important;
    border-radius: 999px !important;
    margin-right: 8px !important;
}
.single-product .woocommerce-tabs .panel {
    background:#fff;
    border-radius:22px;
    padding:30px !important;
    box-shadow:0 12px 34px rgba(15,23,42,.06);
}
.single-product .related.products {
    max-width:1180px;
    margin:50px auto;
}
.single-product .related.products > h2 {
    text-align:center;
    color:#073d55;
    font-size:2rem;
    margin-bottom:28px;
}
.single-product .ewl-guide-benefits {
    max-width:1180px;
    margin:0 auto 34px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}
.single-product .ewl-guide-benefit {
    background:#eaf8f7;
    border-radius:18px;
    padding:20px;
    text-align:center;
    color:#17324a;
    font-weight:700;
}
.single-product .ewl-guide-benefit strong {
    display:block;
    color:#0d9fa8;
    margin-bottom:4px;
}
@media(max-width:800px){
    .single-product div.product { margin:18px 12px 40px; padding:20px; }
    .single-product div.product .summary { padding:20px 0 0; }
    .single-product .ewl-guide-benefits { grid-template-columns:1fr; margin-left:12px; margin-right:12px; }
}


/* v1.8 FINAL PRODUCT PAGE POLISH */
.single-product div.product {
    padding: 40px;
}
.single-product div.product .summary {
    padding-left: 34px;
}
.single-product div.product .woocommerce-product-gallery {
    box-shadow: 0 16px 34px rgba(13,159,168,.10);
}
.single-product div.product .price {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 999px;
    background: #eaf8f7;
    margin: 2px 0 10px;
}
.single-product div.product .woocommerce-product-details__short-description p:first-child {
    margin-top: 0;
}
.single-product div.product .quantity {
    display: none !important;
}
.single-product div.product form.cart {
    margin-top: 24px !important;
}
.single-product div.product .single_add_to_cart_button {
    width: 100%;
    min-height: 54px;
    font-size: 1.04rem !important;
}
.single-product div.product .single_add_to_cart_button::after {
    content: " • Instant PDF access";
    font-weight: 600;
    opacity: .88;
}
.single-product div.product .product_meta {
    font-size: .88rem;
}
.single-product div.product .product_meta .sku_wrapper {
    display: none;
}
.single-product .woocommerce-tabs ul.tabs li.additional_information_tab,
.single-product .woocommerce-tabs ul.tabs li.reviews_tab {
    display: none !important;
}
.single-product .woocommerce-tabs .panel h2:first-child {
    color: #073d55;
    font-size: 1.6rem;
    margin-top: 0;
}
.single-product .ewl-digital-includes {
    max-width: 980px;
    margin: 24px auto 34px;
    padding: 30px;
    background: linear-gradient(145deg,#073d55,#0d6370);
    border-radius: 24px;
    color: #fff;
    box-shadow: 0 16px 38px rgba(7,61,85,.16);
}
.single-product .ewl-digital-includes-head {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 24px;
}
.single-product .ewl-digital-includes .ewl-kicker {
    color: #9de4e3;
}
.single-product .ewl-digital-includes h2 {
    color: #fff;
    font-size: 1.9rem;
    margin: 6px 0 8px;
}
.single-product .ewl-digital-includes p {
    color: rgba(255,255,255,.84);
    margin: 0;
}
.single-product .ewl-digital-includes-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
}
.single-product .ewl-digital-includes-item {
    display: flex;
    gap: 10px;
    align-items: center;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 14px;
    padding: 13px 15px;
    font-weight: 700;
}
.single-product .ewl-check {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #1fc1c7;
    color: #fff;
    font-size: .88rem;
    font-weight: 900;
}
.single-product .woocommerce-tabs .panel {
    font-size: 1.01rem;
    line-height: 1.72;
}
.single-product .related.products ul.products li.product {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15,23,42,.08);
}
@media(max-width:800px){
    .single-product div.product {
        padding: 20px;
    }
    .single-product div.product .summary {
        padding-left: 0;
    }
    .single-product .ewl-digital-includes {
        margin-left: 12px;
        margin-right: 12px;
        padding: 22px;
    }
    .single-product .ewl-digital-includes-grid {
        grid-template-columns: 1fr;
    }
}


/* v1.9 STRIPE-SAFE CLASSIC CART + CHECKOUT */
.ewl-commerce-page {
    background: #f8fbfc;
    min-height: 65vh;
}
.ewl-commerce-container {
    max-width: 1080px;
}
.ewl-commerce-heading {
    max-width: 720px;
    margin-bottom: 30px;
}
.ewl-commerce-heading h1 {
    margin: 5px 0 8px;
    color: #073d55;
    font-size: clamp(2.2rem,5vw,3.7rem);
    line-height: 1;
    letter-spacing: -.045em;
}
.ewl-commerce-heading p {
    color: #5e7180;
    font-size: 1.05rem;
    margin: 0;
}
.ewl-checkout-page form.checkout,
.ewl-cart-page .woocommerce-cart-form,
.ewl-cart-page .cart-collaterals {
    background: #fff;
    border-radius: 24px;
}
.ewl-checkout-page form.checkout {
    padding: 28px;
    box-shadow: 0 14px 38px rgba(15,23,42,.07);
}
.ewl-checkout-page #customer_details {
    margin-bottom: 24px;
}
.ewl-checkout-page h3,
.ewl-cart-page h2 {
    color: #073d55;
}
.ewl-checkout-page .woocommerce-billing-fields__field-wrapper,
.ewl-checkout-page .woocommerce-additional-fields__field-wrapper {
    display: grid;
    gap: 4px;
}
.ewl-checkout-page .form-row {
    margin-bottom: 12px !important;
}
.ewl-checkout-page input.input-text,
.ewl-checkout-page textarea,
.ewl-checkout-page select {
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid #d9e4e7;
    border-radius: 11px;
    background: #fff;
}
.ewl-checkout-page #order_review_heading {
    margin-top: 28px;
}
.ewl-checkout-page #payment {
    background: #f5fbfb !important;
    border-radius: 18px !important;
}
.ewl-checkout-page #payment ul.payment_methods {
    padding: 18px !important;
    border-bottom: 1px solid #dce9ea !important;
}
.ewl-checkout-page #payment div.payment_box {
    background: #fff !important;
    border-radius: 12px;
}
.ewl-checkout-page #payment div.payment_box::before {
    display: none !important;
}
.ewl-checkout-page #place_order {
    width: 100%;
    min-height: 54px;
    border: 0;
    border-radius: 999px;
    background: #0d9fa8;
    color: #fff;
    font-weight: 800;
    font-size: 1.03rem;
}
.ewl-cart-page .woocommerce-cart-form {
    padding: 24px;
    box-shadow: 0 12px 34px rgba(15,23,42,.06);
}
.ewl-cart-page .cart-collaterals {
    margin-top: 22px;
    padding: 24px;
}
.ewl-cart-page .checkout-button {
    border-radius: 999px !important;
    background: #0d9fa8 !important;
}
@media (max-width: 760px) {
    .ewl-checkout-page form.checkout,
    .ewl-cart-page .woocommerce-cart-form,
    .ewl-cart-page .cart-collaterals {
        padding: 18px;
    }
}


/* v2.0 SINGLE PRODUCT ALIGNMENT FIX
   Keeps product image, product details and "What You Receive" content aligned consistently. */

.single-product div.product {
    display: grid !important;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    column-gap: 44px;
    row-gap: 0;
    align-items: start;
}

.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.single-product div.product .woocommerce-product-gallery {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
}

.single-product div.product .summary {
    grid-column: 2;
    grid-row: 1;
    padding: 0 !important;
    align-self: start;
}

/* Make the product artwork sit neatly within a fixed visual area. */
.single-product div.product .woocommerce-product-gallery__wrapper {
    margin: 0 !important;
}

.single-product div.product .woocommerce-product-gallery img {
    display: block;
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
}

/* Anything WooCommerce places after the gallery/summary spans the full product width. */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related,
.single-product div.product > section.related,
.single-product div.product > .up-sells,
.single-product div.product > .ewl-digital-includes,
.single-product div.product > .ewl-guide-benefits {
    grid-column: 1 / -1;
    width: 100% !important;
}

/* Keep reassurance/value panels centred beneath the two-column hero area. */
.single-product .ewl-digital-includes,
.single-product .ewl-guide-benefits {
    clear: both;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.single-product .ewl-digital-includes {
    margin-top: 34px !important;
}

.single-product .ewl-guide-benefits {
    margin-top: 22px !important;
}

/* Ensure the "What You Receive" heading doesn't inherit odd WooCommerce margins. */
.single-product .ewl-digital-includes-head {
    margin-left: auto;
    margin-right: auto;
    max-width: 720px;
}

/* Prevent long short-descriptions/buttons from pushing the summary vertically out of alignment. */
.single-product div.product .summary > *:first-child {
    margin-top: 0 !important;
}

/* Tablet/mobile: clean single column, image first, details second. */
@media (max-width: 900px) {
    .single-product div.product {
        display: block !important;
    }

    .single-product div.product .woocommerce-product-gallery,
    .single-product div.product .summary {
        width: 100% !important;
        max-width: 100% !important;
    }

    .single-product div.product .summary {
        margin-top: 24px !important;
    }

    .single-product .ewl-digital-includes,
    .single-product .ewl-guide-benefits {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}


/* v2.1 PRODUCT SUMMARY STRUCTURE FIX */

/* Restore WooCommerce's natural product wrapper, then explicitly size its two primary columns. */
.single-product div.product {
    display: block !important;
}

.single-product div.product::after {
    content: "";
    display: table;
    clear: both;
}

.single-product div.product .woocommerce-product-gallery {
    float: left !important;
    width: 46% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product div.product .summary {
    float: right !important;
    width: 49% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Keep all summary content, including What You Receive, in the same right-hand column. */
.single-product .summary .ewl-guide-benefits,
.single-product .summary .ewl-digital-includes {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    clear: both;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Compact reassurance row within the summary column. */
.single-product .summary .ewl-guide-benefits {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 20px !important;
    margin-bottom: 14px !important;
}

.single-product .summary .ewl-guide-benefit {
    text-align: left;
    padding: 12px 14px;
    border-radius: 13px;
}

/* Make What You Receive a neat card aligned with the cover rather than a full-width banner. */
.single-product .summary .ewl-digital-includes {
    margin-top: 14px !important;
    margin-bottom: 0 !important;
    padding: 22px !important;
    border-radius: 20px;
}

.single-product .summary .ewl-digital-includes-head {
    text-align: left;
    margin: 0 0 16px !important;
    max-width: none !important;
}

.single-product .summary .ewl-digital-includes-head h2 {
    font-size: 1.55rem;
    line-height: 1.15;
}

.single-product .summary .ewl-digital-includes-grid {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.single-product .summary .ewl-digital-includes-item {
    padding: 10px 11px;
    font-size: .9rem;
}

/* Description tabs and related products begin only after both columns finish. */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related,
.single-product div.product > section.related,
.single-product div.product > .up-sells {
    clear: both !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-top: 34px;
}

/* Ensure the square product artwork remains fully visible and top-aligned. */
.single-product div.product .woocommerce-product-gallery img {
    width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: contain;
}

@media (max-width: 900px) {
    .single-product div.product .woocommerce-product-gallery,
    .single-product div.product .summary {
        float: none !important;
        width: 100% !important;
    }

    .single-product div.product .summary {
        margin-top: 24px !important;
    }

    .single-product .summary .ewl-digital-includes-grid {
        grid-template-columns: 1fr;
    }
}


/* v2.2 PRODUCT LAYOUT — TWO-COLUMN HERO + FULL-WIDTH VALUE SECTIONS */

/* Main product hero: image left, purchase information right. */
.single-product div.product {
    display: block !important;
}

.single-product div.product::after {
    content: "";
    display: table;
    clear: both;
}

.single-product div.product .woocommerce-product-gallery {
    float: left !important;
    width: 46% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product div.product .summary {
    float: right !important;
    width: 49% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product div.product .woocommerce-product-gallery img {
    width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: contain;
}

/* Full-width sections start only after the two-column hero has finished. */
.single-product .ewl-guide-benefits,
.single-product .ewl-digital-includes {
    clear: both !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Keep the three reassurance items clean and horizontal on desktop. */
.single-product .ewl-guide-benefits {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin-top: 34px !important;
    margin-bottom: 18px !important;
}

.single-product .ewl-guide-benefit {
    text-align: center !important;
    padding: 18px !important;
    border-radius: 16px;
}

/* Preserve the approved What You Receive styling, now full width. */
.single-product .ewl-digital-includes {
    margin-top: 0 !important;
    margin-bottom: 28px !important;
    padding: 30px !important;
    border-radius: 24px !important;
}

.single-product .ewl-digital-includes-head {
    text-align: center !important;
    max-width: 720px !important;
    margin: 0 auto 24px !important;
}

.single-product .ewl-digital-includes-head h2 {
    font-size: 1.9rem !important;
    line-height: 1.15 !important;
}

.single-product .ewl-digital-includes-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 12px !important;
}

.single-product .ewl-digital-includes-item {
    padding: 13px 15px !important;
    font-size: 1rem !important;
}

/* Description begins cleanly beneath the full-width value sections. */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related,
.single-product div.product > section.related,
.single-product div.product > .up-sells {
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-top: 10px !important;
}

@media (max-width: 900px) {
    .single-product div.product .woocommerce-product-gallery,
    .single-product div.product .summary {
        float: none !important;
        width: 100% !important;
    }

    .single-product div.product .summary {
        margin-top: 24px !important;
    }

    .single-product .ewl-guide-benefits {
        grid-template-columns: 1fr !important;
    }

    .single-product .ewl-digital-includes-grid {
        grid-template-columns: 1fr !important;
    }

    .single-product .ewl-digital-includes {
        padding: 22px !important;
    }
}


/* v2.3 — remove redundant WooCommerce Description tab label.
   The description content and its main heading remain unchanged. */
.single-product .woocommerce-tabs ul.tabs {
    display: none !important;
}

.single-product .woocommerce-tabs .panel {
    margin-top: 0 !important;
}
