/* IAM Global theme — component styles beyond theme.json */

:root {
  --iam-navy: #0E1F38; --iam-navy-line: #27406A; --iam-amber: #D08A1F; --iam-amber-dark: #B8771A;
  --iam-ink: #141A24; --iam-slate: #5B6878; --iam-mist: #B6C2D1; --iam-line: #D9DEE6; --iam-surface: #F3F5F8;
  --iam-radius: 16px; --iam-radius-sm: 8px;
}

html { scroll-behavior: smooth; }
img { height: auto; max-width: 100%; }
.wp-site-blocks { overflow-x: clip; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Section rhythm */
.iam-section { padding-top: var(--wp--preset--spacing--70); padding-bottom: var(--wp--preset--spacing--70); }
.iam-section--tight { padding-top: 48px; padding-bottom: 48px; }

/* Eyebrow */
.is-style-eyebrow, .is-style-eyebrow-muted { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 12px; }
.is-style-eyebrow { color: var(--iam-amber); }
.is-style-eyebrow-muted { color: var(--iam-slate); }

/* Text on navy */
.has-navy-background-color { color: #fff; }
.has-navy-background-color :is(h1,h2,h3,h4) { color: #fff; }
.has-navy-background-color p:not(.is-style-eyebrow) { color: var(--iam-mist); }
.has-navy-background-color a:not(.wp-block-button__link) { color: #fff; }
.has-navy-background-color a:not(.wp-block-button__link):hover { color: var(--iam-amber); }
.has-navy-background-color .wp-block-navigation a { color: #fff; }

/* Buttons */
.wp-block-button__link { transition: background-color .15s, color .15s, border-color .15s; }
.wp-block-button.is-style-navy .wp-block-button__link { background: var(--iam-navy); color: #fff; }
.wp-block-button.is-style-navy .wp-block-button__link:hover { background: #15284A; color: #fff; }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: var(--iam-navy); border: 1px solid var(--iam-line); }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { border-color: var(--iam-amber); color: var(--iam-amber); background: transparent; }
.wp-block-button.is-style-ghost-dark .wp-block-button__link { background: transparent; color: #fff; border: 1px solid var(--iam-slate); }
.wp-block-button.is-style-ghost-dark .wp-block-button__link:hover { border-color: #fff; color: #fff; background: transparent; }

/* Cards */
.wp-block-group.is-style-card, .wp-block-group.is-style-card-surface {
  border-radius: var(--iam-radius); padding: 28px; transition: border-color .15s, box-shadow .15s;
}
.wp-block-group.is-style-card { background: #fff; border: 1px solid var(--iam-line); }
.wp-block-group.is-style-card:hover { border-color: var(--iam-amber); }
.wp-block-group.is-style-card-surface { background: var(--iam-surface); }
.wp-block-group.is-style-card h3, .wp-block-group.is-style-card-surface h3 { margin: 0; }
.wp-block-group.is-style-card p, .wp-block-group.is-style-card-surface p { color: var(--iam-slate); font-size: 15px; line-height: 1.55; margin: 0; }
.wp-block-group.is-style-card .iam-card__link { color: var(--iam-amber); font-size: 14px; font-weight: 600; }
.wp-block-group.is-style-card a.iam-card__cover { position: absolute; inset: 0; z-index: 1; }
.wp-block-group.is-style-card { position: relative; }
.wp-block-group.is-style-card .wp-block-image img { height: 96px; width: auto; max-width: 100%; object-fit: contain; }

/* Logo tiles */
.wp-block-group.is-style-logo-tile { background: #fff; border: 1px solid var(--iam-line); border-radius: 12px; height: 92px; display: flex; align-items: center; justify-content: center; padding: 12px; transition: border-color .15s; }
.wp-block-group.is-style-logo-tile:hover { border-color: var(--iam-amber); }
.wp-block-group.is-style-logo-tile .wp-block-image { margin: 0; }
.wp-block-group.is-style-logo-tile img { max-height: 64px; width: auto; max-width: 100%; object-fit: contain; }

/* Logos */
.wp-block-image.is-style-greyscale img { filter: grayscale(1); opacity: .75; max-height: 56px; width: auto; object-fit: contain; transition: filter .15s, opacity .15s; }
.wp-block-image.is-style-greyscale:hover img { filter: none; opacity: 1; }
.wp-block-image.is-style-contain-logo { border: 1px solid var(--iam-line); border-radius: 8px; height: 80px; display: flex; align-items: center; justify-content: center; padding: 12px; margin: 0; }
.wp-block-image.is-style-contain-logo img { max-height: 52px; width: auto; max-width: 100%; object-fit: contain; }

/* Stats */
.wp-block-group.is-style-stat p:first-child { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: var(--wp--preset--font-size--stat); line-height: 1; margin: 0; color: inherit; }
.wp-block-group.is-style-stat p:last-child { font-size: 15px; margin: 4px 0 0; }
.iam-stats { border-top: 1px solid var(--iam-navy-line); }
.iam-stats .wp-block-column + .wp-block-column { border-left: 1px solid var(--iam-navy-line); padding-left: 32px; }
.iam-mini-stat { border-top: 2px solid var(--iam-amber); padding-top: 12px; }
.iam-mini-stat p:first-child { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: 28px; margin: 0; color: var(--iam-navy); }
.iam-mini-stat p:last-child { font-size: 14px; color: var(--iam-slate); margin: 2px 0 0; }

/* Pills */
.wp-block-group.is-style-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.wp-block-group.is-style-pills p { margin: 0; border: 1px solid var(--iam-line); border-radius: 999px; padding: 8px 14px; font-size: 14px; font-weight: 500; color: var(--iam-navy); background: #fff; }

/* Role tag */
.iam-tag, h4.is-style-tag { display: inline-block; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--iam-amber); margin: 0 0 6px; font-family: var(--wp--preset--font-family--body); }

/* People grid */
.iam-people { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.iam-person { display: flex; flex-direction: column; border: 1px solid var(--iam-line); border-radius: var(--iam-radius); overflow: hidden; background: #fff; color: inherit; text-decoration: none; transition: border-color .15s; }
.iam-person:hover { border-color: var(--iam-amber); color: inherit; }
.iam-person__photo { aspect-ratio: 1 / 1; background: var(--iam-surface); }
.iam-person__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.iam-person__body { padding: 20px; display: flex; flex-direction: column; gap: 6px; }
.iam-person__name { margin: 0; font-size: 19px; }
.iam-person__bio { margin: 0; font-size: 14px; line-height: 1.5; color: var(--iam-slate); }
.iam-person__link { margin-top: 6px; font-size: 13px; font-weight: 600; color: var(--iam-amber); }

/* Offices */
.iam-offices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.iam-office { background: #fff; border: 1px solid var(--iam-line); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.iam-office__city { margin: 0; font-size: 16px; font-weight: 700; }
.iam-office__address { margin: 0; font-size: 14px; line-height: 1.55; color: #3C4858; }
.iam-office__maps { font-size: 13px; font-weight: 600; color: var(--iam-amber); margin-top: auto; }

/* Contact details */
.iam-contact-details { display: flex; flex-direction: column; gap: 8px; }
.iam-contact-details a { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; color: var(--iam-navy); }
.iam-contact-details a svg { color: var(--iam-amber); flex: none; }
.iam-contact-details--dark a { color: #fff; }

/* News filter */
.iam-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.iam-filter__item { border: 1px solid var(--iam-line); border-radius: 999px; padding: 8px 16px; font-size: 14px; font-weight: 500; background: #fff; color: var(--iam-navy); }
.iam-filter__item.is-active, .iam-filter__item:hover { background: var(--iam-navy); color: #fff; border-color: var(--iam-navy); }

/* News cards (query loop) */
.iam-post-card { border: 1px solid var(--iam-line); border-radius: var(--iam-radius); overflow: hidden; background: #fff; height: 100%; display: flex; flex-direction: column; transition: border-color .15s; }
.iam-post-card:hover { border-color: var(--iam-amber); }
.iam-post-card .wp-block-post-featured-image { margin: 0; aspect-ratio: 16 / 10; }
.iam-post-card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.iam-post-card__body { padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.iam-post-card .wp-block-post-terms { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--iam-amber); }
.iam-post-card .wp-block-post-terms a { color: var(--iam-amber); }
.iam-post-card .wp-block-post-title { font-size: 19px; line-height: 1.3; margin: 0; }
.iam-post-card .wp-block-post-date { font-size: 13px; color: var(--iam-slate); }
.iam-post-card .wp-block-post-excerpt__excerpt { font-size: 15px; color: var(--iam-slate); margin: 0; }
.iam-featured .iam-post-card { flex-direction: row; }
.iam-featured .iam-post-card .wp-block-post-featured-image { flex: 0 0 58%; aspect-ratio: auto; min-height: 360px; }
.iam-featured .iam-post-card__body { justify-content: center; padding: 40px; gap: 14px; }
.iam-featured .iam-post-card .wp-block-post-title { font-size: 30px; }

/* Full-bleed hero (video under navy overlay) */
.iam-hero-full { position: relative; overflow: hidden; }
.iam-hero-full__media, .iam-hero-full__overlay { position: absolute; inset: 0; max-width: none !important; margin: 0 !important; }
.iam-hero-full__media { z-index: 0; }
.iam-hero-full__media video, .iam-hero-full__media img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; display: block; }
.iam-hero-full__poster { display: none !important; }
.iam-hero-full__overlay { z-index: 1; background: linear-gradient(90deg, rgba(14,31,56,.97) 0%, rgba(14,31,56,.9) 38%, rgba(14,31,56,.55) 65%, rgba(14,31,56,.35) 100%); }
.iam-hero-full > .iam-hero-full__content, .iam-hero-full > .iam-hero-full__stats { position: relative; z-index: 2; }
.iam-hero-full__content { padding-top: clamp(96px, 12vw, 150px); padding-bottom: clamp(64px, 8vw, 110px); }
.iam-hero-full__content h1 { font-size: clamp(40px, 5.2vw, 72px) !important; letter-spacing: -.025em; line-height: 1.02; }
.iam-hero-full .iam-lead { color: #C9D3E0; }
.iam-hero-full__stats { border-top: 1px solid rgba(255,255,255,.14); }
.iam-hero-full__stats .wp-block-column + .wp-block-column { border-left-color: rgba(255,255,255,.14); }
.iam-hero-full__stats .is-style-stat p:last-child { color: #C9D3E0; }
@media (max-width: 781px) { .iam-hero-full__overlay { background: rgba(14,31,56,.86); } }
@media (prefers-reduced-motion: reduce) { .iam-hero-full__media video { display: none; } .iam-hero-full__poster { display: block !important; } }

/* Category archives use one inherited grid */
.archive .iam-featured { display: none; }

/* Article */
.iam-article .wp-block-post-featured-image { margin: 32px 0; border-radius: var(--iam-radius); overflow: hidden; }
.iam-article .wp-block-post-content { font-size: 17px; line-height: 1.7; }
.iam-article .wp-block-post-content :is(h2,h3) { margin-top: 1.5em; }

/* Header / nav */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.iam-header { position: relative; z-index: 50; background: var(--iam-navy); border-bottom: 1px solid var(--iam-navy-line); }
.iam-header .wp-block-site-logo img { height: 40px; width: auto; }
.iam-header .wp-block-navigation { gap: 32px; }
.iam-header .wp-block-navigation .wp-block-navigation-item__content { color: #fff; }
.iam-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content { color: var(--iam-amber); }
.iam-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--iam-amber); }
.iam-header .iam-nav-cta .wp-block-button__link { padding: 11px 20px; }
.iam-header .wp-block-navigation__responsive-container-open, .iam-header .wp-block-navigation__responsive-container-close { color: #fff; }
.iam-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--iam-navy); padding: 32px; }
.iam-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 24px; }
.iam-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 20px; color: #fff; }
.iam-header .wp-block-navigation__responsive-container-close { color: #fff; }

/* Footer */
.iam-footer { border-top: 1px solid var(--iam-line); }
.iam-footer p, .iam-footer a { font-size: 14px; }
.iam-footer .iam-footer__title { font-weight: 600; color: var(--iam-navy); margin-bottom: 4px; }
.iam-footer .iam-footer__links a { display: block; color: var(--iam-navy); margin-bottom: 8px; }
.iam-footer .iam-footer__links a:hover { color: var(--iam-amber); }
.iam-footer__legal { border-top: 1px solid var(--iam-line); padding-top: 24px; margin-top: 24px; color: var(--iam-slate); font-size: 13px; }

/* Hero video / map panel */
.iam-hero-media { border-radius: var(--iam-radius); overflow: hidden; border: 1px solid var(--iam-navy-line); }
.iam-hero-media video, .iam-hero-media img { display: block; width: 100%; height: 100%; min-height: 320px; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .iam-hero-media video { display: none; } .iam-hero-media .iam-hero-media__poster { display: block; } }
.iam-hero-media .iam-hero-media__poster { display: none; }

/* Forms (Contact Form 7 / WPForms neutral styling) */
.iam-form input:not([type=submit]):not([type=checkbox]), .iam-form select, .iam-form textarea, .wpcf7 input:not([type=submit]), .wpcf7 select, .wpcf7 textarea {
  width: 100%; font: 400 15px/1.4 var(--wp--preset--font-family--body); border: 1px solid var(--iam-line); border-radius: var(--iam-radius-sm); padding: 12px 14px; background: #fff; color: var(--iam-ink);
}
.iam-form input:focus, .iam-form select:focus, .iam-form textarea:focus, .wpcf7 :is(input,select,textarea):focus { outline: 2px solid var(--iam-amber); outline-offset: 1px; border-color: var(--iam-amber); }
.iam-form label, .wpcf7 label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.iam-form .iam-form__row, .wpcf7 .iam-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.iam-form .iam-form__field, .wpcf7 .iam-form__field { margin-bottom: 20px; }
.iam-form input[type=submit], .wpcf7 input[type=submit] { background: var(--iam-navy); color: #fff; border: 0; height: 48px; padding: 0 26px; border-radius: var(--iam-radius-sm); font: 600 15px var(--wp--preset--font-family--body); cursor: pointer; }
.iam-form input[type=submit]:hover, .wpcf7 input[type=submit]:hover { background: #15284A; }
.iam-form-card { background: #fff; border: 1px solid var(--iam-line); border-radius: var(--iam-radius); padding: 32px; }
.iam-form__note { font-size: 13px; color: var(--iam-slate); }

/* White map artwork needs a dark panel */
.iam-map-panel { background: var(--iam-navy); padding: 20px; }

/* Utilities */
.iam-radius { border-radius: var(--iam-radius); overflow: hidden; }
.iam-radius img { display: block; width: 100%; height: 100%; object-fit: cover; }
.iam-muted { color: var(--iam-slate); }
.iam-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.55; }
.iam-anchor { scroll-margin-top: 90px; }

/* Responsive */
@media (max-width: 1024px) {
  .is-layout-grid:has(> .is-style-logo-tile), .is-layout-grid:has(> .is-style-contain-logo) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 600px) {
  .is-layout-grid:has(> .is-style-logo-tile), .is-layout-grid:has(> .is-style-contain-logo) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 1024px) {
  .iam-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .iam-offices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .iam-featured .iam-post-card { flex-direction: column; }
  .iam-featured .iam-post-card .wp-block-post-featured-image { flex: none; aspect-ratio: 16 / 9; min-height: 0; }
}
@media (max-width: 781px) {
  .iam-stats .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; }
  .iam-stats .wp-block-columns { row-gap: 24px; }
  .iam-offices { grid-template-columns: 1fr; }
  .iam-form .iam-form__row, .wpcf7 .iam-form__row { grid-template-columns: 1fr; gap: 0; }
  .wp-block-group.is-style-card, .wp-block-group.is-style-card-surface { padding: 22px; }
}
@media (max-width: 600px) {
  .iam-people { grid-template-columns: 1fr; }
  .iam-form-card { padding: 22px; }
}


/* nav current-page highlight (v1.0.7) */
.iam-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content { color: var(--iam-amber); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
.iam-header .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--iam-amber); }
/* mobile menu overlay bg: beat core's :not(.has-background) white (v1.0.7) */
.iam-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { background-color: var(--iam-navy); color: #fff; }
