/* =========================================================================
   Far West — styles that give standard WordPress blocks the Editorial design.
   Colors/fonts come from Appearance → Editor → Styles (theme.json presets).
   ========================================================================= */

@font-face { font-family: "Rubik"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/rubik-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Rubik"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/rubik-latin-500-normal.woff2") format("woff2"); }

/* ---------- page frame: sections butt together; spacing comes from the sections ---------- */
.wp-site-blocks > * { margin-block: 0; }
.fw-main { margin: 0; }
.fw-flow > *, .fw-main > * { margin-block: 0 !important; }
.fw-section-block.fw-pt-0 { padding-top: 0; }
.fw-section-block.fw-pb-0 { padding-bottom: 0; }
.fw-section-block > .fw-container > * + * { margin-block-start: 1.25rem; }
.fw-section-block > .fw-container > .is-style-fw-section-head + * { margin-block-start: 0; }
.fw-section-block .wp-block-heading:where(h2) { font-size: var(--ed-h2, clamp(2.2rem, 1.5rem + 2.6vw, 4rem)); font-weight: 300; letter-spacing: -0.03em; line-height: 1; }
/* project cards keep their own compact title size (they are h2 for document outline, not section headings) */
.fw-site .ed-cards .ed-card__title { font-size: clamp(1.15rem, 1.02rem + .45vw, 1.4rem); font-weight: 400; letter-spacing: -0.015em; line-height: 1.2; overflow-wrap: anywhere; }
/* the page heading already gives space; the first section after it starts closer */
.ed-pagehead + .fw-section-block { padding-top: clamp(2rem, 4vw, 3.5rem); }
/* sector page: the current sector is marked like the active filter */
.ed-filter[aria-current="page"] { color: var(--fw-ink); box-shadow: inset 0 -3px 0 var(--fw-yellow); }
/* page photos placed side by side (gallery) */
.fw-prose .wp-block-gallery.fw-photo-row { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px !important; margin: 2rem 0; }
.fw-prose .wp-block-gallery.fw-photo-row > .wp-block-image { width: auto !important; margin: 0 !important; }
.fw-prose .wp-block-gallery.fw-photo-row img { aspect-ratio: 4 / 3; width: 100% !important; height: 100% !important; object-fit: cover; }
/* a form that hasn't been set up yet */
.fw-form-pending { padding: 1rem 1.25rem; border-left: 4px solid var(--fw-yellow); background: var(--fw-concrete); }
.fw-dark :where(p, li) { color: #d8dbdf; }
.fw-dark :where(h2, h3, strong) { color: #fff; }
.fw-dark a:not(.wp-block-button__link) { color: #fff; }

/* ---------- header + main menu (Appearance → Editor → Patterns → Header) ---------- */
.fw-header-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 960; background: var(--fw-paper); border-bottom: 1px solid #ECEAE5; }
.fw-site-header { max-width: 1440px; margin: 0 auto; padding: 0 clamp(20px, 3vw, 48px); min-height: 96px; gap: 24px; }
.fw-site-header .wp-block-site-logo img { height: 56px; width: auto; }
.fw-mainnav { font-family: var(--wp--preset--font-family--menu, "Rubik", system-ui, sans-serif); }
.fw-mainnav .wp-block-navigation__container { gap: clamp(14px, 1.9vw, 30px); }
.fw-mainnav .wp-block-navigation-item__content { padding: 12px 0; font-size: 17px; font-weight: 500; color: #333; text-decoration: none; position: relative; white-space: nowrap; }
.fw-mainnav .wp-block-navigation-item__content:hover { color: #000; }
.fw-mainnav .wp-block-navigation__submenu-icon { width: 10px; height: 10px; margin-left: 6px; }
.fw-mainnav .wp-block-navigation__submenu-icon svg { stroke: currentColor; }
.fw-mainnav [aria-current="page"]::after, .fw-mainnav .current-menu-ancestor > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 3px; background: var(--fw-yellow); }
.fw-mainnav .wp-block-navigation__submenu-container { min-width: 260px !important; padding: 12px 0 !important; border: 0 !important; border-top: 3px solid var(--fw-yellow) !important; background: #fff !important; box-shadow: 0 10px 30px rgba(22,24,27,.14); }
.fw-mainnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 20px; font-size: 15px; font-weight: 400; }
.fw-mainnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--fw-concrete); }
.fw-mainnav .wp-block-navigation__submenu-container [aria-current="page"]::after { display: none; }
.fw-mainnav .has-child:nth-last-child(-n+2) > .wp-block-navigation__submenu-container { left: auto; right: -18px; }
.fw-mainnav :focus-visible { outline: 3px solid var(--fw-focus); outline-offset: 2px; }
/* Use the phone menu below 1100px (six items don't fit in one row there). */
@media (max-width: 1100px) {
	.fw-site-header { min-height: 80px; }
	.fw-site-header .wp-block-site-logo img { height: 46px; }
	.fw-mainnav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.fw-mainnav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}
.fw-mainnav .wp-block-navigation__responsive-container-open, .fw-mainnav .wp-block-navigation__responsive-container-close { color: #333; }
.fw-mainnav .wp-block-navigation__responsive-container.is-menu-open { padding: 24px clamp(20px, 3vw, 48px); background: #fff !important; }
.fw-mainnav .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; }
.fw-mainnav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid #ECEAE5; }
.fw-mainnav .is-menu-open .wp-block-navigation-item__content { font-size: 18px; padding: 14px 0; }
.fw-mainnav .is-menu-open .wp-block-navigation__submenu-container { box-shadow: none; border-top: 0 !important; padding: 0 0 10px 16px !important; }

/* ---------- text styles (block sidebar → Styles) ---------- */
.is-style-fw-eyebrow { display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 1.25rem; font: 500 .74rem/1.2 var(--fw-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--fw-steel-600); }
.is-style-fw-eyebrow::before { content: ""; width: 10px; height: 10px; flex: none; background: var(--fw-yellow); }
.fw-dark .is-style-fw-eyebrow { color: var(--fw-steel-300); }
.is-style-fw-lead { font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem); line-height: 1.5; color: var(--fw-steel-700); max-width: 60ch; }
.is-style-fw-stat { display: flex; align-items: baseline; gap: 1rem; margin: 2rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--fw-line); font: 700 .9rem/1.2 var(--fw-font-body); font-stretch: 78%; text-transform: uppercase; color: var(--fw-steel-600); }
.is-style-fw-stat strong { font-size: clamp(2.6rem, 2rem + 2vw, 4rem); font-weight: 300; font-stretch: 100%; letter-spacing: -0.03em; line-height: 1; color: var(--fw-ink); text-transform: none; }
.is-style-fw-display { font-size: var(--ed-display, clamp(2.8rem, 1.6rem + 5vw, 6rem)) !important; font-weight: 300; letter-spacing: -0.04em; line-height: .98; }

/* ---------- buttons ---------- */
.wp-block-buttons { gap: .75rem; }
.wp-block-button .wp-block-button__link { display: inline-flex; align-items: center; gap: .6rem; min-height: 48px; padding: .8rem 1.5rem; border: 1.5px solid var(--fw-yellow); border-radius: var(--fw-radius, 2px); background: var(--fw-yellow); color: var(--fw-ink); font: 600 1rem/1.1 var(--fw-font-body); text-decoration: none; transition: background-color .2s, color .2s, border-color .2s; }
.wp-block-button .wp-block-button__link:hover { background: var(--fw-yellow-hi); border-color: var(--fw-yellow-hi); color: var(--fw-ink); }
.wp-block-button .wp-block-button__link:focus-visible { outline: 3px solid var(--fw-focus); outline-offset: 2px; }
.wp-block-button:not(.is-style-outline):not(.is-style-fw-link) .wp-block-button__link::after,
.is-style-fw-link .wp-block-button__link::after { content: ""; width: 18px; height: 18px; flex: none; background: currentColor; transition: transform .25s var(--fw-ease);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%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'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.wp-block-button .wp-block-button__link:hover::after { transform: translateX(3px); }
.is-style-outline .wp-block-button__link { background: transparent; color: var(--fw-ink); border-color: var(--fw-ink); }
.is-style-outline .wp-block-button__link:hover { background: var(--fw-ink); color: #fff; border-color: var(--fw-ink); }
.fw-dark .is-style-outline .wp-block-button__link, .ed-hero .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.7); }
.fw-dark .is-style-outline .wp-block-button__link:hover, .ed-hero .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--fw-ink); border-color: #fff; }
.is-style-fw-link .wp-block-button__link { min-height: 0; padding: 0 0 2px; background: none !important; border: 0; border-bottom: 1.5px solid var(--fw-yellow); border-radius: 0; color: inherit !important; font-weight: 650; }
.is-style-fw-link .wp-block-button__link:hover { border-bottom-color: currentColor; }
/* bigger tap area without changing the look (WCAG 2.5.8: at least 24px) */
.is-style-fw-link .wp-block-button__link { position: relative; }
.is-style-fw-link .wp-block-button__link::before { content: ""; position: absolute; inset: -12px -4px; }
.ed-hero .fw-actions .wp-block-buttons { margin: 0; }

/* ---------- section heading row (label + heading | text or button) ---------- */
.is-style-fw-section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem 3rem; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.is-style-fw-section-head > * { margin: 0 !important; }
.is-style-fw-section-head > .wp-block-group > * + * { margin-block-start: 0; }
.is-style-fw-section-head h2 { margin: 0; }
.is-style-fw-section-head > p { max-width: 44ch; color: var(--fw-steel-700); }
.fw-dark .is-style-fw-section-head > p { color: var(--fw-steel-300); }

/* ---------- columns ---------- */
.fw-section-block .wp-block-columns { gap: var(--fw-gutter); margin-bottom: 0; }
.wp-block-columns.is-style-fw-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 0; min-height: 640px; margin: 0; }
.is-style-fw-split > .ed-split__text { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 6vw, 6rem) clamp(1.5rem, 5vw, 5.5rem); }
.is-style-fw-split > .ed-split__text > * { margin-block: 0 0 1rem; }
.is-style-fw-split > .ed-split__text h2 { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.5rem); font-weight: 300; letter-spacing: -0.025em; line-height: 1.05; margin-bottom: 1.5rem; }
.is-style-fw-split > .ed-split__text .wp-block-buttons { margin-top: 1.5rem; }
.is-style-fw-split > .ed-split__media { position: relative; display: grid; }
.is-style-fw-split > .ed-split__media figure { margin: 0; position: relative; overflow: hidden; height: 100%; }
.is-style-fw-split > .ed-split__media img { width: 100%; height: 100%; object-fit: cover; }
.is-style-fw-split > .ed-split__media figcaption { position: absolute; left: .75rem; bottom: .75rem; margin: 0; padding: .3rem .5rem; font: 500 .7rem/1.2 var(--fw-font-mono); letter-spacing: .06em; color: #fff; background: rgba(12,13,15,.7); }
@media (max-width: 960px) { .wp-block-columns.is-style-fw-split { grid-template-columns: 1fr; } .is-style-fw-split > .ed-split__media { min-height: 420px; } }
.wp-block-columns.ed-scif__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.wp-block-columns.ed-scif__grid > .ed-scif__col > * + * { margin-block-start: 1rem; }
@media (max-width: 900px) { .wp-block-columns.ed-scif__grid { grid-template-columns: 1fr; } }
.wp-block-group.ed-scif__contact { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: clamp(2rem, 4vw, 3rem); padding: 1.5rem clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--fw-line-dark); }
.wp-block-group.ed-scif__contact > * { margin: 0; flex: 1 1 320px; }
.wp-block-group.ed-scif__contact > .ed-tel { flex: 0 0 auto; }
.ed-tel a { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.2rem); font-weight: 300; color: #fff; text-decoration: none; letter-spacing: -0.01em; }
.ed-tel a:hover { text-decoration: underline; text-decoration-color: var(--fw-yellow); }
.is-style-fw-boxed:not(.ed-scif__contact) { padding: 1.5rem clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--fw-line); }

/* ---------- lists ---------- */
.is-style-fw-plain { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.wp-block-list.is-style-fw-services { list-style: none; margin: 0; padding: 0; counter-reset: s; }
.is-style-fw-services li { counter-increment: s; margin: 0; border-top: 1px solid var(--fw-line-dark); }
.is-style-fw-services li:last-child { border-bottom: 1px solid var(--fw-line-dark); }
.is-style-fw-services li > a { display: grid; grid-template-columns: 3.5rem minmax(0, 1.2fr) minmax(0, 1fr) 2rem; gap: var(--fw-gutter); align-items: center; padding: 1.5rem 0; color: var(--fw-steel-300) !important; font-size: .98rem; text-decoration: none; }
.is-style-fw-services li > a::before { content: counter(s, decimal-leading-zero); font: 500 .8rem/1 var(--fw-font-mono); color: var(--fw-yellow); }
.is-style-fw-services li > a::after { content: "→"; justify-self: end; font-size: 1.4rem; color: #fff; transition: transform .3s var(--fw-ease); }
.is-style-fw-services strong { font: 700 clamp(1.2rem, 1rem + .8vw, 1.75rem)/1.05 var(--fw-font-body); font-stretch: 75%; text-transform: uppercase; letter-spacing: .005em; color: #fff; transition: color .2s; }
.is-style-fw-services li > a:hover strong { color: var(--fw-yellow); }
.is-style-fw-services li > a:hover::after { transform: translateX(4px); }
@media (max-width: 800px) { .is-style-fw-services li > a { display: block; position: relative; padding-left: 2.75rem; } .is-style-fw-services li > a::before { position: absolute; left: 0; top: 1.85rem; } .is-style-fw-services strong { display: block; margin-bottom: .5rem; } .is-style-fw-services li > a::after { display: none; } }
:not(.fw-dark) > .fw-container .is-style-fw-services li > a { color: var(--fw-steel-700) !important; }
:not(.fw-dark) > .fw-container .is-style-fw-services strong, :not(.fw-dark) > .fw-container .is-style-fw-services li > a::after { color: var(--fw-ink); }
.wp-block-list.is-style-fw-awards { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fw-line-dark); }
.is-style-fw-awards li { display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; padding: 1rem 0; margin: 0; border-bottom: 1px solid var(--fw-line-dark); }
.is-style-fw-awards strong { font: 500 .85rem/1.6 var(--fw-font-mono); color: var(--fw-yellow) !important; }

/* ---------- galleries ---------- */
.wp-block-gallery.is-style-fw-logos { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; border-top: 1px solid var(--fw-line); border-left: 1px solid var(--fw-line); }
.wp-block-gallery.is-style-fw-logos > .wp-block-image { width: auto !important; margin: 0 !important; display: grid; place-items: center; padding: .5rem 1.5rem; aspect-ratio: 16 / 9; border-right: 1px solid var(--fw-line); border-bottom: 1px solid var(--fw-line); background: var(--fw-paper); }
.wp-block-gallery.is-style-fw-logos > .wp-block-image img { width: min(190px, 78%) !important; height: auto !important; object-fit: contain !important; filter: grayscale(1); opacity: .85; mix-blend-mode: multiply; transition: filter .3s, opacity .3s; }
.wp-block-gallery.is-style-fw-logos > .wp-block-image:hover img { filter: none; opacity: 1; }
@media (max-width: 700px) { .wp-block-gallery.is-style-fw-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.wp-block-gallery.is-style-fw-badges { display: flex !important; flex-wrap: wrap; gap: 1rem !important; margin-top: 2rem; }
.wp-block-gallery.is-style-fw-badges > .wp-block-image { width: auto !important; flex: 0 0 auto !important; margin: 0 !important; }
.wp-block-gallery.is-style-fw-badges > .wp-block-image img { height: 72px !important; width: auto !important; background: #fff; padding: .4rem; }

/* ---------- full-width photo band ---------- */
.wp-block-image.ed-pano { margin: 0; }
.wp-block-image.ed-pano img { display: block; width: 100%; height: clamp(280px, 48vw, 720px); object-fit: cover; }

/* ---------- project blocks ---------- */
.fw-projects-block .ed-projects__bar { margin-bottom: 2rem; }
.fw-reel-block .ed-reel__nav { justify-content: flex-end; max-width: var(--fw-max); margin: -4.5rem auto 1.5rem; padding: 0 var(--fw-gutter); }
@media (max-width: 700px) { .fw-reel-block .ed-reel__nav { margin-top: 0; } }

/* ---------- estimate band + footer (Appearance → Editor → Patterns → Footer) ---------- */
.ed-statement .ed-statement__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.5rem; }
.ed-statement .ed-statement__row > * { margin: 0; }
.fw-site-header { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; }
.fw-footer-part > * { margin-block: 0; }
.ed-statement .ed-statement__row { padding-top: 2rem; border-top: 2px solid var(--fw-ink); }
.ed-statement .ed-statement__row h2 { margin: 0; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.3rem); font-weight: 400; letter-spacing: -0.015em; }
.ed-statement .ed-statement__motto { margin: 0 0 2.5rem; }
.fw-footer .wp-block-columns.fw-footer__top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: var(--fw-gutter); margin: 0; }
.fw-footer .wp-block-column { flex-basis: auto !important; }
.fw-footer .wp-block-column > * + * { margin-block-start: .75rem; }
.fw-footer .wp-block-site-logo { display: inline-block; background: #fff; padding: .75rem 1rem; }
.fw-footer .wp-block-site-logo img { height: 52px; width: auto; }
.fw-footer p { color: #d5d8dc; }
.fw-footer__bottom { margin-top: 0; }
.fw-footer__bottom p { margin: 0; color: var(--fw-steel-300); }
@media (max-width: 900px) { .fw-footer .wp-block-columns.fw-footer__top { grid-template-columns: 1fr 1fr; } .fw-footer .fw-footer__top > :first-child { grid-column: 1 / -1; } }
@media (max-width: 520px) { .fw-footer .wp-block-columns.fw-footer__top { grid-template-columns: 1fr; } }

/* ---------- regular pages ---------- */
.fw-page-body { padding-top: clamp(2.5rem, 5vw, 4.5rem); padding-bottom: clamp(3rem, 7vw, 6rem); }
.fw-prose { max-width: 820px; }
/* Balanced reading column: title, breadcrumbs and text share one centred column on regular pages */
:root { --fw-read: 47rem; }
.fw-page-body > .fw-container > .fw-prose { max-width: var(--fw-read); margin-inline: auto; }
.fw-prose > p, .fw-prose > ul, .fw-prose > ol { max-width: none; }
.fw-main:has(> .fw-page-body .fw-prose) .ed-pagehead > .fw-container { max-width: calc(var(--fw-read) + 2 * var(--fw-gutter)); }
.fw-prose .wp-block-gallery.fw-photo-row, .fw-prose > figure.wp-block-image { margin-inline: 0; }
.fw-prose > * + * { margin-block-start: 1.1rem; }
.fw-prose > :first-child { margin-top: 0; }
.fw-prose h2 { font-size: clamp(1.5rem, 1.2rem + .9vw, 2rem); font-weight: 400; letter-spacing: -.02em; line-height: 1.15; margin-top: 2.5rem; }
.fw-prose h3 { font-size: clamp(1.15rem, 1rem + .35vw, 1.35rem); font-weight: 500; letter-spacing: -.01em; margin-top: 2rem; }
.fw-prose :where(p, li) { font-size: 1.0625rem; line-height: 1.7; }
.fw-prose :where(ul, ol):not(.is-style-fw-plain):not(.is-style-fw-services):not(.is-style-fw-awards) { padding-left: 1.25rem; }
.fw-prose li + li { margin-top: .35rem; }
.fw-prose ul li::marker { color: var(--fw-yellow); }
.fw-prose a:not(.wp-block-button__link) { text-decoration: underline; text-decoration-color: var(--fw-yellow); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.fw-prose figure { margin: 2rem 0; }
.fw-prose img { display: block; max-width: 100%; height: auto; }
.fw-anchor { position: relative; top: -120px; height: 0; }
.fw-prose .nf-form-cont { margin-top: 2rem; }
.fw-prose .nf-form-cont :is(input[type=text], input[type=email], input[type=tel], input[type=number], input[type=date], textarea, select) { width: 100%; min-height: 48px; padding: .65rem .8rem; border: 1px solid #8A9099; border-radius: 0; font: inherit; background: #fff; }
.fw-prose .nf-form-cont :is(input, textarea, select):focus { outline: 3px solid var(--fw-focus); outline-offset: 1px; }
.fw-prose .nf-form-cont :is(input[type=submit], input[type=button]) { min-height: 48px; padding: .75rem 1.75rem; border: 0; background: var(--fw-yellow); color: var(--fw-ink); font-weight: 600; cursor: pointer; }
.fw-prose .nf-error-msg, .fw-prose .ninja-forms-req-symbol { color: #B3261E; }

/* Jump links (#estimates, #whatisscif …) land below the sticky header. */
:where(.fw-prose, .fw-flow) [id] { scroll-margin-top: 120px; }

/* ---------- Ask Far West: answers from the website ---------- */
.ed-ask__answer { margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid var(--fw-line); }
.ed-ask__lead { margin: 0 0 .75rem; font: 500 .72rem/1.2 var(--fw-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--fw-steel-600); }
.ed-ask__results { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; max-height: min(60vh, 520px); overflow-y: auto; }
.ed-ask__results li { margin: 0; padding: .9rem 1rem; background: var(--fw-concrete); border-left: 3px solid transparent; }
.ed-ask__results li.is-top { border-left-color: var(--fw-yellow); background: var(--fw-paper); box-shadow: inset 0 0 0 1px var(--fw-line); }
.ed-ask__type { margin: 0 0 .25rem; font: 500 .66rem/1.2 var(--fw-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--fw-steel-600); }
.ed-ask__link { font-weight: 650; color: var(--fw-ink); text-decoration: none; border-bottom: 1.5px solid var(--fw-yellow); }
.ed-ask__link:hover { border-bottom-color: var(--fw-ink); }
.ed-ask__snip { margin: .45rem 0 0; font-size: .95rem; line-height: 1.55; color: var(--fw-steel-700); }
.ed-ask__snip mark { background: rgba(246,190,0,.28); color: inherit; padding: 0 .1em; }
.ed-ask__msg { margin: 0; color: var(--fw-steel-700); }
.ed-ask__msg a { color: var(--fw-ink); font-weight: 650; }
.ed-ask__loading::before { content: ""; display: inline-block; width: .9em; height: .9em; margin-right: .5em; vertical-align: -.1em; border: 2px solid var(--fw-line); border-top-color: var(--fw-ink); border-radius: 50%; animation: fw-spin .8s linear infinite; }
@keyframes fw-spin { to { transform: rotate(360deg); } }
.ed-ask__form button:disabled { opacity: .6; cursor: progress; }
#ask { scroll-margin-top: 120px; }
.ed-ask__panel:has(.ed-ask__answer:not([hidden])) { align-items: start; }

/* ---------- Ask Far West: panel layout (button on every page, panel slides in from the right) ---------- */
.fwa-launch { position: fixed; top: 50%; right: 0; z-index: 990; display: inline-flex; align-items: center; gap: .6rem; padding: .7rem .6rem 1rem; border: 0; border-radius: 6px 0 0 6px; background: var(--fw-ink); color: #fff; font: 650 .95rem/1 var(--fw-font-body); letter-spacing: .01em; writing-mode: vertical-rl; transform: translateY(-50%) rotate(180deg); box-shadow: 0 10px 30px -12px rgba(10,11,13,.55); cursor: pointer; transition: padding .2s var(--fw-ease), background .2s; }
.fwa-launch:hover { background: #000; padding-left: .85rem; }
.fwa-launch .fwa-mark { transform: rotate(180deg); }
.fwa-launch:focus-visible, .fwa-panel :focus-visible { outline: 3px solid var(--fw-focus); outline-offset: 3px; }
.fwa-launch[aria-expanded="true"] { opacity: 0; pointer-events: none; }
.fwa-mark { display: inline-grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--fw-yellow); color: var(--fw-ink); writing-mode: horizontal-tb; }
.fwa-scrim { position: fixed; inset: 0; z-index: 1002; background: rgba(10,11,13,.5); opacity: 0; transition: opacity .35s; }
.fwa-scrim.is-on { opacity: 1; }
.fwa-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1003; width: min(480px, 100vw); background: var(--fw-paper); color: var(--fw-ink); box-shadow: -30px 0 60px -30px rgba(0,0,0,.4); transform: translateX(100%); visibility: hidden; transition: transform .45s var(--fw-ease), visibility 0s linear .45s; }
.fwa-panel.is-open { transform: none; visibility: visible; transition: transform .45s var(--fw-ease); }
.fwa-inner { display: flex; flex-direction: column; height: 100%; overflow-y: auto; overscroll-behavior: contain; padding: calc(env(safe-area-inset-top, 0px) + clamp(1.25rem, 2.5vw, 2rem)) calc(env(safe-area-inset-right, 0px) + clamp(1.25rem, 2.5vw, 2.25rem)) calc(env(safe-area-inset-bottom, 0px) + 1.5rem) clamp(1.25rem, 2.5vw, 2.25rem); }
.fwa-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; padding-bottom: 1.1rem; border-bottom: 2px solid var(--fw-ink); }
.fwa-kicker { margin: 0 0 .5rem; font: 600 .72rem/1.2 var(--fw-font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--fw-steel-600); }
.fw-site .fwa-title { display: flex; align-items: center; gap: .7rem; margin: 0; font-size: 1.6rem; font-weight: 400; line-height: 1.1; letter-spacing: -.015em; color: var(--fw-ink); }
.fwa-title .fwa-mark { width: 36px; height: 36px; border-radius: 0; }
.fwa-close { display: grid; place-items: center; flex: none; width: 46px; height: 46px; margin: -6px -8px 0 0; padding: 0; border: 1px solid var(--fw-line); border-radius: 50%; background: var(--fw-paper); color: var(--fw-ink); cursor: pointer; transition: background .2s, transform .3s; }
.fwa-close:hover { background: var(--fw-concrete); transform: rotate(90deg); }
.fwa-intro { margin: 0 0 1rem; color: var(--fw-steel-700); line-height: 1.55; }
.fwa-form { display: flex; border: 1.5px solid var(--fw-ink); }
.fwa-form:focus-within { outline: 3px solid var(--fw-focus); outline-offset: 2px; }
.fwa-form input { flex: 1; min-width: 0; min-height: 52px; padding: 0 1rem; border: 0; background: var(--fw-paper); color: var(--fw-ink); font: 400 1rem/1 var(--fw-font-body); }
.fwa-form input:focus { outline: none; }
.fwa-form button { padding: 0 1.2rem; border: 0; border-left: 1.5px solid var(--fw-ink); background: var(--fw-yellow); color: var(--fw-ink); font: 650 1rem/1 var(--fw-font-body); cursor: pointer; }
.fwa-form button:hover { background: var(--fw-yellow-hi); }
.fwa-form button:disabled { opacity: .6; cursor: progress; }
.fwa-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin: .85rem 0 0; padding: 0; list-style: none; }
.fwa-chips li { margin: 0; }
.fwa-chips button { min-height: 36px; padding: .4rem .75rem; border: 1px solid transparent; background: var(--fw-concrete); color: var(--fw-ink); font: 500 .86rem/1.25 var(--fw-font-body); text-align: left; cursor: pointer; }
.fwa-chips button:hover { border-color: var(--fw-ink); background: var(--fw-paper); }
.fwa-answer .ed-ask__results { max-height: none; overflow: visible; }
.fwa-note { margin: auto 0 0; padding-top: 1.25rem; font-size: .8rem; line-height: 1.5; color: var(--fw-steel-600); }
html.fwa-lock { overflow: hidden; }
/* homepage section in panel layout: same look, one button instead of the question box */
.ed-ask__open { display: inline-flex; align-items: center; gap: .55rem; min-height: 56px; padding: 0 1.4rem; border: 1.5px solid var(--fw-ink); background: var(--fw-yellow); color: var(--fw-ink); font: 650 1.02rem/1 var(--fw-font-body); cursor: pointer; }
.ed-ask__open:hover { background: var(--fw-yellow-hi); }
.ed-ask__open svg { width: 20px; height: 20px; }
@media (max-width: 700px) { /* phones: a small round button, bottom right */
	.fwa-launch { top: auto; right: calc(env(safe-area-inset-right, 0px) + 14px); bottom: calc(env(safe-area-inset-bottom, 0px) + 14px); padding: 6px; border-radius: 50%; writing-mode: horizontal-tb; transform: none; }
	.fwa-launch:hover { padding-left: 6px; }
	.fwa-launch .fwa-mark { width: 44px; height: 44px; transform: none; }
	.fwa-launch span:not(.fwa-mark) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) { .fwa-panel, .fwa-scrim, .fwa-launch { transition-duration: .01ms !important; } }
@media print { .fwa-launch, .fwa-panel, .fwa-scrim { display: none !important; } }
