/* IAC's organization identity. Scope every token and rule to this canvas so
   TIAC keeps its separate paper/serif design and native global palette. */
.iac-site {
  --iac-site-font: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ast-global-color-0: #c41230;
  --ast-global-color-1: #a60f29;
  --ast-global-color-2: #111111;
  --ast-global-color-3: #4b4b50;
  --ast-global-color-4: #ffffff;
  --ast-global-color-5: #f3f4f5;
  --ast-global-color-6: #000000;
  --ast-global-color-7: #d7d7db;
  --ast-global-color-8: #111111;
  /* Native block colour classes also resolve their own preset variables. */
  --wp--preset--color--ast-global-color-0: var(--ast-global-color-0);
  --wp--preset--color--ast-global-color-1: var(--ast-global-color-1);
  --wp--preset--color--ast-global-color-2: var(--ast-global-color-2);
  --wp--preset--color--ast-global-color-3: var(--ast-global-color-3);
  --wp--preset--color--ast-global-color-4: var(--ast-global-color-4);
  --wp--preset--color--ast-global-color-5: var(--ast-global-color-5);
  --wp--preset--color--ast-global-color-6: var(--ast-global-color-6);
  --wp--preset--color--ast-global-color-7: var(--ast-global-color-7);
  --wp--preset--color--ast-global-color-8: var(--ast-global-color-8);
  /* Redeclare aliases here: inherited root aliases have already resolved to
     TIAC's colours, even when their underlying Astra presets are overridden. */
  --iac-paper: var(--ast-global-color-4);
  --iac-paper-soft: var(--ast-global-color-5);
  --iac-paper-raised: #ffffff;
  --iac-paper-inset: #f3f4f5;
  --iac-ink: var(--ast-global-color-2);
  --iac-muted: var(--ast-global-color-3);
  --iac-accent: var(--ast-global-color-0);
  --iac-accent-hover: var(--ast-global-color-1);
  --iac-line: var(--ast-global-color-7);
  --iac-gilt: var(--iac-accent);
  --iac-paper-shadow: #e4e4e7;
  --iac-focus-on-ink: #ffffff;
  --iac-site-gutter: clamp(1rem, 4vw, 3rem);
  --iac-site-width: 1200px;
  --iac-site-radius: .125rem;
  --iac-site-space: clamp(3rem, 5.5vw, 4.5rem);
  --iac-control-line: #737378;
  color: var(--iac-ink);
  background: var(--iac-paper);
  font-family: var(--iac-site-font);
  font-weight: 400;
  /* Long archive/product titles and enlarged newsletter copy must fit narrow
     columns without causing mobile browsers to widen and zoom out the page. */
  overflow-wrap: anywhere;
}

/* Bold sans-serif type distinguishes the organization from TIAC's book face.
   Page modules continue to own reading sizes, grids and responsive behaviour. */
body.iac-site :is(h1, h2, h3, h4, h5, h6),
.iac-site :is(.iac-serif, .iac-home-note-title, .iac-home-date-day, .iac-team-initials, .iac-workshop-price, .iac-roundup-value),
.iac-site .iac-testimonials h2,
.iac-site .iac-newsletter-card h2,
.iac-site.woocommerce div.product .product_title,
.iac-site.woocommerce ul.products li.product :is(h2, h3) {
  font-family: var(--iac-site-font);
  font-weight: 800;
}

.iac-site :is(button, input, select, textarea),
.iac-site :is(.iac-testimonials, .iac-testimonial cite, .iac-newsletter-card),
.iac-site .iac-rotation-controls button {
  font-family: var(--iac-site-font);
}

/* Astra explicitly resets wrapping inside native discussion threads. */
.iac-site :is(.ast-comment-list, .ast-comment, .ast-comment-info) {
  overflow-wrap: anywhere;
}

.iac-site .ast-comment-info a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  max-width: 100%;
  font-size: 1rem;
  line-height: 1.5;
}

/* Native catalogue metadata used low-opacity grey outside the custom shop. */
.iac-site.woocommerce .woocommerce-breadcrumb,
.iac-site.woocommerce .woocommerce-breadcrumb a,
.iac-site.woocommerce ul.products li.product .ast-woo-product-category {
  color: var(--iac-muted);
  opacity: 1;
}

/* Native catalogue sorting must stay inside its column at enlarged text sizes. */
.iac-site .woocommerce-ordering {
  max-width: 100%;
}

.iac-site .woocommerce-ordering select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 48px;
}

/* A normal-flow header removes the page-by-page transparent-header offsets. */
.iac-site #masthead .main-header-bar {
  padding-block: .75rem;
  border-top: 4px solid var(--iac-accent);
  border-bottom: 1px solid var(--iac-line);
  background: var(--iac-paper);
}

.iac-site #masthead .site-primary-header-wrap {
  width: calc(100% - var(--iac-site-gutter) * 2);
  max-width: var(--iac-site-width);
  padding-inline: 0;
}

.iac-site #masthead .site-branding {
  padding: 0;
}

/* Like the existing TIAC logo treatment, crop only the square asset's blank
   canvas. The complete official mark keeps its original proportions/colours. */
.iac-site #masthead .custom-logo {
  display: block;
  width: 8.5rem;
  max-width: 100%;
  height: auto;
  aspect-ratio: 2.2;
  object-fit: cover;
}

.iac-site #masthead .main-header-menu {
  flex-wrap: wrap;
  gap: .25rem .125rem;
}

.iac-site #masthead .site-header-primary-section-left {
  flex-wrap: wrap;
}

.iac-site #masthead .main-header-menu > .menu-item > .menu-link {
  min-height: 44px;
  padding: .75rem .8rem;
  border-radius: 0;
  color: var(--iac-ink);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

.iac-site #masthead .main-header-menu > :is(.current-menu-item, .current-menu-ancestor) > .menu-link,
.iac-site #masthead .main-header-menu > .menu-item > .menu-link:hover {
  color: var(--iac-ink);
  background: var(--iac-paper);
  box-shadow: inset 0 -3px var(--iac-accent);
}

.iac-site #masthead .sub-menu {
  padding: .5rem;
  border: 1px solid var(--iac-line);
  border-radius: var(--iac-site-radius);
  background: var(--iac-paper-raised);
  box-shadow: 0 .75rem 2rem #00000014;
}

.iac-site #masthead .sub-menu .menu-link {
  min-height: 44px;
  padding: .65rem .8rem;
  border-radius: .25rem;
}

.iac-site #masthead :is(a, button):focus-visible {
  outline: 3px solid var(--iac-accent);
  outline-offset: 3px;
}

.iac-site #masthead .ast-header-social-wrap a,
.iac-site #colophon .ast-footer-social-wrap a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  border-radius: 50%;
}

.iac-site #masthead .ast-header-social-wrap a:hover,
.iac-site #colophon .ast-footer-social-wrap a:hover {
  background: var(--iac-paper-inset);
}

/* Shared width, type and rhythm; page modules retain their particular grids. */
.iac-site :is(.iac-home-shell, .iac-about-shell, .iac-contact-shell, .iac-team-shell, .iac-marketplace-shell) {
  width: calc(100% - var(--iac-site-gutter) * 2);
  max-width: var(--iac-site-width);
}

.iac-site :is(.iac-home-page, .iac-about-page, .iac-contact-page, .iac-team-page, .iac-marketplace-main, .iac-workshop-main, .iac-resource-main) {
  font-family: var(--iac-site-font);
  font-weight: 400;
  line-height: 1.75;
}

.iac-site :is(.iac-home-page, .iac-about-page, .iac-contact-page, .iac-team-page, .iac-marketplace-main, .iac-workshop-main, .iac-resource-main) h1 {
  font-size: clamp(2.5rem, 5.1vw, 4.5rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.035em;
  text-wrap: balance;
}

/* Resource introductions share their width with a photograph or article rail. */
.iac-site .iac-resource-main h1 {
  font-size: clamp(2.25rem, 4vw, 3.5rem);
}

.iac-site :is(.iac-home-page, .iac-about-page, .iac-contact-page, .iac-team-page, .iac-marketplace-main, .iac-workshop-main) h2 {
  font-size: clamp(1.875rem, 3.25vw, 2.75rem);
  line-height: 1.18;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.iac-site :is(.iac-home-eyebrow, .iac-about-eyebrow, .iac-contact-eyebrow, .iac-team-eyebrow, .iac-marketplace-eyebrow, .iac-resource-eyebrow) {
  font: 800 .875rem/1.65 var(--iac-site-font);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.iac-site :is(.iac-home-hero, .iac-about-hero, .iac-team-hero, .iac-marketplace-hero, .iac-workshop-hero, .iac-contact-hero) {
  padding-block: var(--iac-site-space);
  background: var(--iac-paper);
}

.iac-site .iac-home-hero {
  padding-bottom: 0;
}

.iac-site :is(.iac-home-section, .iac-about-section, .iac-team-section, .iac-marketplace-section) {
  padding-block: var(--iac-site-space);
}

.iac-site .iac-resource-main {
  padding-block: var(--iac-site-space);
}

.iac-site :is(.iac-home-hero-art, .iac-about-photo, .iac-workshop-purchase) {
  border-radius: var(--iac-site-radius);
  box-shadow: none;
}

.iac-site :is(.iac-home-photo, .iac-about-photo-frame, .iac-contact-photo, .iac-resource-featured) img {
  border-radius: 0;
}

.iac-site :is(.iac-home-path, .iac-home-workshop, .iac-about-program, .iac-team-card, .iac-workshop-card, .iac-resource-query .wp-block-post) {
  border-radius: var(--iac-site-radius);
  border-color: var(--iac-line);
  box-shadow: none;
}

/* Resource cards are article links, with underlines reserved for interaction. */
.iac-site .iac-resource-query .wp-block-post {
  display: flex;
  flex-direction: column;
  background: var(--iac-paper-raised);
}

.iac-site .iac-resource-query .wp-block-post-title a {
  color: var(--iac-ink);
  text-decoration: none;
}

.iac-site .iac-resource-query .wp-block-post-title a:hover {
  color: var(--iac-accent-hover);
  text-decoration: underline;
  text-underline-offset: .15em;
}

.iac-site .iac-resource-query .wp-block-post-excerpt {
  margin-top: auto;
}

/* Consistent controls; native WooCommerce/WPForms keep validation and submits. */
.iac-site .wp-block-button__link,
.iac-site .iac-marketplace-button,
.iac-site .woocommerce :is(a.button, button.button),
.iac-site .comment-form .submit,
.iac-site .wpforms-container .wpforms-form button[type=submit] {
  min-height: 48px;
  padding: .875rem 1.25rem;
  border: 1px solid transparent;
  border-radius: var(--iac-site-radius);
  font: 700 1rem/1.5 var(--iac-site-font);
  text-transform: none;
  white-space: normal;
  max-width: 100%;
  text-decoration: none;
}

.iac-site .woocommerce :is(a.button, button.button),
.iac-site .comment-form .submit,
.iac-site .wpforms-container .wpforms-form button[type=submit] {
  color: var(--iac-paper);
  background: var(--iac-accent);
}

.iac-site .woocommerce :is(a.button, button.button):hover,
.iac-site .comment-form .submit:hover,
.iac-site .wpforms-container .wpforms-form button[type=submit]:hover {
  color: var(--iac-paper);
  background: var(--iac-accent-hover);
}

.iac-site .wp-block-button.is-style-outline .wp-block-button__link {
  border-color: currentColor;
}

.iac-site :is(.wpforms-form, .woocommerce) :is(input[type=text], input[type=email], input[type=password], input[type=tel], input[type=number], textarea, select) {
  min-height: 48px;
  padding: .75rem;
  border: 1px solid var(--iac-control-line);
  border-radius: var(--iac-site-radius);
  color: var(--iac-ink);
  background: var(--iac-paper-raised);
  font-size: 1rem;
  line-height: 1.5;
}

.iac-site :is(.wpforms-form, .woocommerce) :is(input, textarea)::placeholder {
  color: var(--iac-muted);
  opacity: 1;
}

/* Woo's eye icon had a 15 x 17px target. Preserve its native toggle behaviour
   while giving it a useful hit area and keeping password text clear of it. */
.iac-site .woocommerce .password-input input {
  padding-inline-end: calc(44px + .75rem);
}

.iac-site .woocommerce form .form-row .password-input button.show-password-input {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  inset-block-start: 50%;
  inset-inline-end: .25rem;
  transform: translateY(-50%);
  border: 1px solid transparent;
  border-radius: .3rem;
  color: var(--iac-accent-hover);
  background: transparent;
}

.iac-site :is(.wpforms-form, .woocommerce, #colophon) :is(a, input, select, textarea, button):focus-visible {
  outline: 3px solid var(--iac-accent);
  outline-offset: 3px;
}

/* Editable synced pattern, with no inherited oversized Group padding. */
.iac-site .iac-before-footer {
  border-top: 4px solid var(--iac-accent);
  background: var(--iac-paper);
}

.iac-site .iac-before-footer .iac-site-newsletter {
  width: calc(100% - var(--iac-site-gutter) * 2);
  max-width: var(--iac-site-width);
  margin: 0 auto;
  padding: var(--iac-site-space) 0;
  color: var(--iac-ink);
}

.iac-site .iac-site-newsletter-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 2rem clamp(2rem, 6vw, 5rem);
  padding: 0;
}

.iac-site .iac-site-newsletter-inner > * {
  margin: 0;
  min-width: 0;
}

.iac-site .iac-site-newsletter-copy {
  padding: 0;
}

.iac-site .iac-site-newsletter-copy > * {
  margin: 0;
}

.iac-site .iac-site-newsletter-copy > * + * {
  margin-top: .8rem;
}

.iac-site .iac-site-newsletter h2 {
  font: 800 clamp(1.875rem, 3vw, 2.5rem)/1.15 var(--iac-site-font);
  letter-spacing: -.025em;
}

.iac-site .iac-site-newsletter p {
  max-width: 52ch;
  color: var(--iac-muted);
  font-size: 1rem;
  line-height: 1.75;
}

.iac-site .iac-site-newsletter .iac-site-newsletter-eyebrow {
  color: var(--iac-accent-hover);
  font: 800 .875rem/1.65 var(--iac-site-font);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.iac-site .iac-site-newsletter #wpforms-9 {
  margin: 0;
}

.iac-site .iac-site-newsletter #wpforms-form-9 {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: .75rem;
}

.iac-site #wpforms-form-9 .wpforms-field-container {
  flex: 1 1 14rem;
  min-width: 0;
}

.iac-site #wpforms-form-9 .wpforms-field,
.iac-site #wpforms-form-9 .wpforms-submit-container {
  margin: 0;
  padding: 0;
}

.iac-site #wpforms-form-9 .wpforms-submit-container {
  flex: 0 1 auto;
}

.iac-site #wpforms-form-9 input[type=email] {
  width: 100%;
  max-width: none;
}

/* Keep the native footer menu/social settings, with a compact shared baseline. */
.iac-site #colophon {
  color: var(--iac-paper);
  background: var(--iac-ink);
  font-family: var(--iac-site-font);
}

.iac-site #colophon :is(.site-primary-footer-wrap, .site-below-footer-wrap) {
  min-height: 0;
  padding-block: 1.25rem;
  background: transparent;
}

.iac-site #colophon .ast-builder-grid-row-container-inner {
  width: calc(100% - var(--iac-site-gutter) * 2);
  max-width: var(--iac-site-width);
  margin-inline: auto;
  padding-inline: 0;
}

.iac-site #colophon .ast-builder-grid-row {
  min-height: 0;
  align-items: center;
  gap: 1rem;
}

.iac-site #colophon .site-below-footer-wrap {
  border-top: 1px solid #ffffff40;
}

.iac-site #colophon .footer-nav-wrap .menu-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--iac-paper);
}

.iac-site #colophon .ast-footer-copyright {
  font-size: .875rem;
  line-height: 1.7;
}

/* Store utility screens share the same calm canvas, with native notices/forms. */
.iac-site:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) #primary {
  margin-block: var(--iac-site-space);
}

.iac-site:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-title {
  margin-bottom: 1.5rem;
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  letter-spacing: -.025em;
}

.iac-site .woocommerce :is(.woocommerce-info, .woocommerce-message) {
  border-top-color: var(--iac-accent);
  border-radius: .3rem;
  background: var(--iac-paper-inset);
}

.iac-site .woocommerce :is(form.login, form.register, .cart_totals) {
  border-color: var(--iac-line);
  border-radius: var(--iac-site-radius);
  background: var(--iac-paper-raised);
}

/* Optional newsletter choices at checkout: native, unticked checkboxes. */
.iac-site .iac-checkout-consent {
  margin: 1.5rem 0 0;
  padding: 1rem 1.25rem;
  border: 1px solid var(--iac-line);
  border-radius: var(--iac-site-radius);
  background: var(--iac-paper-raised);
}

.iac-site .iac-checkout-consent legend {
  padding-inline: .25rem;
  font-weight: 700;
}

.iac-site .iac-checkout-consent-note {
  margin: .5rem 0 0;
  color: var(--iac-muted);
}

/* Always-visible coupon field above the order summary. On desktop it joins
   Astra's floated order column; on smaller screens it stacks above "Your order". */
.iac-site .woocommerce-checkout .iac-checkout-coupon {
  margin: 0 0 1.5rem;
  padding: 1.25rem 1.5em;
  border: 2px solid var(--ast-border-color);
  border-radius: var(--iac-site-radius);
  background: var(--iac-paper-raised);
}

.iac-site .woocommerce-checkout .iac-checkout-coupon label {
  display: block;
  margin: 0 0 .5rem;
  font-weight: 700;
}

.iac-site .woocommerce-checkout .iac-checkout-coupon-row {
  display: flex;
  gap: .75rem;
}

.iac-site .woocommerce-checkout .iac-checkout-coupon-row input {
  flex: 1 1 auto;
  min-width: 0;
}

.iac-site .woocommerce-checkout .iac-checkout-coupon-row .button {
  flex: 0 0 auto;
  margin: 0;
}

.iac-site .woocommerce-checkout .iac-checkout-coupon.processing {
  opacity: .6;
}

.iac-site .woocommerce-checkout .iac-checkout-coupon-message {
  margin: 0;
  font-size: .9375rem;
}

.iac-site .woocommerce-checkout .iac-checkout-coupon-message:not(:empty) {
  margin-top: .5rem;
}

.iac-site .woocommerce-checkout .iac-checkout-coupon-message.is-error {
  color: var(--iac-accent-hover);
}

@media (min-width: 922px) {
  .iac-site.woocommerce-checkout form .iac-checkout-coupon {
    float: right;
    clear: right;
    width: 40%;
  }
}

/* Optional suggestions above the checkout form. A dashed frame, an "Optional"
   tag, white cards and outline buttons keep them apart from the grey notices
   and the required checkout steps, whose primary action stays Place order. */
.iac-site .iac-checkout-suggestions {
  margin: 0 0 2.5rem;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border: 2px dashed var(--iac-control-line);
  border-radius: .5rem;
  background: var(--iac-paper);
}

.iac-site .iac-checkout-suggestions-head {
  display: grid;
  justify-items: start;
  gap: .375rem;
  margin-bottom: 1.25rem;
}

.iac-site .iac-checkout-suggestions-head > * {
  margin: 0;
}

.iac-site .iac-checkout-suggestions-tag {
  padding: .125rem .625rem;
  border-radius: 999px;
  color: var(--iac-paper);
  background: var(--iac-ink);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.6;
  text-transform: uppercase;
}

.iac-site .iac-checkout-suggestions-head h2 {
  font-size: clamp(1.25rem, 2vw, 1.5rem);
}

.iac-site .iac-checkout-suggestions-intro {
  color: var(--iac-muted);
  font-size: .9375rem;
}

.iac-site .iac-checkout-suggestion-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.iac-site .iac-checkout-suggestion {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0;
  padding: 1rem 1.25rem;
  border: 1px solid var(--iac-line);
  border-radius: .375rem;
  background: var(--iac-paper-raised);
}

.iac-site .iac-checkout-suggestion-text {
  display: flex;
  align-items: flex-start;
  gap: .875rem;
}

.iac-site .iac-checkout-suggestion :is(h3, p, figure) {
  margin: 0;
}

.iac-site .iac-checkout-suggestion h3 {
  margin-block: .125rem .25rem;
  font-size: 1.125rem;
  line-height: 1.35;
}

.iac-site .iac-checkout-suggestion h3 a {
  color: inherit;
  text-decoration: none;
}

.iac-site .iac-checkout-suggestion h3 a:hover {
  text-decoration: underline;
  text-underline-offset: .15em;
}

.iac-site .iac-checkout-suggestion-portrait {
  flex: 0 0 3.5rem;
  width: 3.5rem;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
}

.iac-site .iac-checkout-suggestion-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.iac-site .iac-checkout-suggestion-dates {
  color: var(--iac-accent-hover);
  font-size: .875rem;
  font-weight: 700;
}

.iac-site .iac-checkout-suggestion .iac-checkout-suggestion-presenter {
  margin-bottom: .25rem;
  font-weight: 600;
}

/* Price and button share the card's last row; ticket notes and quantity wrap above the button. */
.iac-site .iac-checkout-suggestion-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .5rem .75rem;
  margin-top: auto;
  padding-top: .875rem;
  border-top: 1px solid var(--iac-line);
}

.iac-site .iac-checkout-suggestion-price {
  flex: 1 1 auto;
  font-size: 1.125rem;
  font-weight: 700;
}

.iac-site .iac-checkout-suggestion-note {
  flex-basis: 100%;
  order: 1;
  color: var(--iac-muted);
  font-size: .9375rem;
}

.iac-site .iac-checkout-suggestion-form :is(.iac-checkout-suggestion-quantity, .button) {
  order: 2;
}

.iac-site .iac-checkout-suggestion-quantity label {
  display: block;
  margin-bottom: .25rem;
  font-weight: 700;
}

.iac-site .iac-checkout-suggestion-quantity input {
  width: 5.5rem;
  min-height: 44px;
}

.iac-site .woocommerce .iac-checkout-suggestion-form button.button {
  min-height: 44px;
  margin: 0 0 0 auto;
  border-color: var(--iac-accent);
  color: var(--iac-accent-hover);
  background: transparent;
}

.iac-site .woocommerce .iac-checkout-suggestion-form button.button:hover {
  color: var(--iac-paper);
  background: var(--iac-accent);
}

/* In-place removal from "Your order" (iac-checkout-review.php, checkout.js). */
/* The product cell is a wrapping flex row; give Remove its own line. */
.iac-site .woocommerce-checkout .iac-checkout-remove-wrap {
  display: block;
  flex-basis: 100%;
}

.iac-site .woocommerce-checkout a.iac-checkout-remove {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  color: var(--iac-accent-hover);
  font-size: .875rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: .2em;
}

.iac-site .woocommerce-checkout a.iac-checkout-remove[aria-disabled='true'] {
  opacity: .6;
  pointer-events: none;
}

.iac-site .woocommerce-checkout .iac-checkout-remove-status:not([hidden]) {
  margin: 0 0 1rem;
  padding: .75rem 1rem;
  border-inline-start: 3px solid var(--iac-accent);
  background: var(--iac-paper-inset);
}

.iac-site .woocommerce-checkout .iac-checkout-remove-status a {
  font-weight: 700;
}

.iac-site .woocommerce-checkout .iac-checkout-remove-status:focus-visible {
  outline: 3px solid var(--iac-accent);
  outline-offset: 2px;
}

/* Order confirmation: the TIAC attendee-details step leads the page. */
.iac-site .iac-attendee-next {
  margin: 0 0 2rem;
  padding: 1.25rem 1.5rem;
  border-left: 4px solid var(--iac-accent);
  background: var(--iac-paper-inset);
}

.iac-site .iac-attendee-next h2 {
  margin: 0 0 .5rem;
  font-size: clamp(1.375rem, 2.5vw, 1.75rem);
}

.iac-site .iac-attendee-next p {
  margin: 0 0 1rem;
}

.iac-site .iac-attendee-next p:last-child {
  margin-bottom: 0;
}

/* One small, quiet policy link under Place order. */
.iac-site .woocommerce-checkout .iac-checkout-refund {
  clear: both;
  margin: .75rem 0 0;
  font-size: .875rem;
  text-align: center;
}

.iac-site .woocommerce-checkout .iac-checkout-refund a {
  color: var(--iac-muted);
  text-decoration: underline;
  text-underline-offset: .2em;
}

.iac-site .woocommerce-checkout .iac-checkout-refund a:hover {
  color: var(--iac-accent-hover);
}

/* Crisp red rules and unframed photographs replace the book/paper treatment. */
.iac-site :is(.iac-home-eyebrow, .iac-contact-eyebrow, .iac-team-eyebrow, .iac-marketplace-eyebrow, .iac-resource-eyebrow) {
  padding-inline-start: .75rem;
  border-inline-start: 3px solid var(--iac-accent);
  color: var(--iac-accent-hover);
}

.iac-site :is(.iac-home-hero-art, .iac-about-photo-frame) {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.iac-site .iac-home-note {
  border-top: 3px solid var(--iac-accent);
}

.iac-site .iac-home-note-title {
  color: var(--iac-ink);
  font-size: 1.5rem;
}

.iac-site .iac-home-principles {
  padding: 1.25rem 1.5rem;
  border: 0;
  border-inline-start: 4px solid var(--iac-accent);
  color: var(--iac-paper);
  background: var(--iac-ink);
  font-weight: 600;
}

.iac-site :is(.iac-home-path, .iac-about-program, .iac-team-card, .iac-workshop-card, .iac-resource-query .wp-block-post) {
  border: 1px solid var(--iac-line);
  border-top: 3px solid var(--iac-accent);
  background: var(--iac-paper);
}

/* Conference invitations on IAC remain high-contrast organization panels. */
.iac-site .iac-about-page .iac-about-program-conference {
  color: var(--iac-paper);
  background: var(--iac-ink);
  border-color: var(--iac-ink);
  border-top-color: var(--iac-accent);
}

.iac-site .iac-home-conference .iac-home-eyebrow,
.iac-site .iac-about-program-conference .iac-about-eyebrow,
.iac-site .iac-marketplace-conference .iac-marketplace-eyebrow {
  color: var(--iac-paper);
}

.iac-site .iac-team-initials {
  color: var(--iac-paper);
  background: var(--iac-ink);
  outline-color: #ffffff66;
}

.iac-site .iac-team-portrait {
  border-radius: 0;
}

.iac-site .iac-contact-hero-wrap {
  background: var(--iac-paper);
}

.iac-site .iac-contact-photo {
  padding: 0;
}

.iac-site .iac-contact-photo img {
  box-shadow: none;
}

.iac-site .is-style-outline .wp-block-button__link {
  color: var(--iac-ink);
  border-color: var(--iac-ink);
  background: transparent;
}

.iac-site .iac-testimonial {
  border-radius: var(--iac-site-radius);
  border-left-color: var(--iac-accent);
}

.iac-site .iac-newsletter-dialog {
  border-radius: var(--iac-site-radius);
  box-shadow: 0 1.5rem 5rem #00000040;
}

.iac-site .iac-newsletter-dialog::backdrop {
  background: #00000099;
}

.iac-site .iac-newsletter-card :is(input, textarea) {
  border-color: var(--iac-control-line);
}

/* These page modules previously supplied their own fixed form/font colours. */
.iac-site .iac-contact-form div.wpforms-container .wpforms-form :is(input[type=text], input[type=email], textarea) {
  border-color: var(--iac-control-line);
}

.iac-site .iac-workshop-price > span:not(.woocommerce-Price-amount) {
  font-family: var(--iac-site-font);
}

/* Native footer settings sometimes specify their own text/icon colours. */
.iac-site #colophon :is(.ast-footer-copyright, .ast-footer-copyright p, .ast-footer-copyright a),
.iac-site #colophon .ast-footer-social-wrap :is(a, svg) {
  color: var(--iac-paper);
  fill: currentColor;
}

.iac-site #colophon :is(.ast-footer-social-wrap a:hover, a:focus-visible) {
  color: var(--iac-paper);
  background: #ffffff20;
  outline-color: var(--iac-paper);
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .iac-site :is(.iac-home-path, .iac-home-workshop, .iac-workshop-card, .iac-resource-query .wp-block-post) {
    transition: border-color 180ms ease, box-shadow 180ms ease;
  }

  .iac-site :is(.iac-home-path, .iac-home-workshop, .iac-workshop-card, .iac-resource-query .wp-block-post):hover {
    border-color: var(--iac-control-line);
    box-shadow: 0 .5rem 1.5rem #0000000c;
  }
}

@media (min-width: 922px) and (max-width: 1100px) {
  /* Keep the primary routes comfortable before Astra switches to its mobile menu.
     All social links remain available in the ordinary footer. */
  .iac-site #ast-desktop-header .ast-header-social-wrap {
    display: none;
  }
}

@media (max-width: 1024px) {
  .iac-site.woocommerce.archive ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 921px) {
  .iac-site #masthead .custom-logo {
    width: 7rem;
  }

  .iac-site #masthead .main-header-menu > .menu-item > .menu-link {
    padding-inline: 1rem;
  }

  .iac-site #masthead .sub-menu {
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  /* Astra's em-based arrow padding overflowed the menu at doubled text size. */
  .iac-site #masthead .main-header-menu .ast-menu-toggle {
    width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    inset-inline-end: .5rem;
    line-height: 1;
  }

  .iac-site .iac-site-newsletter-inner {
    grid-template-columns: minmax(0, 1fr);
  }

  .iac-site #colophon .site-primary-footer-wrap .ast-builder-grid-row {
    row-gap: 1rem;
  }
}

@media (max-width: 600px) {
  .iac-site.woocommerce.archive ul.products {
    grid-template-columns: minmax(0, 1fr);
  }

  .iac-site :is(.iac-home-page, .iac-about-page, .iac-contact-page, .iac-team-page, .iac-marketplace-main, .iac-workshop-main, .iac-resource-main) h1 {
    font-size: clamp(2.25rem, 8vw, 2.75rem);
  }

  .iac-site #wpforms-form-9 .wpforms-submit-container,
  .iac-site #wpforms-submit-9 {
    width: 100%;
  }

  .iac-site #colophon #astra-footer-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .25rem 1.25rem;
  }

  .iac-site #colophon #astra-footer-menu .menu-item {
    width: auto;
  }
}
