/* WordPress adapters for the approved Arnett Muldrow design. */
body { overflow-x: hidden; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block: 0; }
.wp-block-template-part { margin-block: 0; }
.am-header-part { position: sticky; top: 0; z-index: 50; }
.am-home, .am-site-header, .am-site-footer { max-width: none; }
.am-home a, .am-site-header a, .am-site-footer a { text-decoration: none; }
.am-home .wp-block-group, .am-site-header .wp-block-group,
.am-site-footer .wp-block-group { box-sizing: border-box; }
.am-home :where(.wp-block-heading, .wp-block-paragraph) { overflow-wrap: normal; }
.am-home .wp-block-image, .am-site-header .wp-block-image,
.am-site-footer .wp-block-image { margin: 0; }
.am-image { line-height: 0; }
.am-image { object-fit: cover; object-position: center; }
.am-image > img { display: block; width: 100%; height: 100%; object-fit: inherit; object-position: inherit; }
.am-image > a { display: block; width: 100%; height: 100%; }
.am-image > a > img { display: block; width: 100%; height: 100%; object-fit: inherit; object-position: inherit; }
.am-image figcaption { line-height: 1.5; }
.am-site-logo img { width: 100%; height: auto; object-fit: contain; }
.am-image.object-contain > img, .am-image.object-contain > a > img { object-fit: contain; }
.am-image.object-\[center_58\%\] > img { object-position: center 58%; }
/* Late-loaded core image/group styles must not change the approved frames. */
.am-home figure.am-image.absolute { position: absolute; }
.am-home figure.am-image.relative { position: relative; }
.am-home figure.am-image.inset-0 { inset: 0; }
.am-home figure.am-image.h-full { height: 100%; }
.am-home figure.am-image.w-full { width: 100%; }
.am-home figure.am-image > img,
.am-home figure.am-image > a > img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: inherit; object-position: inherit; }
.am-home figure.am-image > a { display: block; width: 100%; height: 100%; }
.am-home .wp-block-group.absolute { position: absolute; }
.am-layered-portrait { position: relative; height: 100%; width: 100%; filter: grayscale(1); transition: transform 500ms; }
.am-layered-portrait > .am-image { position: absolute; inset: 0; height: 100%; width: 100%; }
.am-layered-portrait > .am-image > img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.am-layered-portrait > .am-image:last-child { z-index: 1; }
.am-home .group:hover .am-layered-portrait { transform: scale(1.025); }
/* The résumé foreground retains the approved feathered edge. Both layers align. */
.am-home .wp-block-details { margin: 0; }
.am-home .wp-block-details > summary { list-style: none; cursor: pointer; }
.am-home .wp-block-details > summary::-webkit-details-marker { display: none; }
.am-home .wp-block-details > summary::after { content: "+"; color: var(--clay); font-family: Arial, sans-serif; font-size: 1.6rem; font-weight: 400; }
.am-home .wp-block-details[open] > summary::after { content: "−"; }
.am-home .wp-block-details > p { margin-block-start: 0; }
.am-home .am-faq > summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.75rem; font-family: var(--font-display-stack); font-size: 1.5rem; line-height: 1.25; color: var(--forest); }
.am-home .am-faq > summary::after { flex-shrink: 0; }
@media (min-width: 640px) { .am-home .am-faq > summary { font-size: 1.875rem; } }
.am-home .am-faq-summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.am-home .wp-block-button__link { border-radius: 0; }
.am-home .wp-block-buttons { margin: 0; }
.am-home .wp-block-buttons > .wp-block-button { margin: 0; }
.am-home .wp-block-buttons .wp-block-button__link { font: inherit; }
.am-buttons { display: contents !important; }
.am-button > .wp-block-button__link { display: inline-flex; min-height: inherit; width: 100%; align-items: center; justify-content: center; border: 0; border-radius: 0; padding: 0; background: transparent; color: inherit; font: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; }

/* Native Navigation remains editable and supplies a functional mobile menu. */
.am-main-nav { font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.am-main-nav .wp-block-navigation__container { column-gap: 2rem; row-gap: 1rem; }
.am-main-nav .wp-block-navigation-item__content { color: var(--forest); text-decoration: none; transition: color 180ms; }
.am-main-nav .wp-block-navigation-item__content:hover { color: var(--clay); }
.am-main-nav .wp-block-navigation__responsive-container-open { color: var(--forest); padding: .45rem; min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }
.am-main-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--paper); color: var(--forest); padding: 1.5rem; }
.am-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.am-main-nav .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; padding: .5rem; }
.am-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; font-size: 1rem; row-gap: 1.5rem; }
.am-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start; }
@media (min-width: 600px) and (max-width: 1023px) {
  .am-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .am-main-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
}
.admin-bar .am-header-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .am-header-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar .am-header-part { top: 0; } }

/* Working inquiry form, visually matched to the original design. */
.am-contact-form { border-top: 6px solid var(--sun); background: var(--paper); color: var(--ink); padding: 1.5rem; box-shadow: 0 24px 70px rgb(7 31 45 / 22%); }
.am-contact-form .am-form-grid { display: grid; gap: 1.75rem 2rem; }
.am-contact-form .am-field { display: flex; flex-direction: column; gap: .75rem; min-width: 0; }
.am-contact-form label { display: flex; align-items: center; justify-content: space-between; font-size: 11px; line-height: 1.4; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: var(--forest); }
.am-contact-form label span { font-weight: 400; color: rgb(21 48 65 / 55%); }
.am-contact-form input:not([type=hidden]), .am-contact-form textarea { display: block; width: 100%; min-width: 0; border: 0; border-bottom: 1px solid rgb(34 87 122 / 25%); border-radius: 0; padding: 0; color: var(--forest); background: transparent; font: inherit; font-size: 1rem; box-shadow: none; }
.am-contact-form input:not([type=hidden]) { height: 3.5rem; }
.am-contact-form textarea { min-height: 9rem; padding-block: .75rem; resize: vertical; line-height: 1.75; }
.am-contact-form input::placeholder, .am-contact-form textarea::placeholder { color: rgb(21 48 65 / 50%); }
.am-contact-form input:focus-visible, .am-contact-form textarea:focus-visible { border-color: var(--clay); outline: 2px solid var(--clay); outline-offset: 4px; }
.am-contact-form .am-form-actions { margin-top: 2.25rem; padding-top: 1.75rem; border-top: 1px solid rgb(34 87 122 / 15%); }
.am-contact-form button[type=submit] { display: inline-flex; width: 100%; min-height: 3.5rem; align-items: center; justify-content: center; padding: .75rem 1.5rem; border: 0; border-radius: 0; background: var(--sun); color: var(--ink); font: inherit; font-size: 12px; line-height: 1.5; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; cursor: pointer; transition: background 180ms, color 180ms; }
.am-contact-form button[type=submit]:hover { background: var(--clay); color: white; }
.am-contact-form button[type=submit]:focus-visible { outline: 2px solid var(--clay); outline-offset: 4px; }
.am-contact-form .am-form-note, .am-contact-form .am-form-status { margin-top: 1rem; font-size: .875rem; line-height: 1.7; color: rgb(21 48 65 / 70%); }
.am-contact-form .am-form-status { padding: .75rem 1rem; border-left: 3px solid var(--clay); background: white; }
.am-contact-form .am-form-status.is-error { border-color: #b42318; }
.am-contact-form .am-honeypot { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
@media (min-width: 640px) {
  .am-contact-form { padding: 2.25rem; }
  .am-contact-form .am-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .am-contact-form .am-field-wide { grid-column: 1 / -1; }
}
@media (min-width: 1024px) { .am-contact-form { padding: 2.75rem; } }

/* Existing pages and Divi project URLs retain normal readable content. */
.am-content-shell { max-width: 1280px; margin-inline: auto; padding: 4.5rem 1.5rem 6rem; }
.am-content-shell > .wp-block-post-title { max-width: 1000px; margin: 0 0 2rem; font-family: var(--font-display-stack); font-size: clamp(2.8rem, 5.5vw, 5.5rem); line-height: .98; letter-spacing: -.04em; color: var(--forest); }
.am-content-shell .wp-block-post-content { max-width: 900px; font-size: 1.125rem; line-height: 1.8; }
.am-content-shell .wp-block-post-content > * { margin-block: 0 1.5rem; }
.am-content-shell .wp-block-post-content h2, .am-content-shell .wp-block-post-content h3, .am-content-shell .wp-block-post-content h4 { margin-top: 2.5rem; font-family: var(--font-display-stack); color: var(--forest); line-height: 1.15; }
.am-content-shell .wp-block-post-content h2 { font-size: 2.4rem; }
.am-content-shell .wp-block-post-content h3 { font-size: 1.8rem; }
.am-content-shell .wp-block-post-content h4 { font-size: 1.4rem; }
.am-content-shell .wp-block-post-content a, .am-content-shell .wp-block-post-excerpt a { color: var(--clay); text-decoration: underline; text-underline-offset: .2em; }
.am-content-shell .wp-block-post-content ul, .am-content-shell .wp-block-post-content ol { padding-left: 1.5rem; }
.am-content-shell .wp-block-post-content ul { list-style: disc; }
.am-content-shell .wp-block-post-content ol { list-style: decimal; }
.am-content-shell .wp-block-post-content img { max-width: 100%; height: auto; }
.am-content-shell .wp-block-post-content blockquote { margin-inline: 0; padding-left: 1.5rem; border-left: 4px solid var(--clay); font-family: var(--font-display-stack); font-size: 1.5rem; }
.am-content-shell .wp-block-query .wp-block-post { margin-block: 0 3rem; }
.am-content-shell .wp-block-post-title a { text-decoration: none; }
.am-content-shell .wp-block-post-excerpt { margin-top: 1rem; }
.am-content-shell .wp-block-query-pagination { gap: 1.5rem; margin-top: 3rem; }
.am-content-shell .wp-block-search__input { border: 1px solid rgb(34 87 122 / 30%); border-radius: 0; padding: .75rem 1rem; }
.am-content-shell .wp-block-search__button { border: 0; border-radius: 0; padding: .75rem 1.5rem; background: var(--forest); color: white; }
.am-content-shell .wp-block-post-featured-image { margin-bottom: 2rem; }
@media (min-width: 640px) { .am-content-shell { padding-inline: 2.5rem; } }
@media (min-width: 1024px) { .am-content-shell { padding-inline: 3rem; } }

/* Expose keyboard focus throughout the marketing page. */
.am-home a:focus-visible, .am-site-header a:focus-visible, .am-site-footer a:focus-visible { outline: 2px solid var(--clay); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  .am-layered-portrait, .am-home .group:hover .am-layered-portrait { transform: none; transition: none; }
}

/* Keep the homepage headline clear when it wraps. */
.am-home #top h1.wp-block-heading { line-height: 1.05; }

/* Give serif headings clear letter shapes instead of compressed ligatures. */
.am-home .wp-block-heading.font-display {
  letter-spacing: 0;
  font-variant-ligatures: none;
  font-feature-settings: "liga" 0, "clig" 0;
}
.am-home h2.wp-block-heading.font-display { line-height: 1.08; }

/* Four experience facts, with a comfortable two-column tablet layout. */
@media (min-width: 768px) {
  .am-home .am-experience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .am-home .am-experience-grid > .wp-block-group:nth-child(2n) { border-inline-end-width: 0; }
  .am-home .am-experience-grid > .wp-block-group:nth-child(n + 3) { border-top: 1px solid rgb(247 245 239 / 15%); }
}
@media (min-width: 1024px) {
  .am-home .am-experience-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
