/* Patch v5 responsive refinements and member interface. */
.brand:not(.brand-footer),
.brand-footer {
	width: 255px;
	height: 56px;
	max-width: 255px;
	gap: 9px;
	flex: 0 0 255px;
}

.brand-emblem {
	width: 46px;
	height: 56px;
	object-fit: contain;
	flex: none;
}

.brand-text {
	min-width: 0;
}

.wordmark {
	font-size: 1.62rem;
	letter-spacing: -.035em;
	white-space: nowrap;
}

.wm-b,
.wm-r,
.wm-g {
	color: transparent;
	background-clip: text;
	-webkit-background-clip: text;
}

.wm-b { background-image: linear-gradient(100deg, #2b7bff, #63a4ff); }
.wm-r { background-image: linear-gradient(100deg, #f12e83, #db2a5a); }
.wm-g { background-image: linear-gradient(100deg, #09b96b, #44d27e); }
.brand-tag { margin-top: 3px; color: var(--ink); font-size: .62rem; font-weight: 700; white-space: nowrap; }
.brand-lt .brand-tag { color: #dfe6ff; }
.brand-footer .wm-b { background-image: linear-gradient(100deg, #6aa5ff, #a2c8ff); }
.brand-footer .wordmark { font-size: 1.55rem; }

.site-header,
.header-inner { overflow: visible; }

.primary-nav .menu > li > .nav-parent {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	min-height: 44px;
	margin: 0;
	padding: .55em .8em;
	border: 0;
	border-radius: 999px;
	background: none;
	color: var(--navy);
	font: 600 16px/1.2 var(--font-body);
	white-space: nowrap;
	cursor: pointer;
}

.primary-nav .menu { gap: 0; }
.primary-nav .menu > li > a,
.primary-nav .menu > li > .nav-parent {
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}
.primary-nav .menu > li > a { padding: .55em .8em; }
.primary-nav .menu > li > .nav-parent:hover,
.primary-nav .menu > li.is-open > .nav-parent { background: #ffe3ea; color: var(--pink-d); }
.mobile-submenu-indicator { display: none; }
@media (hover: hover) and (pointer: fine) and (min-width: 1001px) {
	.primary-nav .menu > li:hover > .sub-menu,
	.primary-nav .menu > li:focus-within > .sub-menu { display: block; }
}
.primary-nav .menu > li.is-open > .sub-menu { display: block; }

.sub-menu {
	z-index: 100;
	min-width: 240px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 12px 34px rgba(15, 31, 75, .17);
}

.ech-social-row {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

.ech-social-row > li {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
}
.ech-social-row > li > a {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #fff !important;
	transition: color .15s ease, transform .15s ease;
}
.ech-social-row > li > a:hover { transform: translateY(-2px); color: #ffd8e2 !important; }
.ech-social-row > li > a:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.ech-social-row svg { display: block; width: 24px; height: 24px; color: #fff; }
.ech-social-row .social-placeholder {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: rgba(255, 255, 255, .5);
	cursor: help;
}
.ech-social-row .social-placeholder svg { color: rgba(255, 255, 255, .5); opacity: .65; }

.site-footer { margin-top: 50px; color: #fff; }
.site-footer .container { max-width: 1180px; }
.footer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding: 56px 20px 24px; }
.footer-col h2 { margin: 0 0 18px; color: rgba(255,255,255,.85); font-size: 13px; font-weight: 700; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }
.footer-col > ul.ech-footer-links { display: grid; gap: 14px; }
.footer-col > ul.ech-footer-links > li { display: list-item; margin: 0; }
.site-footer a { color: #fff; font-size: 16px; line-height: 1.45; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 2px; }
.footer-brand p,.footer-updates p { max-width: 330px; margin: 18px 0; color: #fff; font-size: 16px; line-height: 1.55; }
.footer-updates-link { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; font-weight: 700; }
.footer-updates-link span { font-size: 1.5em; line-height: 1; }
.contact-form label { display: grid; gap: 6px; margin: 14px 0; font-weight: 700; }
.contact-form input,.contact-form textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.footer-bottom { display: flex; justify-content: center; width: 100%; box-sizing: border-box; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.12); text-align: center; }
.footer-bottom p { width: auto; float: none; margin: 0; color: rgba(255,255,255,.8); font-size: 14px; }

.error-404 { max-width: 720px; margin: 0 auto; text-align: center; }
.error-404-label { margin: 0; color: #e9eef9; font-size: clamp(5rem, 18vw, 10rem); font-weight: 900; line-height: .95; }
.error-404 h1 { margin: 14px 0; }
.error-404 .search-form { display: flex; width: min(560px, 100%); margin: 28px auto; gap: 10px; }
.error-404 .search-form input[type="search"] { min-width: 0; flex: 1; }
.error-popular { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 24px 0; padding: 0; list-style: none; }
.error-popular a { display: inline-flex; padding: 9px 14px; border-radius: 999px; background: #eef4ff; font-weight: 700; text-decoration: none; }
.error-latest-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 24px; text-align: left; }
@media (max-width: 1100px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .footer-grid { grid-template-columns: 1fr; gap: 24px; padding-top: 40px; } .ech-social-row { flex-wrap: wrap; } .error-latest-grid { grid-template-columns: 1fr; } }

.announcement.news-ticker {
	display: flex;
	width: 100%;
	min-height: 48px;
	align-items: center;
	gap: 14px;
	overflow: hidden;
	padding: 0 max(20px, calc((100% - 1160px) / 2));
	text-align: left;
}
.announcement-fallback { display: flex; height: 40px; align-items: center; padding: 0; }
.ticker-label { z-index: 1; flex: none; color: #ff8eaa; font-size: 13px; font-weight: 900; letter-spacing: .08em; }
.ticker-window { display: flex; min-width: 0; flex: 1; gap: 40px; overflow: hidden; }
.ticker-track { display: flex; width: max-content; flex: none; align-items: center; gap: 18px; white-space: nowrap; animation: ech-ticker-scroll var(--ticker-duration, 36s) linear infinite; }
.ticker-rotator { width: 100%; animation: none; }
.ticker-item { display: inline-flex; flex: none; align-items: center; gap: 9px; }
.ticker-item[hidden] { display: none; }
.ticker-item.is-current { animation: ticker-fade-in .35s ease both; }
.ticker-rotator .ticker-item:not(:first-child):not(.is-current) { display: none; }
.ticker-pill { padding: 4px 8px; border-radius: 999px; background: #142b5c; color: #fff; font-size: 10px; font-weight: 900; letter-spacing: .06em; }
.ticker-pill.is-free { background: #db2a5a; }
.ticker-item time { color: #d6dff3; font-size: 12px; }
.ticker-repeat { display: flex; align-items: center; gap: 18px; }
.ticker-track a { color: #fff; font-size: 17px; font-weight: 700; text-decoration: none; }
.ticker-track a:hover,.ticker-track a:focus-visible { color: #ffc6d4; text-decoration: underline; }
.ticker-dot { color: #f18aa5; font-size: .8rem; }
.news-ticker:hover .ticker-track,.news-ticker:focus-within .ticker-track { animation-play-state: paused; }
@keyframes ech-ticker-scroll { to { transform: translateX(calc(-100% - 40px)); } }
@keyframes ticker-fade-in { from { opacity: 0; } to { opacity: 1; } }

.resource-detail { max-width: 1220px; }
.resource-layout-v10 { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(0, .84fr); align-items: start; gap: 38px; margin: 24px 0 48px; }
.resource-gallery-column,.resource-summary { min-width: 0; }
.gallery-main { position: relative; overflow: hidden; border-radius: 18px; background: #f1f4fa; }
.gallery-main > img { display: block; width: 100%; max-height: 720px; height: auto; aspect-ratio: auto; object-fit: contain; object-position: center top; }
.preview-badge { position: absolute; top: 14px; left: 14px; padding: 6px 10px; border-radius: 999px; background: var(--navy); color: #fff; font-size: .7rem; font-weight: 900; letter-spacing: .08em; }
.preview-thumbnails { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; }
.preview-thumbnails a { flex: 1 1 0; min-width: 0; max-width: calc((100% - 20px) / 3); overflow: hidden; border: 2px solid transparent; border-radius: 10px; }
.preview-thumbnails a:focus-visible,.preview-thumbnails a:hover { border-color: var(--blue); }
.preview-thumbnails img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center top; }
.resource-summary h1 { margin-top: 0; }
.resource-summary section { margin: 22px 0; }
.resource-summary section h2 { margin-bottom: 9px; font-size: 1.3rem; }
.direct-answer { font-size: 1.05rem; line-height: 1.65; }
.included-list ul { display: grid; gap: 8px; padding: 0; list-style: none; }
.included-list li { position: relative; padding-left: 28px; }
.included-list li::before { position: absolute; left: 0; color: #23824b; content: "✓"; font-weight: 900; }
.resource-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0; }
.resource-chips span { padding: 6px 10px; border-radius: 999px; background: #eef4ff; color: var(--navy); font-size: .86rem; font-weight: 700; }
.digital-download { padding: 18px; border: 1px solid var(--line); border-radius: var(--r); background: #f8faff; }
.digital-download dl { display: grid; gap: 9px; margin: 0; }
.digital-download dl > div { display: flex; justify-content: space-between; gap: 18px; }
.digital-download dt { color: var(--muted); }
.digital-download dd { margin: 0; text-align: right; font-weight: 700; }
.resource-action { margin-top: 20px; }
.resource-action .btn,.resource-action > a { display: flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; }
.resource-action .fine { margin: 8px 0 0; text-align: center; color: var(--muted); font-size: .9rem; }
.price { margin: 0 0 10px; color: var(--navy); font-size: 1.5rem; font-weight: 900; }
.price del { margin-left: 8px; color: var(--muted); font-size: 1rem; font-weight: 500; }
.resource-editor-notice { padding: 12px; border: 1px dashed #b67b00; border-radius: 8px; background: #fff9e6; color: #6d4a00; font-size: .9rem; }
.owner-placeholder-note { margin: 12px 0; padding: 10px 14px; border: 1px dashed #b67b00; border-radius: 8px; background: #fff9e6; color: #6d4a00; font-size: .9rem; font-weight: 700; }
.resource-takeaways { margin: 48px 0; }
.takeaway-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.takeaway-card { display: flex; align-items: flex-start; gap: 10px; padding: 18px; border: 1px solid var(--line); border-radius: var(--r); background: #fff; }
.takeaway-card > span { color: #23824b; font-weight: 900; }
.last-reviewed { color: var(--muted); font-size: .9rem; }
@media (max-width: 760px) { .resource-layout-v10 { display: flex; flex-direction: column; gap: 22px; } .resource-summary { order: 1; } .resource-gallery-column { order: 0; } .takeaway-grid { grid-template-columns: 1fr; } }

@media (max-width: 760px) {
	.resource-detail .resource-gallery-column,.resource-detail .resource-summary { width: 100%; min-width: 0; }
	.resource-detail .resource-summary { display: flex; flex-direction: column; }
	.resource-detail .gallery-main { width: 100%; }
	.resource-detail .resource-summary h1 { margin: 0 0 18px; font-size: clamp(1.8rem, 6vw, 2.5rem); line-height: 1.12; }
	.resource-detail .resource-chips { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.resource-detail .resource-taxonomy-card { width: 100%; min-width: 0; }
	.resource-detail .resource-taxonomy-badges { gap: 8px; }
	.resource-detail .resource-action { width: 100%; }
	.resource-detail .resource-action .btn,.resource-detail .resource-action > a { min-height: 52px; }
}

.category-grid.tiles { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.category-grid.tiles li { min-width: 0; }
.category-grid .tile { position: relative; min-height: 150px; justify-content: center; padding: 16px 10px 22px; }
.category-grid .tile-go { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: 50%; background: #fff; color: var(--navy); }
.trending-section .section-head { align-items: center; }
.trending-section .section-head p { margin: 5px 0 0; color: var(--muted); }
.trending-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: stretch; gap: 20px; }
.trending-section:not(.featured-section) .resource-card,.featured-section .resource-card { display: flex; min-width: 0; height: 100%; flex-direction: column; }
.trending-section:not(.featured-section) .resource-card-link,.featured-section .resource-card-link { display: flex; min-width: 0; height: 100%; flex: 1; flex-direction: column; }
.trending-section:not(.featured-section) .resource-card .card-body,.featured-section .resource-card .card-body { width: 100%; min-height: 0; flex: 1; }
.trending-section:not(.featured-section) .resource-card-arrow,.featured-section .resource-card-arrow { right: 10px; bottom: 10px; }
.trending-grid .card-media { aspect-ratio: 16 / 10; }
.trending-section .resource-card-chips .resource-free-badge { position: static; }
.resource-grade { display: inline-flex; margin: 0 0 10px; padding: 3px 10px; border-radius: 999px; background: #e3f0ff; color: var(--navy); font-size: .8rem; font-weight: 800; }
.trending-placeholder { padding: 28px; border: 2px dashed #b8c2d9; border-radius: var(--r); text-align: center; color: var(--muted); }

.home-faq-section { min-width: 0; }
.home-faq-heading { margin-bottom: 18px; }
.home-faq-heading p { margin: 5px 0 0; color: var(--muted); }
.home-faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; min-width: 0; }
.home-faq-card { min-width: 0; overflow: hidden; border: 1px solid #dce5f1; border-radius: var(--r); color: #26324d; }
.home-faq-card--blue { border-color: #d6e5fa; background: #f3f8ff; }
.home-faq-card--pink { border-color: #f2d9e3; background: #fff5f8; }
.home-faq-card--green { border-color: #d6ebdf; background: #f2faf5; }
.home-faq-card--yellow { border-color: #eee4c8; background: #fffaf0; }
.home-faq-card--lavender { border-color: #e2dcf3; background: #f8f5ff; }
.home-faq-card > summary { display: flex; min-height: 72px; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; list-style: none; }
.home-faq-card > summary::-webkit-details-marker { display: none; }
.home-faq-card > summary::marker { content: ''; }
.home-faq-card > summary:focus-visible { position: relative; z-index: 1; outline: 3px solid var(--blue); outline-offset: -3px; border-radius: 12px; }
.home-faq-icon { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 11px; background: rgb(255 255 255 / 78%); font-size: 1.2rem; }
.home-faq-question { min-width: 0; flex: 1; color: #1c2d4c; font-size: 1rem; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.home-faq-toggle { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border: 1px solid rgb(38 50 77 / 16%); border-radius: 50%; background: rgb(255 255 255 / 78%); color: #18345f; font-size: 1.4rem; font-weight: 600; line-height: 1; }
.home-faq-toggle::before { content: '+'; }
.home-faq-card[open] .home-faq-toggle::before { content: '−'; }
.home-faq-answer { padding: 0 18px 18px 62px; }
.home-faq-answer p { margin: 0; color: #39475e; font-size: .95rem; line-height: 1.6; overflow-wrap: anywhere; }
.home-faq-action { margin: 22px 0 0; text-align: center; }
.home-faq-action .btn { min-height: 48px; }

.search-dialog {
	width: min(640px, calc(100vw - 32px));
	max-width: none;
	max-height: calc(100dvh - 32px);
	box-sizing: border-box;
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: 20px;
	background: #fff;
	color: var(--ink);
	overflow-x: hidden;
	overflow-y: auto;
	box-shadow: 0 24px 80px rgba(5, 15, 40, .32);
}
.search-dialog::backdrop { background: rgba(6, 18, 48, .62); backdrop-filter: blur(5px); }
.search-dialog-inner,.search-dialog-inner * { box-sizing: border-box; min-width: 0; }
.search-dialog-inner { position: relative; padding: 24px; overflow-x: hidden; }
.search-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.search-dialog-heading h2 { margin: 0 0 20px; text-align: left; font-size: 1.55rem; overflow-wrap: anywhere; }
.search-dialog .search-close { flex: none; background: #f2f4f9; font-size: 1.5rem; line-height: 1; }
.search-dialog .search-form { display: flex; width: 100%; max-width: none; gap: 10px; margin: 0; }
.search-dialog .search-form input[type="search"] { height: 52px; flex: 1; min-width: 0; padding: 0 14px; border: 2px solid var(--line); border-radius: 12px; font: inherit; font-size: 18px; }
.search-dialog .search-submit { display: inline-flex; width: 52px; height: 52px; min-width: 52px; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: var(--pink); color: #fff; }
.search-popular-label { margin: 24px 0 10px; color: var(--navy); font-weight: 800; }
.search-chips { display: flex; max-width: 100%; flex-wrap: wrap; gap: 8px; }
.search-chips a { display: inline-flex; max-width: 100%; padding: 7px 12px; border-radius: 999px; background: #eef4ff; text-decoration: none; font-weight: 700; white-space: normal; overflow-wrap: anywhere; }
.search-suggestions { display: grid; max-height: 240px; gap: 4px; overflow: auto; }
.search-suggestions:not(:empty) { margin-top: 12px; }
.search-suggestions a { padding: 9px 12px; border-radius: 8px; text-decoration: none; overflow-wrap: anywhere; }
.search-suggestions a:hover,.search-suggestions a:focus { background: #eef4ff; }
body.dialog-open { overflow: hidden; }
.icon-btn.account-link { flex: none; text-decoration: none; }

.member-dialog {
	width: min(480px, calc(100vw - 32px));
	max-width: none;
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: 20px;
	background: #fff;
	color: var(--ink);
	box-shadow: 0 24px 80px rgba(5, 15, 40, .32);
}
.member-dialog[open] { display: flex; flex-direction: column; }
.member-dialog::backdrop { background: rgba(6, 18, 48, .62); backdrop-filter: blur(5px); }
.member-dialog-inner { position: relative; display: flex; flex: 1 1 auto; flex-direction: column; width: 100%; min-width: 0; min-height: 0; padding: 22px 24px; overflow: hidden; }
.member-dialog-header { flex: 0 0 auto; padding-right: 48px; }
.member-dialog h2 { max-width: none; margin: 0 0 5px; font-size: 1.3rem; line-height: 1.2; }
.member-dialog-header > p { margin: 0 0 8px; font-size: .92rem; line-height: 1.35; }
.member-dialog form[data-member-register] { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; }
.member-dialog .member-fields { flex: 1 1 auto; min-width: 0; min-height: 0; margin-inline: -7px; padding: 5px 10px; overflow-y: auto; overscroll-behavior: contain; scroll-padding: 12px 7px; }
.member-dialog label { display: grid; gap: 4px; margin: 8px 0; color: var(--navy); font-weight: 700; }
.member-dialog input:not([type="checkbox"]) { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; font: inherit; font-size: 16px; line-height: 1.2; }
.member-password-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px; min-width: 0; }
.member-password-row input { min-width: 0; }
.password-visibility { justify-self: stretch; min-height: 40px; padding: 4px 8px; border: 0; border-radius: 8px; background: transparent; color: var(--navy); text-decoration: underline; cursor: pointer; font: inherit; font-size: .9rem; }
.member-dialog .fine { display: block; margin-top: 2px; font-size: .8rem; line-height: 1.2; }
.member-name-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.member-dialog .member-name-fields { min-width: 0; }
.member-dialog .member-name-fields > label { min-width: 0; }
.member-dialog .member-check { display: flex; min-height: 40px; align-items: center; gap: 9px; margin: 4px 0; color: var(--ink); font-size: .92rem; font-weight: 500; }
.member-check input { flex: none; width: 18px; height: 18px; min-height: 18px; margin: 0; }
.member-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.member-close { position: absolute; top: 12px; right: 12px; display: grid; width: 44px; height: 44px; place-items: center; border: 0; border-radius: 50%; background: #f2f4f9; color: var(--navy); font-size: 1.5rem; cursor: pointer; }
.member-actions { flex: 0 0 auto; padding-top: 6px; border-top: 1px solid var(--line); background: #fff; }
.member-dialog .member-actions > .btn { min-height: 44px; }
.member-no-thanks { display: block; min-height: 40px; margin: 2px auto 0; padding: 4px 14px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); text-decoration: underline; cursor: pointer; font: inherit; }
.member-dialog .member-status { margin: 4px 0 0; overflow-wrap: anywhere; }
.member-dialog-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 5px; margin: 0; text-align: center; font-size: .84rem; line-height: 1.25; }
.member-dialog-link-group { display: inline-flex; align-items: center; gap: 4px; }
.member-dialog-links a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 4px 2px; border-radius: 8px; color: var(--blue-d); font-weight: 700; text-decoration: underline; text-align: center; text-underline-offset: 3px; }
.member-dialog button:focus-visible,.member-dialog a:focus-visible,.member-dialog input:focus-visible { outline: 3px solid var(--blue); outline-offset: 0; }
.account-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.account-section { min-width: 0; margin: 20px 0; padding: 24px; border: 1px solid var(--line); border-radius: var(--r); background: #fff; }
.account-section form label { display: grid; gap: 6px; margin: 12px 0; font-weight: 700; }
.account-section input { width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.account-section .member-check input { width: 18px; min-height: 18px; flex: none; }
.account-section .btn { margin-top: 8px; }
.account-error { padding: 12px; border-radius: 8px; background: #fff0f2; color: #8c1234; }
.account-notice { padding: 12px; border: 1px solid #b8e6ca; border-radius: 8px; background: #effbf3; color: #145b31; }
.member-status:empty { display: none; }
.member-status.account-notice,.member-status.account-error { display: block; }
.search-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0; }
.search-filters a { display: inline-flex; align-items: center; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--navy); font-weight: 700; text-decoration: none; }
.search-filters a[aria-current="page"] { border-color: var(--navy); background: var(--navy); color: #fff; }
.empty-state { margin: 24px 0; padding: 24px; border: 1px solid var(--line); border-radius: var(--r); background: #f8faff; }
.search-suggestions img { width: 48px; height: 48px; margin-right: 10px; border-radius: 8px; object-fit: cover; vertical-align: middle; }

@media (max-width: 1100px) {
	.category-grid.tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.trending-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
	.primary-nav .menu > li { display: flex; flex-wrap: wrap; }
	.primary-nav .menu > li > .nav-parent { width: 100%; justify-content: space-between; text-align: left; padding: .75em .8em; }
	.mobile-submenu-indicator { display: inline-block; flex: none; width: 16px; height: 16px; position: relative; }
	.mobile-submenu-indicator::before { content: "+"; position: absolute; inset: -5px 0 0; font-size: 20px; font-weight: 400; text-align: center; }
	.nav-parent[aria-expanded="true"] .mobile-submenu-indicator::before { content: "−"; }
	.primary-nav .menu > li > .sub-menu { display: none; position: static; width: 100%; min-width: 0; margin: 0 0 8px 12px; padding: 0 0 0 8px; border: 0; border-left: 3px solid var(--line); border-radius: 0; box-shadow: none; }
	.primary-nav .menu > li.is-open > .sub-menu { display: block; }
	.primary-nav { position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100dvh - 100px); overflow-y: auto; z-index: 90; }
	.site-header { position: relative; z-index: 91; }
}
@media (max-width: 600px) {
	.header-inner { gap: 8px; padding-right: 16px; padding-left: 16px; }
	.header-actions { gap: 0; }
	.category-grid.tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.brand:not(.brand-footer),.brand-footer { width: 180px; height: 48px; flex-basis: 180px; gap: 6px; }
	.brand-emblem { width: 38px; height: 46px; }
	.wordmark,.brand-footer .wordmark { font-size: 1.1rem; }
	.brand-tag { font-size: .48rem; }
	.search-dialog { position: fixed; inset: 16px 16px auto; width: auto; max-width: none; max-height: calc(100dvh - 32px); margin: 0; }
	.search-dialog-inner { padding: 20px; }
	.search-dialog-heading h2 { font-size: 1.3rem; }
	.trending-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.account-columns { grid-template-columns: 1fr; gap: 0; }
	.member-dialog { position: fixed; inset: auto 0 0; width: 100%; max-height: 92vh; max-height: 92dvh; margin: 0; border-radius: 20px 20px 0 0; }
	.member-dialog-inner { padding: 18px 20px max(12px, env(safe-area-inset-bottom)); }
	.announcement.news-ticker { padding-right: 16px; padding-left: 16px; }
}
@media (max-width: 340px) {
	.member-dialog .member-name-fields { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
@media (max-height: 520px) {
	.member-dialog-inner { padding: 14px 20px max(12px, env(safe-area-inset-bottom)); }
	.member-dialog h2 { margin-bottom: 3px; font-size: 1.15rem; }
	.member-dialog-header > p { margin-bottom: 5px; font-size: .86rem; }
	.member-actions { padding-top: 4px; }
}
@media (max-width: 760px) {
	.home-faq-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.home-faq-answer { padding-left: 62px; }
}
@media (max-width: 400px) {
	.trending-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 340px) {
	.brand:not(.brand-footer) { width: 150px; flex-basis: 150px; }
	.header-inner { gap: 6px; padding-right: 12px; padding-left: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.ticker-track { animation: none !important; }
	.ticker-item.is-current { animation: none; }
	.ticker-window .ticker-track:not(.ticker-duplicate) .ticker-item:not(:first-child) { display: none; }
	.ticker-window { display: block; height: 40px; overflow: hidden; }
	.ticker-track:not(.ticker-duplicate) { width: 100%; max-width: 100%; height: 40px; flex-wrap: wrap; align-content: center; animation: none; white-space: normal; }
	.ticker-track a { white-space: normal; }
	.ticker-duplicate { display: none; }
	.ticker-repeat { display: none; }
	.ticker-track a:nth-of-type(n + 3),.ticker-track .ticker-dot:nth-of-type(n + 2) { display: none; }
}
.nav-parent[aria-expanded="true"] .mobile-submenu-indicator::before { content: "\2212"; }
.ech-section-error { margin: 16px 0; padding: 12px 14px; border: 1px dashed #b42318; border-radius: 8px; background: #fff1f0; color: #7a1a12; font-size: .9rem; }
