/* The same paper, charcoal and brass run through the course sheets and contact card. */
:root {
  --body-copy: #565c54;
  --brass: #876639;
  --soft-rule: #d9d6c9;
  --focus: #785122;
}

:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.skip-link {
  position: absolute;
  z-index: 20;
  top: 4px;
  left: 4px;
  transform: translateY(-160%);
  padding: 12px 18px;
  background: white;
  color: var(--ink);
}
.skip-link:focus { transform: none; }
.overline {
  color: var(--brass);
  font: 700 .65rem/1.5 Arial, Helvetica, sans-serif;
  text-transform: uppercase;
  letter-spacing: .16em;
}
.inline-link, .print-link {
  display: inline-block;
  padding-bottom: 3px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: #6b542e;
  font-size: .85rem;
  line-height: 1.5;
  cursor: pointer;
}
.inline-link:hover, .print-link:hover { color: var(--ink); }
.site-header {
  position: relative;
  z-index: 2;
  height: 84px;
  background: var(--paper);
}
.site-header .brand { font-size: 22px; letter-spacing: .2em; }
.site-header nav { align-items: center; gap: clamp(16px, 2.45vw, 38px); }
.site-header nav a { padding: 8px 0; }
.site-header nav [aria-current=page] { box-shadow: inset 0 -1px var(--brass); }
.site-header .navcta {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 12px 16px;
  border: 1px solid #b7b7a9;
  border-radius: 2px;
  white-space: nowrap;
}
.site-header .navcta:hover { background: #efece2; }
.site-header .navcta span { margin: 0; }
.menu-button { display: none; }

.hero { padding-top: clamp(40px, 4.7vw, 72px); padding-bottom: clamp(38px, 4.4vw, 64px); gap: 5%; }
.hero .eyebrow { color: #5d614f; }
.hero h1 { font-size: clamp(44px, 5.1vw, 76px); text-wrap: balance; }
.hero h1 em { color: #987746; }
.hero .intro { max-width: 53ch; font-size: clamp(16px, 1.2vw, 18px); color: var(--body-copy); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.hero-actions .textlink { margin: 0; padding: 10px 0; border-bottom: 1px solid #beb7a6; font-size: 13px; }
.hero-note { margin: 28px 0 0; font-size: 12px; color: #5e6559; }
.folio-art {
  isolation: isolate;
  min-height: clamp(350px, 31.8vw, 465px);
  border-color: #dedbcf;
  background-color: #eae8dd;
  background-image: repeating-linear-gradient(90deg, transparent 0 35px, #3f442b06 35px 36px),
                    linear-gradient(130deg, #faf9f060, #b7b6a940);
}
.folio-back, .folio-cover {
  width: min(64%, 306px);
  height: min(82%, 338px);
  position: absolute;
  border: 1px solid #d1cbbb;
}
.folio-back {
  transform: translate(12px, 4px) rotate(3deg);
  background: #d2c6ab;
  box-shadow: 0 10px 16px #30352713;
}
.folio-cover {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: stretch;
  padding: 23px 24px 20px 32px;
  transform: rotate(-3deg);
  background: linear-gradient(to right, #a48653 0 5px, #eeeade 5px 12px, #e1ded1 12px 13px, #fbfaf4 13px);
  box-shadow: 1px 6px 15px #373d2c18;
}
.folio-imprint, .case-sheet-head, .case-sheet-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--soft-rule);
  padding-bottom: 12px;
  font-size: 8px;
  letter-spacing: .12em;
  color: #636858;
}
.folio-imprint b { font-size: 10px; letter-spacing: .2em; color: var(--ink); }
.folio-art .folio-cover img { display: block; object-fit: contain; width: 68%; height: 53%; align-self: center; mix-blend-mode: multiply; }
.folio-type { margin-top: auto; font: normal 29px/1.25 Georgia, serif; letter-spacing: -.04em; color: #36382f; }
.folio-line { font-size: 9px; line-height: 1.6; margin-top: 8px; padding-top: 9px; border-top: 1px solid var(--soft-rule); color: #686d60; }
.folio-line i { padding: 0 3px; font-style: normal; }
.jump-strip { max-width: 1440px; margin-inline: auto; padding-block: 16px; }
.jump-strip > span { color: #656b5d; font-weight: 600; }
.jump-strip > div { display: flex; gap: clamp(16px,3vw,44px); flex-wrap: wrap; }
.jump-strip a { padding: 8px 0; font-size: 13px; }
.jump-strip a:hover { text-decoration: underline; text-underline-offset: 4px; }
.section { padding-block: clamp(58px, 6vw, 90px); }
.section h2 { text-wrap: balance; }
.section .method-intro { color: var(--body-copy); }
.three-cols p, .trust-list p, .privacy-grid p, .lifecycle p, .request-followup ol { color: var(--body-copy); }
.approach-copy .inline-link { margin: 9px 0 0; }
.sample-foot .inline-link { font-size: 13px; }
.tariff { border-top: 1px solid var(--line); background: #f0eee5; }
.tariff-layout, .legal-imprint {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: start;
  gap: clamp(40px, 8%, 120px);
}
.tariff-intro > p, .legal-imprint p, .case-after p { max-width: 53ch; color: var(--body-copy); font-size: 15px; }
.price-figure { margin: 28px 0 16px; }
.price-figure strong { display: inline-block; font: 400 clamp(31px, 3vw, 43px)/1.15 Georgia, serif; letter-spacing: -.04em; }
.price-figure span { font-size: 13px; white-space: nowrap; color: var(--body-copy); }
.tariff .inline-link { margin: 0; }
.scope-list { margin: 0; }
.scope-list > div { border-top: 1px solid #c9caba; padding: 17px 0; }
.scope-list dt, .request-help > strong { font-weight: 600; font-size: 16px; line-height: 1.5; }
.scope-list dd { margin: 6px 0 0; color: var(--body-copy); font-size: 14px; line-height: 1.7; }
.project-close { align-items: center; }
.project-close h2 { font-size: clamp(35px, 3.8vw, 56px); }
.project-next > p { margin: 0 0 25px; color: #d0d4c8; font-size: 15px; }
.project-contact { display: inline-block; margin: 12px 0 0 20px; font-size: 13px; color: #e5ded0; text-decoration: underline; text-underline-offset: 5px; }
.project a:focus-visible { outline-color: #e0c89c; }

/* One shared colophon. Its signature spans the entire page, independently of the card. */
.site-footer {
  display: block;
  padding: 0;
  border-top: 1px solid var(--soft-rule);
  background: #f5f3ea;
  color: var(--ink);
}
.footer-inner { max-width: 1440px; padding: 0 6%; margin-inline: auto; }
.footer-top {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(0,.85fr) minmax(270px,1fr);
  align-items: start;
  gap: clamp(24px, 5vw, 76px);
  padding: clamp(30px, 4vw, 58px) 0;
}
.footer-identity { padding-top: 8px; }
.footer-identity .brand { font-size: 21px; letter-spacing: .22em; }
.footer-identity p { margin: 16px 0 22px; font-size: 14px; line-height: 1.65; color: var(--body-copy); }
.footer-identity small { color: #606457; font-size: 11px; }
.footer-links { display: grid; gap: 0; justify-items: start; align-content: start; padding-top: 8px; }
.footer-links .overline { display: block; margin-bottom: 10px; }
.footer-links a { display: block; font-size: 13px; line-height: 1.6; padding: 3px 0; }
.footer-links a:hover, .contact-lines a:hover span { text-decoration: underline; text-underline-offset: 3px; }
.site-footer .contact-card {
  width: 100%;
  max-width: 350px;
  min-width: 0;
  display: block;
  justify-self: end;
  margin: 0;
  padding: 20px 24px 18px;
  border: 1px solid #d6d2c4;
  border-left: 3px solid #a88a57;
  border-radius: 3px;
  background: #fcfbf6;
  box-shadow: 0 4px 12px #353a2b05;
  scroll-margin-block-start: 1.2rem;
}
.contact-card .overline { display: inline-flex; align-items: center; gap: 8px; }
.contact-card .overline i { width: 5px; height: 5px; border-radius: 50%; background: #a88a57; }
.contact-card h2 { font: 400 26px/1.2 Georgia,serif; letter-spacing: -.035em; margin: 7px 0 11px; }
.contact-card .contact-lines { font-style: normal; font-size: 14px; line-height: 1.45; color: #484e43; }
.contact-lines a, .contact-lines .postal { display: flex; width: fit-content; align-items: start; gap: 11px; padding: 4px 0; overflow-wrap: anywhere; }
.contact-lines svg { flex: none; margin-top: 2px; color: #846a43; }
.site-footer .footer-signature {
  margin: 0;
  padding: clamp(21px,2.8vw,38px) 0;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(12px, 52px) auto minmax(12px, 52px);
  justify-content: center;
  align-items: center;
  gap: 18px;
  border-top: 1px solid var(--soft-rule);
  color: var(--ink);
  font: 400 clamp(21px, 2.2vw, 32px)/1.35 Georgia, serif;
  letter-spacing: -.03em;
  text-align: center;
}
.footer-signature::before, .footer-signature::after { content: ""; height: 1px; background: #b5a07b; }
.footer-signature em { color: var(--brass); }

.request-intro { padding-bottom: 20px; }
.request-intro .lead { max-width: 65ch; }
.request-layout {
  padding-top: 20px;
  grid-template-columns: minmax(0,.65fr) minmax(0,1.12fr);
  grid-template-areas: "progress form" "help form";
  grid-template-rows: auto 1fr;
  align-items: start;
  gap: 22px 8%;
}
.request-progress { grid-area: progress; }
.request-progress .eyebrow { margin-bottom: 8px; }
.request-progress .progress { margin: 0; }
.request-progress .progress li { padding: 16px 0; }
.request-form, .request-layout > noscript { grid-area: form; }
.request-form { padding: clamp(21px,3.2vw,44px); background: #fffef9; border: 1px solid var(--line); }
.form-guide, .review-lead { margin: 0 0 17px; font-size: 12px; color: var(--body-copy); }
.request-form label { font-size: 14px; }
.request-form input, .request-form textarea, .request-form select { font-size: 16px; }
.request-form ::placeholder { color: #73766c; }
.request-form .button { min-height: 44px; }
.request-form .delivery-choice { border-top: 1px solid var(--soft-rule); margin-top: 24px; padding-top: 24px; }
.delivery-choice h2 { font: 400 25px/1.25 Georgia, serif; letter-spacing: -.02em; }
.delivery-choice p, .request-help p { font-size: 14px; line-height: 1.7; color: var(--body-copy); }
.delivery-choice .button { width: auto; background: var(--ink); color: #fff; }
.delivery-choice .button:hover { background: #41473b; }
.delivery-choice .manual-mail { font-size: 13px; margin-top: 20px; }
.manual-mail a, .legal-imprint a, .policy a { text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.summary-tools, .case-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.summary-tools button { border: 1px solid #babeb0; padding: 9px 14px; background: var(--paper); color: var(--ink); font-size: 13px; cursor: pointer; }
.summary-tools button:hover { background: #eeeade; }
#manual-copy { margin-top: 12px; }
#request-status:empty { display: none; }
.request-help { grid-area: help; }
.request-help .inline-link { font-size: 13px; }
.request-help p { max-width: 40ch; margin: 6px 0 12px; }
.request-help .request-followup { margin: 20px 0; padding: 0; }
.request-help summary { padding: 14px 0; }
.request-help ol { font-size: 13px; }
.request-help li { margin-bottom: 6px; }
.policy-shortcuts, .policy-sources { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.policy-shortcuts a { font-size: 13px; }
.policy { background: #efeee7; }
.policy-intro { color: var(--body-copy); max-width: 74ch; font-size: 16px; }
.policy-list { max-width: 980px; margin-top: 32px; }
.policy-list > div { display: grid; grid-template-columns: 1fr 2.6fr; gap: 32px; padding-block: 21px; }
.policy-list dd { margin: 0; }
.policy-sources { margin-top: 8px; }
.legal-imprint p:first-child { margin-top: 0; }
.legal-imprint h2 { font-size: 34px; }

.document-page { max-width: 960px; padding-block: 50px 74px; }
.document-page .back { margin-bottom: 30px; }
.sheet-top { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; border-top: 1px solid var(--line); padding: 16px 0 22px; color: var(--body-copy); font-size: 12px; }
.document-page h1 { font-size: clamp(38px,4.3vw,60px); letter-spacing: -.055em; text-wrap: balance; }
.document-lead { color: var(--body-copy); font-size: 17px; max-width: 69ch; }
.case-sheet { margin: 30px 0; padding: clamp(22px,4vw,54px); border: 1px solid var(--soft-rule); border-top: 3px solid #a48753; background: #fffef9; box-shadow: 0 8px 28px #262c1b0c; }
.case-sheet-head, .case-sheet-foot { font-size: 10px; line-height: 1.5; }
.case-sheet h2 { font: 400 clamp(25px,2.6vw,35px)/1.2 Georgia,serif; letter-spacing: -.035em; margin: 26px 0 12px; }
.case-sheet p { font-size: 14px; color: var(--body-copy); }
.case-numbers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); background: #f0eee4; margin: 20px 0 25px; padding: 18px 0; }
.case-numbers > div { text-align: center; border-right: 1px solid #d2cfc1; }
.case-numbers > div:last-child { border: 0; color: var(--brass); }
.case-numbers span { display: block; font-size: 12px; }
.case-numbers strong { display: block; font: 400 30px/1.3 Georgia,serif; }
.case-steps { list-style: none; counter-reset: procedure; padding: 0; margin: 20px 0; }
.case-steps li { counter-increment: procedure; display: grid; grid-template-columns: 26px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.case-steps li::before { content: counter(procedure,decimal-leading-zero); color: var(--brass); font-size: 13px; padding-top: 3px; }
.case-steps h3 { margin: 0 0 5px; font-size: 17px; font-weight: 600; }
.case-steps p, .case-note p { margin: 0; }
.case-note { border-left: 2px solid #ac905d; padding: 5px 0 5px 15px; }
.case-note strong { font-size: 14px; }
.case-sheet-foot { border-bottom: 0; border-top: 1px solid var(--line); padding: 12px 0 0; margin-top: 25px; font-size: 9px; }
.case-after p { max-width: 69ch; }
.print-link { padding-inline: 0; }

@media (max-width: 900px) {
  .site-header { height: auto; flex-wrap: wrap; justify-content: flex-start; gap: 10px 16px; padding-block: 14px; }
  .site-header .navcta { margin-left: auto; }
  .site-header nav { order: 3; display: flex; flex-wrap: wrap; width: 100%; gap: 6px 18px; }
  .menu-ready .site-header nav { display: none; }
  .menu-ready .site-header nav.is-open { display: flex; border-top: 1px solid var(--line); padding-top: 10px; }
  .menu-ready .menu-button { display: inline-flex; gap: 8px; align-items: center; background: transparent; border: 0; padding: 10px 0 10px 8px; font-size: 14px; cursor: pointer; color: var(--ink); }
  .folio-cover { padding: 18px 17px 17px 24px; }
  .folio-imprint span { font-size: 7px; }
  .footer-top { grid-template-columns: minmax(0,1fr) minmax(0,.95fr) minmax(230px,1.3fr); gap: 22px; }
  .site-footer .contact-card { padding: 16px 18px; }
  .footer-identity .brand { font-size: 18px; }
  .project-contact { margin-left: 0; display: table; }
  .jump-strip { flex-direction: row; }
}
@media (max-width: 680px) {
  .site-header { column-gap: 7px; }
  .site-header .brand { font-size: 18px; letter-spacing: .14em; }
  .site-header .navcta { font-size: 12px; padding: 9px; gap: 7px; }
  .menu-ready .menu-button { font-size: 12px; }
  .hero { grid-template-columns: 1fr; gap: 24px; }
  .hero h1 { font-size: clamp(40px,8vw,52px); }
  .hero .intro { margin-bottom: 19px; }
  .hero-note { margin-top: 14px; }
  .hero-art.folio-art { min-height: 260px; }
  .folio-back, .folio-cover { width: min(59%,240px); height: 84%; }
  .folio-type { font-size: 23px; }
  .folio-line { font-size: 8px; }
  .jump-strip { display: block; padding-block: 15px; }
  .jump-strip > div { gap: 0 18px; margin-top: 5px; }
  .jump-strip a { font-size: 12px; }
  .tariff-layout, .legal-imprint { grid-template-columns: 1fr; gap: 22px; }
  .price-figure { margin-top: 18px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 24px 16px; }
  .footer-identity, .footer-links { padding: 0; }
  .footer-identity p { font-size: 13px; }
  .site-footer .contact-card { grid-column: 1 / -1; justify-self: center; max-width: 410px; padding: 18px 22px; }
  .footer-links a { padding: 3px 0; font-size: 12px; }
  .site-footer .footer-signature { display: block; font-size: clamp(20px,4.5vw,26px); }
  .request-layout { grid-template-columns: 1fr; grid-template-rows: auto; grid-template-areas: "progress" "form" "help"; gap: 20px; }
  .request-progress .progress { display: flex; gap: 16px; }
  .request-progress .progress li { flex: 1; padding: 8px 0; font-size: 12px; }
  .request-progress .progress span { display: block; padding: 0; }
  .request-form { padding: 20px 16px; }
  .request-form .wizard-actions .button { min-width: 0; }
  .request-form .wizard-actions { flex-wrap: nowrap; }
  .request-form .button { gap: 14px; }
  .policy-list > div { grid-template-columns: 1fr; gap: 8px; }
  .case-sheet-head, .case-sheet-foot { font-size: 8px; }
  .case-sheet { padding: 20px 16px; }
}
@media (max-width: 359px) {
  .site-header .navcta { font-size: 11px; }
  .menu-button span { display: none; }
  .footer-top { grid-template-columns: 1fr; }
}
@media print {
  .site-header, .site-footer, .skip-link, .document-page .back, .case-actions { display: none; }
  .document-page { max-width: none; padding: 0; }
  .document-page h1 { font-size: 26pt; margin: 8pt 0; }
  .document-lead, .case-sheet p, .case-after p { font-size: 10pt; line-height: 1.35; }
  .document-page .sheet-top { padding-block: 5pt; }
  .case-sheet { margin: 12pt 0; padding: 12pt; box-shadow: none; }
  .case-steps li, .case-note, .case-numbers { break-inside: avoid; }
  .case-sheet h2 { margin-top: 10pt; font-size: 18pt; }
  .case-steps li { padding: 7pt 0; }
  .case-numbers { margin: 8pt 0; padding: 6pt 0; }
  .case-sheet-foot { margin-top: 8pt; }
}

.footer-identity p { max-width: 25ch; }
.site-header .cta-short { display: none; }
@media (max-width: 400px) {
  .site-header .cta-full { display: none; }
  .site-header .cta-short { display: inline; }
}
