/* =========================================================
   Crowell–Collier Publishing — shared chrome + inner pages
   (loaded after style.css on every page)
   ========================================================= */

/* ---------- Logo in header / footer ---------- */
.logo { padding: 0; display: block; }
.logo img { height: 46px; width: auto; display: block; }
.foot-logo img { height: 44px; width: auto; margin-bottom: 1.4rem; }
.drop-all { display: block; margin: .8rem .8rem 0; padding-top: .8rem; border-top: 1px solid var(--line); font-size: .9rem; font-weight: 500; color: var(--accent); }
.drop-all:hover { color: var(--ink); }
.services-drop .dropdown-item.is-current { color: var(--accent); }
.navbar-nav .nav-link.active { color: var(--accent); }
.foot-contact li { margin-bottom: .9rem !important; }
.foot-contact span { display: block; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(243,239,230,.45); }
.foot-contact a { color: var(--paper); word-break: break-word; }
@media (max-width: 575.98px) { .logo img { height: 38px; } }

/* ---------- Breadcrumbs ---------- */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .85rem; color: var(--muted); margin-bottom: 3rem; }
.crumbs a { color: var(--ink); border-bottom: 1px solid var(--line); }
.crumbs a:hover { color: var(--accent); border-color: var(--accent); }
.crumbs i { font-style: normal; opacity: .5; }

/* ---------- Page hero ---------- */
.page-hero { padding: 56px 0 90px; }
.page-hero-simple { padding-bottom: 70px; border-bottom: 1px solid var(--ink); }
.kicker-n { color: var(--accent); margin-right: .4rem; }
.page-title { font-family: var(--serif); font-size: clamp(2.7rem, 5.6vw, 5.2rem); line-height: .98; letter-spacing: -.022em; margin-bottom: 1.6rem; }
.page-title em { color: var(--accent); }
.page-lead { font-size: 1.12rem; max-width: 560px; }
.page-visual { position: relative; display: flex; justify-content: center; }

/* ---------- Quick facts ---------- */
.sfacts { padding: 0; }
.sfacts .row { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.sfact { padding: 1.8rem 1.5rem 1.8rem 0; height: 100%; }
.sfacts .col-6 + .col-6 .sfact { padding-left: 1.5rem; border-left: 1px solid var(--line); }
.sfact strong { display: block; font-family: var(--serif); font-weight: 400; font-size: clamp(1.8rem, 2.6vw, 2.4rem); line-height: 1; color: var(--ink); margin-bottom: .5rem; }
.sfact span { font-size: .88rem; color: var(--muted); }

/* ---------- Included ---------- */
.inc-grid { border-top: 1px solid var(--ink); }
.inc { display: flex; gap: 1.4rem; padding: 1.8rem 2rem 1.8rem 0; border-bottom: 1px solid var(--line); height: 100%; transition: background .3s; }
.inc-grid .col-md-6:nth-child(even) .inc { padding-left: 2rem; border-left: 1px solid var(--line); padding-right: 0; }
.inc-n { font-size: .8rem; color: var(--accent); font-weight: 600; padding-top: .45rem; }
.inc h3 { font-family: var(--serif); font-size: 1.6rem; margin-bottom: .4rem; }
.inc p { margin: 0; color: var(--muted); font-size: .95rem; }

/* ---------- Types ---------- */
.types { padding-top: 0; }
.types .container::before { content: ""; display: block; border-top: 1px solid var(--ink); margin-bottom: 3rem; }
.type-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .3rem 0; }
.type-list li { font-family: var(--serif); font-size: clamp(1.5rem, 2.6vw, 2.3rem); line-height: 1.25; color: var(--ink); }
.type-list li:not(:last-child)::after { content: "/"; color: var(--accent); margin: 0 .7rem; font-style: italic; }

/* ---------- Why us ---------- */
.whyus { background: var(--ink); color: var(--paper); padding: 100px 0; }
.whyus .row { border-top: 1px solid var(--line-light); }
.why { padding: 2rem 2rem 0 0; height: 100%; }
.whyus .col-md-4 + .col-md-4 .why { padding-left: 2rem; border-left: 1px solid var(--line-light); }
.why span { font-family: var(--serif); font-style: italic; font-size: 1.6rem; color: var(--accent); }
.why h3 { font-family: var(--serif); color: var(--paper); font-size: 2rem; margin: .8rem 0; line-height: 1.05; }
.why p { color: rgba(243,239,230,.62); margin: 0; }

/* ---------- Single quote ---------- */
.page-quote { padding: 110px 0; }
.page-quote blockquote { font-family: var(--serif); font-size: clamp(1.9rem, 3.6vw, 3.1rem); line-height: 1.12; color: var(--ink); max-width: 1000px; margin: 0 0 2.4rem; letter-spacing: -.01em; }
.pq-person { display: flex; align-items: center; gap: .9rem; padding-top: 1.2rem; border-top: 1px solid var(--ink); max-width: 1000px; }
.pq-person strong { display: block; font-weight: 500; color: var(--ink); }
.pq-person small { color: var(--muted); }

/* ---------- Related ---------- */
.related { padding-top: 0; background: var(--paper-3); padding-top: 100px; }
.rel-card { display: flex; flex-direction: column; height: 100%; padding: 1.8rem; background: var(--paper); border: 1px solid var(--line); border-radius: 2px; transition: background .3s, color .3s, transform .4s var(--ease); }
.rel-card:hover { background: var(--ink); color: var(--paper); transform: translateY(-4px); }
.rel-n { font-size: .8rem; color: var(--accent); font-weight: 600; }
.rel-card h3 { font-family: var(--serif); font-size: 1.9rem; margin: 1.6rem 0 .6rem; color: inherit; }
.rel-card p { color: var(--muted); font-size: .95rem; transition: color .3s; }
.rel-card:hover p { color: rgba(243,239,230,.65); }
.rel-go { margin-top: auto; font-weight: 500; font-size: .92rem; }

/* ---------- Services index page ---------- */
.services-page { padding-top: 90px; }
.svc-groups { display: flex; flex-wrap: wrap; gap: .4rem 2.4rem; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(243,239,230,.5); margin-bottom: 1.4rem; }

/* =========================================================
   Hero visuals (one per service)
   ========================================================= */
.vz-label { display: block; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: .9rem; }
.vz-hand { font-family: var(--hand); color: var(--accent); font-size: 1.5rem; }

/* ghostwriting */
.vz-ghost { position: relative; width: 100%; max-width: 520px; min-height: 470px; }
.vz-notes { position: absolute; z-index: 2; left: 0; top: 0; width: 56%; background: #fbf3c9; padding: 1.5rem 1.4rem 1.8rem; transform: rotate(-4deg); box-shadow: 0 20px 30px -22px rgba(0,0,0,.45);
  background-image: repeating-linear-gradient(180deg, transparent 0 29px, rgba(44,62,102,.18) 29px 30px); background-position: 0 3.2rem; }
.vz-notes p { font-family: var(--hand); font-size: 1.3rem; line-height: 30px; margin: 0; color: #2c3e66; }
.vz-notes u { text-decoration-color: var(--accent); text-decoration-thickness: 2px; }
.vz-strike { text-decoration: line-through; text-decoration-color: var(--accent); opacity: .6; }
.vz-page { position: absolute; right: 0; top: 150px; width: 62%; background: var(--paper-3); padding: 1.8rem 1.6rem; box-shadow: 0 30px 50px -30px rgba(0,0,0,.5); transform: rotate(2deg); }
.vz-page p { font-family: var(--type); font-size: .9rem; line-height: 1.85; color: var(--ink); }
.vz-lines i { display: block; height: 7px; background: var(--paper-2); margin-bottom: 11px; }
.vz-lines i:nth-child(2) { width: 82%; } .vz-lines i:nth-child(3) { width: 58%; }

/* editing */
.vz-ms { max-width: 520px; width: 100%; }

/* covers */
.vz-covers { display: flex; align-items: flex-end; gap: 1rem; width: 100%; max-width: 540px; }
.vz-cv { flex: 1; position: relative; text-align: center; }
.vz-cv > span { display: block; font-size: .78rem; color: var(--muted); margin-top: .7rem; }
.vz-cv:not(.is-pick) .cover { opacity: .75; transform: scale(.92); transform-origin: bottom; }
.vz-cv.is-pick { flex: 1.25; }
.vz-cv.is-pick .cover { outline: 2px solid var(--accent); outline-offset: 6px; }
.vz-cv .cover .cv-t { font-size: clamp(1.1rem, 1.8vw, 1.7rem); }
.vz-pick { position: absolute; top: -2.4rem; right: -.6rem; font-family: var(--hand); font-style: normal; color: var(--accent); font-size: 1.5rem; transform: rotate(-6deg); }

/* reader */
.vz-reader { display: flex; flex-direction: column; align-items: center; gap: 1.2rem; }
.vz-device { width: 300px; max-width: 100%; background: #2a2926; border-radius: 22px; padding: 18px 16px 34px; box-shadow: 0 40px 60px -40px rgba(0,0,0,.6); }
.vz-screen { background: #f4f0e6; border-radius: 6px; padding: 2rem 1.5rem 1.2rem; min-height: 360px; display: flex; flex-direction: column; }
.vz-ch { font-family: var(--serif); font-size: 1.5rem; text-align: center; margin-bottom: 1.2rem; color: var(--ink); }
.vz-screen p { font-family: Georgia, serif; font-size: .88rem; line-height: 1.6; color: #333; text-align: justify; hyphens: auto; margin-bottom: .7rem; }
.vz-drop::first-letter { float: left; font-size: 2.8rem; line-height: .85; padding-right: .3rem; color: var(--accent); font-family: var(--serif); }
.vz-loc { margin-top: auto; font-size: .7rem; color: #999; text-align: center; }
.vz-formats { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }
.vz-formats li { font-size: .78rem; border: 1px solid var(--ink); padding: .25rem .7rem; border-radius: 2px; }

/* checklist */
.vz-check { position: relative; background: var(--paper-3); padding: 2rem 2.2rem; width: 100%; max-width: 460px; box-shadow: 0 30px 50px -35px rgba(0,0,0,.45); border-top: 4px solid var(--ink); }
.vz-check ul { list-style: none; padding: 0; margin: 0; }
.vz-check li { position: relative; padding: .8rem 0 .8rem 2.2rem; border-bottom: 1px solid var(--line); font-size: .98rem; color: var(--muted); }
.vz-check li::before { content: ""; position: absolute; left: 0; top: .9rem; width: 18px; height: 18px; border: 1.5px solid var(--muted); border-radius: 2px; }
.vz-check li.done { color: var(--ink); }
.vz-check li.done::before { background: var(--ink); border-color: var(--ink); }
.vz-check li.done::after { content: "✓"; position: absolute; left: 4px; top: .72rem; color: var(--paper); font-size: .8rem; }
.vz-check li.now { color: var(--ink); font-weight: 500; }
.vz-check li.now::before { border-color: var(--accent); background: repeating-linear-gradient(45deg, var(--accent) 0 2px, transparent 2px 5px); }
.vz-check .vz-hand { position: absolute; right: -1rem; bottom: 4.2rem; transform: rotate(-8deg); }

/* store listing */
.vz-listing { display: flex; gap: 1.6rem; background: #fff; padding: 1.8rem; width: 100%; max-width: 540px; box-shadow: 0 30px 50px -35px rgba(0,0,0,.45); border: 1px solid var(--line); }
.vz-thumb { width: 38%; flex-shrink: 0; }
.vz-thumb .cover { padding: 14% 12%; }
.vz-thumb .cv-t { font-size: 1.05rem !important; }
.vz-info h4 { font-family: var(--sans); font-size: 1.05rem; font-weight: 500; line-height: 1.35; margin: .6rem 0 .3rem; }
.vz-badge { display: inline-block; background: var(--accent); color: #fff; font-size: .72rem; font-weight: 600; padding: .25rem .6rem; border-radius: 2px; }
.vz-by { font-size: .82rem; color: var(--muted); margin-bottom: .4rem; }
.vz-stars { color: #d9a12b; font-size: .95rem; margin-bottom: 1rem; letter-spacing: 1px; }
.vz-stars span { color: var(--muted); font-size: .78rem; letter-spacing: 0; margin-left: .3rem; }
.vz-kw { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; padding-top: .9rem; border-top: 1px dashed var(--line); }
.vz-kw b { font-family: var(--hand); font-weight: 500; color: var(--accent); font-size: 1.2rem; margin-right: .2rem; }
.vz-kw i { font-style: normal; font-size: .75rem; background: var(--paper-2); padding: .2rem .55rem; border-radius: 2px; }

/* audio */
.vz-audio { background: var(--ink); color: var(--paper); padding: 2rem; width: 100%; max-width: 480px; border-radius: 4px; box-shadow: 0 30px 50px -30px rgba(0,0,0,.6); }
.vz-audio .vz-label { color: rgba(243,239,230,.5); margin-bottom: .4rem; }
.vz-now h4 { font-family: var(--serif); color: var(--paper); font-size: 2rem; margin: 0; }
.vz-now p { color: rgba(243,239,230,.6); font-size: .9rem; }
.vz-wave { height: 90px; margin: 1.6rem 0 .6rem;
  background:
    linear-gradient(90deg, var(--accent) 0 34%, transparent 34%),
    repeating-linear-gradient(90deg, rgba(243,239,230,.85) 0 3px, transparent 3px 7px);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 30' preserveAspectRatio='none'%3E%3Cpath d='M0 15 Q2 5 4 15 T8 15 Q10 2 12 15 T16 15 Q18 8 20 15 T24 15 Q26 0 28 15 T32 15 Q34 9 36 15 T40 15 Q42 4 44 15 T48 15 Q50 10 52 15 T56 15 Q58 1 60 15 T64 15 Q66 7 68 15 T72 15 Q74 3 76 15 T80 15 Q82 9 84 15 T88 15 Q90 5 92 15 T96 15 Q98 11 100 15 L100 15 Q98 19 96 15 T92 15 Q90 25 88 15 T84 15 Q82 21 80 15 T76 15 Q74 27 72 15 T68 15 Q66 23 64 15 T60 15 Q58 29 56 15 T52 15 Q50 20 48 15 T44 15 Q42 26 40 15 T36 15 Q34 21 32 15 T28 15 Q26 30 24 15 T20 15 Q18 22 16 15 T12 15 Q10 28 8 15 T4 15 Q2 25 0 15Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 30' preserveAspectRatio='none'%3E%3Cpath d='M0 15 Q2 5 4 15 T8 15 Q10 2 12 15 T16 15 Q18 8 20 15 T24 15 Q26 0 28 15 T32 15 Q34 9 36 15 T40 15 Q42 4 44 15 T48 15 Q50 10 52 15 T56 15 Q58 1 60 15 T64 15 Q66 7 68 15 T72 15 Q74 3 76 15 T80 15 Q82 9 84 15 T88 15 Q90 5 92 15 T96 15 Q98 11 100 15 L100 15 Q98 19 96 15 T92 15 Q90 25 88 15 T84 15 Q82 21 80 15 T76 15 Q74 27 72 15 T68 15 Q66 23 64 15 T60 15 Q58 29 56 15 T52 15 Q50 20 48 15 T44 15 Q42 26 40 15 T36 15 Q34 21 32 15 T28 15 Q26 30 24 15 T20 15 Q18 22 16 15 T12 15 Q10 28 8 15 T4 15 Q2 25 0 15Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.vz-time { display: flex; justify-content: space-between; font-size: .78rem; color: rgba(243,239,230,.55); }
.vz-ctrl { display: flex; justify-content: center; align-items: center; gap: 2rem; margin-top: 1.2rem; }
.vz-ctrl b { font-weight: 500; font-size: .85rem; color: rgba(243,239,230,.7); }
.vz-ctrl .vz-play { width: 58px; height: 58px; border-radius: 50%; background: var(--paper); color: var(--ink); display: grid; place-items: center; font-size: 1rem; }

/* launch plan */
.vz-launch { background: var(--paper-3); padding: 2rem; width: 100%; max-width: 500px; box-shadow: 0 30px 50px -35px rgba(0,0,0,.45); border-top: 4px solid var(--accent); }
.vz-launch ol { list-style: none; padding: 0; margin: 0 0 1.4rem; }
.vz-launch li { display: flex; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
.vz-launch li b { font-weight: 600; width: 80px; flex-shrink: 0; color: var(--muted); font-size: .85rem; }
.vz-launch li.hot b, .vz-launch li.hot span { color: var(--accent); }
.vz-bars { display: flex; align-items: flex-end; gap: 8px; height: 110px; }
.vz-bars i { flex: 1; background: var(--ink); border-radius: 1px; }
.vz-bars i:nth-child(4), .vz-bars i:nth-child(5) { background: var(--accent); }

/* browser */
.vz-browser { width: 100%; max-width: 560px; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 40px 60px -40px rgba(0,0,0,.55); border: 1px solid var(--line); }
.vz-bar { display: flex; align-items: center; gap: 6px; padding: .6rem .9rem; background: var(--paper-2); }
.vz-bar i { width: 10px; height: 10px; border-radius: 50%; background: rgba(21,20,19,.2); }
.vz-bar span { margin-left: .8rem; background: var(--paper-3); font-size: .72rem; color: var(--muted); padding: .2rem .8rem; border-radius: 3px; flex: 1; }
.vz-site { padding: 1.2rem 1.4rem 1.4rem; background: #f6f2ea; }
.vz-nav { display: flex; justify-content: space-between; align-items: baseline; font-size: .72rem; color: var(--muted); padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.vz-nav b { font-family: var(--serif); font-weight: 400; font-size: 1.15rem; color: var(--ink); }
.vz-hero { display: flex; gap: 1.2rem; align-items: center; padding: 1.4rem 0; }
.vz-hero > div:first-child { flex: 1; }
.vz-hero h4 { font-family: var(--serif); font-size: 1.7rem; line-height: 1.05; margin-bottom: .5rem; }
.vz-hero h4 em { color: var(--accent); }
.vz-hero p { font-size: .82rem; color: var(--muted); margin-bottom: .8rem; }
.vz-btn { display: inline-block; background: var(--ink); color: var(--paper); font-size: .75rem; padding: .4rem .9rem; }
.vz-mini { width: 34%; }
.vz-mini .cover { padding: 14% 10%; }
.vz-mini .cv-t { font-size: .8rem !important; }
.vz-mini .cv-a { font-size: .45rem; }
.vz-sub { display: flex; justify-content: space-between; align-items: center; gap: 1rem; background: var(--ink); color: var(--paper); font-size: .75rem; padding: .7rem .9rem; }
.vz-sub i { font-style: normal; background: var(--paper); color: var(--muted); padding: .25rem .8rem; }

/* =========================================================
   Legal pages
   ========================================================= */
.legal-date { color: var(--muted); font-size: .92rem; margin: 0; }
.summary-card { background: var(--paper-3); border: 1px solid var(--line); border-top: 3px solid var(--accent); padding: 1.5rem 1.6rem; }
.summary-card ul { list-style: none; margin: 0; padding: 0; }
.summary-card li { position: relative; padding: .45rem 0 .45rem 1.5rem; font-size: .95rem; color: var(--ink); }
.summary-card li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); }

.legal { padding-top: 70px; }
.legal-toc { position: sticky; top: 110px; }
.legal-toc ol { list-style: none; padding: 0; margin: 0 0 2rem; counter-reset: toc; }
.legal-toc li { counter-increment: toc; }
.legal-toc a { display: flex; gap: .7rem; padding: .45rem 0; font-size: .9rem; color: var(--muted); border-left: 2px solid transparent; padding-left: .8rem; margin-left: -.8rem; transition: color .2s, border-color .2s; }
.legal-toc a::before { content: counter(toc, decimal-leading-zero); font-size: .75rem; color: var(--accent); padding-top: .12rem; }
.legal-toc a:hover, .legal-toc a.is-active { color: var(--ink); border-left-color: var(--accent); }
.legal-other { padding-top: 1.4rem; border-top: 1px solid var(--line); }
.legal-other a { display: block; padding: .3rem 0; font-size: .92rem; color: var(--ink); }
.legal-other a:hover { color: var(--accent); }
.legal-other a::before { content: none; }
.legal-other a { margin-left: 0; padding-left: 0; border-left: 0; }

.legal-body { font-size: 1.02rem; }
.legal-intro { font-family: var(--serif); font-size: clamp(1.35rem, 2vw, 1.65rem); line-height: 1.35; color: var(--ink); padding-bottom: 2.4rem; margin-bottom: 1rem; border-bottom: 1px solid var(--ink); }
.legal-sec { padding: 2.2rem 0; border-bottom: 1px solid var(--line); scroll-margin-top: 100px; }
.legal-sec h2 { font-family: var(--serif); font-size: clamp(1.8rem, 2.6vw, 2.3rem); margin-bottom: 1.2rem; line-height: 1.1; display: flex; gap: 1rem; align-items: baseline; }
.legal-sec h2 span { font-family: var(--sans); font-size: .8rem; color: var(--accent); font-weight: 600; }
.legal-sec h3 { font-family: var(--sans); font-size: 1rem; font-weight: 600; margin: 1.6rem 0 .7rem; }
.legal-sec h3:first-child { margin-top: 0; }
.legal-sec ul { padding-left: 0; list-style: none; margin: 0 0 1.2rem; }
.legal-sec li { position: relative; padding: .35rem 0 .35rem 1.4rem; }
.legal-sec li::before { content: ""; position: absolute; left: 0; top: .95rem; width: 7px; height: 1px; background: var(--accent); }
.legal-sec li ul { margin: .3rem 0 0; }
.legal-sec a { color: var(--ink); border-bottom: 1px solid var(--accent); }
.legal-sec a:hover { color: var(--accent); }
.legal-sec strong { color: var(--ink); font-weight: 600; }
.callout { background: var(--paper-3); border-left: 3px solid var(--accent); padding: 1rem 1.2rem; }
.legal-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.legal-table { width: 100%; border-collapse: collapse; margin: .4rem 0 1.6rem; font-size: .95rem; }
.legal-table th { text-align: left; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding: .6rem 1rem .6rem 0; border-bottom: 1px solid var(--ink); }
.legal-table td { padding: .9rem 1rem .9rem 0; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--ink); }
.legal-table td:last-child { font-family: var(--serif); font-size: 1.25rem; white-space: nowrap; }
.legal-table td small { display: block; font-family: var(--sans); font-size: .78rem; color: var(--muted); }
.legal-help { margin-top: 3rem; background: var(--ink); color: rgba(243,239,230,.75); padding: 2rem 2.2rem; }
.legal-help h3 { font-family: var(--serif); color: var(--paper); font-size: 1.8rem; margin-bottom: .5rem; }
.legal-help p { margin: 0; }
.legal-help a { color: var(--paper); border-bottom: 1px solid var(--accent); }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 991.98px) {
  .page-hero { padding: 40px 0 70px; }
  .crumbs { margin-bottom: 2rem; }
  .sfacts .col-6:nth-child(3) .sfact { padding-left: 0; border-left: 0; }
  .sfacts .col-6:nth-child(-n+2) .sfact { border-bottom: 1px solid var(--line); }
  .legal-toc { position: static; }
  .legal-toc ol { columns: 2; column-gap: 2rem; }
  .vz-check .vz-hand { right: 0; }
}
@media (max-width: 767.98px) {
  .inc, .inc-grid .col-md-6:nth-child(even) .inc { padding: 1.4rem 0; border-left: 0; }
  .why, .whyus .col-md-4 + .col-md-4 .why { padding: 1.8rem 0; border-left: 0; border-bottom: 1px solid var(--line-light); }
  .whyus { padding: 72px 0; }
  .page-quote { padding: 72px 0; }
  .related { padding-top: 72px; }
  .type-list li { font-size: 1.4rem; }
  .vz-ghost { min-height: 600px; }
  .vz-notes { width: 72%; }
  .vz-notes p { font-size: 1.25rem; }
  .vz-page { width: 80%; top: 200px; }
  .vz-page p { font-size: .8rem; }
  .vz-listing { flex-direction: column; }
  .vz-thumb { width: 50%; }
  .vz-pick { right: -.2rem; font-size: 1.2rem; }
  .vz-covers { gap: .5rem; }
  .legal-cols { grid-template-columns: 1fr; gap: 0; }
  .legal-toc ol { columns: 1; }
  .legal-table td:last-child { white-space: normal; font-size: 1.1rem; }
  .legal-help { padding: 1.6rem; }
}

/* =========================================================
   PHP build additions
   ========================================================= */

/* hidden spam trap */
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* uploaded portfolio cover images */
.cover-photo { padding: 0; background: var(--paper-2); }
.cover-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cover-photo::after { z-index: 1; }

/* review photo avatars */
.av-photo { overflow: hidden; padding: 0; }
.av-photo img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Get a quote pop-up ---------- */
.quote-modal .modal-content { border: 0; border-radius: 2px; overflow: hidden; background: var(--paper); box-shadow: 0 40px 80px -30px rgba(0,0,0,.5); }
.modal-backdrop.show { opacity: .65; }
.qm-close {
  position: absolute; top: .8rem; right: 1rem; z-index: 3; width: 40px; height: 40px; border: 0; background: transparent;
  font-size: 2rem; line-height: 1; color: var(--ink); cursor: pointer; transition: transform .3s var(--ease), color .2s;
}
.qm-close:hover { color: var(--accent); transform: rotate(90deg); }
.qm-side { background: var(--ink); color: rgba(243,239,230,.7); padding: 2.6rem 2.2rem; display: flex; flex-direction: column; }
.qm-title { font-family: var(--serif); color: var(--paper); font-size: 2.4rem; line-height: 1; margin-bottom: 1.2rem; }
.qm-offer { font-family: var(--hand); font-size: 1.5rem; color: var(--accent); line-height: 1.1; }
.qm-offer strong { font-weight: 600; }
.qm-points { list-style: none; padding: 0; margin: .4rem 0 2rem; }
.qm-points li { position: relative; padding: .35rem 0 .35rem 1.5rem; font-size: .92rem; }
.qm-points li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); }
.qm-contact { margin-top: auto; padding-top: 1.2rem; border-top: 1px solid var(--line-light); display: flex; flex-direction: column; gap: .3rem; font-size: .9rem; }
.qm-contact a { color: var(--paper); word-break: break-word; }
.qm-contact a:hover { color: var(--accent); }
.qm-form { padding: 2.6rem 2.2rem 2rem; }
.qm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.2rem; }
.qm-field { display: flex; flex-direction: column; gap: .3rem; }
.qm-field span { font-size: .78rem; color: var(--muted); letter-spacing: .02em; }
.qm-wide { grid-column: 1 / -1; }
.qm-field input, .qm-field select, .qm-field textarea {
  border: 0; border-bottom: 1.5px solid var(--ink); border-radius: 0; background: transparent; padding: .45rem 0;
  font-family: var(--sans); font-size: 1rem; color: var(--ink); outline: none; width: 100%; transition: border-color .2s;
}
.qm-field select { appearance: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23151413' stroke-width='1.5'/%3E%3C/svg%3E") right center no-repeat; padding-right: 1.4rem; cursor: pointer; }
.qm-field textarea { resize: vertical; }
.qm-field input:focus, .qm-field select:focus, .qm-field textarea:focus { border-bottom-color: var(--accent); }
.qm-field .invalid { border-bottom-color: var(--accent); border-bottom-style: dashed; }
.qm-form .form-foot { margin-top: 1.6rem; }
.qm-legal { font-size: .78rem; color: var(--muted); margin: 1rem 0 0; }
.qm-legal a { color: var(--ink); border-bottom: 1px solid var(--line); }
button[disabled] { opacity: .6; cursor: wait; }

/* ---------- Reviews grid (testimonials page) ---------- */
.reviews-grid { padding-top: 70px; }
.rv-grid { border-top: 1px solid var(--ink); }
.rv-card { margin: 0; padding: 2.4rem 2.4rem 2.4rem 0; border-bottom: 1px solid var(--line); height: 100%; display: flex; flex-direction: column; }
.rv-grid .col-md-6:nth-child(even) .rv-card { padding-left: 2.4rem; padding-right: 0; border-left: 1px solid var(--line); }
.rv-stars { color: var(--accent); letter-spacing: 3px; font-size: .95rem; margin-bottom: 1rem; }
.rv-card blockquote { font-family: var(--serif); font-size: clamp(1.4rem, 2.2vw, 1.9rem); line-height: 1.2; color: var(--ink); margin: 0 0 1.8rem; }
.rv-card figcaption { margin-top: auto; display: flex; align-items: center; gap: .8rem; }
.rv-card strong { display: block; font-weight: 500; color: var(--ink); }
.rv-card small { color: var(--muted); }

/* ---------- Contact page cards ---------- */
.contact-cards { padding: 0 0 90px; }
.contact-cards .row { border-bottom: 1px solid var(--line); }
.cc-card { display: flex; flex-direction: column; gap: .3rem; padding: 2rem 2rem 2rem 0; height: 100%; color: var(--ink); transition: color .2s; cursor: pointer; }
.contact-cards .col-md-4 + .col-md-4 .cc-card { padding-left: 2rem; border-left: 1px solid var(--line); }
.cc-card span { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.cc-card strong { font-family: var(--serif); font-weight: 400; font-size: clamp(1.4rem, 2vw, 1.8rem); line-height: 1.15; word-break: break-word; }
.cc-card em { font-style: normal; font-size: .88rem; color: var(--muted); }
.cc-card:hover strong { color: var(--accent); }

/* ---------- Thank-you / 404 ---------- */
.status-page { padding: 120px 0 140px; min-height: 60vh; }
.status-page .page-lead a { color: var(--ink); border-bottom: 1px solid var(--accent); }

@media (max-width: 767.98px) {
  .qm-side { padding: 2rem 1.5rem 1.6rem; }
  .qm-title { font-size: 2rem; }
  .qm-points, .qm-contact { display: none; }
  .qm-form { padding: 1.8rem 1.5rem; }
  .qm-grid { grid-template-columns: 1fr; }
  .rv-card, .rv-grid .col-md-6:nth-child(even) .rv-card { padding: 2rem 0; border-left: 0; }
  .cc-card, .contact-cards .col-md-4 + .col-md-4 .cc-card { padding: 1.6rem 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .status-page { padding: 80px 0 100px; }
}
@media (max-width: 767.98px) { .qm-close { color: var(--paper); } }
.cover-blank { background: var(--ink); color: var(--paper); }
.cover-blank .cv-t { font-family: var(--serif); font-size: 1.4rem; }
.col-xl-15 .cover-photo { aspect-ratio: 180 / 275; }
