/*
Theme Name: Arking
Theme URI: https://arking.dk
Author: Arking
Description: Modular Gutenberg child theme for ARKING.
Template: extendable
Version: 0.4.4
Requires at least: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: arking
*/

/* One outer grid, a separate reading measure, and a shared spacing scale. */
:root, .editor-styles-wrapper {
  --arking-wide: var(--wp--style--global--wide-size, 82rem);
  --arking-reading: var(--wp--style--global--content-size, 46rem);
  --arking-gutter: clamp(1.25rem, 4vw, 3rem);
  --arking-gap: clamp(1.25rem, 2.5vw, 2rem);
  --arking-section-space: clamp(3rem, 6vw, 5.5rem);
  --arking-border: #dce2e6;
  --arking-muted: #536273;
  --arking-header-height: 6rem;
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--arking-header-height) + 1rem); }
body { text-wrap: pretty; }
*, *::before, *::after { box-sizing: border-box; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--wp--preset--color--blue); outline-offset: 4px; }
a { text-underline-offset: .22em; }
:where(img, video, iframe) { max-width: 100%; }
:where(.wp-block-column, .wp-block-group, .arking-card) { min-width: 0; }
.wp-site-blocks { padding-block: 0; }
.arking-site-main { margin-block-start: 0 !important; }
.arking-site-main > .wp-block-post-content { margin-block-start: 0; }

/* 0.3.0 saved Groups are supported too: alignwide alone did not constrain them. */
.arking-section, .arking-footer-inner, .arking-site-header__inner {
  width: min(var(--arking-wide), calc(100% - var(--arking-gutter) * 2));
  max-width: var(--arking-wide);
  margin-inline: auto !important;
}
.arking-section {
  container-type: inline-size;
  padding-block: var(--arking-section-space);
  margin-block: 0;
}
.arking-section > :where(:not(.alignfull):not(.alignwide):not(.aligncenter)) {
  margin-inline: 0 !important;
}
.arking-section > :where(.has-text-align-center, .aligncenter) { margin-inline: auto !important; }
.arking-section > :where(.wp-block-heading, p, .wp-block-post-excerpt, .wp-block-post-content) { max-width: var(--arking-reading); }
.arking-section > :where(.wp-block-columns, .arking-card-grid, .wp-block-image, .arking-filter, .arking-project-facts, .arking-footer-layout) { max-width: 100%; width: 100%; }
.arking-section > :first-child { margin-block-start: 0; }
.arking-section > :last-child { margin-block-end: 0; }
.arking-section > :where(.wp-block-columns, .arking-card-grid) { margin-block-start: var(--arking-gap); }
.arking-section h1 { font-size: clamp(2.5rem, 4.8vw, 4.75rem); line-height: 1.06; letter-spacing: -.045em; }
.arking-section h2 { font-size: clamp(1.85rem, 3vw, 2.8rem); line-height: 1.14; letter-spacing: -.035em; }
.arking-section h3 { font-size: 1.3rem; line-height: 1.35; letter-spacing: -.025em; }
.arking-section p { max-width: 66ch; }
.arking-section :where(p, h1, h2, h3, a, li, dd) { overflow-wrap: break-word; }
.arking-eyebrow { font-size: .75rem; letter-spacing: .11em; font-weight: 700; text-transform: uppercase; color: var(--arking-muted); }
.arking-lead { font-size: clamp(1.05rem, 1.5vw, 1.22rem); line-height: 1.7; color: var(--arking-muted); }
.arking-disciplines { color: var(--wp--preset--color--blue); font-size: .92rem; font-weight: 550; }
.arking-eyebrow + :where(h1, h2) { margin-block-start: .75rem; }
.arking-section .wp-block-buttons { gap: .75rem; }

/* Keep the existing hero's editable text and Image block; layer the image behind. */
.arking-home-hero {
  position: relative;
  isolation: isolate;
  container-type: normal;
  width: 100%;
  max-width: none;
  min-height: min(56rem, 90svh);
  padding-inline: max(var(--arking-gutter), calc((100% - var(--arking-wide)) / 2));
  padding-block: calc(var(--arking-header-height) + clamp(2.5rem, 6vw, 6rem)) clamp(3rem, 7vw, 6rem);
  background: var(--wp--preset--color--navy);
  color: #fff;
}
.arking-home-hero > :not(.arking-hero-image) { position: relative; z-index: 2; }
.arking-home-hero h1 { max-width: 19ch; }
.arking-home-hero :where(h1, h2, p, .arking-eyebrow, .arking-disciplines, .arking-lead) { color: #fff; }
.arking-home-hero .arking-lead { max-width: 58ch; }
.arking-home-hero .is-style-outline .wp-block-button__link { color: #fff; border-color: currentColor; }
.arking-home-hero .arking-hero-image {
  position: absolute;
  z-index: -1;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0 !important;
  overflow: hidden;
}
.arking-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.arking-home-hero .arking-hero-image img { transform: translateY(var(--arking-hero-shift, 0px)) scale(1.12); }
.arking-home-hero::before { content: ''; position: absolute; z-index: 0; inset: 0; pointer-events: none; background: linear-gradient(90deg, #031c3de6, #031c3d88 65%, #031c3d44), linear-gradient(#031c3d88, transparent 45%); }

/* Cards share a baseline; column count is based on available section width. */
.arking-card-grid { display: grid; gap: calc(var(--arking-gap) * 1.5) var(--arking-gap); margin-block: var(--arking-gap) 0; }
.arking-service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.arking-reference-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arking-reference-grid:has(> .arking-card:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.arking-reference-grid > .arking-card:only-child { grid-column: 1 / -1; }
.arking-card { position: relative; display: flex; flex-direction: column; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.arking-card__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 1rem 0 0; }
.arking-card h3 { margin: .35rem 0 .6rem; }
.arking-card p { color: var(--arking-muted); font-size: .98rem; margin-block: 0 1rem; }
.arking-card__link { display: inline-block; margin-block-start: auto; padding-block-start: .5rem; font-size: .86rem; font-weight: 600; }
.arking-card__link::after { content: ' ↗'; }
.arking-card__meta { display: flex; flex-wrap: wrap; gap: .4rem; }
.arking-tag { font-size: .72rem; color: var(--arking-muted); letter-spacing: .04em; }
.arking-tag + .arking-tag::before { content: ' / '; }
.arking-service-grid .arking-card { padding-block-start: 1rem; border-block-start: 1px solid var(--arking-border); }
.arking-service-grid .arking-card__meta { display: none; }
.arking-card-grid .wp-post-image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }

/* Explicit editorial grids, including the previously saved 0.3.0 Columns. */
.arking-section > .wp-block-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--arking-gap); align-items: start; }
.arking-section > .wp-block-columns > .wp-block-column { margin: 0; min-width: 0; }
.arking-section > .wp-block-columns > .wp-block-column > :first-child { margin-block-start: 0; }
.arking-section > .wp-block-columns > .wp-block-column > :last-child { margin-block-end: 0; }
.arking-section > .arking-audience-columns { gap: calc(var(--arking-gap) * 1.5) var(--arking-gap); }
.arking-audience-columns > .wp-block-column { padding-block-start: 1.25rem; border-top: 1px solid var(--arking-border); }
.arking-section > .arking-process { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.arking-process .wp-block-column { border-top: 1px solid var(--arking-border); padding-block-start: 1.25rem; }
.arking-process p { font-size: .92rem; }
.arking-section > .arking-contact-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.arking-scope-list { columns: 2; column-gap: var(--arking-gap); padding-inline-start: 1.25rem; }
.arking-scope-list li { break-inside: avoid; padding-block-end: .5rem; }
.arking-contact-band { border-top: 1px solid var(--arking-border); }
/* Project needs precede disciplines; all copy stays editable as native blocks. */
.arking-services-hero h1 { max-width: 22ch; }
.arking-services-intro { border-block-start: 1px solid var(--arking-border); padding-block-end: 0; }
.arking-offerings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--arking-gap); margin-block-start: 2rem; }
.arking-offerings-grid > .arking-offering { margin-block: 0; padding-block: 1.5rem; border-block-start: 1px solid var(--arking-border); }
.arking-offering > :first-child { margin-block-start: 0; }
.arking-offering > :last-child { margin-block-end: 0; }
.arking-offering p { color: var(--arking-muted); }
.arking-offering h3 { color: var(--wp--preset--color--navy); }
.arking-services-disciplines { border-block-start: 1px solid var(--arking-border); }
.arking-services-disciplines h2 { margin-block-start: 0; }
.arking-project-heading > .wp-block-post-featured-image { margin-top: 2rem; max-width: 100%; }
.arking-project-heading .wp-block-post-featured-image img { max-height: 42rem; width: 100%; object-fit: cover; }
.arking-project-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--arking-gap); margin-top: 2rem; }
.arking-project-facts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--arking-muted); margin-bottom: .45rem; }
.arking-project-facts dd { margin: 0; }
.arking-about-image img { max-height: 32rem; width: 100%; object-fit: cover; object-position: center 32%; }
.arking-filter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 1rem; align-items: end; padding-block: 1rem; margin-top: 2rem; }
.arking-filter label { display: grid; gap: .4rem; font-size: .85rem; }
.arking-filter select { width: 100%; min-height: 3rem; padding: .6rem; border: 1px solid var(--arking-border); background: #fff; font: inherit; }
.arking-empty { padding: 2rem 0; }
.arking-company-details h2 { font-size: 1.5rem; }
.arking-company-details p { line-height: 1.9; }
.arking-site-footer { margin-block-start: 0; background: var(--wp--preset--color--navy); color: #fff; padding-block: 3.5rem 2rem; }
.arking-site-footer a { color: #fff; }
.arking-footer-inner > .arking-company-details { width: 100%; max-width: 100%; }
.arking-footer-layout { display: grid; grid-template-columns: 2fr 1fr; gap: var(--arking-gap); }
.arking-footer-brand { font-size: 2.4rem; font-weight: 700; letter-spacing: -.07em; margin: 0; }
.arking-footer-meta { border-top: 1px solid #ffffff30; padding-top: 1.4rem; margin-top: 2rem; font-size: .85rem; }
.arking-mega-menu__panel { padding: 1rem; border: 1px solid var(--arking-border); background: white; }
.arking-mega-menu__mobile { display: none; }
.is-style-arking-card { padding: var(--arking-gap); border: 1px solid var(--arking-border); }
.is-style-arking-tint { padding: var(--arking-gap); background: var(--wp--preset--color--mist); }

@container (max-width: 58rem) {
  .arking-service-grid, .arking-reference-grid:has(> .arking-card:nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .arking-reference-grid:has(> .arking-card:nth-child(3):last-child) > .arking-card:first-child { grid-column: 1 / -1; }
  .arking-section > .arking-process { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .arking-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (max-width: 40rem) {
  .arking-offerings-grid { grid-template-columns: minmax(0, 1fr); }
  .arking-service-grid, .arking-reference-grid, .arking-reference-grid:has(> .arking-card:nth-child(3):last-child), .arking-project-facts,
  .arking-section > .wp-block-columns, .arking-section > .arking-process, .arking-section > .arking-contact-columns { grid-template-columns: minmax(0, 1fr); }
  .arking-scope-list { columns: 1; }
  .arking-filter { grid-template-columns: 1fr; }
}
@media (max-width: 960px) {
  :root, .editor-styles-wrapper { --arking-header-height: 5rem; }
  .arking-home-hero { min-height: 42rem; }
  .arking-footer-layout { grid-template-columns: 1fr; }
}
/* Standalone dynamic grids outside a named section still collapse safely. */
@media (max-width: 700px) {
  .arking-service-grid, .arking-reference-grid, .arking-reference-grid:has(> .arking-card:nth-child(3):last-child) { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .arking-home-hero .arking-hero-image img { transform: none; }
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* Plain Gutenberg content uses the same measures as the composed sections. */
.arking-site-main > .wp-block-post-content > :where(:not(.arking-section):not(.alignfull):not(.alignwide):not(.khwshowcase-block):not(.khwshowcase)) {
  max-width: min(var(--arking-reading), calc(100% - var(--arking-gutter) * 2));
  margin-inline: auto;
}
.arking-site-main > .wp-block-post-content > .alignwide:not(.arking-home-hero) {
  width: min(var(--arking-wide), calc(100% - var(--arking-gutter) * 2));
  max-width: var(--arking-wide);
  margin-inline: auto;
}
.arking-footer-inner > :where(.arking-footer-layout, .arking-footer-meta) { width: 100%; max-width: 100%; margin-inline: 0 !important; }
