/*
Theme Name: eFiler
Template: ollie
Description: eFiler child theme for Ollie.
Version: 1.0.57
Text Domain: efiler-ollie
*/

:root {
	--ef-paper: var(--wp--preset--color--base);
	--ef-stone: var(--wp--preset--color--tertiary);
	--ef-ink: var(--wp--preset--color--main);
	--ef-muted: var(--wp--preset--color--secondary);
	--ef-rule: var(--wp--preset--color--main-accent);
	--ef-green: var(--wp--preset--color--primary-alt);
	--ef-forest: var(--wp--preset--color--primary);
	--ef-deep: var(--wp--preset--color--primary-alt-accent);
	--ef-leaf: var(--wp--preset--color--primary-accent);
	--ef-head: var(--wp--preset--font-family--heading);
	--ef-gutter: clamp(20px, 4vw, 32px);
}

/* ---------- header ---------- */
/* Sticky on the template-part wrapper: the header inside it has no room to stick. */
.wp-site-blocks > .wp-block-template-part:first-child,
.wp-site-blocks > header:first-child { position: sticky; top: 0; z-index: 100; }
.admin-bar .wp-site-blocks > .wp-block-template-part:first-child,
.admin-bar .wp-site-blocks > header:first-child { top: var(--wp-admin--admin-bar--height, 32px); }
.ef-header { border-bottom: 1px solid var(--ef-rule); background: var(--ef-paper); transition: box-shadow .2s; }
.ef-scrolled .ef-header { box-shadow: 0 6px 20px rgba(29, 38, 33, .07); }
html { scroll-padding-top: 100px; }
.ef-header-inner { min-height: 84px; justify-content: flex-start !important; gap: 40px; }
/* WordPress zeroes margins on flex children, so this needs the extra weight to push the menu right */
.ef-header-inner > .ef-header-end { margin-left: auto !important; gap: 18px; align-items: center; }
/* Language switcher (eFiler Translate): a globe like the account/basket icons;
   the list opens below the icons so it never covers them */
.ef-lang { position: relative; }
.ef-lang > summary { list-style: none; cursor: pointer; }
.ef-lang > summary::-webkit-details-marker { display: none; }
.ef-lang-globe {
	display: block; width: 24px; height: 24px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9M12 3c-2.5 2.6-3.8 5.6-3.8 9s1.3 6.4 3.8 9'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9M12 3c-2.5 2.6-3.8 5.6-3.8 9s1.3 6.4 3.8 9'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ef-lang ul {
	position: absolute; right: 0; top: calc(100% + 12px); z-index: 200; min-width: 170px; margin: 0; padding: 6px 0; list-style: none;
	background: #fff; border: 1px solid var(--ef-rule); border-radius: 10px; box-shadow: 0 12px 30px rgba(29, 38, 33, .12);
}
.ef-lang li a { display: block; padding: 8px 18px; color: var(--ef-ink); font-size: .95rem; font-weight: 500; text-decoration: none; }
.ef-lang li a:hover, .ef-lang li a:focus-visible { background: var(--ef-leaf); color: var(--ef-forest); }
.ef-lang li a[aria-current] { color: var(--ef-forest); font-weight: 600; }
.ef-lang li a[aria-current]::after { content: " ✓"; }
/* WooCommerce adds account + basket icons after the menu; keep them tight to it */
.ef-header-inner .wc-block-customer-account, .ef-header-inner .wc-block-mini-cart { margin: 0; }
/* Header icons (account, basket, language): grey, turning green on a pale green circle */
.ef-header-inner .wc-block-customer-account a, .ef-header-inner .wc-block-mini-cart__button,
.ef-lang > summary {
	color: var(--ef-muted); padding: 6px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	transition: background-color .15s, color .15s;
}
.ef-header-inner .wc-block-customer-account a:hover, .ef-header-inner .wc-block-mini-cart__button:hover,
.ef-lang > summary:hover, .ef-lang[open] > summary {
	color: var(--ef-forest); background-color: var(--ef-leaf);
}
.ef-header .wp-block-site-logo img { height: auto; }
.ef-nav { font-size: 1rem; font-weight: 600; gap: 30px; }
/* Every link carries a 2px underline slot so hover/current never shift the text:
   pale green on hover, full green for the current page and "Try it free". */
.ef-nav .wp-block-navigation-item__content { color: var(--ef-muted); text-decoration: none !important; border-bottom: 2px solid transparent; padding-bottom: 2px; transition: border-color .15s, color .15s; }
.ef-nav .wp-block-navigation-item__content:hover,
.ef-nav .wp-block-navigation-item__content:focus-visible { color: var(--ef-forest); border-bottom-color: #b5d6a0; }
.ef-nav .current-menu-item > .wp-block-navigation-item__content,
.ef-nav .ef-nav-cta > .wp-block-navigation-item__content { color: var(--ef-forest); border-bottom-color: var(--ef-green); }

/* Checkout header: no cart page, so the only way back is Pricing. The mini-cart drops its "view cart" button too. */
.ef-back-link { margin: 0; font-size: 1rem; font-weight: 600; }
.ef-back-link a { color: var(--ef-muted); text-decoration: none; border-bottom: 2px solid transparent; padding-bottom: 2px; transition: border-color .15s, color .15s; }
.ef-back-link a:hover, .ef-back-link a:focus-visible { color: var(--ef-forest); border-bottom-color: #b5d6a0; }
.wc-block-mini-cart__footer-cart, .wp-block-woocommerce-mini-cart-cart-button-block { display: none !important; }
/* Book a demo dialog */
.ef-book { width: min(960px, calc(100vw - 32px)); height: min(760px, calc(100vh - 60px)); padding: 0; border: 0; border-radius: 12px; background: #fff; box-shadow: 0 24px 70px rgba(29, 38, 33, .3); overflow: visible; }
.ef-book::backdrop { background: rgba(22, 56, 33, .55); }
.ef-book button { position: absolute; top: -14px; right: -14px; z-index: 1; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--ef-forest); color: #fff; font-size: 22px; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(29, 38, 33, .35); }
.ef-book button:hover { background: var(--ef-green); }
.ef-book iframe { display: block; width: 100%; height: 100%; border: 0; border-radius: 12px; }
/* ---------- shared bits ---------- */
.ef-num { font-family: var(--ef-head); font-weight: 500; font-size: 15px; color: var(--ef-green); margin: 0 0 14px; }
.ef-intro { color: var(--ef-muted); font-size: 1.2rem; }
.ef-small { font-size: 14px; color: var(--ef-muted); }
.wp-block-button.ef-btn-line .wp-block-button__link { background: transparent; color: var(--ef-forest); box-shadow: inset 0 0 0 1.5px var(--ef-forest); }
.wp-block-button.ef-btn-line .wp-block-button__link:hover { background: var(--ef-leaf); }

/* ---------- hero ---------- */
/* Even line lengths, so a word like "to." never sits alone on the last line */
.ef-hero h1, .ef-page-hero h1 { text-wrap: balance; }
.ef-hero { text-align: center; padding-top: clamp(56px, 8vw, 96px); padding-bottom: 0; }
.ef-kicker { font-size: 15px; color: var(--ef-muted); }
.ef-kicker strong { color: var(--ef-forest); }
.ef-hero h1 { font-size: clamp(2.4rem, 5.4vw, 4.25rem); max-width: 900px; margin-left: auto; margin-right: auto; }
.ef-hero h1 em { font-style: normal; color: var(--ef-green); }
.ef-hero .ef-lede { font-size: clamp(1.1rem, 1.6vw, 1.3rem); color: var(--ef-muted); max-width: 720px; margin-left: auto; margin-right: auto; }

/* drawn Outlook window (decorative) */
.ef-stage { position: relative; max-width: 1020px; margin: 56px auto 0; }
.ef-stage::before { content: ""; position: absolute; inset: 60px -60px -1px; background: var(--ef-leaf); border-radius: 4px 4px 0 0; }
.ef-win { position: relative; background: #fff; border: 1px solid var(--ef-rule); border-bottom: 0; border-radius: 6px 6px 0 0; box-shadow: 0 -10px 40px rgba(31, 74, 44, .08); display: grid; grid-template-columns: 220px 1fr 300px; height: 380px; overflow: hidden; text-align: left; font-size: 14px; line-height: 1.45; }
.ef-win .ef-col { border-right: 1px solid #eee; padding: 16px; }
.ef-bar { height: 10px; background: #eef0ee; border-radius: 3px; margin: 9px 0; }
.ef-mail { padding: 13px 16px; border-bottom: 1px solid #f1f1f1; }
.ef-mail b { display: block; }
.ef-mail span { color: #888; font-size: 13px; }
.ef-mail.is-on { background: #f4f8f0; box-shadow: inset 3px 0 0 var(--ef-green); }
.ef-pane { background: #fbfcfa; padding: 18px; }
.ef-pane-title { margin: 0 0 12px; font: 600 15px var(--ef-head); display: flex; align-items: center; gap: 8px; }
.ef-pane-title img { width: 22px; height: 22px; border-radius: 50%; }
.ef-sugg { border: 1px solid #e3e8df; border-radius: 4px; padding: 10px 12px; margin-bottom: 8px; background: #fff; }
.ef-sugg small { display: block; color: #888; }
.ef-sugg.is-best { border-color: var(--ef-green); box-shadow: inset 3px 0 0 var(--ef-green); }
.ef-file { margin-top: 12px; background: var(--ef-forest); color: #fff; text-align: center; padding: 10px; border-radius: 4px; font-weight: 600; }

/* "works in" strip */
.ef-works { background: #fff; border-top: 1px solid var(--ef-rule); border-bottom: 1px solid var(--ef-rule); padding-top: 22px; padding-bottom: 22px; }
.ef-works p { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; margin: 0; font-size: 15px; color: var(--ef-muted); }
.ef-works strong { color: var(--ef-ink); font-weight: 600; }

/* ---------- inner page hero ---------- */
.ef-page-hero { padding-top: clamp(48px, 7vw, 88px); padding-bottom: clamp(48px, 7vw, 88px); }
.ef-page-hero h1 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); }
.ef-page-hero h1 em { font-style: normal; color: var(--ef-green); }
.ef-page-hero .ef-lede { font-size: 1.2rem; color: var(--ef-muted); }

/* the three parts, drawn as a stack */
.ef-parts-card { background: #fff; border: 1px solid var(--ef-rule); border-radius: 6px; padding: 22px; box-shadow: 14px 14px 0 var(--ef-leaf); }
.ef-part-chip { display: grid; grid-template-columns: 36px 1fr; column-gap: 12px; align-items: center; padding: 14px 4px; border-bottom: 1px dashed var(--ef-rule); }
.ef-part-chip span { grid-row: span 2; width: 36px; height: 36px; border-radius: 50%; background: var(--ef-leaf); color: var(--ef-forest); display: flex; align-items: center; justify-content: center; font: 600 15px var(--ef-head); }
.ef-part-chip b { font: 600 17px var(--ef-head); }
.ef-part-chip small { color: var(--ef-muted); font-size: 14px; }
.ef-part-chip.is-yours span { background: var(--ef-forest); color: #fff; }
.ef-part-store { margin-top: 16px; padding: 14px 16px; background: var(--ef-forest); color: #e9f1e4; border-radius: 4px; font-size: 15px; }

/* classic Outlook drawing: ribbon + drag-and-drop panel */
.ef-classic-win { background: #fff; border: 1px solid var(--ef-rule); border-radius: 6px; overflow: hidden; box-shadow: 14px 14px 0 var(--ef-leaf); font-size: 13.5px; line-height: 1.4; }
.ef-ribbon { display: flex; gap: 2px; background: #f3f4f2; border-bottom: 1px solid #e4e6e2; padding: 8px 10px 0; }
.ef-ribbon span { padding: 6px 12px; color: #6a726d; border-radius: 3px 3px 0 0; }
.ef-ribbon span.is-on { background: #fff; color: var(--ef-forest); font-weight: 600; box-shadow: inset 0 2px 0 var(--ef-green); }
.ef-ribbon-tools { display: flex; gap: 6px; padding: 10px; border-bottom: 1px solid #eee; }
.ef-tool { display: flex; flex-direction: column; align-items: center; gap: 5px; width: 64px; padding: 6px 0; border-radius: 4px; color: #555; font-size: 12px; }
.ef-tool i { width: 22px; height: 22px; border-radius: 4px; background: var(--ef-leaf); }
.ef-tool.is-main { background: var(--ef-leaf); color: var(--ef-forest); font-weight: 600; }
.ef-tool.is-main i { background: var(--ef-green); }
.ef-classic-body { display: grid; grid-template-columns: 150px 1fr; min-height: 210px; }
.ef-drop { border-right: 1px solid #eee; padding: 12px; background: #fbfcfa; }
.ef-drop b { display: block; font-size: 12px; color: var(--ef-forest); border: 1.5px dashed var(--ef-green); border-radius: 4px; padding: 8px; text-align: center; margin-bottom: 10px; }
.ef-drop small { display: block; padding: 5px 2px; color: #555; border-bottom: 1px solid #eee; }
.ef-classic-list .ef-mail { padding: 11px 14px; }

/* "direct connections" highlight panel */
.ef-callout { display: grid; grid-template-columns: 5fr 6fr; grid-template-rows: auto auto 1fr; gap: 20px 56px; align-items: start; margin-top: 40px !important; padding: 34px 38px; background: #fff; border: 1px solid var(--ef-rule); border-left: 4px solid var(--ef-green); border-radius: 4px; }
.ef-callout > * { margin: 0 !important; }
.ef-callout .ef-callout-tag { grid-column: 1 / -1; font: 500 14px var(--ef-head); color: var(--ef-green); }
.ef-callout h3 { font-size: 1.55rem; }
.ef-callout > p:not(.ef-callout-tag) { color: var(--ef-muted); grid-column: 1; }
.ef-callout .ef-ticks { grid-column: 2; grid-row: 2 / span 2; margin: 0 !important; }
.ef-callout .ef-ticks li:first-child { padding-top: 0; }
.ef-callout .ef-ticks li:first-child::before { top: 8px; }
.ef-band .ef-callout { background: rgba(255, 255, 255, .06); border-color: #2f5c3b; border-left-color: #9fd07f; }
.ef-band .ef-callout .ef-callout-tag { color: #9fd07f; }
.ef-band .ef-callout > p:not(.ef-callout-tag) { color: #cfe0c4; }
.ef-band .ef-callout .ef-ticks li { border-bottom-color: #2f5c3b; color: #e9f1e4; }
.ef-band .ef-callout .ef-ticks li::before { border-color: #9fd07f; }

/* ---------- pricing chooser ---------- */
.ef-chooser { display: grid; grid-template-columns: auto auto 1fr; gap: 22px 48px; align-items: end; padding: 0 0 26px; border-bottom: 1px solid var(--ef-rule); }
.ef-choice-label { display: block; font: 500 14px var(--ef-head); color: var(--ef-muted); margin-bottom: 10px; }
.ef-seg { display: flex; flex-wrap: wrap; gap: 4px 26px; }
.ef-seg button { appearance: none; background: none; border: 0; border-bottom: 2px solid transparent; padding: 4px 0 6px; font: 600 16px var(--wp--preset--font-family--primary); color: var(--ef-muted); cursor: pointer; }
.ef-seg button:hover { color: var(--ef-forest); }
.ef-seg button[aria-checked="true"] { color: var(--ef-forest); border-bottom-color: var(--ef-green); }
.ef-seg button:focus-visible { outline: 2px solid var(--ef-green); outline-offset: 3px; }
.ef-choice:last-child .ef-seg { justify-content: flex-end; }
.ef-choice:last-child .ef-choice-label { text-align: right; }

.ef-plan-list { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 36px; }
.ef-plan-list.is-classic { grid-template-columns: 3fr 2fr; }
.ef-plan { background: #fff; border: 1px solid var(--ef-rule); border-top: 4px solid var(--ef-forest); border-radius: 4px; padding: 34px 36px; }
.ef-plan.is-featured { border-top-color: var(--ef-green); box-shadow: 14px 14px 0 var(--ef-leaf); }
.ef-plan h3 { font-size: 1.7rem; margin: 0; }
.ef-plan-tag { color: var(--ef-muted); margin: 4px 0 22px; }
.ef-plan-price { margin: 0; display: flex; align-items: baseline; gap: 10px; }
.ef-amt { font: 600 3.4rem/1 var(--ef-head); color: var(--ef-forest); letter-spacing: -.03em; }
.ef-per { color: var(--ef-muted); font-size: 1.05rem; }
.ef-plan-billed { margin: 8px 0 22px; font-size: 15px; color: var(--ef-ink); }
.ef-plan-total { margin: 16px 0 0; font-size: 16px; color: var(--ef-ink); }
.ef-plan-total strong { font-family: var(--ef-head); font-size: 1.25em; font-weight: 600; color: var(--ef-forest); }
.ef-plan-step { display: block; margin-top: 4px; font-size: 14px; color: var(--ef-muted); }
.ef-plan:has(.ef-in-basket) { position: relative; }
.ef-in-basket { position: absolute; top: 26px; right: 26px; margin: 0; padding: 2px 10px; border-radius: 999px; background: var(--ef-leaf); color: var(--ef-forest); font-size: 13px; font-weight: 600; }
.ef-volume tr.is-on td { font-weight: 600; color: var(--ef-forest); }
.ef-plan-buy { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; padding: 18px 0; border-top: 1px solid var(--ef-rule); border-bottom: 1px solid var(--ef-rule); }
.ef-qty { display: flex; align-items: center; gap: 0; }
.ef-qty button { width: 38px; height: 42px; border: 1px solid var(--ef-rule); background: var(--ef-paper); font-size: 20px; color: var(--ef-forest); cursor: pointer; }
.ef-qty button:first-child { border-radius: 4px 0 0 4px; }
.ef-qty button:nth-child(3) { border-radius: 0 4px 4px 0; }
.ef-qty input { width: 64px; height: 42px; border: 1px solid var(--ef-rule); border-left: 0; border-right: 0; text-align: center; font: 600 17px var(--wp--preset--font-family--primary); -moz-appearance: textfield; }
.ef-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
.ef-qty span { margin-left: 10px; color: var(--ef-muted); font-size: 15px; }
.ef-buy { margin-left: auto; display: inline-block; text-decoration: none; background: var(--ef-forest); color: #fff !important; border-radius: 4px; padding: 12px 24px; font: 600 16px var(--ef-head); }
.ef-buy:hover { background: var(--ef-deep); }
.ef-plan-min { font-size: 14px; color: var(--ef-muted); margin: 12px 0 0; }
.ef-plan-lead { margin: 24px 0 0; font-weight: 600; }
.ef-plan .ef-ticks { margin-top: 14px; font-size: 16px; }
.ef-plan .ef-ticks li::before { top: 16px; }
.ef-plan-lead + .ef-ticks { margin-top: 6px; }
.ef-plan-none { color: var(--ef-muted); padding: 30px 0; }
.ef-volume { margin-top: 22px; font-size: 15px; }
.ef-volume summary { cursor: pointer; font-weight: 600; color: var(--ef-forest); }
.ef-volume table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.ef-volume td { padding: 8px 0; border-top: 1px solid var(--ef-rule); }
.ef-volume td:last-child { text-align: right; }
.ef-plan-aside { background: var(--ef-stone); border-top-color: var(--ef-rule); align-self: start; }
.ef-plan-aside h3 { font-size: 1.35rem; margin-bottom: 12px; }
.ef-plan-aside p { color: var(--ef-muted); }
.ef-pricing-foot { margin-top: 26px; }

/* key dates row */
.ef-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 40px; margin-top: 48px !important; }
.ef-stats > p { margin: 0 !important; padding-top: 18px; border-top: 2px solid var(--ef-forest); color: var(--ef-muted); }
.ef-stats > p strong { display: block; font: 600 clamp(1.8rem, 3vw, 2.4rem)/1.1 var(--ef-head); color: var(--ef-green); margin-bottom: 8px; letter-spacing: -.02em; }
.ef-steps.ef-steps-3 { grid-template-columns: repeat(3, 1fr); }
.ef-steps > li { margin: 0 !important; }

/* questions */
.ef-faq { border-top: 1px solid var(--ef-rule); }
.ef-faq .wp-block-details { margin: 0 !important; border-bottom: 1px solid var(--ef-rule); }
.ef-faq summary { cursor: pointer; list-style: none; position: relative; padding: 18px 36px 18px 0; font: 600 18px var(--ef-head); color: var(--ef-ink); }
.ef-faq summary::-webkit-details-marker { display: none; }
.ef-faq summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 24px; font-weight: 500; color: var(--ef-green); }
.ef-faq details[open] summary::after { content: "\2212"; }
.ef-faq details > p { margin: 0 0 20px; color: var(--ef-muted); }

/* screenshots and videos */
.ef-shots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 36px; align-items: start; }
.ef-shots > .ef-shot { margin: 0 !important; }
.ef-shots .ef-shot-wide { grid-column: span 2; }
.ef-shot img { display: block; width: 100%; height: auto; background: #fff; border: 1px solid var(--ef-rule); border-radius: 4px; padding: 8px; transition: box-shadow .2s; }
.ef-shot a:hover img { box-shadow: 8px 8px 0 var(--ef-leaf); }
.ef-shot figcaption, .ef-video-tile figcaption { margin-top: 8px; font-size: 15px; color: var(--ef-muted); text-align: left; }
.ef-videos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; margin-top: 56px; }
.ef-videos > .ef-video-tile { margin: 0 !important; }
.ef-videos > .ef-video-tile:nth-child(n+3) { grid-column: auto; }
.ef-video-tile video, .ef-yt { display: block; width: 100%; aspect-ratio: 16 / 9; background: #000; border-radius: 4px; overflow: hidden; }
.ef-yt iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (min-width: 961px) {
	.ef-videos { grid-template-columns: repeat(6, 1fr); }
	.ef-videos > .ef-video-tile { grid-column: span 3; }
	.ef-videos > .ef-video-tile:nth-child(n+3) { grid-column: span 2; }
}

/* admin trio under the storage grid */
.ef-admin { margin-top: 48px; }
.ef-admin h3 { font-size: 1.2rem; margin: 0 0 6px; }
.ef-admin p { color: var(--ef-muted); margin: 0; }

/* numbered steps */
.ef-steps { list-style: none; counter-reset: ef-step; padding: 0; margin: 40px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 32px; }
.ef-steps li { counter-increment: ef-step; border-top: 2px solid var(--ef-forest); padding-top: 18px; color: var(--ef-muted); }
.ef-steps > li:first-child { padding-top: 18px !important; }
.ef-steps li::before { content: counter(ef-step, decimal-leading-zero); display: block; font: 600 34px/1 var(--ef-head); color: var(--ef-green); margin-bottom: 14px; }
.ef-steps li strong { display: block; color: var(--ef-ink); font: 600 18px var(--ef-head); margin-bottom: 6px; }

/* plans table extras */
.ef-plus { display: inline-block; vertical-align: middle; margin-left: 6px; font: 500 12px var(--ef-head); letter-spacing: 0; color: var(--ef-forest); background: var(--ef-leaf); padding: 3px 8px; border-radius: 3px; }
.ef-plans small { font: 400 14px var(--wp--preset--font-family--primary); color: var(--ef-muted); }
.ef-yes, .ef-no { position: relative; padding-left: 22px; }
.ef-yes::before { content: ""; position: absolute; left: 3px; top: 6px; width: 11px; height: 6px; border-left: 2px solid var(--ef-green); border-bottom: 2px solid var(--ef-green); transform: rotate(-45deg); }
.ef-no { color: #9aa39d; }
.ef-no::before { content: ""; position: absolute; left: 3px; top: 11px; width: 10px; border-top: 2px solid #c8ccc5; }
.wp-block-table.ef-plans .ef-price-row td { font-size: 17px; color: var(--ef-ink); }
.wp-block-table.ef-plans .ef-price-row strong { font: 600 22px var(--ef-head); color: var(--ef-forest); }
.wp-block-table.ef-plans tbody td:first-child { width: 40%; }

/* band list */
.ef-band-list { list-style: none; padding: 0; margin: 0; }
.ef-band-list li { padding: 16px 0; border-top: 1px solid #2f5c3b; }
.ef-band-list li:last-child { border-bottom: 1px solid #2f5c3b; }
.ef-band-list strong { color: #fff; }

/* link grid */
.ef-links > p a { color: var(--ef-forest); text-decoration: none; }
.ef-links > p a:hover { text-decoration: underline; }

/* intro video */
.ef-video { margin: 0; padding: 10px; background: #fff; border: 1px solid var(--ef-rule); border-radius: 6px; box-shadow: 14px 14px 0 var(--ef-leaf); }
.ef-video video { display: block; width: 100%; border-radius: 3px; }

/* ---------- numbered sections ---------- */
.ef-part { padding-top: clamp(64px, 9vw, 110px); padding-bottom: clamp(64px, 9vw, 110px); }
.ef-part h2 { font-size: clamp(1.9rem, 3.4vw, 2.65rem); }
.ef-split { gap: clamp(32px, 6vw, 80px); }
.ef-rows { gap: 0; }
.ef-row { display: grid; grid-template-columns: 1fr 2fr; gap: 30px; padding: 26px 0; border-top: 1px solid var(--ef-rule); margin: 0 !important; }
.ef-rows > .ef-row:last-child { border-bottom: 1px solid var(--ef-rule); }
.ef-row h3 { font-size: 1.25rem; margin: 0; }
.ef-row p { margin: 0; color: var(--ef-muted); }
.ef-problems .ef-row p { grid-column: 2; }
.ef-problems .ef-row h3 { grid-row: span 2; }
.ef-problems .ef-row { row-gap: 10px; }
.ef-row p.ef-answer { color: var(--ef-ink); }
.ef-answer strong { color: var(--ef-forest); }
.ef-quotes-title { margin: clamp(44px, 6vw, 72px) 0 22px; font-size: 1.25rem; }
.ef-rating { margin: -10px 0 22px; color: var(--ef-muted); }
.ef-rating strong { color: var(--ef-forest); }
.ef-quotes { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.ef-quotes::-webkit-scrollbar { display: none; }
.ef-quotes .wp-block-quote { flex: 0 0 calc((100% - 44px) / 3); box-sizing: border-box; scroll-snap-align: start; }
.ef-quote-nav { display: flex; justify-content: flex-end; gap: 10px; margin: -56px 0 12px; }
.ef-quote-nav button { width: 44px; height: 44px; border: 1px solid var(--ef-forest); border-radius: 50%; background: transparent; color: var(--ef-forest); font-size: 20px; line-height: 1; cursor: pointer; transition: background-color .15s, color .15s, opacity .15s; }
.ef-quote-nav button:hover:not(:disabled) { background: var(--ef-forest); color: #fff; }
.ef-quote-nav button:disabled { opacity: .3; cursor: default; }
@media (prefers-reduced-motion: reduce) { .ef-quotes { scroll-behavior: auto; } }
.ef-quotes .wp-block-quote { margin: 0 !important; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; background: #fff; border: 1px solid var(--ef-rule); border-left: 3px solid var(--ef-green); border-radius: 6px; }
.ef-quotes .wp-block-quote p { margin: 0; font-size: 1.05rem; line-height: 1.55; color: var(--ef-ink); }
.ef-quotes cite { font-size: 14px; font-style: normal; font-weight: 600; color: var(--ef-forest); }

/* new Outlook band */
.ef-band { background: var(--ef-forest); color: #e9f1e4; }
.ef-band h2 { color: #fff; }
.ef-band .ef-num { color: #9fd07f; }
.ef-band p { opacity: .92; font-size: 1.15rem; }
.ef-band a { color: #fff; font-weight: 600; }
.ef-band .ef-year { opacity: 1; font: 600 clamp(4.5rem, 10vw, 7.5rem)/1 var(--ef-head); color: var(--ef-green); letter-spacing: -.04em; margin: 0; }
.ef-band .ef-year-note { opacity: 1; font-size: 1.1rem; color: #cfe0c4; font-size: 1.1rem; margin-top: 10px; }

/* classic comparison table */
.wp-block-table.ef-compare table { border: 0; border-collapse: collapse; font-size: 16px; width: 100%; }
.wp-block-table.ef-compare th, .wp-block-table.ef-compare td { border: 0; background: transparent; border-top: 1px solid var(--ef-rule); padding: 14px 16px 14px 0; text-align: left; vertical-align: top; }
.wp-block-table.ef-compare tr:last-child td { border-bottom: 1px solid var(--ef-rule); }
.wp-block-table.ef-compare thead th { border-top: 0; font: 600 16px var(--ef-head); }
.wp-block-table.ef-compare thead th:nth-child(2) { color: var(--ef-green); }
.wp-block-table.ef-compare tbody td:first-child { color: var(--ef-muted); width: 26%; }
.wp-block-table.ef-compare thead { border-bottom: 0; }

/* storage grid */
.ef-stores { gap: 0 !important; border-left: 1px solid var(--ef-rule); border-top: 1px solid var(--ef-rule); margin-top: 40px; }
.ef-stores > p { margin: 0 !important; padding: 26px; border-right: 1px solid var(--ef-rule); border-bottom: 1px solid var(--ef-rule); font: 600 18px var(--ef-head); }
.ef-stores > p span { display: block; font: 400 15px var(--wp--preset--font-family--primary); color: var(--ef-muted); margin-top: 4px; }

/* pricing */
.ef-pricing { background: var(--ef-stone); }
.ef-price { font: 600 clamp(3.5rem, 7vw, 4.75rem)/1 var(--ef-head); color: var(--ef-forest); margin: 0; }
.ef-price-note { color: var(--ef-muted); font-size: 1.2rem; margin-top: 10px; }
.ef-ticks { list-style: none; padding: 0; margin: 26px 0 0; }
.ef-ticks li { padding: 10px 0 10px 30px; border-bottom: 1px dashed var(--ef-rule); position: relative; }
.ef-ticks li::before { content: ""; position: absolute; left: 4px; top: 18px; width: 12px; height: 7px; border-left: 2px solid var(--ef-green); border-bottom: 2px solid var(--ef-green); transform: rotate(-45deg); }
.ef-soon { margin-top: 30px; padding: 18px 22px; border-left: 3px solid var(--ef-green); background: #fff; color: var(--ef-muted); font-size: 16px; }

/* closing */
.ef-close { text-align: center; }
.ef-close h2 { font-size: clamp(2rem, 4vw, 3.25rem); max-width: 760px; margin-left: auto; margin-right: auto; }

/* ---------- footer ---------- */
.ef-footer { background: var(--ef-deep); color: #b9c9b0; font-size: 15px; padding-top: 56px; padding-bottom: 40px; }
.ef-footer a { color: #b9c9b0; text-decoration: none; }
.ef-footer a:hover { color: #fff; }
.ef-wordmark { font: 600 26px var(--ef-head); color: #fff; letter-spacing: -.02em; margin: 0 0 8px; }
.ef-foot-h { font: 500 16px var(--ef-head); color: #fff; letter-spacing: 0; margin: 0 0 10px; }
.ef-foot-links { list-style: none; padding: 0; margin: 0; }
.ef-foot-links li { margin: 4px 0; }
.ef-legal { border-top: 1px solid #2c4b35; padding-top: 20px; margin-top: 30px; font-size: 13px; color: #8ea595; }

/* ---------- small screens ---------- */
@media (max-width: 960px) {
	.ef-win { grid-template-columns: 1fr 260px; }
	.ef-win .ef-col { display: none; }
	.ef-steps { grid-template-columns: 1fr 1fr; gap: 28px 28px; }
	.ef-chooser { grid-template-columns: auto 1fr; }
	.ef-choice:last-child { grid-column: 1 / -1; }
	.ef-choice:last-child .ef-seg { justify-content: flex-start; }
	.ef-choice:last-child .ef-choice-label { text-align: left; }
	.ef-stage::before { inset: 60px -20px -1px; }
}
@media (max-width: 781px) {
	.ef-win { grid-template-columns: 1fr; height: auto; }
	.ef-win .ef-list { display: none; }
	.ef-row { grid-template-columns: 1fr; gap: 6px; }
	.ef-problems .ef-row p { grid-column: 1; }
	.ef-quotes .wp-block-quote { flex-basis: 100%; }
	.ef-quote-nav { margin: 0 0 14px; }
	.ef-stores { grid-template-columns: 1fr 1fr !important; }
	.ef-links { grid-template-columns: 1fr !important; }
	.ef-callout { grid-template-columns: 1fr; padding: 26px 22px; }
	.ef-chooser { grid-template-columns: 1fr; }
	.ef-shots { grid-template-columns: 1fr 1fr; }
	.ef-shots .ef-shot-wide { grid-column: 1 / -1; }
	.ef-videos { grid-template-columns: 1fr; }
	.ef-choice:last-child .ef-seg { justify-content: flex-start; }
	.ef-choice:last-child .ef-choice-label { text-align: left; }
	.ef-plan-list, .ef-plan-list.is-classic { grid-template-columns: 1fr; }
	.ef-plan { padding: 26px 22px; }
	.ef-buy { margin-left: 0; }
	.ef-callout .ef-ticks { grid-column: 1; grid-row: auto; }
	.ef-steps, .ef-steps.ef-steps-3 { grid-template-columns: 1fr; }
	.ef-stats { grid-template-columns: 1fr; gap: 22px; }
	.ef-compare { overflow-x: auto; }
	.ef-nav .ef-nav-cta > .wp-block-navigation-item__content { border: 0; }
	.ef-header-inner:has(.ef-back-link) { gap: 12px; }
	.ef-header-end:has(.ef-back-link) { gap: 8px; }
	.ef-back-link { font-size: .9rem; line-height: 1.25; text-align: right; }
}

/* Blog cards: nothing inside a post may stretch its column or the page */
.wp-block-post-template > .wp-block-post { min-width: 0; }
.wp-block-post-template .wp-block-post * { min-width: 0; max-width: 100%; }
.wp-block-post-template .wp-block-post-title,
.wp-block-post-template .wp-block-post-excerpt { overflow-wrap: anywhere; }
.wp-block-post-template .wp-block-post-featured-image img { width: 100%; height: auto; }

/* Three tall, narrow screenshots under "What each part does" */
.ef-shots.ef-shots-parts { grid-template-columns: repeat(3, minmax(0, 280px)); justify-content: space-between; margin-top: 48px; }
.ef-shots-parts figcaption { margin-top: 10px; font-size: .875rem; color: var(--ef-muted); }
@media (max-width: 781px) { .ef-shots.ef-shots-parts { grid-template-columns: minmax(0, 280px); justify-content: center; } }

/* Contact and download forms */
.ef-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 22px; margin-bottom: 28px; padding: 28px; background: #fff; border: 1px solid var(--ef-rule); border-radius: 6px; scroll-margin-top: 100px; }
.ef-form-download { grid-template-columns: 1fr; }
.ef-form .ef-field { margin: 0; }
.ef-form .ef-field-wide, .ef-form-note { grid-column: 1 / -1; }
.ef-form label { display: block; margin-bottom: 6px; font-weight: 600; font-size: .9375rem; color: var(--ef-ink); }
.ef-form input[type=text], .ef-form input[type=email], .ef-form input[type=tel], .ef-form textarea { box-sizing: border-box; width: 100%; padding: 11px 12px; font: inherit; color: var(--ef-ink); background: #fff; border: 1px solid #b9bfb6; border-radius: 4px; }
.ef-form input:focus, .ef-form textarea:focus { outline: 2px solid var(--ef-green); outline-offset: 1px; border-color: var(--ef-green); }
.ef-checks { margin: 0; padding: 0; border: 0; }
.ef-checks legend { margin-bottom: 8px; padding: 0; font-weight: 600; font-size: .9375rem; color: var(--ef-ink); }
.ef-checks label { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-weight: 400; }
.ef-form-actions { margin: 0; }
.ef-form button { cursor: pointer; }
.ef-form-note { margin: 0; padding: 12px 14px; background: #eaf4ea; border-left: 3px solid var(--ef-green); border-radius: 4px; color: var(--ef-ink); }
.ef-form-note.is-error { background: #fbeceb; border-left-color: #b3362b; }
.ef-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 781px) { .ef-form { grid-template-columns: 1fr; padding: 20px; } }

/* Blog page heading */
.ef-blog-title { margin: clamp(32px, 5vw, 56px) auto 28px; }
