/*
Theme Name: PLATZEA
Description: A considered editorial website for garment sourcing, with an integrated private inquiry workflow.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: platzea
*/
:root {
  --paper:#f8f8f3;
  --ink:#27382c;
  --muted:#667064;
  --green:#364b38;
  --lime:#dfe6c9;
  --line:#dce0d5;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased}
a {
  color:inherit;
  text-decoration:none}
img {
  display:block;
  max-width:100%;
  height:auto}
button,input,select,textarea {
  font:inherit}
button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent}
button,a {
  touch-action:manipulation}
button {
  cursor:pointer}
button:disabled {
  cursor:wait;
  opacity:.65}
::selection {
  background:var(--lime)}
:focus-visible {
  outline:3px solid #869757;
  outline-offset:5px}
h1,h2,h3,p {
  margin-top:0}
h1,h2 {
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.045em;
  line-height:1.08}
h1 {
  font-size:clamp(3.25rem,5.2vw,5.125rem)}
h2 {
  font-size:clamp(2.375rem,3.4vw,3.25rem)}
h3 {
  font-size:1.1875rem;
  font-weight:500;
  line-height:1.4;
  letter-spacing:-.025em}
em {
  font-weight:400;
  color:#6d7c57}
p {
  color:var(--muted)}
svg {
  flex-shrink:0}
button svg,a svg {
  transition:transform .2s ease}
a:hover>svg,button:hover>svg {
  transform:translateX(3px)}
.wrap {
  width:calc(100% - 112px);
  max-width:1328px;
  margin-inline:auto}
.section {
  padding-block:100px}
.eyebrow {
  display:block;
  font-size:0.75rem;
  letter-spacing:.15em;
  line-height:1.5;
  font-weight:600;
  margin-bottom:24px}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:28px;
  background:var(--green);
  color:white;
  padding:16px 23px;
  border:1px solid var(--green);
  border-radius:2px;
  font-size:1rem;
  font-weight:500;
  line-height:1.5;
  transition:background .2s;
  min-height:52px}
.button:hover {
  background:#253827}
.button svg {
  width:19px;
  height:19px}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:15px;
  font-size:1rem;
  font-weight:500;
  padding-block:7px;
  border-bottom:1px solid currentColor;
  line-height:1.5}
.text-link svg {
  height:17px;
  width:17px}
.text-link:hover {
  color:#748356}
.skip-link {
  position:absolute;
  top:-100px;
  left:20px;
  z-index:100;
  background:white;
  padding:12px}
.skip-link:focus {
  top:12px}
.announcement {
  height:34px;
  padding-inline:56px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  background:var(--green);
  color:#f2f3e9;
  font-size:0.75rem;
  letter-spacing:.12em}
.announcement>span:last-child {
  display:flex;
  gap:12px;
  align-items:center;
  letter-spacing:.03em}
.announcement svg {
  width:13px;
  height:13px}
.site-header {
  height:98px;
  padding-inline:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:relative;
  z-index:20}
.wordmark {
  font-size:1.8125rem;
  letter-spacing:.075em;
  line-height:1;
  font-weight:600;
  display:inline-flex;
  align-items:baseline;
  gap:2px}
.brand-dot {
  width:6px;
  height:6px;
  background:#879563;
  display:inline-block;
  margin-left:3px}
.site-header nav {
  display:flex;
  gap:31px;
  align-items:center;
  font-size:1rem}
.site-header nav>a:not(.button) {
  padding-block:8px}
.site-header nav>a[aria-current] {
  border-bottom:1px solid var(--green)}
.nav-list {
  padding:0;
  list-style:none;
  display:flex;
  gap:25px;
  margin:0}
.nav-cta {
  margin-left:12px;
  font-size:1rem;
  min-height:44px;
  padding:12px 19px;
  gap:30px}
.menu-toggle {
  display:none}
.hero {
  display:grid;
  grid-template-columns:1.07fr 1fr;
  gap:36px;
  padding-block:53px 54px;
  align-items:center}
.hero-copy {
  padding-block:25px}
.hero-copy .eyebrow {
  font-size:0.75rem;
  letter-spacing:.12em;
  display:flex;
  gap:9px;
  align-items:center;
  margin-bottom:28px}
.status-dot {
  height:6px;
  width:6px;
  background:#7c9064;
  border-radius:50%;
  box-shadow:0 0 0 4px #e8ecde}
.hero h1 {
  margin-bottom:27px;
  font-size:clamp(2.9375rem,5.1vw,4.8125rem)}
.hero-copy>p {
  max-width:385px;
  font-size:1.125rem;
  line-height:1.9;
  margin-bottom:30px}
.hero-actions {
  display:flex;
  align-items:center;
  gap:23px;
  flex-wrap:wrap}
.hero-actions .button {
  font-size:1rem;
  gap:20px}
.hero-actions .text-link {
  font-size:1rem}
.hero-note {
  display:flex;
  gap:22px;
  margin-top:39px;
  font-size:0.875rem;
  color:var(--muted)}
.hero-note span {
  display:flex;
  gap:6px;
  align-items:center}
.hero-note svg {
  width:13px;
  height:13px;
  color:var(--green)}
.hero-visual {
  position:relative;
  align-self:stretch;
  min-height:490px;
  overflow:hidden}
.hero-visual>img {
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:64% center}
.image-index {
  position:absolute;
  top:19px;
  left:22px;
  right:22px;
  display:flex;
  justify-content:space-between;
  font-size:0.75rem;
  letter-spacing:.12em;
  color:#293124}
.hero-image-label {
  position:absolute;
  bottom:24px;
  right:23px;
  left:23px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:white;
  font-size:0.75rem;
  letter-spacing:.15em;
  padding-top:60px;
  filter:drop-shadow(0 1px 4px #0008)}
.hero-image-label svg {
  height:36px;
  width:36px;
  stroke-width:1}
.scope-strip {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-block:1px solid var(--line);
  padding-block:27px;
  font-family:var(--serif);
  font-size:1.1875rem;
  line-height:1.4}
.scope-strip>span:first-child {
  font-family:var(--sans);
  font-size:0.75rem;
  letter-spacing:.1em;
  color:var(--muted);
  line-height:1.8}
.scope-strip strong {
  font-weight:500;
  color:var(--ink)}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:60px;
  margin-bottom:43px}
.section-heading h2 {
  margin:0}
.section-heading>div:last-child:not(:first-child) {
  width:350px}
.section-heading>div:last-child p {
  font-size:1rem;
  line-height:1.9;
  margin-bottom:17px}
.section-heading>.text-link {
  flex-shrink:0;
  margin-bottom:7px}
.services-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-left:1px solid var(--line);
  border-top:1px solid var(--line)}
.service-card {
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:31px 29px 21px;
  background:#fcfcf7;
  transition:background .2s;
  display:flex;
  flex-direction:column}
.service-card:hover {
  background:#eaf0df}
.service-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:35px}
.service-top svg {
  width:29px;
  height:29px}
.service-top>span {
  font-size:0.75rem;
  color:#7b8375;
  letter-spacing:.08em}
.service-card h3 {
  font-size:1.25rem;
  margin-bottom:11px}
.service-card p {
  font-size:1rem;
  max-width:260px;
  line-height:1.9;
  margin-bottom:28px}
.service-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--line);
  padding-top:17px;
  margin-top:auto;
  font-size:0.875rem;
  color:var(--muted)}
.service-bottom svg {
  width:18px;
  height:18px;
  color:var(--ink)}
.catalog-section {
  background:#eeefe7}
.category-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px}
.category-card {
  position:relative}
.category-card img {
  width:100%;
  height:365px;
  object-fit:cover;
  transition:filter .3s}
.category-garments img {
  object-position:right center}
.category-card:hover img {
  filter:brightness(.93)}
.category-tag {
  position:absolute;
  left:19px;
  top:19px;
  font-size:0.75rem;
  letter-spacing:.14em;
  padding:8px 11px;
  background:var(--paper)}
.category-card>div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:23px}
.category-card h3 {
  font-family:var(--serif);
  font-size:1.75rem;
  margin:0}
.category-card p {
  font-size:1rem;
  margin:6px 0 0}
.category-card>div svg {
  width:20px;
  height:20px}
.category-footnote {
  display:flex;
  align-items:center;
  gap:20px;
  border-top:1px solid #d1d5c9;
  margin-top:33px;
  padding-top:22px;
  font-size:0.875rem;
  color:var(--muted)}
.category-footnote .text-link {
  border:0;
  font-size:1rem;
  color:var(--ink)}
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px}
.process-step .step-line {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding-bottom:22px;
  margin-bottom:25px}
.step-line>span {
  font-family:var(--serif);
  font-size:2.375rem;
  color:#859174}
.step-line svg {
  width:21px;
  color:#89957b}
.process-step h3 {
  font-size:1.125rem;
  margin-bottom:14px}
.process-step p {
  font-size:1rem;
  line-height:1.9;
  max-width:250px}
.about-split {
  display:grid;
  grid-template-columns:1fr 1fr;
  background:var(--green);
  color:var(--paper);
  padding:65px 64px;
  gap:90px}
.about-split em {
  color:#c6d2ad}
.about-split p {
  color:#ccd3c6;
  font-size:1rem;
  line-height:1.9}
.about-split .eyebrow {
  color:#cdd7bd}
.about-text>p {
  max-width:420px}
.about-text .text-link {
  margin-top:15px}
.principles {
  display:flex;
  flex-direction:column;
  justify-content:center}
.principles>div {
  position:relative;
  padding:24px 0 20px 45px;
  border-bottom:1px solid #5c6b55}
.principles>div:last-child {
  border:0}
.principles>div>span {
  position:absolute;
  left:0;
  top:28px;
  font-size:0.75rem;
  color:#b6c59d}
.principles h3 {
  font-size:1.125rem;
  margin-bottom:9px}
.principles p {
  font-size:1rem;
  margin:0}
.faq-section {
  display:grid;
  grid-template-columns:1fr 1.45fr;
  gap:75px}
.faq-section h2 {
  margin-bottom:26px}
.faq-list details {
  border-bottom:1px solid var(--line)}
.faq-list details:first-child {
  border-top:1px solid var(--line)}
.faq-list summary {
  list-style:none;
  cursor:pointer;
  font-size:1rem;
  padding:22px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px}
.faq-list summary::-webkit-details-marker {
  display:none}
.faq-list summary>span {
  font-size:1.4375rem;
  font-weight:300;
  transition:transform .2s}
.faq-list details[open] summary>span {
  transform:rotate(45deg)}
.faq-list details p {
  font-size:1rem;
  line-height:1.9;
  padding:0 36px 20px 0;
  margin:0}
.home-inquiry {
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:85px;
  padding-top:80px}
.inquiry-side {
  padding-top:30px}
.inquiry-side>p {
  max-width:330px;
  font-size:1rem;
  line-height:1.9}
.contact-points {
  display:flex;
  flex-direction:column;
  gap:18px;
  margin-top:33px;
  font-size:0.875rem}
.contact-points>span {
  display:flex;
  align-items:center;
  gap:12px}
.contact-points svg {
  width:17px;
  height:17px}
.inquiry-panel {
  padding:35px;
  background:#eeefe7;
  min-width:0;
  scroll-margin-top:25px}
.inquiry-panel>.eyebrow {
  font-size:0.75rem;
  margin-bottom:15px}
.inquiry-panel h2 {
  font-size:1.9375rem;
  letter-spacing:-.035em;
  margin-bottom:15px}
.form-intro {
  font-size:1rem;
  line-height:1.8}
.form-intro>span {
  font-size:0.875rem;
  color:#72796b}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px}
.form-grid label {
  font-size:0.875rem;
  font-weight:500;
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
  position:relative}
.form-grid label>span {
  font-size:0.875rem;
  font-weight:400;
  color:#72796b;
  display:contents}
.full-field {
  grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea {
  width:100%;
  min-width:0;
  background:#fcfcf9;
  border:1px solid #d6dbcf;
  border-radius:1px;
  padding:11px 12px;
  color:var(--ink);
  font-size:1rem;
  line-height:1.6;
  min-height:43px}
.form-grid textarea {
  resize:vertical;
  min-height:120px}
.form-grid input::placeholder,.form-grid textarea::placeholder {
  color:#81877c}
.form-grid select {
  padding-right:24px}
.consent {
  font-size:0.875rem;
  display:flex;
  align-items:flex-start;
  gap:9px;
  line-height:1.7;
  margin-block:20px;
  color:var(--muted)}
.consent input {
  accent-color:var(--green);
  margin:3px 0 0;
  width:14px;
  height:14px;
  flex-shrink:0}
.consent a {
  text-decoration:underline}
.form-submit {
  width:100%;
  justify-content:space-between;
  font-size:1rem;
  padding:14px 20px}
.form-submit>span {
  font-size:1.3125rem;
  line-height:1}
.form-note {
  font-size:0.75rem;
  text-align:center;
  margin:12px 0 0}
.form-trap {
  position:absolute!important;
  left:-9999px!important;
  height:1px;
  width:1px;
  overflow:hidden}
.form-feedback {
  padding:19px;
  background:#fae6df;
  color:#8d3322;
  border:1px solid #d79b8b;
  font-size:1rem;
  margin-bottom:20px}
.form-feedback.is-success {
  background:#e2e9d5;
  color:#304c2c;
  border-color:#a4b493}
.form-feedback[hidden],form[hidden] {
  display:none}
.site-footer {
  background:#e9ece1}
.footer-main {
  display:grid;
  grid-template-columns:1.8fr 1fr 1fr 1.4fr;
  gap:35px;
  padding-block:60px 50px}
.footer-brand .wordmark {
  font-size:1.6875rem}
.footer-brand p {
  font-size:0.875rem;
  line-height:1.9;
  margin:23px 0}
.footer-location {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:0.875rem;
  color:var(--muted)}
.footer-location svg {
  width:15px;
  height:15px}
.footer-heading {
  display:block;
  font-size:0.75rem;
  letter-spacing:.15em;
  font-weight:600;
  margin:6px 0 24px}
.footer-main>div>a:not(.wordmark) {
  display:block;
  font-size:0.875rem;
  margin-bottom:12px;
  color:var(--muted)}
.footer-main>div>a:hover {
  color:var(--ink)}
.footer-invitation p {
  font-family:var(--serif);
  font-size:1.375rem;
  color:var(--ink);
  line-height:1.4;
  margin-bottom:14px}
.footer-main .footer-invitation>.text-link {
  display:inline-flex;
  color:var(--ink)}
.footer-bottom {
  border-top:1px solid #d3d9ca;
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-block:20px;
  font-size:0.75rem;
  color:var(--muted)}
.page-hero {
  padding-block:28px 64px;
  border-bottom:1px solid var(--line)}
.breadcrumb {
  display:block;
  font-size:0.875rem;
  color:var(--ink);
  margin-bottom:52px}
.breadcrumb span {
  color:var(--muted)}
.page-hero h1 {
  margin-bottom:29px}
.page-intro {
  max-width:680px;
  font-size:1rem;
  line-height:1.9}
.page-intro p:last-child {
  margin-bottom:0}
.service-details article {
  display:grid;
  grid-template-columns:50px 1fr 1fr;
  gap:45px;
  padding-block:56px;
  border-bottom:1px solid var(--line);
  scroll-margin-top:30px}
.detail-number {
  font-size:0.8125rem;
  color:#80906c}
.service-details h2 {
  font-size:2.0625rem;
  margin:20px 0}
.service-details p {
  font-size:1rem;
  line-height:1.9}
.service-details .detail-subtitle {
  font-family:var(--serif);
  font-size:1.1875rem;
  font-style:italic;
  max-width:300px}
.check-list {
  list-style:none;
  padding:0;
  margin:23px 0}
.check-list li {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:1rem;
  line-height:1.7;
  margin:13px 0}
.check-list svg {
  width:16px;
  height:20px}
.scope-note {
  font-size:0.875rem;
  color:var(--muted);
  padding-block:28px;
  line-height:1.9}
.scope-note strong {
  color:var(--ink)}
.cta-band {
  background:var(--green);
  color:white;
  padding:52px 58px;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:50px;
  margin-block:45px 80px}
.cta-band h2 {
  font-size:2.6875rem;
  margin:0}
.cta-band em {
  color:#c5d0ae}
.cta-band p {
  font-size:1rem;
  color:#d0d9c7}
.button-light {
  background:var(--paper);
  color:var(--green);
  border-color:var(--paper);
  margin-top:15px}
.button-light:hover {
  background:#dfe5d2}
.sourcing-collections article {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  padding-block:65px;
  border-bottom:1px solid var(--line);
  align-items:center}
.sourcing-collections article img {
  width:100%;
  height:450px;
  object-fit:cover}
.sourcing-collections article:nth-child(even) img {
  order:2}
.sourcing-collections h2 {
  font-size:2.5rem}
.sourcing-collections p {
  font-size:1rem}
.tag-list {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-block:26px}
.tag-list>span {
  border:1px solid var(--line);
  font-size:0.875rem;
  padding:7px 10px}
.brief-box {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:55px;
  padding:50px;
  background:#eeefe7;
  margin-block:60px}
.brief-box h2 {
  font-size:2.3125rem;
  margin:0}
.page-process .faq-list {
  max-width:850px;
  margin-inline:auto}
.about-page {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:65px;
  align-items:center;
  padding-top:65px}
.about-page img {
  width:100%;
  height:540px;
  object-fit:cover;
  object-position:70% center}
.about-page h2 {
  font-size:2.75rem}
.about-page p {
  font-size:1rem;
  line-height:1.9}
.values-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px}
.values-grid>div {
  border-top:1px solid var(--line);
  padding-top:25px}
.values-grid p {
  font-size:1rem}
.contact-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px;
  padding-block:65px 100px}
.contact-layout>aside {
  padding-top:25px}
.contact-layout h2 {
  font-size:2.6875rem}
.contact-layout aside>p {
  font-size:1rem;
  max-width:330px}
.contact-after {
  border-top:1px solid var(--line);
  margin-top:45px;
  padding-top:28px;
  max-width:330px}
.contact-after p {
  font-size:1rem}
.contact-after .eyebrow {
  margin-bottom:15px}
.contact-layout .inquiry-panel {
  padding:40px}
.contact-layout .inquiry-panel h2 {
  font-size:2.125rem}
.entry-content a {
  text-decoration:underline}
.entry-content h2 {
  font-size:1.75rem;
  letter-spacing:-.025em;
  margin:30px 0 15px}
.entry-content h3 {
  margin-top:24px}
.page-privacy .page-hero {
  max-width:900px;
  padding-bottom:85px}
.page-privacy .page-intro {
  max-width:100%}
.error-page {
  min-height:60vh}
.error-page p {
  max-width:550px}
@media(min-width:1500px) {
  .announcement,.site-header {
  padding-inline:max(56px,calc((100vw - 1328px)/2))}
.hero {
  gap:65px}
.hero-visual {
  min-height:530px}
}
@media(max-width:1150px) {
  .wrap {
  width:calc(100% - 72px)}
.announcement,.site-header {
  padding-inline:36px}
.site-header nav {
  gap:22px}
.nav-cta {
  gap:15px;
  margin-left:0}
.hero {
  gap:23px}
.hero h1 {
  font-size:3.625rem}
.hero-visual {
  min-height:460px}
.hero-copy .eyebrow {
  font-size:0.75rem}
.hero-note {
  gap:12px;
  font-size:0.875rem}
.hero-actions {
  gap:14px}
.hero-actions .button {
  gap:14px;
  padding-inline:16px}
.hero-actions .text-link {
  font-size:1rem}
.section {
  padding-block:75px}
.service-card {
  padding-inline:22px}
.service-card h3 {
  font-size:1.25rem}
.scope-strip {
  font-size:1rem}
.about-split {
  gap:45px;
  padding:48px 40px}
.home-inquiry {
  gap:40px}
.contact-layout {
  gap:45px}
.footer-main {
  grid-template-columns:1.5fr 1fr 1fr 1.4fr}
.category-card img {
  height:300px}
.service-details article {
  gap:26px}
}
@media(max-width:900px) {
  .site-header {
  height:82px;
  gap:15px}
.wordmark {
  font-size:1.5625rem}
.site-header nav {
  gap:15px;
  font-size:1rem}
.nav-cta {
  font-size:1rem;
  padding-inline:12px;
  gap:10px}
.hero h1 {
  font-size:3.0625rem}
.hero-copy>p {
  font-size:1rem}
.hero-actions {
  align-items:flex-start;
  flex-direction:column;
  gap:12px}
.hero-note {
  flex-direction:column;
  gap:8px;
  margin-top:25px}
.hero-visual {
  min-height:480px}
.scope-strip {
  gap:12px;
  font-size:0.9375rem}
.scope-strip>span:first-child {
  font-size:0.75rem}
.section-heading {
  gap:35px}
.section-heading>div:last-child:not(:first-child) {
  width:290px}
.home-inquiry,.contact-layout {
  grid-template-columns:.8fr 1.2fr;
  gap:30px}
.inquiry-panel,.contact-layout .inquiry-panel {
  padding:25px}
.inquiry-side h2 {
  font-size:2.25rem}
.about-page {
  gap:35px}
.about-page img {
  height:500px}
.sourcing-collections article {
  gap:35px}
.sourcing-collections article img {
  height:400px}
.footer-main {
  grid-template-columns:1.5fr 1fr 1fr}
.footer-invitation {
  grid-column:1/-1;
  display:none}
.process-grid {
  gap:18px}
.process-step h3 {
  font-size:1.125rem}
.faq-section {
  gap:38px}
.cta-band {
  padding:40px}
.cta-band h2 {
  font-size:2.3125rem}
}
@media(max-width:720px) {
  .wrap {
  width:calc(100% - 40px)}
.announcement {
  padding-inline:20px;
  height:29px;
  font-size:0.75rem;
  justify-content:center}
.announcement>span:last-child {
  display:none}
.site-header {
  padding-inline:20px;
  height:75px}
.wordmark {
  font-size:1.6875rem}
.menu-toggle {
  display:flex;
  width:42px;
  height:42px;
  border:1px solid var(--line);
  background:none;
  align-items:center;
  justify-content:center;
  gap:6px;
  flex-direction:column;
  padding:10px}
.menu-toggle span {
  height:1px;
  width:20px;
  background:var(--ink);
  transition:transform .2s}
.menu-toggle[aria-expanded=true] span:first-child {
  transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child {
  transform:translateY(-3.5px) rotate(-45deg)}
.site-header nav {
  display:none;
  position:absolute;
  top:74px;
  left:0;
  right:0;
  background:var(--paper);
  padding:20px;
  flex-direction:column;
  align-items:stretch;
  gap:5px;
  border-bottom:1px solid var(--line);
  box-shadow:0 14px 18px #2931240a;
  font-size:1rem}
.site-header nav.is-open {
  display:flex}
.site-header nav>a:not(.button) {
  padding:12px 0}
.site-header .nav-cta {
  margin-top:10px;
  font-size:1rem;
  justify-content:space-between}
.nav-list {
  flex-direction:column;
  gap:10px}
.hero {
  grid-template-columns:1fr;
  padding-block:38px 30px;
  gap:28px}
.hero-copy {
  padding:0}
.hero-copy .eyebrow {
  font-size:0.75rem;
  margin-bottom:25px;
  letter-spacing:.08em}
.hero h1 {
  font-size:clamp(2.8125rem,10.8vw,4.375rem);
  margin-bottom:23px}
.hero-copy>p {
  font-size:1rem;
  max-width:430px;
  margin-bottom:25px;
  line-height:1.8}
.hero-actions {
  flex-direction:row;
  align-items:center;
  gap:20px}
.hero-actions .button {
  padding:14px 16px;
  font-size:1rem;
  gap:12px;
  min-height:46px}
.hero-actions .text-link {
  font-size:1rem;
  gap:8px}
.hero-note {
  flex-direction:row;
  flex-wrap:wrap;
  font-size:0.875rem;
  gap:17px;
  margin-top:23px}
.hero-visual {
  min-height:0;
  height:365px}
.hero-visual img {
  object-position:60% center}
.image-index {
  font-size:0.75rem;
  left:17px;
  right:17px;
  top:15px}
.hero-image-label {
  font-size:0.75rem;
  left:17px;
  right:17px;
  bottom:18px}
.scope-strip {
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:14px 23px;
  padding-block:22px;
  font-size:0.9375rem}
.scope-strip>span:first-child {
  width:100%;
  font-size:0.75rem}
.scope-strip>span:first-child br {
  display:none}
.scope-strip strong {
  margin-left:4px}
.section {
  padding-block:60px}
.eyebrow {
  font-size:0.75rem;
  margin-bottom:20px}
h2 {
  font-size:2.375rem}
.section-heading {
  display:block;
  margin-bottom:29px}
.section-heading>div:last-child:not(:first-child) {
  width:auto;
  margin-top:23px}
.section-heading>div:last-child p {
  max-width:400px;
  font-size:1rem}
.section-heading>.text-link {
  margin-top:23px;
  font-size:1rem}
.services-grid {
  grid-template-columns:1fr 1fr}
.service-card {
  padding:22px 17px 17px}
.service-top {
  margin-bottom:24px}
.service-top svg {
  width:25px;
  height:25px}
.service-card h3 {
  font-size:1.25rem;
  line-height:1.4}
.service-card p {
  font-size:1rem;
  margin-bottom:20px;
  line-height:1.8}
.service-bottom {
  font-size:0.875rem;
  gap:5px}
.category-grid {
  grid-template-columns:1fr;
  gap:35px}
.category-card img {
  height:330px}
.category-card h3 {
  font-size:1.625rem}
.category-card p {
  font-size:1rem}
.category-footnote {
  display:block;
  font-size:0.875rem}
.category-footnote .text-link {
  display:flex;
  width:fit-content;
  margin-top:5px}
.process-grid {
  grid-template-columns:1fr 1fr;
  gap:27px}
.process-step h3 {
  font-size:1.125rem}
.process-step p {
  font-size:1rem}
.step-line>span {
  font-size:2.0625rem}
.process-step .step-line {
  padding-bottom:13px;
  margin-bottom:20px}
.about-split {
  grid-template-columns:1fr;
  gap:25px;
  padding:37px 27px}
.about-split h2 {
  font-size:2.375rem}
.about-text .text-link {
  margin-top:8px}
.principles>div {
  padding-top:20px;
  padding-bottom:19px}
.principles>div>span {
  top:24px}
.faq-section {
  grid-template-columns:1fr;
  gap:32px}
.faq-list summary {
  font-size:1rem;
  padding-block:20px}
.home-inquiry,.contact-layout {
  grid-template-columns:1fr;
  gap:35px}
.home-inquiry {
  padding-top:45px}
.inquiry-side {
  padding-top:0}
.inquiry-side h2 {
  font-size:2.4375rem}
.inquiry-side>p {
  max-width:380px}
.contact-points {
  gap:13px;
  margin-top:25px;
  font-size:0.875rem}
.inquiry-panel,.contact-layout .inquiry-panel {
  padding:25px 20px}
.inquiry-panel h2,.contact-layout .inquiry-panel h2 {
  font-size:1.875rem}
.form-grid {
  gap:15px 12px}
.form-grid input,.form-grid select,.form-grid textarea {
  font-size:1rem;
  padding:10px;
  min-height:45px}
.form-grid input::placeholder,.form-grid textarea::placeholder {
  font-size:1rem}
.form-grid label {
  font-size:0.875rem}
.form-intro {
  font-size:1rem}
.consent {
  font-size:0.875rem}
.form-submit {
  min-height:49px}
.footer-main {
  grid-template-columns:1fr 1fr;
  gap:35px;
  padding-block:40px}
.footer-brand {
  grid-column:1/-1}
.footer-brand p {
  margin-block:17px}
.footer-heading {
  font-size:0.75rem;
  margin-bottom:20px}
.footer-main>div>a:not(.wordmark) {
  font-size:0.875rem}
.footer-bottom {
  display:block;
  font-size:0.75rem;
  padding-block:20px}
.footer-bottom>span {
  display:block}
.footer-bottom>span+span {
  margin-top:7px}
.page-hero {
  padding-block:20px 39px}
.breadcrumb {
  margin-bottom:34px;
  font-size:0.875rem}
.page-hero h1 {
  font-size:3.125rem}
.page-intro {
  font-size:1rem}
.service-details article {
  grid-template-columns:30px 1fr;
  gap:15px;
  padding-block:35px}
.service-details article>div:last-child {
  grid-column:2}
.service-details h2 {
  font-size:1.8125rem;
  margin-top:15px}
.service-details .detail-subtitle {
  font-size:1.125rem;
  margin-bottom:5px;
  max-width:none}
.service-details p {
  font-size:1rem}
.check-list li {
  font-size:1rem}
.scope-note {
  font-size:0.875rem}
.cta-band {
  grid-template-columns:1fr;
  gap:25px;
  padding:35px 25px;
  margin-block:30px 55px}
.cta-band h2 {
  font-size:2.25rem}
.cta-band .eyebrow {
  font-size:0.75rem}
.cta-band .button {
  font-size:1rem}
.sourcing-collections article {
  grid-template-columns:1fr;
  gap:27px;
  padding-block:35px}
.sourcing-collections article img {
  height:330px}
.sourcing-collections article:nth-child(even) img {
  order:0}
.sourcing-collections h2 {
  font-size:2.0625rem}
.sourcing-collections .eyebrow {
  margin-bottom:16px}
.sourcing-collections p {
  font-size:1rem}
.sourcing-collections .button {
  font-size:1rem}
.brief-box {
  grid-template-columns:1fr;
  padding:28px 23px;
  gap:15px;
  margin-block:35px}
.brief-box h2 {
  font-size:2rem}
.about-page {
  grid-template-columns:1fr;
  gap:35px;
  padding-top:35px}
.about-page img {
  height:370px}
.about-page h2 {
  font-size:2.4375rem}
.about-page p {
  font-size:1rem}
.values-grid {
  grid-template-columns:1fr;
  gap:20px}
.values-grid h3 {
  font-size:1.125rem}
.values-grid>div {
  padding-top:20px}
.contact-layout {
  padding-block:38px 60px}
.contact-layout>aside {
  padding-top:0}
.contact-layout>aside>h2 {
  font-size:2.4375rem}
.contact-after {
  max-width:none;
  margin-top:28px;
  padding-top:23px}
.contact-after p {
  margin:0}
.page-privacy .page-intro {
  font-size:1rem}
.error-page h1 {
  font-size:2.875rem}
}
@media(max-width:370px) {
  .hero-actions {
  gap:10px}
.hero-actions .button {
  padding-inline:12px;
  font-size:1rem}
.hero-actions .text-link {
  font-size:1rem}
.services-grid {
  grid-template-columns:1fr}
.service-card h3 {
  font-size:1.25rem}
.form-grid {
  grid-template-columns:1fr}
.form-grid label {
  grid-column:1}
.page-hero h1 {
  font-size:2.6875rem}
}
@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
*,*::before,*::after {
  transition:none!important;
  animation:none!important}
}

/* Layout room for the readable type scale. */
html { font-size: 100%; }
.site-header { min-height: 98px; height: auto; padding-block: 20px; flex-wrap: wrap; }
.site-header nav { flex-wrap: wrap; }
.site-header nav > a { max-width: 100%; }
.hero-copy > p { max-width: 29rem; line-height: 1.75; }
.hero-actions { gap: 16px 24px; }
.hero-note { flex-wrap: wrap; }
.announcement { height: auto; min-height: 34px; padding-block: 7px; gap: 20px; }
.announcement > span { overflow-wrap: anywhere; }
.scope-strip { flex-wrap: wrap; }
.section-heading > div { min-width: 0; }
.section-heading > div:last-child:not(:first-child) { flex-shrink: 0; max-width: 100%; }
.section-heading > .text-link { flex-shrink: 1; }
.service-card, .process-step, .about-text, .principles, .category-card, .footer-main > div { min-width: 0; }
.service-card h3, .service-details h2, .page-hero h1 { overflow-wrap: anywhere; }
.service-card p, .process-step p { max-width: none; }
.service-bottom { gap: 12px; }
.category-footnote { flex-wrap: wrap; }
.form-grid {
  gap: 22px 18px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}
.form-grid label { line-height: 1.5; }
.form-grid input, .form-grid select, .form-grid textarea { min-height: 48px; }
.form-grid input::placeholder, .form-grid textarea::placeholder { font-size: 1rem; }
.form-grid textarea { min-height: 160px; }
.consent { gap: 12px; }
.consent input { width: 18px; height: 18px; }
.footer-main > div > a:not(.wordmark) { padding-block: 4px; }
.footer-bottom { flex-wrap: wrap; }
.inquiry-side > p, .contact-layout aside > p, .contact-after { max-width: 28rem; }
@media (min-width: 721px) and (max-width: 1100px) {
  .site-header { gap: 18px; }
  .site-header nav { width: 100%; justify-content: space-between; gap: 12px; }
  .home-inquiry, .contact-layout { grid-template-columns: 1fr; gap: 40px; }
  .inquiry-side > p, .contact-layout aside > p { max-width: 40rem; }
  .inquiry-panel { max-width: 760px; width: 100%; }
}
@media (max-width: 900px) {
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .section-heading { flex-wrap: wrap; }
}
@media (max-width: 720px) {
  .site-header { min-height: 75px; padding-block: 16px; }
  .site-header nav { top: 100%; }
  .site-header nav.is-open { display: flex; }
  .hero-actions { align-items: flex-start; gap: 14px 20px; }
  .hero-actions .button { min-height: 52px; padding-inline: 20px; }
  .hero-copy > p { line-height: 1.75; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .form-grid label { grid-column: 1; }
  .inquiry-panel, .contact-layout .inquiry-panel { padding: 28px 22px; }
  .image-index { flex-wrap: wrap; gap: 8px; }
  .announcement { text-align: center; }
  .service-details article { grid-template-columns: 24px minmax(0, 1fr); }
  .hero-note { gap: 12px 20px; }
}
@media (max-width: 600px) {
  .services-grid, .process-grid { grid-template-columns: minmax(0, 1fr); }
  .service-card { padding: 28px 24px 22px; }
  .process-step .step-line { margin-bottom: 18px; }
  .process-step p { margin-bottom: 0; }
  .about-split { padding-inline: 24px; }
}
