Files
2026-10-02 14:49:22 -05:00

4600 lines
81 KiB
CSS

:root {
--ink: #242323;
--muted: #6f6a61;
--paper: #f7f4ed;
--surface: #ffffff;
--line: #ddd7cd;
--field: #f5f2ec;
--brand: #24443c;
--brand-2: #a7583b;
--accent: #d1a84f;
--soft: #eef3ef;
--shadow: 0 8px 24px rgba(28, 30, 28, 0.11);
--radius: 8px;
--page-width: 8.5in;
--pdf-photo-left: 0.92in;
--pdf-photo-width: 2.65in;
--pdf-text-left: 4in;
--pdf-text-right: 0.64in;
--pdf-text-width: calc(8.5in - var(--pdf-text-left) - var(--pdf-text-right));
color-scheme: light;
}
* {
box-sizing: border-box;
}
html,
body {
min-height: 100%;
}
body {
margin: 0;
color: var(--ink);
background: var(--paper);
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
line-height: 1.45;
}
button,
input,
textarea,
select {
font: inherit;
}
button {
border: 0;
border-radius: var(--radius);
cursor: pointer;
min-height: 38px;
padding: 0 14px;
transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
}
button:hover {
transform: translateY(-1px);
}
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
outline: 3px solid rgba(209, 168, 79, 0.42);
outline-offset: 2px;
}
.primary {
background: var(--brand);
color: white;
box-shadow: 0 10px 28px rgba(36, 68, 60, 0.24);
}
.secondary,
.tab {
background: #eee9df;
color: var(--ink);
border: 1px solid var(--line);
}
.danger {
background: #f5e5df;
color: #74351f;
border: 1px solid #e4c4b8;
}
.cover-image-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 12px;
}
.cover-source-choices {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 12px;
}
.cover-source-choice {
display: inline-flex;
align-items: center;
gap: 7px;
min-height: 36px;
padding: 7px 11px;
border: 1px solid #d8d2c8;
border-radius: 8px;
background: #fff;
font-size: 13px;
font-weight: 700;
cursor: pointer;
}
.cover-source-choice.active {
border-color: #222;
box-shadow: inset 0 0 0 1px #222;
}
.cover-pdf-input {
display: block;
width: 100%;
margin-top: 4px;
}
.cover-pdf-summary {
display: grid;
grid-template-columns: 64px minmax(0, 1fr) auto;
align-items: center;
gap: 12px;
margin-top: 14px;
padding: 10px;
border: 1px solid #ddd7ce;
border-radius: 9px;
background: #faf8f4;
}
.cover-pdf-summary img {
width: 56px;
height: 72px;
object-fit: contain;
background: #fff;
border: 1px solid #e1ddd5;
}
.cover-pdf-summary strong,
.cover-pdf-summary span {
display: block;
}
.cover-pdf-summary strong {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 13px;
}
.cover-pdf-summary span {
margin-top: 4px;
color: #6d675f;
font-size: 11px;
text-transform: capitalize;
}
.custom-cover-page,
.custom-compensation-page {
padding: 0 !important;
overflow: hidden;
background: #fff;
}
.custom-cover-image,
.custom-compensation-image {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
background: #fff;
}
.cover-image-auto.active {
background: var(--brand);
color: #fff;
border-color: var(--brand);
}
.cover-image-picker {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(124px, 1fr));
gap: 10px;
margin-top: 12px;
}
.cover-image-option {
display: grid;
gap: 7px;
min-height: 0;
padding: 6px;
border: 1px solid var(--line);
border-radius: var(--radius);
background: #fbfaf7;
text-align: left;
content-visibility: auto;
contain-intrinsic-size: 142px;
}
.cover-image-option.active {
border-color: var(--brand);
background: var(--soft);
box-shadow: 0 0 0 2px rgba(36, 68, 60, 0.12);
}
.cover-image-option img {
display: block;
width: 100%;
aspect-ratio: 4 / 3;
object-fit: cover;
border-radius: 5px;
background: #eee9df;
}
.cover-image-option span {
overflow: hidden;
color: var(--ink);
font-size: 11px;
font-weight: 700;
line-height: 1.2;
text-overflow: ellipsis;
white-space: nowrap;
}
.compact {
min-height: 32px;
padding: 0 10px;
}
.app-shell {
min-height: 100vh;
height: 100vh;
display: grid;
grid-template-columns: 280px minmax(0, 1fr);
}
.app-shell.preview-wide-shell {
grid-template-columns: minmax(0, 1fr);
}
.app-shell.preview-wide-shell .sidebar {
display: none;
}
.sidebar {
background: #f0ece4;
border-right: 1px solid var(--line);
padding: 22px;
display: flex;
flex-direction: column;
gap: 20px;
min-height: 100vh;
position: sticky;
top: 0;
}
.brand-block {
display: grid;
grid-template-columns: 48px minmax(0, 1fr);
gap: 12px;
align-items: center;
}
.brand-mark {
width: 48px;
height: 48px;
display: grid;
place-items: center;
border-radius: var(--radius);
background: var(--brand);
color: white;
font-weight: 800;
letter-spacing: 0;
}
h1,
h2,
h3,
h4,
p {
margin: 0;
}
h1 {
font-size: 19px;
line-height: 1.1;
}
h2 {
font-size: 32px;
line-height: 1.05;
letter-spacing: 0;
}
h3 {
font-size: 22px;
line-height: 1.12;
}
h4 {
font-size: 16px;
line-height: 1.2;
}
.brand-block p,
.eyebrow,
label,
.field-help,
.section-progress,
.draft-meta {
color: var(--muted);
}
.eyebrow {
text-transform: uppercase;
letter-spacing: 0.12em;
font-size: 11px;
font-weight: 800;
}
.sidebar-group {
display: grid;
gap: 7px;
}
label {
font-size: 12px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.sidebar-actions {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.draft-management-actions {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
}
.draft-management-actions button {
font-size: 12px;
}
.step-list {
display: grid;
gap: 6px;
overflow: auto;
padding-right: 4px;
}
.step-row {
display: grid;
grid-template-columns: 22px minmax(0, 1fr);
gap: 8px;
align-items: center;
}
.step-toggle {
display: grid;
place-items: center;
margin: 0;
min-height: 42px;
}
.step-checkbox {
width: 16px;
height: 16px;
margin: 0;
accent-color: var(--brand);
cursor: pointer;
}
.step-button {
width: 100%;
min-height: 42px;
border-radius: var(--radius);
background: transparent;
color: var(--ink);
text-align: left;
border: 1px solid transparent;
display: grid;
grid-template-columns: 25px minmax(0, 1fr);
gap: 8px;
align-items: center;
padding: 8px;
}
.step-button:hover,
.step-button.active {
background: var(--surface);
border-color: var(--line);
transform: none;
}
.step-number {
width: 25px;
height: 25px;
display: grid;
place-items: center;
border-radius: 50%;
background: #ded6c8;
color: var(--brand);
font-size: 11px;
font-weight: 800;
}
.step-button.active .step-number {
background: var(--brand-2);
color: white;
}
.step-row.is-excluded .step-button {
opacity: 0.58;
}
.step-row.is-excluded .step-button.active {
opacity: 0.9;
}
.step-label {
min-width: 0;
font-weight: 800;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.main-area {
min-width: 0;
min-height: 0;
display: grid;
grid-template-rows: auto minmax(0, 1fr);
}
.topbar {
padding: 22px 28px;
display: flex;
justify-content: space-between;
gap: 20px;
align-items: center;
border-bottom: 1px solid var(--line);
background: rgba(247, 244, 237, 0.96);
position: sticky;
top: 0;
z-index: 3;
}
.toolbar {
display: flex;
gap: 8px;
flex-wrap: wrap;
justify-content: flex-end;
}
.workspace {
min-height: 0;
overflow: hidden;
display: grid;
grid-template-columns: minmax(420px, 0.96fr) minmax(520px, 1.04fr);
gap: 22px;
padding: 22px;
}
.workspace.preview-wide {
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: minmax(0, 1fr);
}
.workspace.preview-wide .work-pane {
display: none;
}
.workspace.preview-wide .preview-pane {
width: 100%;
max-width: none;
min-height: 0;
}
.workspace.preview-wide .preview-head {
width: min(var(--page-width), 100%);
max-width: var(--page-width);
margin: 0 auto 18px;
}
.workspace.preview-wide .proposal-document {
width: 100%;
overflow: auto;
padding: 28px 0 48px;
}
.work-pane,
.preview-pane {
min-width: 0;
}
.work-pane {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: 14px;
min-height: 0;
overflow: hidden;
}
.tabs {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 8px;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 8px;
}
.tab {
font-weight: 800;
}
.tab.active {
background: var(--brand);
border-color: var(--brand);
color: white;
box-shadow: 0 8px 22px rgba(36, 68, 60, 0.18);
}
#editor-panel {
overflow: auto;
display: grid;
gap: 14px;
align-content: start;
min-height: 0;
}
.panel-card {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 16px;
display: grid;
gap: 14px;
}
.panel-head {
display: flex;
justify-content: space-between;
gap: 14px;
align-items: start;
}
.panel-card.is-collapsed {
gap: 0;
}
.field-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.field {
display: grid;
gap: 7px;
}
.field-label-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.field-chart-toggle {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 11px;
color: var(--muted);
text-transform: none;
letter-spacing: 0;
}
.field-chart-toggle input {
width: auto;
min-height: 0;
}
.field.full {
grid-column: 1 / -1;
}
.field-action-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 10px;
align-items: end;
}
.field-help {
font-size: 12px;
}
input,
textarea,
select {
width: 100%;
border: 1px solid #d4cec4;
background: var(--field);
color: var(--ink);
border-radius: var(--radius);
padding: 10px 11px;
min-height: 40px;
}
textarea {
resize: vertical;
min-height: 110px;
}
.notes-textarea {
min-height: 420px;
line-height: 1.45;
}
input[type="color"] {
padding: 4px;
height: 44px;
}
input[type="file"] {
background: transparent;
border-style: dashed;
}
.template-grid,
.option-list {
display: grid;
gap: 8px;
}
.template-button,
.option-row {
width: 100%;
text-align: left;
display: grid;
gap: 4px;
background: #f7f4ed;
border: 1px solid var(--line);
color: var(--ink);
min-height: 0;
padding: 12px;
}
.template-button.active,
.option-row.active {
border-color: var(--brand);
background: var(--soft);
}
.theme-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.template-button strong,
.option-row strong {
font-size: 14px;
}
.template-button span,
.option-row span {
color: var(--muted);
font-size: 12px;
}
.typology-options {
margin-top: 8px;
border: 1px solid var(--line);
border-radius: var(--radius);
background: #fbfaf7;
padding: 8px;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 6px;
}
.typology-option {
display: flex;
align-items: center;
gap: 8px;
padding: 7px 8px;
border-radius: 6px;
background: #f7f4ed;
}
.typology-option input {
width: auto;
min-height: 0;
}
.section-editor {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 16px;
display: grid;
gap: 12px;
}
.section-editor-head {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: center;
}
.section-editor textarea {
min-height: 190px;
font-size: 13px;
line-height: 1.42;
}
.section-fixed-title {
display: grid;
gap: 3px;
padding: 10px 12px;
border-left: 3px solid var(--ink);
background: #f7f4ed;
}
.section-fixed-title span {
color: var(--muted);
font-size: 10px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.section-fixed-title strong {
color: var(--ink);
font-size: 14px;
font-weight: 800;
}
.section-meta {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.pill {
display: inline-flex;
align-items: center;
gap: 6px;
border-radius: 999px;
border: 1px solid var(--line);
background: #f7f4ed;
padding: 5px 9px;
font-size: 12px;
color: var(--muted);
}
.drop-zone {
border: 1px dashed #bcb4a7;
background: #fbfaf7;
border-radius: var(--radius);
padding: 18px;
display: grid;
gap: 8px;
place-items: center;
text-align: center;
min-height: 118px;
}
.drop-zone.drag-over {
background: var(--soft);
border-color: var(--brand);
}
.schedule-import {
display: grid;
grid-template-columns: minmax(0, 1fr) 180px;
gap: 12px;
margin-top: 14px;
}
.schedule-drop-zone {
min-height: 132px;
}
.schedule-image-preview {
border: 1px solid var(--line);
border-radius: var(--radius);
background: #fbfaf7;
min-height: 132px;
display: grid;
place-items: center;
overflow: hidden;
color: var(--muted);
font-size: 12px;
text-align: center;
}
.schedule-image-preview img {
width: 100%;
height: 100%;
max-height: 180px;
object-fit: contain;
display: block;
background: white;
}
.schedule-import-text {
grid-column: 1 / -1;
display: grid;
gap: 8px;
}
.schedule-import-text textarea {
min-height: 116px;
resize: vertical;
}
.schedule-import-actions {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.photo-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 12px;
}
.photo-typology-groups {
display: grid;
gap: 18px;
}
.photo-typology-group {
display: grid;
gap: 10px;
content-visibility: auto;
contain-intrinsic-size: 720px;
}
.photo-typology-heading {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: baseline;
border-bottom: 1px solid var(--line);
padding-bottom: 8px;
}
.photo-typology-heading h4 {
font-size: 15px;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.photo-typology-heading span {
color: var(--muted);
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.photo-card {
border: 1px solid var(--line);
border-radius: var(--radius);
overflow: hidden;
background: #fbfaf7;
display: grid;
gap: 8px;
padding-bottom: 10px;
content-visibility: auto;
contain-intrinsic-size: 290px;
}
.photo-thumb {
width: 100%;
aspect-ratio: 4 / 3;
object-fit: cover;
background: #d9d3c8;
}
.photo-thumb-draggable {
cursor: grab;
touch-action: none;
user-select: none;
transition: opacity 0.16s ease, transform 0.16s ease;
}
.photo-thumb-draggable:hover {
transform: scale(1.015);
}
.photo-thumb-draggable.is-dragging {
cursor: grabbing;
opacity: 0.48;
}
.is-photo-library-dragging,
.is-photo-library-dragging * {
cursor: grabbing !important;
}
.photo-library-drag-ghost {
position: fixed;
z-index: 10000;
width: 112px;
height: 84px;
border: 3px solid white;
border-radius: 8px;
object-fit: cover;
box-shadow: 0 12px 32px rgba(25, 24, 21, 0.34);
opacity: 0.92;
pointer-events: none;
transform: translate(14px, 14px);
}
.photo-thumb-loading {
background: linear-gradient(110deg, #d9d3c8 28%, #ebe7df 44%, #d9d3c8 60%);
background-size: 220% 100%;
animation: photo-thumb-loading 1.25s ease-in-out infinite;
}
.photo-library-filter {
max-width: 280px;
margin-top: 12px;
}
@keyframes photo-thumb-loading {
to {
background-position-x: -220%;
}
}
@media (prefers-reduced-motion: reduce) {
.photo-thumb-loading {
animation: none;
}
}
.photo-missing {
display: grid;
place-items: center;
color: var(--muted);
font-size: 12px;
text-align: center;
}
.photo-card .field {
padding: 0 10px;
}
.photo-actions {
padding: 0 10px;
display: flex;
justify-content: flex-end;
}
.preview-pane {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: 18px;
min-height: 0;
}
.preview-head {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 18px;
display: flex;
justify-content: space-between;
gap: 14px;
align-items: center;
}
.proposal-document {
overflow: auto;
overscroll-behavior: contain;
scrollbar-gutter: stable;
padding: 14px 0 24px;
display: grid;
gap: 20px;
justify-items: center;
}
.proposal-page {
width: var(--page-width);
height: 11in;
content-visibility: auto;
contain-intrinsic-size: 8.5in 11in;
background: white;
box-shadow: var(--shadow);
border: 1px solid #ece8df;
position: relative;
overflow: hidden;
}
.theme-modern-landscape {
--page-width: 11in;
}
.theme-northline-portrait {
--page-width: 8.5in;
}
.modern-page {
width: 11in;
height: 8.5in;
contain-intrinsic-size: 11in 8.5in;
background: #f8f6f1;
border-color: #dfd8cc;
color: #242323;
}
.modern-inner {
width: 11in;
height: 8.5in;
position: relative;
padding: 0.38in 0.44in 0.42in;
}
.modern-page-title {
position: absolute;
left: 0.44in;
top: 1.14in;
width: 1.88in;
}
.modern-page-title.modern-title-no-marker {
top: 0.38in;
}
.modern-page-number {
display: block;
position: absolute;
left: 0;
top: -0.9in;
color: #7d756b;
font-family: Georgia, "Times New Roman", serif;
font-size: 74px;
font-weight: 400;
line-height: 1;
}
.modern-title-rule,
.modern-rule {
width: 0.74in;
height: 1px;
background: #9d9387;
margin: 0.13in 0 0.2in;
}
.modern-page-title h2,
.modern-cover-copy h1 {
margin: 0;
color: #242323;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
text-transform: uppercase;
line-height: 0.9;
letter-spacing: 0;
}
.modern-page-title h2 {
font-size: 32px;
max-width: 1.8in;
}
.modern-page-title.modern-title-long h2 {
font-size: 27px;
line-height: 0.92;
}
.modern-page-title.modern-title-xlong h2 {
font-size: 23px;
line-height: 0.95;
}
.modern-page-title p {
margin: 0.18in 0 0;
color: #6f6a61;
font-size: 9px;
line-height: 1.35;
}
.modern-content {
position: absolute;
left: 2.65in;
top: 0.56in;
width: 4.42in;
height: 6.82in;
column-count: 2;
column-gap: 0.28in;
overflow: hidden;
}
.modern-section-block {
break-inside: avoid;
margin: 0 0 0.16in;
}
.modern-section-block h3 {
margin: 0 0 0.08in;
color: #242323;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
font-size: 13px;
line-height: 1;
text-transform: uppercase;
}
.modern-content .doc-copy {
font-size: 11.4px;
line-height: 1.32;
text-align: justify;
text-align-last: left;
}
.modern-content .doc-copy p {
margin-bottom: 0.08in;
}
.modern-content .doc-copy ul,
.modern-content .doc-copy ol {
margin-bottom: 0.08in;
margin-left: 0.18in;
padding-left: 0.12in;
}
.modern-content .doc-copy li {
margin-bottom: 0.03in;
}
.modern-content .schedule-table,
.modern-content .fee-table {
font-size: 9.4px;
margin-bottom: 0.12in;
}
.modern-content .schedule-table th,
.modern-content .schedule-table td,
.modern-content .fee-table th,
.modern-content .fee-table td {
padding: 4px 3px;
}
.modern-visuals {
position: absolute;
top: 0.58in;
right: 0.44in;
width: 3.12in;
height: 6.76in;
}
.modern-photo {
margin: 0;
overflow: hidden;
background: #e8e1d7;
}
.modern-photo-main {
height: 4.55in;
}
.modern-footer {
position: absolute;
left: 0.44in;
right: 0.44in;
bottom: 0.2in;
display: flex;
justify-content: space-between;
gap: 0.2in;
color: #9b958c;
font-size: 8px;
letter-spacing: 0.08em;
text-transform: uppercase;
white-space: nowrap;
}
.modern-cover {
background: #f4f1eb;
}
.modern-cover .modern-inner {
padding: 0;
overflow: hidden;
}
.modern-cover-project,
.modern-cover-date,
.modern-cover-submitted,
.modern-cover-discipline {
position: absolute;
z-index: 2;
color: #1d1d1b;
font-size: 9px;
font-weight: 800;
line-height: 1.12;
letter-spacing: 0.02em;
text-transform: uppercase;
}
.modern-cover-project {
left: 0.52in;
top: 0.42in;
max-width: 2in;
}
.modern-cover-date {
right: 0.56in;
top: 0.42in;
text-align: right;
}
.modern-cover-copy {
position: absolute;
left: 0.52in;
right: 0.56in;
top: 2.78in;
z-index: 2;
width: auto;
}
.modern-kicker {
margin: 0.06in 0 0;
color: #1d1d1b;
font-size: 10px;
font-weight: 800;
letter-spacing: 0.03em;
text-transform: uppercase;
}
.modern-cover-copy h1 {
margin: 0;
color: #080808;
font-family: Arial, Helvetica, sans-serif;
font-size: 96px;
font-weight: 900;
line-height: 0.86;
letter-spacing: 0;
text-transform: uppercase;
}
.modern-cover .modern-rule {
width: 2.8in;
height: 1px;
margin: 0.13in 0 0;
background: rgba(29, 29, 27, 0.28);
}
.modern-cover-submitted,
.modern-cover-discipline {
bottom: 0.5in;
}
.modern-cover-submitted {
left: 0.52in;
}
.modern-cover-discipline {
left: 2.2in;
}
.modern-cover-submitted span,
.modern-cover-discipline span {
display: block;
margin-bottom: 0.04in;
color: #4f4d48;
font-size: 7px;
font-weight: 700;
}
.modern-cover-submitted strong,
.modern-cover-discipline strong {
display: block;
max-width: 1.72in;
font-size: 8px;
font-weight: 900;
}
.modern-cover-photo {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.northline-page {
width: 8.5in;
height: 11in;
background: #f8f5ef;
border-color: #ded7ca;
color: #1d1d1b;
}
.northline-cover {
background: #fff;
}
.northline-inner {
position: relative;
width: 8.5in;
height: 11in;
padding: 0.62in 0.54in 0.52in;
}
.northline-cover .northline-inner,
.northline-toc-page .northline-inner {
padding: 0;
}
.northline-cover .northline-inner {
/* Start the footer color slightly behind the image so PDF rasterization
cannot expose a white seam where the two regions meet. */
background: linear-gradient(180deg, #fff 0, #fff 8.75in, #f6f2eb 8.75in, #f6f2eb 100%);
}
.northline-brand {
position: absolute;
left: 0.54in;
top: 0.56in;
z-index: 2;
font-size: 8px;
font-weight: 900;
line-height: 1.1;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.northline-cover-title {
position: absolute;
left: 0.54in;
right: 0.54in;
top: 0.66in;
z-index: 2;
}
.northline-cover-title h1 {
margin: 0;
color: #161616;
font-family: "Bahnschrift Condensed", "Bahnschrift SemiCondensed", Bahnschrift, "Arial Narrow", Impact, Arial, sans-serif;
font-weight: 900;
line-height: 0.88;
letter-spacing: 0;
text-transform: uppercase;
}
.northline-cover-title h1 {
max-width: 100%;
white-space: nowrap;
font-family: "Bahnschrift Condensed", "Bahnschrift SemiCondensed", Bahnschrift, "Arial Narrow", Impact, Arial, sans-serif;
font-size: 52px;
line-height: 0.9;
font-stretch: condensed;
letter-spacing: -0.015em;
}
.northline-cover-title p {
margin: 0.1in 0 0;
font-size: 21.6px;
line-height: 1.1;
font-weight: 800;
letter-spacing: 0.045em;
text-transform: uppercase;
}
.northline-cover-image {
position: absolute;
left: 0;
right: 0;
top: 3.38in;
bottom: 2.1in;
height: auto;
margin: 0;
z-index: 1;
border: 0;
}
.northline-cover-footer {
position: absolute;
left: 0.54in;
right: 0.54in;
bottom: 0.64in;
z-index: 3;
display: block;
border-top: 0;
padding-top: 0;
font-size: 8px;
text-transform: uppercase;
}
.northline-cover-project {
width: calc(100% - 1.36in);
}
.northline-cover-project strong,
.northline-cover-brand strong {
display: block;
margin-bottom: 0.08in;
color: #1d1d1b;
font-size: 15px;
font-weight: 900;
line-height: 1;
}
.northline-cover-project span,
.northline-cover-brand span {
display: block;
color: #3d3933;
font-size: 6.2px;
font-weight: 800;
letter-spacing: 0.04em;
}
.northline-cover-project span {
margin-top: 0.045in;
border-bottom: 1px solid #bdb6aa;
padding-bottom: 0.035in;
}
.northline-client-logos {
display: flex;
align-items: flex-start;
gap: 0.12in;
margin: 0.02in 0 0.08in;
min-height: 0.42in;
}
.northline-client-logo {
max-width: 1.05in;
height: 0.42in;
width: auto;
object-fit: contain;
object-position: left top;
display: block;
}
.northline-cover-brand {
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 1.18in;
text-align: left;
}
.northline-cover-brand-logo {
max-width: 1.18in;
width: 100%;
height: 100%;
object-fit: contain;
object-position: right top;
display: block;
margin-top: 0;
}
.northline-toc-page {
background: #151515;
color: #fff;
}
.northline-toc-photo {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
margin: 0;
border: 0;
overflow: hidden;
background: #d9d3c8;
}
.northline-toc-photo .page-photo {
width: 100%;
height: 100%;
}
.northline-toc-overlay {
position: absolute;
left: 0.58in;
top: 0.58in;
width: 2.18in;
max-height: 9.55in;
padding: 0.22in 0.2in 0.26in;
background: rgba(18, 18, 17, 0.48);
color: #fff;
z-index: 2;
}
.northline-toc-overlay h2 {
margin: 0 0 0.3in;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
font-size: 30px;
line-height: 0.9;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0;
}
.northline-toc-list {
display: grid;
gap: 0.13in;
}
.northline-toc-row {
display: grid;
grid-template-columns: 0.34in minmax(0, 1fr);
gap: 0.12in;
align-items: start;
}
.northline-toc-row span {
font-size: 13px;
font-weight: 900;
line-height: 1;
}
.northline-toc-row strong {
display: block;
font-size: 8.6px;
line-height: 1.16;
font-weight: 900;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.northline-toc-footer {
position: absolute;
left: 0.58in;
bottom: 0.34in;
z-index: 2;
color: rgba(255, 255, 255, 0.92);
font-size: 7.5px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.northline-cover-footer > div:not(.northline-cover-project):not(.northline-cover-brand) span {
display: block;
color: #726b60;
font-size: 7px;
font-weight: 800;
margin-bottom: 0.04in;
}
.northline-cover-footer > div:not(.northline-cover-project):not(.northline-cover-brand) strong {
display: block;
font-weight: 900;
}
.northline-number {
position: absolute;
left: 0.54in;
top: 0.52in;
display: block;
color: #7b746a;
font-family: "Bahnschrift Light", "Bahnschrift SemiCondensed", "Arial Narrow", Arial, sans-serif;
font-size: 36px;
font-weight: 400;
line-height: 1;
}
.northline-title {
position: absolute;
left: 0.54in;
top: 0.94in;
width: 2.55in;
z-index: 2;
}
.northline-title h2 {
margin: 0;
color: #161616;
font-family: "Bahnschrift Condensed", "Bahnschrift SemiCondensed", Bahnschrift, "Arial Narrow", Impact, Arial, sans-serif;
font-weight: 900;
line-height: 0.92;
padding-top: 0.035in;
letter-spacing: -0.01em;
text-transform: uppercase;
font-size: 48px;
}
.northline-title p {
margin: 0.28in 0 0;
max-width: 1.9in;
color: #4d4943;
font-size: 9px;
line-height: 1.34;
}
.northline-title::after {
content: "";
display: block;
width: 2.1in;
height: 1px;
margin-top: 0.16in;
background: #cfc7b9;
}
.northline-content {
position: absolute;
left: 0.54in;
top: 2.28in;
width: 3.1in;
height: 7in;
overflow: hidden;
}
.northline-landscape-page .northline-title {
width: 3.2in;
}
.northline-landscape-content {
position: absolute;
left: 0.54in;
top: 2.84in;
width: 7.42in;
bottom: 3.42in;
height: auto;
}
.northline-landscape-photo {
position: absolute !important;
inset: auto 0 0 0 !important;
width: auto;
height: 3.12in !important;
margin: 0 !important;
}
.northline-landscape-footer {
bottom: 3.34in !important;
width: 7.42in;
}
.northline-section-block {
margin: 0 0 0.18in;
}
.northline-section-block h3 {
margin: 0 0 0.08in;
color: #1d1d1b;
font-family: "Bahnschrift Condensed", "Bahnschrift SemiCondensed", Bahnschrift, "Arial Narrow", Impact, Arial, sans-serif;
font-size: 17px;
line-height: 0.95;
text-transform: uppercase;
}
.northline-content .doc-copy {
color: #3d3933;
font-size: 11.4px;
line-height: 1.32;
text-align: justify;
text-align-last: left;
}
.northline-content .doc-copy p {
margin: 0 0 0.1in;
}
.northline-content .doc-copy ul,
.northline-content .doc-copy ol {
margin: 0 0 0.12in 0.18in;
padding-left: 0.12in;
}
.northline-content .doc-copy li {
margin-bottom: 0.04in;
}
.northline-content .schedule-table,
.northline-content .fee-table {
font-size: 9.4px;
margin: 0.02in 0 0.14in;
}
.northline-content .schedule-table th,
.northline-content .schedule-table td,
.northline-content .fee-table th,
.northline-content .fee-table td {
border-bottom-color: #d8d0c2;
padding: 5px 3px;
}
.compensation-consultant-note {
margin: 0.04in 0 0.16in;
font-weight: 800;
text-align: center;
text-align-last: center;
text-transform: uppercase;
}
.compensation-fee-notes {
margin-top: 0.1in;
text-align: left;
text-align-last: left;
}
.doc-copy .compensation-fee-notes-title {
margin: 0 0 0.05in;
font-weight: 800;
}
.doc-copy .compensation-fee-notes ol {
margin: 0 0 0.07in 0.2in;
padding-left: 0.1in;
}
.doc-copy .compensation-fee-notes li {
margin-bottom: 0.035in;
padding-left: 0.035in;
}
.doc-copy .compensation-fee-notes-reference {
margin: 0;
}
.structured-page[data-section="Compensation"] .doc-copy {
font-size: 10px;
line-height: 1.22;
}
.structured-page[data-section="Compensation"] .doc-copy > p {
margin-bottom: 0.07in;
}
.structured-page[data-section="Compensation"] .fee-table {
font-size: 9px;
margin-bottom: 0.08in;
}
.structured-page[data-section="Compensation"] .fee-table td,
.structured-page[data-section="Compensation"] .fee-table th {
padding: 3px 4px;
}
.structured-page[data-section="Compensation"] .fee-chart {
padding: 8px;
margin: 0.03in 0 0.08in;
}
.structured-page[data-section="Compensation"] .fee-chart-row {
margin-bottom: 0.055in;
}
.structured-page[data-section="Compensation"] .fee-chart-meta span,
.structured-page[data-section="Compensation"] .fee-chart-meta strong,
.structured-page[data-section="Compensation"] .fee-chart-total span,
.structured-page[data-section="Compensation"] .fee-chart-total strong {
font-size: 9px;
}
.structured-page[data-section="Compensation"] .fee-chart-bar {
height: 5px;
margin-top: 3px;
}
.structured-page[data-section="Compensation"] .fee-chart-total {
padding-top: 6px;
}
.structured-page[data-section="Compensation"] .compensation-fee-notes {
margin-top: 0.07in;
font-size: 9px;
line-height: 1.2;
}
.structured-page[data-section="Compensation"] .doc-copy .compensation-fee-notes-title {
margin-bottom: 0.04in;
font-size: 9.6px;
}
.structured-page[data-section="Compensation"] .doc-copy .compensation-fee-notes ol {
margin: 0 0 0.055in 0.19in;
padding-left: 0.09in;
}
.structured-page[data-section="Compensation"] .doc-copy .compensation-fee-notes li {
margin-bottom: 0.028in;
padding-left: 0.03in;
}
.northline-page[data-section="Bidding and Construction Administration"] .northline-title {
top: 1.14in;
width: 3.15in;
}
.northline-page[data-section="Bidding and Construction Administration"] .northline-title h2 {
font-size: 28px;
line-height: 0.94;
}
.northline-page[data-section="Bidding and Construction Administration"] .northline-title p {
margin-top: 0.16in;
max-width: 2.55in;
font-size: 8.2px;
line-height: 1.28;
}
.northline-page[data-section="Bidding and Construction Administration"] .northline-title::after {
margin-top: 0.18in;
}
.northline-page[data-section="Bidding and Construction Administration"] .northline-content-model {
top: 3.05in;
height: 6.86in;
}
.northline-page[data-section="Concept Design"] .northline-content-model {
top: 3.08in;
}
.northline-page[data-section="Compensation"] .northline-content-model {
top: 2.62in;
}
.northline-page[data-section="Compensation"] .doc-copy {
font-size: 9.2px;
line-height: 1.21;
}
.northline-page[data-section="Compensation"] .doc-copy > p {
margin-bottom: 0.065in;
}
.northline-page[data-section="Compensation"] .fee-table {
font-size: 8.6px;
margin: 0 0 0.07in;
}
.northline-page[data-section="Compensation"] .fee-table td,
.northline-page[data-section="Compensation"] .fee-table th {
padding: 3px;
}
.northline-page[data-section="Compensation"] .fee-chart {
padding: 8px;
margin: 0.03in 0 0.08in;
}
.northline-page[data-section="Compensation"] .fee-chart-row {
margin-bottom: 0.055in;
}
.northline-page[data-section="Compensation"] .fee-chart-meta span,
.northline-page[data-section="Compensation"] .fee-chart-meta strong,
.northline-page[data-section="Compensation"] .fee-chart-total span,
.northline-page[data-section="Compensation"] .fee-chart-total strong {
font-size: 9px;
}
.northline-page[data-section="Compensation"] .fee-chart-bar {
height: 5px;
margin-top: 3px;
}
.northline-page[data-section="Compensation"] .fee-chart-total {
padding-top: 6px;
}
.northline-page[data-section="Compensation"] .compensation-fee-notes {
margin-top: 0.07in;
font-size: 8.5px;
line-height: 1.19;
}
.northline-page[data-section="Compensation"] .doc-copy .compensation-fee-notes-title {
margin-bottom: 0.04in;
font-size: 9.2px;
}
.northline-page[data-section="Compensation"] .doc-copy .compensation-fee-notes ol {
margin: 0 0 0.055in 0.18in;
padding-left: 0.08in;
}
.northline-page[data-section="Compensation"] .doc-copy .compensation-fee-notes li {
margin-bottom: 0.026in;
padding-left: 0.03in;
}
.northline-page[data-section="Bidding and Construction Administration"] .doc-copy {
font-size: 10.8px;
line-height: 1.3;
}
.northline-page[data-section="Bidding and Construction Administration"] .doc-copy p {
margin-bottom: 0.085in;
}
.northline-page[data-section="Thank You"] .northline-title,
.northline-page[data-section="Proceeding with confidence"] .northline-title {
width: 2.9in;
}
.northline-page[data-section="Thank You"] .northline-title h2,
.northline-page[data-section="Proceeding with confidence"] .northline-title h2 {
font-size: 42px;
line-height: 0.92;
}
.northline-page[data-section="Thank You"] .northline-title p,
.northline-page[data-section="Proceeding with confidence"] .northline-title p {
margin-top: 0.18in;
max-width: 2.35in;
}
.northline-page[data-section="Thank You"] .northline-title::after,
.northline-page[data-section="Proceeding with confidence"] .northline-title::after {
margin-top: 0.2in;
width: 1.75in;
}
.northline-page[data-section="Thank You"] .northline-content-model,
.northline-page[data-section="Proceeding with confidence"] .northline-content-model {
top: 2.18in;
width: 2.78in;
height: 7.62in;
}
.northline-page[data-section="Thank You"] .doc-copy,
.northline-page[data-section="Proceeding with confidence"] .doc-copy {
font-size: 11.8px;
line-height: 1.42;
}
.northline-page[data-section="Thank You"] .doc-copy p,
.northline-page[data-section="Proceeding with confidence"] .doc-copy p {
margin-bottom: 0.14in;
}
.northline-page[data-section="Thank You"] .closing-block,
.northline-page[data-section="Proceeding with confidence"] .closing-block {
margin-top: 0.3in;
}
.northline-page[data-section="Thank You"] .closing-block > p:first-child,
.northline-page[data-section="Proceeding with confidence"] .closing-block > p:first-child {
margin-bottom: 0.3in;
}
.bid-ca-copy h3 {
margin: 0.02in 0 0.055in;
color: #1d1d1b;
font-size: 11.2px;
line-height: 1.05;
font-weight: 900;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.bid-ca-copy h3:not(:first-child) {
margin-top: 0.15in;
}
.northline-image-rail {
position: absolute;
right: 0;
top: 0;
width: 3.55in;
height: 11in;
overflow: hidden;
}
.northline-photo {
margin: 0;
overflow: hidden;
background: #e3ddd2;
}
.northline-photo-main {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.northline-footer {
position: absolute;
left: 0.54in;
bottom: 0.32in;
width: 3.05in;
color: #8a8378;
font-size: 7.5px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.page-inner {
width: 8.5in;
height: 11in;
display: block;
position: relative;
}
.photo-rail {
position: absolute;
left: var(--pdf-photo-left);
top: 1.1in;
width: var(--pdf-photo-width);
display: grid;
grid-template-rows: 3.4in 3.74in;
align-content: start;
gap: 1.58in;
min-width: 0;
}
.is-intro-page .photo-rail {
top: 3.48in;
padding-top: 0;
grid-template-rows: 1.96in 3.94in;
gap: 0.28in;
}
.photo-slot {
margin: 0;
width: 100%;
overflow: hidden;
background: #f1eee8;
}
.editable-photo-slot {
position: relative;
}
/* The cover image uses fixed page coordinates; keep the shared photo editor
positioning rule from turning it back into an in-flow element. */
.northline-cover-image.editable-photo-slot {
position: absolute;
}
.proposal-document.is-photo-drop-ready .editable-photo-slot {
box-shadow: inset 0 0 0 3px rgba(36, 68, 60, 0.45);
}
.proposal-document .editable-photo-slot.is-photo-drop-target {
box-shadow: inset 0 0 0 5px var(--brand-2), 0 0 0 3px rgba(255, 255, 255, 0.92);
}
.proposal-document .editable-photo-slot.is-photo-drop-target::after {
content: "Drop to replace";
position: absolute;
inset: 0;
z-index: 7;
display: grid;
place-items: center;
background: rgba(36, 68, 60, 0.62);
color: white;
font-size: 13px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
pointer-events: none;
}
.page-photo {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
.photo-slot-tools {
position: absolute;
left: 8px;
right: 8px;
bottom: 8px;
z-index: 8;
display: flex;
gap: 5px;
flex-wrap: wrap;
opacity: 0;
pointer-events: none;
transition: opacity 0.16s ease;
}
.editable-photo-slot:hover .photo-slot-tools,
.editable-photo-slot:focus-within .photo-slot-tools,
.editable-photo-slot.is-photo-pan-active .photo-slot-tools {
opacity: 1;
pointer-events: auto;
}
.editable-photo-slot.is-photo-pan-active .page-photo {
cursor: grab;
touch-action: none;
user-select: none;
}
.editable-photo-slot.is-photo-panning .page-photo {
cursor: grabbing;
}
.northline-cover-image .photo-slot-tools {
opacity: 1;
pointer-events: auto;
}
.photo-choice-control {
display: grid;
grid-template-columns: auto minmax(118px, 1fr);
gap: 5px;
align-items: center;
min-height: 26px;
padding: 4px 6px;
border: 1px solid rgba(255, 255, 255, 0.72);
border-radius: 6px;
background: rgba(34, 31, 27, 0.78);
color: white;
font-size: 10px;
line-height: 1;
text-transform: none;
letter-spacing: 0;
}
.photo-choice-control span {
color: white;
font-weight: 800;
}
.photo-choice-control select {
min-height: 20px;
height: 20px;
padding: 0 20px 0 6px;
border: 0;
border-radius: 4px;
background: rgba(255, 255, 255, 0.92);
color: #1d1d1b;
font-size: 10px;
}
.photo-slot-tools button {
width: auto;
min-height: 26px;
padding: 5px 7px;
border-radius: 6px;
border-color: rgba(255, 255, 255, 0.72);
background: rgba(34, 31, 27, 0.78);
color: white;
font-size: 10px;
line-height: 1;
box-shadow: none;
}
.photo-slot-tools button:hover {
background: rgba(34, 31, 27, 0.92);
}
.photo-slot-tools .photo-hand-tool.active {
border-color: rgba(255, 255, 255, 0.95);
background: var(--brand-2);
box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.42);
}
.photo-slot-tools button:disabled {
opacity: 0.45;
cursor: default;
}
.photo-placeholder {
background:
linear-gradient(140deg, rgba(230, 225, 216, 0.96), rgba(247, 244, 237, 0.96)),
#e7e1d7;
display: grid;
place-items: center;
color: #8c867c;
font-weight: 800;
font-size: 12px;
letter-spacing: 0.08em;
text-transform: uppercase;
text-align: center;
padding: 14px;
}
.body-page-number {
position: absolute;
top: 0.38in;
right: 0.64in;
color: #7d756b;
font-family: Georgia, "Times New Roman", serif;
font-size: 64px;
font-weight: 400;
line-height: 1;
}
.page-content {
position: absolute;
left: var(--pdf-text-left);
top: 1.1in;
width: var(--pdf-text-width);
height: 9.1in;
overflow: hidden;
}
.is-intro-page .page-content {
top: 1.15in;
}
.proposal-logo {
width: 1.16in;
height: 1.16in;
object-fit: cover;
display: block;
margin: 0 auto 0.68in;
}
.inline-section-title {
color: #111;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
font-size: 15.5px;
font-weight: 800;
line-height: 1.08;
margin: 0 0 0.04in;
}
.proposal-section-block {
margin: 0 0 0.14in;
}
.proposal-section-block:last-child {
margin-bottom: 0;
}
.doc-copy {
color: #151515;
font-family: Arial, Helvetica, sans-serif;
font-size: 16.75px;
line-height: 1.12;
letter-spacing: 0;
font-variant-ligatures: none;
text-rendering: geometricPrecision;
text-align: justify;
text-align-last: left;
}
.doc-copy .double-lowercase-l {
letter-spacing: 0.06em;
}
.doc-copy p,
.doc-copy li {
break-inside: avoid;
}
.doc-copy p {
margin: 0 0 0.12in;
}
.doc-copy ul,
.doc-copy ol {
margin: 0 0 0.15in 0.34in;
padding-left: 0.18in;
}
.doc-copy li {
margin: 0 0 0.05in;
padding-left: 0.08in;
}
.doc-copy strong {
color: #111;
font-weight: 800;
}
.doc-copy .paragraph-heading {
margin: 0.13in 0 0.055in;
color: #111;
font-weight: 900;
font-size: 1.02em;
line-height: 1.08;
text-align: left;
}
.doc-copy .project-summary-fixed-title {
margin: 0.13in 0 0.055in;
color: #111;
font-weight: 800;
line-height: 1.08;
text-align: left;
}
.proposal-footer {
position: absolute;
left: var(--pdf-text-left);
right: var(--pdf-text-right);
bottom: 0.42in;
color: #b5b2ae;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
font-size: 10.5px;
line-height: 1.35;
letter-spacing: 0.18em;
white-space: nowrap;
}
.schedule-table,
.fee-table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
margin-bottom: 0.24in;
}
.schedule-table th,
.schedule-table td,
.fee-table th,
.fee-table td {
border-bottom: 1px solid var(--line);
text-align: left;
padding: 7px 5px;
vertical-align: top;
}
.schedule-table th,
.fee-table th {
color: var(--brand);
text-transform: uppercase;
letter-spacing: 0.08em;
font-size: 10px;
}
.attachment-placeholder {
border: 1px solid #d9d5ce;
background: #fbfaf8;
color: var(--muted);
padding: 14px;
border-radius: 0;
}
.attachment-placeholder-subtitle {
display: block;
margin-top: 4px;
font-weight: 400;
}
.theme-structured-portrait {
--page-width: 8.5in;
}
.structured-page {
width: 8.5in;
height: 11in;
background: #fff;
}
.structured-page-inner {
width: 8.5in;
height: 11in;
position: relative;
}
.structured-page-studio {
background: linear-gradient(180deg, #fffdf9 0%, #faf6ef 100%);
}
.structured-cover-inner {
width: 8.5in;
height: 11in;
position: relative;
padding: 0.78in 0.78in 0.56in;
}
.structured-cover-top {
position: relative;
z-index: 2;
}
.structured-cover-logo {
width: 1.18in;
height: 1.18in;
object-fit: cover;
display: block;
margin-bottom: 0.54in;
}
.structured-cover-meta {
font-size: 11px;
line-height: 1.4;
color: #525252;
margin-bottom: 0.48in;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.structured-cover-title h1 {
margin: 0;
font-size: 74px;
line-height: 0.88;
font-weight: 900;
letter-spacing: 0;
text-transform: uppercase;
}
.structured-cover-subtitle,
.structured-cover-kicker {
margin: 0.12in 0 0;
color: var(--muted);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.1em;
text-transform: uppercase;
}
.structured-cover-title p:not(.structured-cover-subtitle):last-child {
margin-top: 0.18in;
font-size: 15px;
color: #3d3d3d;
}
.structured-cover-photo-wrap {
position: absolute;
left: 0;
right: 0;
top: 4.04in;
bottom: 0.7in;
height: auto;
}
.structured-cover-photo {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
background: #ece8e0;
}
.structured-cover-footer {
left: 0.78in;
right: 0.78in;
bottom: 0.34in;
z-index: 3;
}
.structured-toc-page {
background: #151515;
color: white;
}
.studio-toc-photo {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
border: 0;
background: #d9d3c8;
}
.studio-toc-photo .page-photo {
width: 100%;
height: 100%;
}
.studio-toc-overlay {
position: absolute;
left: 0.58in;
top: 0.58in;
width: 2.18in;
max-height: 9.55in;
padding: 0.22in 0.2in 0.26in;
background: rgba(18, 18, 17, 0.48);
color: #fff;
z-index: 2;
}
.studio-toc-overlay h2 {
margin: 0 0 0.3in;
font-size: 30px;
line-height: 0.9;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0;
}
.studio-toc-list {
display: grid;
gap: 0.13in;
}
.studio-toc-row {
display: grid;
grid-template-columns: 0.34in minmax(0, 1fr);
gap: 0.12in;
align-items: start;
}
.studio-toc-row span {
font-size: 13px;
font-weight: 900;
line-height: 1;
}
.studio-toc-row strong {
display: block;
font-size: 8.6px;
line-height: 1.16;
font-weight: 900;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.structured-photo-rail {
top: 1.24in;
}
.structured-text-column {
position: absolute;
left: var(--pdf-text-left);
top: 0.92in;
width: var(--pdf-text-width);
height: 9.28in;
}
.structured-page-header h2 {
margin: 0;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
font-size: 20px;
line-height: 1;
font-weight: 800;
text-transform: uppercase;
}
.proposal-page-subtitle {
margin: 0.08in 0 0;
color: #6f6a61;
font-size: 11px;
line-height: 1.2;
font-weight: 400;
letter-spacing: 0;
text-transform: none;
}
.structured-page-header .proposal-page-subtitle + .structured-page-rule {
margin-top: 0.12in;
}
.structured-page-rule {
width: 100%;
height: 1px;
background: #bdb7ad;
margin-top: 0.14in;
}
.structured-page-copy {
margin-top: 0.24in;
height: 8.3in;
overflow: hidden;
}
.structured-page-landscape-photo .structured-landscape-text-column {
position: absolute;
left: var(--pdf-text-left);
right: var(--pdf-text-left);
top: 0.92in;
width: calc(8.5in - (var(--pdf-text-left) * 2));
bottom: 3.48in;
height: auto;
}
.structured-page-landscape-photo .structured-landscape-copy {
height: auto;
}
.structured-landscape-photo {
position: absolute !important;
inset: auto 0 0 0 !important;
width: auto;
height: 3.12in !important;
margin: 0 !important;
overflow: hidden !important;
background: #ece8e0;
}
.structured-page-landscape-photo .proposal-footer {
bottom: 3.34in !important;
}
.structured-page .doc-copy {
font-size: 15px;
line-height: 1.2;
text-align: justify;
text-align-last: left;
}
.acceptance-block {
display: grid;
grid-template-columns: minmax(0, 1fr) 1.45in;
gap: 0.24in;
margin-top: 0.4in;
align-items: end;
}
.acceptance-line {
display: grid;
gap: 0.06in;
}
.acceptance-line span {
font-size: 10px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.acceptance-line strong {
display: block;
min-height: 0.24in;
border-bottom: 1px solid #bcb4a7;
}
.structured-page .doc-copy > :first-child {
margin-top: 0;
}
.structured-page .doc-copy p {
margin: 0 0 0.14in;
}
.structured-page .doc-copy ul,
.structured-page .doc-copy ol {
margin: 0 0 0.16in 0.26in;
padding-left: 0.14in;
}
.structured-page .doc-copy li {
margin: 0 0 0.05in;
padding-left: 0.04in;
}
.structured-page[data-section="Attachment A"] .structured-page-copy {
height: 8.46in;
}
.modern-page[data-section="Attachment A"] .modern-page-title {
width: 2.18in;
}
.modern-page[data-section="Attachment A"] .modern-page-title h2 {
max-width: 2.16in;
font-size: 29px;
}
.modern-page[data-section="Attachment A"] .modern-page-title p {
font-size: 14px;
line-height: 1.2;
}
.northline-page[data-section="Attachment A"] .northline-title {
width: 3.12in;
}
.northline-page[data-section="Attachment A"] .northline-title p {
margin-top: 0.16in;
font-size: 24px;
line-height: 1;
}
.structured-page-studio[data-section="Attachment A"] .studio-header-block {
width: 2.78in;
}
.structured-page-studio[data-section="Attachment A"] .studio-header-block h2 {
font-size: 28px;
line-height: 0.92;
}
.structured-page-studio[data-section="Attachment A"] .studio-header-block p {
font-size: 14px;
line-height: 1.2;
}
.structured-page[data-section="Attachment A"] .proposal-page-subtitle {
font-size: 10px;
}
.attachment-page-subtitle {
font-size: 10px;
}
.attachment-theme-modern .attachment-page-subtitle {
font-size: 14px;
}
.attachment-theme-northline .attachment-page-subtitle {
font-size: 17px;
}
.structured-page[data-section="Attachment A"] .doc-copy {
font-size: 11.2px;
line-height: 1.24;
}
.structured-page[data-section="Attachment A"] .doc-copy p {
margin-bottom: 0.09in;
}
.structured-page[data-section="Attachment A"] .doc-copy ul,
.structured-page[data-section="Attachment A"] .doc-copy ol {
margin-bottom: 0.1in;
}
.structured-page[data-section="Attachment A"] .doc-copy li {
margin-bottom: 0.025in;
}
.general-conditions-rate-chart {
width: 2.72in;
margin: 0.02in 0 0.12in 0.34in;
display: grid;
gap: 0.035in;
}
.general-conditions-rate-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 0.8in;
gap: 0.16in;
align-items: baseline;
font-size: 11.2px;
line-height: 1.15;
}
.general-conditions-rate-row span {
color: #4f4a43;
}
.general-conditions-rate-row strong {
color: #242323;
font-weight: 400;
}
.general-conditions-rate-editor-list {
display: grid;
gap: 0.08in;
}
.general-conditions-rate-editor-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 1.25in auto;
gap: 0.08in;
align-items: end;
}
.general-conditions-rate-remove {
align-self: end;
margin-bottom: 0.01in;
}
.structured-page[data-section="Process / Scope"] .structured-page-copy {
height: 8.5in;
}
.structured-page[data-section="Process / Scope"] .doc-copy {
font-size: 11.6px;
line-height: 1.22;
}
.structured-page[data-section="Process / Scope"] .doc-copy p {
margin-bottom: 0.08in;
}
.process-single-page-copy h3 {
margin: 0.14in 0 0.085in;
font-size: 12px;
line-height: 1.05;
font-weight: 900;
text-transform: uppercase;
}
.process-single-page-copy ul {
margin-bottom: 0;
}
.summary-address-block {
margin-bottom: 0.08in;
line-height: 1.42;
}
.summary-address-block strong {
font-weight: 700;
}
.summary-rule {
width: 100%;
height: 1px;
background: #bdb7ad;
margin: 0.12in 0 0.18in;
}
.summary-proposal-title {
margin: 0 0 0.2in;
}
.summary-proposal-title .summary-rule:first-child {
margin-top: 0;
}
.summary-proposal-title-text {
margin: 0.08in 0;
line-height: 1.26;
}
.qualifications-page-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.12in;
margin-top: 0.14in;
}
.qualification-stat {
border: 1px solid #ded7cd;
background: #faf8f4;
padding: 0.14in;
}
.qualification-value {
font-size: 24px;
font-weight: 800;
line-height: 1;
}
.qualification-label {
margin-top: 0.04in;
font-size: 11px;
line-height: 1.2;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #666156;
}
.qualification-stat p {
margin: 0.08in 0 0;
font-size: 11.5px;
line-height: 1.28;
}
.team-member-copy {
border-top: 1px solid #e0dbd1;
padding-top: 0.12in;
margin-top: 0.12in;
}
.team-member-copy strong {
display: block;
font-size: 14px;
}
.team-member-copy span {
display: block;
margin-top: 0.03in;
color: #6c665e;
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.deliverables-editor {
display: grid;
gap: 10px;
margin-top: 14px;
padding-top: 14px;
border-top: 1px solid var(--line);
}
.deliverables-editor > strong {
font-size: 13px;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.deliverable-option-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto auto;
gap: 8px;
align-items: stretch;
}
.deliverable-option-row .option-row {
width: 100%;
}
.deliverable-move-group {
display: grid;
grid-template-rows: 1fr 1fr;
gap: 6px;
}
.deliverable-move-group button[disabled] {
opacity: 0.45;
cursor: default;
}
.deliverable-delete {
align-self: stretch;
}
.deliverable-add-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 8px;
}
.structured-team-rail {
display: grid;
gap: 0.16in;
}
.structured-team-rail.team-count-1,
.structured-team-rail.team-count-2 {
grid-template-rows: repeat(2, minmax(0, 1fr));
}
.structured-team-rail.team-count-3,
.structured-team-rail.team-count-4 {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-auto-rows: minmax(0, 1fr);
}
.structured-team-photo-slot {
height: auto;
margin-top: 0;
width: 100%;
}
.structured-team-photo-slot.team-headshot-circle {
aspect-ratio: 1 / 1;
border-radius: 999px;
overflow: hidden;
align-self: start;
}
.inline-check {
display: flex;
align-items: center;
gap: 10px;
font-size: 13px;
}
.inline-check input {
width: auto;
min-height: 0;
}
.qualifications-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.qualification-stat-editor,
.team-member-editor,
.consultant-group-card {
border: 1px solid var(--line);
background: #fbfaf7;
border-radius: var(--radius);
padding: 12px;
display: grid;
gap: 12px;
}
.consultant-add-row {
display: flex;
gap: 8px;
}
.consultant-add-row input {
min-width: 0;
flex: 1 1 auto;
}
.consultant-item-row {
display: flex;
align-items: stretch;
gap: 8px;
}
.consultant-item-row .option-row {
flex: 1 1 auto;
}
.consultant-order-controls {
display: flex;
gap: 4px;
align-items: center;
}
.team-photo-preview,
.signature-preview {
max-width: 220px;
max-height: 90px;
object-fit: contain;
display: block;
margin-top: 8px;
background: #fff;
}
.team-headshot-circle {
border-radius: 999px !important;
overflow: hidden;
}
.section-preset-tools {
display: grid;
gap: 8px;
padding: 10px 12px;
border: 1px solid var(--line);
background: #fbfaf7;
border-radius: var(--radius);
}
.section-preset-row,
.section-editor-actions {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: center;
}
.currency-emphasis {
font-weight: 800;
}
.fee-total-row td {
font-weight: 800;
font-size: 1.22em;
}
.fee-chart {
border: 1px solid #ddd5c8;
background: #faf8f3;
padding: 14px;
margin: 0.04in 0 0.18in;
}
.fee-structure {
margin: 0 0 0.22in;
}
.fee-structure-heading {
margin: 0 0 0.08in;
}
.fee-structure-below {
margin: -0.08in 0 0;
}
.fee-structure-editors {
display: grid;
gap: 14px;
margin-bottom: 16px;
}
.fee-structure-editor {
margin: 0;
}
.fee-chart-title {
margin: 0 0 0.12in;
color: #5f584f;
font-size: 11px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.fee-chart-row {
margin-bottom: 0.12in;
}
.fee-chart-meta,
.fee-chart-total {
display: flex;
justify-content: space-between;
gap: 10px;
align-items: baseline;
}
.fee-chart-meta span,
.fee-chart-total span {
font-size: 12px;
}
.fee-chart-meta strong,
.fee-chart-total strong {
font-size: 12px;
}
.fee-chart-bar {
margin-top: 5px;
height: 8px;
background: #e8e1d7;
}
.fee-chart-bar span {
display: block;
height: 100%;
background: var(--brand);
}
.fee-chart-total {
border-top: 1px solid #d6cebf;
padding-top: 10px;
font-weight: 800;
}
.fee-chart-empty {
margin-bottom: 0;
}
.closing-block {
margin-top: 0.22in;
}
.signature-mark {
max-width: 2.1in;
max-height: 0.9in;
object-fit: contain;
display: block;
margin: 0.08in 0 0.08in;
}
.modern-content-model {
column-count: 1;
column-gap: 0;
top: 0.56in;
height: 6.82in;
}
.modern-content-model .doc-copy {
font-size: 10.8px;
line-height: 1.28;
}
.modern-page[data-section="Compensation"] .modern-content-model {
width: 7.9in;
column-count: 1;
}
.modern-page[data-section="Compensation"] .modern-visuals {
display: none;
}
.modern-page[data-section="Compensation"] .doc-copy {
width: auto;
font-size: 10px;
line-height: 1.2;
}
.modern-page[data-section="Compensation"] .doc-copy > p {
margin-bottom: 0.06in;
}
.modern-page[data-section="Compensation"] .fee-table {
font-size: 8.8px;
margin-bottom: 0.07in;
}
.modern-page[data-section="Compensation"] .fee-table td,
.modern-page[data-section="Compensation"] .fee-table th {
padding: 3px 4px;
}
.modern-page[data-section="Compensation"] .fee-chart {
padding: 8px;
margin: 0.025in 0 0.07in;
}
.modern-page[data-section="Compensation"] .fee-chart-row {
margin-bottom: 0.04in;
}
.modern-page[data-section="Compensation"] .fee-chart-meta span,
.modern-page[data-section="Compensation"] .fee-chart-meta strong,
.modern-page[data-section="Compensation"] .fee-chart-total span,
.modern-page[data-section="Compensation"] .fee-chart-total strong {
font-size: 8.8px;
}
.modern-page[data-section="Compensation"] .fee-chart-bar {
height: 4px;
margin-top: 2px;
}
.modern-page[data-section="Compensation"] .fee-chart-total {
padding-top: 5px;
}
.modern-page[data-section="Compensation"] .compensation-fee-notes {
margin-top: 0.06in;
font-size: 8.8px;
line-height: 1.18;
}
.modern-page[data-section="Compensation"] .doc-copy .compensation-fee-notes ol {
columns: 2;
column-gap: 0.3in;
margin-bottom: 0.045in;
}
.modern-page[data-section="Compensation"] .doc-copy .compensation-fee-notes li {
margin-bottom: 0.024in;
}
.northline-content-model {
top: 2.84in;
height: 7.14in;
}
.northline-page[data-section="Process / Scope"] .northline-content-model {
top: 2.62in;
height: 7.78in;
}
.northline-page[data-section="Process / Scope"] .doc-copy {
font-size: 10.8px;
line-height: 1.25;
}
.northline-page[data-section="Process / Scope"] .doc-copy p {
margin-bottom: 0.06in;
}
.northline-page[data-section="Process / Scope"] .doc-copy li {
margin-bottom: 0.028in;
}
.northline-page[data-section="Process / Scope"] .process-single-page-copy h3 {
margin: 0.1in 0 0.085in;
font-size: 11.2px;
line-height: 1.05;
}
.northline-qualifications-title {
top: 1.42in;
width: 3.18in;
}
.northline-qualification-list {
position: absolute;
left: 0.64in;
top: 3.34in;
width: 2.7in;
display: grid;
gap: 0;
padding-bottom: 0.24in;
border-bottom: 1px solid #cfc7b9;
}
.northline-qualification-item {
padding: 0.12in 0 0.14in;
border-top: 1px solid #cfc7b9;
text-align: left;
}
.northline-qualification-item strong {
display: block;
color: #1d1d1b;
font-family: "Bahnschrift SemiCondensed", Bahnschrift, "Arial Narrow", Arial, sans-serif;
font-size: 36px;
line-height: 0.95;
font-weight: 700;
}
.northline-qualification-item span {
display: block;
margin-top: 0.05in;
color: #4d4943;
font-family: "Bahnschrift SemiCondensed", Bahnschrift, "Arial Narrow", Arial, sans-serif;
font-size: 8.8px;
font-weight: 700;
letter-spacing: 0.06em;
line-height: 1.15;
text-transform: uppercase;
}
.northline-team-title {
width: 2.45in;
}
.northline-team-title p {
max-width: 1.8in;
}
.northline-team-title::after {
width: 1.7in;
}
.northline-team-list {
position: absolute;
left: 0.54in;
top: 2.9in;
width: 3.22in;
}
/* Keep the body a constant distance below the header rule on every page. */
.northline-flow-column {
position: absolute;
left: 0.54in;
top: 0.94in;
bottom: 0.6in;
width: 3.22in;
display: flex;
flex-direction: column;
overflow: hidden;
z-index: 2;
}
.northline-flow-column > .northline-title {
position: static !important;
flex: 0 0 auto;
}
.northline-flow-column > .northline-content,
.northline-flow-column > .northline-qualification-list,
.northline-flow-column > .northline-team-list {
position: static !important;
top: auto !important;
left: auto !important;
flex: 1 1 auto;
min-height: 0;
height: auto !important;
margin-top: 0.3in;
overflow: hidden;
}
.northline-flow-column > .northline-content {
width: 3.1in;
}
.northline-landscape-flow-column {
right: 0.54in;
bottom: 3.42in;
width: auto;
}
.northline-landscape-flow-column > .northline-content {
width: 100%;
}
.northline-qualifications-flow-column {
top: 1.42in;
}
.northline-qualifications-flow-column > .northline-qualification-list {
position: absolute !important;
top: 4.08in !important;
left: 0.1in !important;
transform: translateY(-50%);
width: 2.7in;
margin: 0;
overflow: visible;
}
.northline-team-flow-column > .northline-team-list {
width: 3.22in;
}
.northline-page[data-section="Bidding and Construction Administration"] .northline-flow-column {
top: 1.14in;
}
.northline-team-row {
display: grid;
grid-template-columns: 0.88in 1fr;
gap: 0.16in;
align-items: start;
padding: 0.13in 0;
border-top: 1px solid #d8d0c2;
}
.northline-team-row:first-child {
padding-top: 0;
border-top: 0;
}
.northline-team-person-photo {
width: 0.82in;
height: 0.82in;
object-fit: cover;
display: block;
border-radius: 0;
border: 1px solid #ddd4c6;
background: #ebe4d8;
}
.northline-team-placeholder {
display: grid;
place-items: center;
color: #1d1d1b;
font-size: 8px;
font-weight: 900;
letter-spacing: 0.08em;
}
.northline-team-person-copy strong {
display: block;
font-size: 9.4px;
line-height: 1.18;
text-transform: uppercase;
}
.northline-team-person-copy span {
display: block;
margin-top: 0.02in;
color: #5e5a53;
font-size: 7px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.northline-team-person-copy p {
display: none;
}
.northline-team-hero {
right: 0;
top: 0;
width: 3.55in;
height: 11in;
}
.studio-cover-page {
background: linear-gradient(180deg, #fffdf8 0%, #f6efe4 100%);
}
.studio-cover-inner {
width: 8.5in;
height: 11in;
position: relative;
padding: 0.62in 0.6in 0.5in;
}
.studio-cover-meta-row {
display: flex;
justify-content: space-between;
gap: 0.3in;
font-size: 8px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #4d4a42;
}
.studio-cover-copy {
position: absolute;
left: 0.6in;
right: 0.6in;
top: 1.22in;
z-index: 2;
}
.studio-cover-copy h1 {
margin: 0;
font-size: 74px;
line-height: 0.9;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0;
}
.studio-cover-kicker {
margin: 0.12in 0 0;
font-size: 10px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #5d584d;
}
.studio-cover-project-name {
margin: 0.12in 0 0;
max-width: 3.6in;
font-size: 18px;
line-height: 1.05;
font-weight: 700;
}
.studio-cover-image-wrap {
position: absolute;
left: 0;
right: 0;
top: 4.04in;
bottom: 0.72in;
height: auto;
}
.studio-cover-image-wrap .structured-cover-photo {
border: 1px solid #e4ddcf;
}
.studio-cover-footer {
position: absolute;
left: 0.6in;
right: 0.6in;
bottom: 0.46in;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.18in;
font-size: 8px;
text-transform: uppercase;
color: #625d53;
}
.studio-cover-footer span {
display: block;
margin-bottom: 0.04in;
font-size: 7px;
letter-spacing: 0.08em;
}
.studio-cover-footer strong {
display: block;
font-size: 8px;
color: #1c1c1a;
}
.studio-page-inner {
padding: 0.6in;
}
.studio-landscape-page .studio-page-inner {
padding: 0;
}
.studio-page-number {
position: absolute;
left: 0.6in;
top: 0.48in;
width: 0.58in;
height: 0.58in;
display: grid;
place-items: center;
background: #efe4cf;
border: 1px solid #d3c3a9;
font-size: 18px;
font-weight: 900;
line-height: 1;
}
.studio-header-block {
position: absolute;
left: 0.6in;
top: 1.08in;
width: 2.45in;
}
.studio-header-block-wide {
width: 2.95in;
}
.studio-header-block h2 {
margin: 0;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
font-size: 31px;
line-height: 0.88;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0;
}
.studio-header-block p {
margin: 0.18in 0 0;
color: #5f5a50;
font-size: 10px;
line-height: 1.4;
}
.studio-header-rule {
width: 100%;
height: 1px;
background: #cfc3af;
margin-top: 0.14in;
}
.studio-copy-column {
position: absolute;
left: 0.6in;
top: 2.28in;
width: 2.62in;
height: 7.36in;
overflow: hidden;
}
.studio-photo-column {
position: absolute;
right: 0.6in;
top: 0.6in;
width: 3.32in;
height: 9.6in;
}
.studio-photo-column-tall {
top: 0.62in;
height: 9.72in;
}
.studio-photo-column-process {
top: 1.22in;
height: 8.7in;
}
.studio-landscape-copy-column {
position: absolute;
left: 0.72in;
right: 0.72in;
top: 1.62in;
height: 3.86in;
overflow: hidden;
}
.studio-landscape-photo {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 3.12in;
margin: 0;
overflow: hidden;
background: #ede7dc;
}
.studio-landscape-page .studio-page-footer {
bottom: 3.34in;
}
.studio-page-photo {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
border: 1px solid #ebe4d7;
background: #ede7dc;
}
.structured-page-studio .doc-copy {
font-size: 11.35px;
line-height: 1.38;
}
.structured-page-studio .doc-copy p {
margin: 0 0 0.12in;
}
.structured-page-studio .doc-copy ul,
.structured-page-studio .doc-copy ol {
margin: 0 0 0.14in 0.18in;
padding-left: 0.1in;
}
.structured-page-studio .doc-copy li {
margin: 0 0 0.04in;
}
.structured-page-studio .qualifications-page-grid {
grid-template-columns: 1fr;
gap: 0.1in;
}
.structured-page-studio .qualification-stat {
padding: 0.1in 0.12in;
}
.structured-page-studio .qualification-value {
font-size: 19px;
}
.structured-page-studio .team-member-copy {
margin-top: 0;
}
.studio-page-footer {
left: 0.6in;
right: 0.6in;
bottom: 0.34in;
font-size: 8px;
color: #6c665b;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.studio-page-footer-light {
color: rgba(255, 255, 255, 0.92);
}
.studio-copy-column-understanding {
width: 2.35in;
top: 2.26in;
height: 7.3in;
}
.studio-copy-column-process {
width: 2.55in;
top: 2.24in;
height: 7.34in;
}
.studio-photo-accent {
position: absolute;
left: -0.72in;
top: 0.22in;
width: 1.18in;
height: 2.75in;
background: rgba(191, 198, 206, 0.58);
z-index: 1;
}
.studio-photo-column-tall .studio-page-photo {
position: relative;
z-index: 2;
}
.studio-qualifications-head {
position: absolute;
left: 0.6in;
top: 0.96in;
width: 2.2in;
}
.studio-qualifications-head h2 {
margin: 0;
font-size: 30px;
line-height: 0.9;
font-weight: 900;
text-transform: uppercase;
}
.studio-qualifications-head p {
margin: 0.2in 0 0;
font-size: 10px;
line-height: 1.45;
color: #5f5a50;
}
.studio-qualifications-stats {
position: absolute;
left: 0.72in;
top: 2.9in;
width: 1.82in;
padding-bottom: 0.22in;
border-bottom: 1px solid #d9d0c1;
}
.studio-qualification-row {
padding: 0.16in 0 0.14in;
border-top: 1px solid #d9d0c1;
}
.studio-qualification-row strong {
display: block;
margin-top: 0.03in;
font-size: 30px;
line-height: 0.96;
font-weight: 900;
}
.studio-qualification-row span {
display: block;
margin-top: 0.05in;
font-size: 8.5px;
color: #6a6459;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.studio-qualifications-photo {
position: absolute;
right: 0.6in;
top: 2.05in;
width: 2.7in;
height: 4.05in;
}
.studio-qualifications-photo .studio-page-photo {
height: 100%;
}
.studio-bottom-rule {
position: absolute;
left: 0.6in;
right: 0.6in;
bottom: 0.88in;
height: 1px;
background: #d8cfbf;
}
.studio-team-title {
position: absolute;
left: 0.6in;
top: 1.08in;
width: 1.7in;
}
.studio-team-title h2 {
margin: 0;
font-size: 31px;
line-height: 0.88;
font-weight: 900;
text-transform: uppercase;
}
.studio-team-title p {
margin: 0.2in 0 0;
max-width: 1.35in;
font-size: 9px;
line-height: 1.42;
color: #5f5a50;
}
.studio-team-list {
position: absolute;
left: 0.6in;
top: 2.48in;
width: 2.76in;
}
.studio-team-hero {
position: absolute;
right: 0.6in;
top: 0.6in;
width: 4.55in;
height: 9.55in;
}
.studio-team-hero .studio-page-photo {
height: 100%;
}
.studio-team-row {
display: grid;
grid-template-columns: 0.74in 1fr;
gap: 0.16in;
align-items: start;
margin-bottom: 0.2in;
}
.studio-team-person-photo {
width: 0.7in;
height: 0.7in;
object-fit: cover;
display: block;
border: 1px solid #e5ddd0;
background: #eee7dc;
border-radius: 999px;
}
.studio-team-photo-placeholder {
background: linear-gradient(180deg, #f1ece3 0%, #e2d8c9 100%);
}
.studio-team-person-copy strong {
display: block;
font-size: 8.5px;
line-height: 1.2;
text-transform: uppercase;
}
.studio-team-person-copy span {
display: block;
margin-top: 0.02in;
font-size: 7px;
color: #5f5a50;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.studio-team-person-copy p {
margin: 0.06in 0 0;
font-size: 8px;
line-height: 1.34;
}
.studio-process-hero-page .studio-page-inner {
padding: 0;
}
.studio-process-hero-photo {
position: absolute;
inset: 0;
}
.studio-process-hero-photo .studio-page-photo {
height: 100%;
border: 0;
}
.studio-process-overlay {
position: absolute;
left: 0.58in;
top: 0.58in;
width: 1.8in;
min-height: 8.8in;
padding: 0.18in 0.16in 0.22in;
background: rgba(20, 20, 19, 0.42);
color: white;
}
.studio-process-overlay h2 {
margin: 0 0 0.28in;
font-size: 30px;
line-height: 0.88;
font-weight: 900;
text-transform: uppercase;
}
.studio-process-step {
display: grid;
grid-template-columns: 0.34in 1fr;
gap: 0.12in;
margin-bottom: 0.18in;
}
.studio-process-step span {
font-size: 15px;
font-weight: 800;
line-height: 1;
}
.studio-process-step strong {
display: block;
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.studio-process-step p {
margin: 0.04in 0 0;
font-size: 9px;
line-height: 1.35;
}
.studio-header-block-schedule {
width: 2.1in;
}
.studio-schedule-copy {
position: absolute;
left: 0.6in;
top: 1.78in;
width: 2.28in;
height: 7.8in;
overflow: hidden;
}
.studio-schedule-copy .schedule-table,
.studio-schedule-copy .fee-table {
font-size: 9.5px;
margin-bottom: 0.12in;
}
.studio-schedule-copy .schedule-table th,
.studio-schedule-copy .schedule-table td,
.studio-schedule-copy .fee-table th,
.studio-schedule-copy .fee-table td {
padding: 5px 2px;
}
.studio-schedule-photo {
position: absolute;
right: 0.6in;
top: 0.72in;
width: 2.86in;
height: 8.45in;
}
.studio-schedule-page .studio-page-inner {
padding: 0;
}
.studio-schedule-page .studio-header-block {
left: 0.72in;
top: 0.96in;
width: 2.95in;
}
.studio-schedule-copy-landscape {
position: absolute;
left: 0.72in;
right: 0.72in;
top: 1.62in;
bottom: 3.52in;
height: auto;
}
.studio-schedule-landscape-photo {
position: absolute !important;
inset: auto 0 0 0 !important;
width: auto;
height: 3.2in !important;
margin: 0 !important;
}
.studio-schedule-page .studio-page-footer {
bottom: 3.42in;
}
.studio-fee-copy {
position: absolute;
left: 0.6in;
top: 1.78in;
width: 2.2in;
height: 7.8in;
overflow: hidden;
}
.studio-fee-copy .doc-copy p {
margin-bottom: 0.11in;
}
.studio-fee-copy .fee-chart {
padding: 10px;
margin: 0.08in 0 0.12in;
}
.studio-fee-page .studio-page-inner {
padding: 0;
}
.studio-fee-page .studio-header-block {
left: 0.72in;
top: 0.96in;
width: 2.95in;
}
.studio-fee-copy-landscape {
position: absolute;
left: 0.72in;
right: 0.72in;
width: auto;
top: 1.62in;
bottom: 3.52in;
height: auto;
}
.studio-fee-landscape-photo {
position: absolute !important;
inset: auto 0 0 0 !important;
width: auto;
height: 3.2in !important;
margin: 0 !important;
}
.studio-fee-page .studio-page-footer {
bottom: 3.42in;
}
.studio-closing-page {
background: linear-gradient(180deg, #fbf7ef 0%, #f4eee4 100%);
}
.studio-thank-you {
position: absolute;
left: 0.8in;
top: 1.14in;
font-size: 8px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.studio-thank-you-rule {
position: absolute;
left: 1.48in;
top: 1.28in;
width: 0.46in;
height: 1px;
background: #1f1f1c;
}
.studio-closing-message {
position: absolute;
left: 0.8in;
top: 2.02in;
font-size: 34px;
line-height: 0.94;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0;
}
.studio-closing-signature {
position: absolute;
right: 0.8in;
top: 2.04in;
width: 2.4in;
font-size: 9px;
line-height: 1.25;
}
.studio-closing-signature p {
margin: 0;
}
.studio-closing-regards {
margin-bottom: 0.12in;
}
.studio-closing-signature .signature-mark {
max-width: 1.8in;
max-height: 0.72in;
margin: 0 0 0.08in;
}
.studio-closing-contact {
position: absolute;
left: 0.8in;
bottom: 1.08in;
font-size: 9px;
line-height: 1.45;
color: #59554b;
text-transform: uppercase;
}
.attachment-count-row {
display: grid;
grid-template-columns: minmax(160px, 0.42fr) minmax(0, 1fr);
gap: 14px;
align-items: end;
}
.attachment-count-row .field-help {
margin: 0 0 10px;
}
.attachment-editor-empty {
border: 1px dashed #c9c1b5;
border-radius: var(--radius);
padding: 18px;
color: var(--muted);
text-align: center;
}
.attachment-editor-list,
.attachment-page-editor-list {
display: grid;
gap: 12px;
}
.attachment-editor-item {
display: grid;
gap: 14px;
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 14px;
background: #fbfaf7;
}
.attachment-editor-heading {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: center;
}
.attachment-editor-heading span,
.attachment-editor-heading strong {
display: block;
}
.attachment-editor-heading span {
margin-bottom: 3px;
color: var(--muted);
font-size: 10px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.attachment-editor-fields {
display: grid;
grid-template-columns: minmax(0, 1fr) 150px;
gap: 12px;
}
.attachment-subtitle-field {
grid-column: 1 / -1;
}
.attachment-page-editor {
display: grid;
grid-template-columns: 104px minmax(0, 1fr);
gap: 14px;
align-items: stretch;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.attachment-page-editor-preview {
width: 104px;
min-height: 132px;
display: grid;
place-items: center;
overflow: hidden;
border: 1px solid #d8d1c6;
background: #fff;
color: var(--muted);
font-size: 11px;
text-align: center;
}
.attachment-page-editor-preview img {
width: 100%;
height: 132px;
display: block;
object-fit: contain;
}
.attachment-page-editor-controls {
display: grid;
gap: 7px;
align-content: start;
}
.attachment-page-editor-controls > span {
color: var(--muted);
font-size: 12px;
}
.attachment-page-editor-controls button {
justify-self: start;
}
.attachment-proposal-page {
background: #fff;
}
.attachment-page-inner {
position: relative;
width: 8.5in;
height: 11in;
background: #fff;
}
.attachment-page-header {
position: absolute;
left: 0.64in;
right: 0.64in;
top: 0.5in;
height: auto;
}
.attachment-page-header h2 {
margin: 0;
padding-right: 0.72in;
color: #1d1d1b;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
font-size: 20px;
font-weight: 800;
line-height: 1;
text-transform: uppercase;
}
.attachment-page-subtitle {
margin: 0.08in 0 0;
color: #6f6a61;
font-family: "Century Gothic", "Avenir Next", "Montserrat", Arial, sans-serif;
font-size: 11px;
font-weight: 400;
line-height: 1.2;
}
.attachment-page-number {
position: absolute;
z-index: 2;
right: 0.64in;
top: 0.48in;
color: #8a8378;
font-size: 12px;
font-weight: 800;
}
.attachment-page-content {
position: absolute;
left: 0.64in;
right: 0.64in;
top: 1.26in;
bottom: 0.75in;
display: grid;
place-items: stretch;
overflow: hidden;
background: #fff;
}
.attachment-page-image {
width: 100%;
height: 100%;
display: block;
object-fit: contain;
object-position: center;
background: #fff;
}
.attachment-proposal-page .attachment-page-footer {
left: 0.64in;
right: 0.64in;
bottom: 0.32in;
width: auto;
}
.attachment-theme-studio .attachment-page-header h2 {
font-size: 31px;
line-height: 0.88;
font-weight: 900;
}
.attachment-theme-studio .attachment-page-subtitle {
font-size: 15.5px;
}
.attachment-theme-studio .attachment-page-number {
width: 0.58in;
height: 0.58in;
right: 0.6in;
top: 0.38in;
display: grid;
place-items: center;
background: #efe4cf;
border: 1px solid #d3c3a9;
color: #1d1d1b;
font-size: 16px;
}
.attachment-theme-northline {
background: #f8f5ef;
}
.attachment-theme-northline .attachment-page-inner {
background: #f8f5ef;
}
.attachment-theme-northline .attachment-page-header h2 {
font-family: "Bahnschrift Condensed", "Bahnschrift SemiCondensed", Bahnschrift, "Arial Narrow", Impact, Arial, sans-serif;
font-size: 34px;
font-weight: 900;
line-height: 0.9;
}
.attachment-theme-northline .attachment-page-subtitle {
font-size: 17px;
font-weight: 400;
line-height: 1.2;
}
.attachment-theme-northline .attachment-page-content,
.attachment-theme-northline .attachment-page-image {
background: #f8f5ef;
}
.attachment-theme-modern .attachment-page-inner {
width: 11in;
height: 8.5in;
background: #f8f6f1;
}
.attachment-theme-modern .attachment-page-header {
left: 0.44in;
right: 0.44in;
top: 0.38in;
height: 0.45in;
}
.attachment-theme-modern .attachment-page-header h2 {
font-family: "Arial Narrow", Impact, Arial, sans-serif;
font-size: 28px;
line-height: 0.92;
}
.attachment-theme-modern .attachment-page-subtitle {
font-size: 14px;
}
.attachment-theme-modern .attachment-page-number {
right: 0.44in;
top: 0.38in;
}
.attachment-theme-modern .attachment-page-content {
left: 0.44in;
right: 0.44in;
top: 1.08in;
bottom: 0.62in;
background: #f8f6f1;
}
.attachment-theme-modern .attachment-page-image {
background: #f8f6f1;
}
.attachment-theme-modern .attachment-page-footer {
left: 0.44in;
right: 0.44in;
bottom: 0.26in;
}
@media (max-width: 1180px) {
.app-shell {
grid-template-columns: 240px minmax(0, 1fr);
}
.workspace {
grid-template-columns: 1fr;
}
.preview-pane {
min-height: 680px;
}
}
@media (max-width: 820px) {
.app-shell {
display: block;
}
.sidebar {
position: relative;
min-height: 0;
}
.topbar,
.preview-head,
.panel-head {
align-items: flex-start;
flex-direction: column;
}
.field-grid,
.field-action-row,
.schedule-import,
.attachment-count-row,
.attachment-editor-fields,
.general-conditions-rate-editor-row,
.tabs {
grid-template-columns: 1fr;
}
.workspace {
padding: 14px;
}
}
@media print {
@page {
size: letter;
margin: 0;
}
html,
body {
width: 8.5in;
background: white;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
.sidebar,
.topbar,
.work-pane,
.preview-head,
.photo-slot-tools {
display: none !important;
}
.app-shell,
.main-area,
.workspace,
.preview-pane,
.proposal-document {
display: block !important;
width: 8.5in !important;
min-height: auto !important;
padding: 0 !important;
margin: 0 !important;
overflow: visible !important;
}
/*
* Keep proposal copy on the PDF-safe body face even if a theme adds a more
* specific font later. Display headings retain their explicit typefaces.
*/
.proposal-document,
.proposal-document .doc-copy {
font-family: Arial, Helvetica, sans-serif;
font-variant-ligatures: none;
}
.proposal-page {
width: 8.5in !important;
min-height: 11in !important;
height: 11in !important;
content-visibility: visible !important;
contain-intrinsic-size: none !important;
box-shadow: none !important;
border: 0 !important;
page-break-after: always;
break-after: page;
}
.page-inner {
width: 8.5in !important;
height: 11in !important;
display: block !important;
padding: 0 !important;
position: relative !important;
}
.photo-rail {
position: absolute !important;
left: var(--pdf-photo-left) !important;
top: 1.1in !important;
width: var(--pdf-photo-width) !important;
display: grid !important;
grid-template-rows: 3.4in 3.74in !important;
gap: 1.58in !important;
}
.is-intro-page .photo-rail {
top: 3.48in !important;
grid-template-rows: 1.96in 3.94in !important;
gap: 0.28in !important;
}
.page-content {
position: absolute !important;
left: var(--pdf-text-left) !important;
top: 1.1in !important;
width: var(--pdf-text-width) !important;
height: 9.1in !important;
overflow: hidden !important;
}
.is-intro-page .page-content {
top: 1.15in !important;
}
.body-page-number {
top: 0.52in !important;
right: var(--pdf-text-right) !important;
}
.proposal-footer {
left: var(--pdf-text-left) !important;
right: var(--pdf-text-right) !important;
bottom: 0.42in !important;
}
.attachment-proposal-page .attachment-page-footer {
left: 0.64in !important;
right: 0.64in !important;
bottom: 0.32in !important;
}
.attachment-theme-modern .attachment-page-footer {
left: 0.44in !important;
right: 0.44in !important;
bottom: 0.26in !important;
}
.proposal-page:last-child {
page-break-after: auto;
break-after: auto;
}
body.printing-modern-landscape {
width: 11in !important;
}
body.printing-modern-landscape .proposal-page {
width: 11in !important;
min-height: 8.5in !important;
height: 8.5in !important;
}
body.printing-modern-landscape .modern-inner {
width: 11in !important;
height: 8.5in !important;
position: relative !important;
}
body.printing-structured-portrait .proposal-page {
width: 8.5in !important;
min-height: 11in !important;
height: 11in !important;
}
}