/* EC Magazine / WordPress components and accessibility overrides */
:root{--ecm-radius:17px}
body{overflow-wrap:break-word}
button,a,input,textarea{touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #e98b68;outline-offset:3px}
.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}
.screen-reader-text:focus{position:absolute!important;clip:auto!important;width:auto;height:auto;top:8px;left:8px;background:#fff;z-index:99999;padding:12px;border-radius:8px}
.brand-group{flex-shrink:0}.custom-logo-link{display:block;max-width:220px}.custom-logo-link img{width:auto;height:auto;max-width:220px;max-height:64px;object-fit:contain}
.nav{min-width:0}.nav-list,.footer-menu{display:flex;align-items:center;gap:29px;padding:0;margin:0;list-style:none}.nav-list li,.footer-menu li{list-style:none;padding:0;margin:0}
.nav-list a{display:block;color:#4d5650;font-size:13px;font-weight:720;padding:13px 0;white-space:nowrap;text-decoration:none;letter-spacing:-.02em}
.nav-list a:hover,.nav-list .current-menu-item>a,.nav-list .current_page_item>a{color:#d96142}
.intro h1{word-break:keep-all}.intro-grid .sub{white-space:normal}.ecm-title-dot{color:var(--accent)}
.hero-primary h2{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all;margin-top:39px;font-size:35px;line-height:1.3}
.hero-primary .hero-copy{width:63%;padding-right:4px}.hero-primary p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hero-primary .hero-copy,.mini-feature .mini-copy{min-width:0}.hero-primary .hero-art img{width:100%;height:100%;object-fit:cover}
.mini-feature{min-width:0}.mini-feature h3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mini-image img{width:100%;height:100%;object-fit:cover}
.filters a{border:1px solid #e8e8e3;background:#fff;color:#5b655f;padding:10px 18px;border-radius:40px;font-weight:700;font-size:12px;line-height:1.1;display:inline-block;white-space:nowrap}
.filters a:hover{border-color:#9bafa4}.filters a.active{background:#243b36;color:#fff;border-color:#243b36}
.stories .cards{margin-bottom:20px}.story-card .thumb{background:#e9eee7}.story-card .thumb img{width:100%;height:100%;object-fit:cover}
.story-card h3{min-height:0}.story-card h3 a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.story-card .excerpt{min-height:0}
.guide-banner-art{position:absolute;object-fit:cover;width:43%;height:100%;right:0;top:0;mix-blend-mode:multiply;opacity:.88}
.guide-banner .outline-btn{border-color:#bdcec4}.guide-banner .outline-btn:hover{background:#fff}
.guide-copy{width:66%}.guide-copy p:not(.kicker){max-width:450px}.guide-card{min-width:0}.guide-thumb img{width:100%;height:100%;object-fit:cover}
.footer .footer-menu{display:flex;gap:19px;flex-wrap:wrap}.footer a:hover{text-decoration:underline;text-underline-offset:4px}
.ecm-widget-zone{margin:35px auto}.ecm-widget-zone .widget{max-width:100%}.ecm-widget-zone img{max-width:100%;height:auto}
.ecm-pagination{display:flex;justify-content:center;margin:44px 0 76px}.ecm-pagination ul{padding:0;list-style:none;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}.ecm-pagination li{list-style:none}.ecm-pagination a,.ecm-pagination span{min-width:38px;height:38px;padding:0 11px;display:flex;justify-content:center;align-items:center;border:1px solid #e4e8e2;border-radius:999px;background:#fff;color:#243b36;font-size:12px;font-weight:700}.ecm-pagination .current,.ecm-pagination a:hover{background:#243b36;border-color:#243b36;color:#fff}
.ecm-archive-main{padding-top:72px;padding-bottom:85px;min-height:55vh}.ecm-archive-header{margin-bottom:36px;padding-bottom:26px;border-bottom:1px solid var(--line)}.ecm-archive-header h1{font-size:46px;letter-spacing:-.075em;margin:10px 0 12px;line-height:1.22;word-break:keep-all}.ecm-archive-header p{color:#6d7871;line-height:1.75;font-size:14px}.ecm-archive-main .cards{row-gap:41px}
.ecm-single-main{padding-top:34px;padding-bottom:90px}.ecm-crumb{display:flex;align-items:center;gap:9px;color:#879189;font-size:12px;margin-bottom:50px}.ecm-crumb a:hover{color:#d96545}.ecm-single-heading{max-width:930px;margin:0 auto 36px;text-align:center}.ecm-single-heading h1{font-size:clamp(34px,4.8vw,56px);line-height:1.32;letter-spacing:-.076em;word-break:keep-all;margin:16px 0 19px}.ecm-post-meta{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;color:#7f8b81;font-size:12px}.ecm-single-cover{margin:0 auto 48px;max-width:1050px;border-radius:19px;overflow:hidden}.ecm-single-cover img{display:block;width:100%;max-height:620px;object-fit:cover;height:auto}.ecm-single-cover figcaption{text-align:center;font-size:12px;color:#7b8781;background:#fff;padding:10px}
.ecm-article-layout{display:grid;grid-template-columns:minmax(0,740px) minmax(200px,260px);gap:65px;justify-content:center;align-items:start}.ecm-article-primary{min-width:0}.ecm-entry-content{font-size:16px;line-height:1.95;color:#293631;letter-spacing:-.025em;overflow-wrap:break-word}.ecm-entry-content>*{max-width:100%}.ecm-entry-content h2{font-size:28px;margin:46px 0 15px;line-height:1.4;letter-spacing:-.05em;color:#162c24}.ecm-entry-content h3{font-size:23px;margin:35px 0 14px}.ecm-entry-content p{margin:0 0 1.5em}.ecm-entry-content ul,.ecm-entry-content ol{padding-left:1.6em;margin:0 0 1.5em}.ecm-entry-content li{margin-bottom:.4em}.ecm-entry-content a{color:#b95336;text-decoration:underline;text-underline-offset:3px}.ecm-entry-content a:hover{color:#713620}.ecm-entry-content img{max-width:100%;height:auto;border-radius:7px}.ecm-entry-content figure{margin:26px auto}.ecm-entry-content figcaption{font-size:12px;line-height:1.5;color:#7a857b;text-align:center;margin-top:10px}.ecm-entry-content iframe,.ecm-entry-content video{max-width:100%}.ecm-entry-content .wp-block-embed__wrapper{max-width:100%;overflow:hidden}.ecm-entry-content blockquote{margin:28px 0;padding:12px 26px;border-left:3px solid #ed744f;background:#f0f4f0}.ecm-entry-content blockquote p:last-child{margin-bottom:0}.ecm-entry-content pre{padding:20px;background:#1d332e;color:#fff;white-space:pre;overflow:auto;border-radius:10px}.ecm-entry-content code{overflow-wrap:anywhere}.ecm-entry-content table{border-collapse:collapse;width:100%;font-size:14px}.ecm-entry-content th,.ecm-entry-content td{padding:12px;border:1px solid #e2e5de;vertical-align:top}.ecm-entry-content th{background:#e9eee8}.ecm-entry-content .wp-block-table{overflow-x:auto}.ecm-entry-content .alignwide{width:100%}.ecm-entry-content .alignleft{float:left;margin:6px 22px 14px 0;max-width:48%}.ecm-entry-content .alignright{float:right;margin:6px 0 14px 22px;max-width:48%}.ecm-entry-content:after{content:'';display:table;clear:both}
.ecm-affiliate-notice{background:#edf3ed;padding:15px 18px;border-left:3px solid #789785;border-radius:5px;font-size:12px;color:#4b665a;line-height:1.7;margin:0 0 28px}
.ecm-article-aside{position:sticky;top:25px}.ecm-aside-panel{padding:27px 26px;border-radius:15px;background:#e8eee8}.ecm-aside-panel h2{font-size:26px;line-height:1.4;letter-spacing:-.06em;margin:13px 0}.ecm-aside-panel p{font-size:12px;line-height:1.9;color:#6c7d71}.ecm-aside-panel a{display:inline-block;margin-top:15px;font-size:12px;font-weight:700;color:#b65f45}
.ecm-post-tags{margin-top:35px;display:flex;gap:8px;flex-wrap:wrap}.ecm-post-tags a{font-size:12px;border-radius:30px;padding:7px 11px;color:#44564a;background:#edf0eb}.ecm-post-tags a:hover{background:#d7e6d9}.ecm-post-share{display:flex;align-items:center;gap:12px;margin:29px 0;border-top:1px solid #e7eae4;border-bottom:1px solid #e7eae4;padding:18px 0;font-size:12px;font-weight:700}.ecm-post-share button{padding:8px 14px;border:1px solid #cbd8cf;border-radius:30px;background:#fff;color:#344c3b}.ecm-copy-status{color:#536e59;font-weight:400;font-size:11px}.ecm-post-nav .nav-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ecm-post-nav .nav-links>div{border:1px solid #e6e9e2;padding:18px;border-radius:11px}.ecm-post-nav small{display:block;color:#a1aaa2;margin-bottom:8px}.ecm-post-nav a{font-weight:700;font-size:13px;line-height:1.6}.ecm-related{margin-top:92px}.ecm-page-main .ecm-entry-content{max-width:900px;margin:0 auto}.ecm-page-main .ecm-single-heading{margin-bottom:50px}
.ecm-comments{margin-top:38px;padding-top:23px;border-top:1px solid #e4e8e2}.ecm-comments h2,.ecm-comments h3{font-size:20px}.comment-list{list-style:none;padding:0}.comment-list li{list-style:none;padding:12px 0;border-bottom:1px solid #e9eae7}.comment-list .children{padding-left:24px}.comment-content p{line-height:1.7;font-size:14px}.comment-form input:not([type=submit]),.comment-form textarea{width:100%;padding:13px;border:1px solid #d4ddd2;border-radius:8px;background:#fff;max-width:100%}.comment-form input[type=submit]{border:0;border-radius:30px;background:#243b36;color:#fff;padding:11px 25px;cursor:pointer}
.ecm-error{text-align:center;padding:140px 20px 180px;min-height:60vh}.ecm-error h1{font-size:clamp(28px,5vw,48px);margin:15px 0}.ecm-error p{color:#79847a;margin-bottom:24px}.ecm-error .outline-btn{display:inline-flex}
.search-dialog{z-index:500}.search-dialog[aria-hidden="true"]{visibility:hidden;pointer-events:none}.search-dialog.open{visibility:visible;pointer-events:auto}.ecm-search-open{overflow:hidden}.search-panel{max-width:660px}.search-dialog .search-field{display:flex;gap:10px;align-items:center;border:1px solid #dce3db;border-radius:12px;background:#fff;padding:6px 9px 6px 18px}.search-dialog .search-field input{width:100%;min-width:0;box-shadow:none;border:0;outline:0;padding:10px 0}.search-dialog .search-field button{flex-shrink:0;background:#243b36;color:#fff;border:0;border-radius:8px;padding:12px 17px;white-space:nowrap;font-size:12px}.ecm-search-help{color:#758277;font-size:12px;margin-top:16px}
@media(max-width:1000px){.nav-list{gap:16px}.nav-list a{font-size:12px}.hero-primary .hero-copy{width:68%}.hero-primary h2{font-size:31px}.ecm-article-layout{gap:30px;grid-template-columns:minmax(0,1fr) 210px}}
@media(max-width:760px){.nav{z-index:100}.nav.open{display:block}.nav-list{display:block}.nav-list li{border-bottom:1px solid #efefe9}.nav-list a{font-size:14px;text-align:left;padding:15px 7px}.intro h1{font-size:36px}.hero-primary .hero-copy{width:77%;padding-right:12px}.hero-primary h2{margin-top:44px;font-size:31px}.hero-primary .hero-art img{height:100%}.mini-feature h3{font-size:17px}.filters{overflow-x:auto;flex-wrap:nowrap;max-width:100%;padding-bottom:2px}.category-row{display:block}.category-title{display:block;margin-bottom:14px}.ecm-archive-main{padding-top:43px}.ecm-archive-header h1{font-size:34px}.ecm-article-layout{display:block}.ecm-article-aside{display:none}.ecm-single-main{padding-top:25px}.ecm-crumb{margin-bottom:35px}.ecm-single-heading h1{font-size:34px}.ecm-single-cover{border-radius:10px;margin-bottom:35px}.ecm-entry-content{font-size:15px;line-height:1.9}.ecm-entry-content h2{font-size:24px}.ecm-entry-content h3{font-size:20px}.ecm-related{margin-top:60px}.ecm-post-nav .nav-links{grid-template-columns:1fr}.guide-banner-art{opacity:.32;width:60%}.guide-copy{width:92%}.footer .footer-menu{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.ecm-search-help{font-size:11px}}
@media(max-width:405px){.hero-primary .hero-copy{width:82%}.hero-primary h2{font-size:28px}.mini-feature h3{font-size:15px}.intro h1{font-size:33px}.ecm-post-meta{font-size:11px}.ecm-article-primary{max-width:100%}.ecm-entry-content .alignleft,.ecm-entry-content .alignright{float:none;max-width:100%;margin:15px 0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* EC Magazine v1.1 — dedicated contact page / plugin form styling. */
.ecm-contact-main{padding:34px 0 105px;min-height:68vh;background:linear-gradient(145deg,#f9f8f4 0%,#f4f6f0 65%,#f9f8f4 100%)}
.ecm-contact-crumb{margin-bottom:45px}
.ecm-contact-layout{display:grid;grid-template-columns:minmax(0, .94fr) minmax(0, 1fr);gap:80px;align-items:start}
.ecm-contact-intro{padding:54px 0 20px}
.ecm-contact-intro h1{font-size:clamp(38px,4.5vw,60px);letter-spacing:-.074em;line-height:1.28;word-break:keep-all;margin:20px 0 22px;font-weight:880}
.ecm-contact-intro h1 em{font-style:normal;color:#df7250}
.ecm-contact-lead{font-size:16px;line-height:1.95;color:#627268;letter-spacing:-.03em}
.ecm-contact-note{display:flex;align-items:flex-start;gap:17px;margin-top:75px;border-top:1px solid #d8dfd7;padding-top:26px}
.ecm-contact-note-symbol{display:grid;place-items:center;flex:none;background:#dae7dd;color:#2c5342;border-radius:50%;width:47px;height:47px;font-size:23px}
.ecm-contact-note strong{font-size:11px;color:#23473a;letter-spacing:.13em}
.ecm-contact-note p{font-size:13px;color:#79877f;line-height:1.9;margin:7px 0}
.ecm-contact-card{background:#fff;border:1px solid #ebefe8;border-radius:24px;box-shadow:0 20px 70px rgba(23,52,37,.055);padding:44px 44px 45px;min-width:0}
.ecm-contact-card-head{border-bottom:1px solid #e9ede8;padding-bottom:20px;margin-bottom:26px}
.ecm-contact-card-head h2{font-size:29px;letter-spacing:-.066em;line-height:1.3;margin:9px 0}
.ecm-contact-card-head p{font-size:13px;color:#849188;margin:0}
.ecm-contact-form,.ecm-contact-form p,.ecm-contact-form label{font-size:14px;line-height:1.85}
.ecm-contact-form p{margin:0 0 19px}
.ecm-contact-form label{display:block;color:#35483c;font-weight:700;margin-bottom:7px}
.ecm-contact-form label:has(input[type=checkbox]),.ecm-contact-form label:has(input[type=radio]){display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:400}
.ecm-contact-form :is(input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],select,textarea){display:block;width:100%;max-width:100%;font:inherit;font-size:14px;color:#213c2c;background:#fbfcfa;border:1px solid #dbe3dc;border-radius:10px;padding:13px 15px;line-height:1.55;min-height:48px;transition:border-color .15s,box-shadow .15s}
.ecm-contact-form textarea{resize:vertical;min-height:160px}
.ecm-contact-form :is(input,textarea,select):focus{outline:none;border-color:#527f67;box-shadow:0 0 0 3px rgba(80,128,96,.14)}
.ecm-contact-form :is(input[type=checkbox],input[type=radio]){accent-color:#243b36;width:auto;height:auto;margin:0 6px 0 0;vertical-align:middle}
.ecm-contact-form :is(button[type=submit],input[type=submit],.wpforms-submit,.wpcf7-submit,.form-submit){display:inline-flex;justify-content:center;align-items:center;width:100%;max-width:100%;padding:15px 20px;border:0;border-radius:10px;background:#253c34;color:#fff;font-weight:760;font-size:14px;cursor:pointer;transition:background .2s,transform .2s}
.ecm-contact-form :is(button[type=submit],input[type=submit],.wpforms-submit,.wpcf7-submit):hover{background:#365a48;transform:translateY(-1px)}
.ecm-contact-form :is(.wpcf7-response-output,.wpforms-confirmation-container-full,.form-message){border-radius:10px;padding:12px 15px;font-size:13px;line-height:1.65}
.ecm-contact-form .wpcf7-not-valid-tip,.ecm-contact-form .wpforms-error{color:#ad473d;font-size:12px}
.ecm-contact-form :is(.wpcf7-form-control-wrap,.wpforms-field-container,.wpforms-field,.wpforms-container){max-width:100%}
.ecm-contact-form .wpforms-field{margin-bottom:16px}
.ecm-contact-form .ecm-contact-setup{background:#f0f4ef;border:1px solid #d7e2d7;border-radius:12px;padding:19px;color:#4f6356}
.ecm-contact-form .entry-content p{margin-bottom:18px}
@media(max-width:980px){.ecm-contact-layout{gap:35px}.ecm-contact-intro{padding-top:25px}.ecm-contact-card{padding:34px 29px}}
@media(max-width:760px){.ecm-contact-main{padding:23px 0 70px}.ecm-contact-crumb{margin-bottom:25px}.ecm-contact-layout{grid-template-columns:1fr;gap:26px}.ecm-contact-intro{padding:0}.ecm-contact-intro h1{font-size:36px;margin:14px 0 16px}.ecm-contact-lead{font-size:14px}.ecm-contact-note{margin-top:24px;padding-top:19px}.ecm-contact-card{padding:28px 22px;border-radius:18px}.ecm-contact-card-head h2{font-size:25px}}

/* v1.1.1 — preserve WordPress 'main' menu groups and show real category dropdowns. */
.nav-list{gap:clamp(12px,1.45vw,26px)}
.nav-list>li{position:relative;flex:0 0 auto}
.nav-list .menu-item-has-children>a::after{content:'⌄';margin-left:6px;color:#76867a;font-size:12px;font-weight:700}
.nav-list .sub-menu{display:block;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity .16s ease,transform .16s ease,visibility .16s;position:absolute;top:100%;left:-17px;min-width:195px;max-width:min(280px,90vw);background:#fff;border:1px solid #e7ece7;border-radius:12px;box-shadow:0 14px 32px rgba(20,42,30,.12);list-style:none;padding:9px;margin:0;z-index:200}
.nav-list .sub-menu li{display:block;margin:0;padding:0}
.nav-list .sub-menu a{display:block;white-space:normal;padding:11px 12px;line-height:1.4;border-radius:7px;font-size:12px}
.nav-list .sub-menu a:hover,.nav-list .sub-menu .current-menu-item>a{background:#f1f5f0;color:#c85a3c}
.nav-list li:hover>.sub-menu,.nav-list li:focus-within>.sub-menu{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}
@media (min-width:761px) and (max-width:1150px){.header-inner{gap:14px}.nav-list{gap:13px}.nav-list>li>a{font-size:12px}.logo-text{font-size:9px}}
@media (max-width:760px){
 .nav{max-height:calc(100dvh - 70px);overflow-y:auto;overscroll-behavior:contain}
 .nav-list{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:0}
 .nav-list>li{flex:auto;width:100%;border-bottom:1px solid #f0f2ed}
 .nav-list>li>a{padding:13px 7px;white-space:normal;font-size:14px}
 .nav-list .sub-menu{position:static;display:block;visibility:visible;opacity:1;pointer-events:auto;transform:none;transition:none;box-shadow:none;border:none;border-radius:0;max-width:none;min-width:0;background:#f7f9f5;padding:2px 0 7px 12px;margin:0 0 9px}
 .nav-list .sub-menu a{font-size:13px;padding:10px 12px}
 .nav-list .menu-item-has-children>a::after{display:none}
}

/* AdSense placements: only output when a real ad slot ID is configured.
   We never draw an empty placeholder or force a fixed ad height. */
.ecm-ad-placement { width: 100%; max-width: 100%; margin: 28px auto; clear: both; }
.ecm-article-primary .ecm-ad-placement { padding: 0; margin: 28px 0; }
.ecm-ad-placement .adsbygoogle { width: 100%; }
@media (max-width: 767px) { .ecm-ad-placement { margin-top: 20px; margin-bottom: 20px; } }
