: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; } }