/* Photography-only presentation. Shared chrome, typography and controls are inherited. */
/* Keep long-page anchor navigation immediate and predictable. */
html:has(.pv-page) { scroll-behavior:auto; }
.pv-page { --pv-copy:#425572; --pv-line:#c5d3e4; }
.pv-page .es-section { padding-block:72px; scroll-margin-top:90px; }
.pv-page h2 { font-size:clamp(27px,2.55vw,37px); line-height:1.6; text-wrap:pretty; }
.pv-page h3 { margin:0 0 12px; font-size:21px; line-height:1.6; }
.pv-page .es-intro,.pv-page dd,.pv-page article p { font-size:16px; color:var(--pv-copy); }
.pv-page .button { background:linear-gradient(105deg,#ac24b9,#6219ed 48%,#2464bc); }
.pv-page .es-hero-actions .button { border-color:transparent; box-shadow:inset 0 0 0 1px #a1dbffb3,0 0 1px #a1dbff66,0 4px 24px #733dff21; }
.pv-page .es-hero { padding-bottom:45px; }
.pv-page .es-breadcrumb { padding-bottom:28px; }
.pv-hero-layout { display:grid; grid-template-columns:1.1fr 1fr; grid-template-rows:auto auto; gap:0 48px; align-items:start; padding:12px 0 18px; }
.pv-hero-heading { align-self:end; }
.pv-page .pv-hero-eyebrow { color:#b8ddff; font-size:16px; font-weight:600; margin-bottom:18px; }
.pv-hero-eyebrow > span { display:inline-block; }
.pv-page .es-hero h1 { font-size:clamp(29px,3vw,43px); line-height:1.6; letter-spacing:-.045em; }
.pv-page .es-hero h1 > span { display:block; }
.pv-hero-photo { margin:0; grid-column:2; grid-row:1 / 3; align-self:center; width:100%; }
.pv-hero-photo img { display:block; width:100%; height:auto; aspect-ratio:1; border-radius:8px; border:1px solid #7793b857; }
.pv-page figcaption { font-size:14px; line-height:1.7; padding-top:9px; color:#536781; }
.pv-hero-photo figcaption { color:#c4d5eb; }
.pv-page .es-lead { font-size:16px; line-height:1.95; margin-top:19px!important; }
.pv-page .es-hero-actions { margin-top:24px; gap:10px 20px; }
.pv-page .es-hero-actions .button { font-size:16px; padding-inline:24px; }
.pv-page .es-hero-link { font-size:14px; }
.pv-page .es-demo { margin-top:12px!important; font-size:13px; }
.pv-page .es-page-nav > div { grid-template-columns:repeat(5,minmax(0,1fr)); }
.pv-section-head { max-width:870px; margin-bottom:34px; }
.pv-page .pv-section-head .eyebrow { margin-bottom:10px; }
.pv-section-head h2 { margin-bottom:8px; }
.pv-page .pv-subtitle { font-size:22px; font-weight:600; color:#324f78; margin:10px 0 14px; line-height:1.7; }
.pv-section-head .es-intro { margin-top:16px; max-width:51em; }
.pv-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.pv-services > article { min-width:0; }
.pv-service-heading { min-height:166px; }
.pv-page .pv-tag { color:#4a6c99; font:600 12px/1.8 Arial,sans-serif; letter-spacing:.12em; margin-bottom:10px; }
.pv-services h3 { font-size:25px; margin-bottom:12px; }
.pv-services figure { margin:0 0 10px; }
.pv-services img { display:block; width:100%; height:auto; aspect-ratio:4/3; border-radius:5px; }
.pv-definitions { margin:0; }
.pv-definitions > div { padding:18px 0; border-bottom:1px solid var(--pv-line); }
.pv-definitions dt { font-size:14px; font-weight:700; color:#315581; margin-bottom:7px; }
.pv-definitions dd { margin:0; }
.pv-services .es-text-link { font-size:15px; margin-top:10px; }
.pv-page .pv-note { margin-top:22px; font-size:14px; color:#4b607b; line-height:1.9; }
.pv-support > div > .pv-note + .pv-note { margin-top:8px; }
.pv-approach { background:#f3f7fc; }
.pv-estimate-table { width:100%; border-collapse:collapse; background:white; font-size:16px; }
.pv-estimate-table th,.pv-estimate-table td { text-align:left; vertical-align:top; padding:23px 26px; border-bottom:1px solid var(--pv-line); }
.pv-estimate-table thead th { background:#e2eaf6; font-size:14px; color:#294970; }
.pv-estimate-table tbody th { width:21%; font-size:19px; }
.pv-estimate-table td { width:39.5%; color:var(--pv-copy); }
.pv-estimate-table .pv-mobile-label { display:none; }
.pv-common-conditions { padding-top:26px; }
.pv-common-conditions h3 { font-size:17px; margin-bottom:8px; }
.pv-common-conditions > p,.pv-schedule > p { font-size:16px; color:var(--pv-copy); }
.pv-common-conditions .pv-note { margin-top:10px; }
.pv-schedule { margin-top:38px; padding-top:30px; border-top:1px solid var(--pv-line); }
.pv-schedule h3 { font-size:23px; }
.pv-pricing-action { margin-top:35px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.pv-pricing-action p { color:var(--pv-copy); font-size:15px; }
.pv-pricing-action .button { flex:none; }
.pv-preparation { margin-top:38px; padding:27px 30px; background:#f2f6fc; border-left:3px solid #6285bd; scroll-margin-top:100px; }
.pv-preparation h3 { font-size:20px; }
.pv-preparation p { font-size:15px; color:var(--pv-copy); }
.pv-preparation ul { list-style:none; display:flex; flex-wrap:wrap; gap:12px 27px; padding:0; margin:16px 0 0; }
.pv-preparation li { display:flex; align-items:center; gap:8px; font-size:15px; }
.pv-preparation .icon { width:17px; height:17px; color:#4573ac; }
.pv-drone { background:#f3f7fc; }
.pv-drone-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; }
.pv-drone-grid article { border-top:1px solid #afc4db; padding-top:20px; }
.pv-drone-grid h3 { font-size:19px; margin:10px 0; }
.pv-page .pv-reference { margin-top:15px; font-size:14px; }
.pv-related { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; }
.pv-related > a { display:flex; gap:15px; align-items:center; justify-content:space-between; text-decoration:none; padding-block:24px; border-block:1px solid #bdcede; }
.pv-related strong { display:block; font-size:20px; margin-bottom:10px; }
.pv-related a > span > span { display:block; font-size:15px; color:var(--pv-copy); }
.pv-related a:hover strong { text-decoration:underline; text-underline-offset:5px; }
.pv-page .site-contact::before { opacity:.65; }

/* Purpose -> subject -> destination: relationships, not production stages. */
.pv-uses article { display:grid; grid-template-columns:1.15fr 2fr; gap:54px; padding:28px 0; border-top:1px solid #bacfe1; }
.pv-use-heading { display:flex; gap:16px; align-items:start; }
.pv-page .pv-use-label { margin:0 0 6px; color:#315581; font-size:14px; font-weight:700; }
.pv-use-heading h3 { font-size:22px; margin:0; }
.pv-uses .pv-definitions { display:grid; grid-template-columns:1fr 1fr; gap:54px; }
.pv-uses .pv-definitions > div { position:relative; border:0; padding:0; }
.pv-uses .pv-definitions > div::before { content:'→'; position:absolute; left:-37px; top:25px; color:#5278ad; font-size:24px; }
/* A single source branches to two explicitly illustrative layouts. */
.pv-format-diagram { margin:0; padding:30px 36px 22px; background:#f4f7fc; border:1px solid #d4dfed; }
.pv-page .pv-format-source { display:flex; align-items:center; justify-content:center; gap:10px; position:relative; width:max-content; max-width:100%; margin:0 auto 47px; padding:12px 24px; background:white; border:1px solid #809bbf; border-radius:5px; color:#254b79; font-weight:700; }
.pv-format-source::after { content:''; position:absolute; height:24px; width:2px; background:#7895bc; left:50%; top:100%; }
.pv-format-source .icon { width:24px; height:24px; }
.pv-format-branches { display:grid; grid-template-columns:1fr 1fr; gap:52px; }
.pv-format-example { min-width:0; position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; }
.pv-format-example::before { content:''; position:absolute; top:-24px; height:22px; border-top:2px solid #7895bc; border-left:2px solid #7895bc; left:50%; width:calc(50% + 26px); }
.pv-format-example:last-child::before { left:-26px; width:calc(50% + 26px); border-left:0; border-right:2px solid #7895bc; }
.pv-format-example header { min-height:86px; }
.pv-page .pv-example-type { margin:0 0 5px; color:#4c6483; font-size:14px; }
.pv-format-example h3 { font-size:20px; margin-bottom:18px; }
.pv-web-frame { width:100%; border:1px solid #7893b5; border-radius:7px; overflow:hidden; background:white; }
.pv-window-bar { height:24px; display:flex; gap:5px; align-items:center; padding-inline:10px; background:#e1e9f4; }
.pv-window-bar i { width:5px; height:5px; background:#7189a6; border-radius:50%; }
.pv-web-layout { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; text-align:left; }
.pv-example-copy { padding:22px; }
.pv-example-copy strong { font-size:20px; line-height:1.65; }
.pv-page .pv-example-copy p { font-size:15px; line-height:1.8; margin-top:10px; color:#425572; }
.pv-web-photo { overflow:hidden; aspect-ratio:4/3; }
.pv-web-photo img { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1.45); transform-origin:right center; }
.pv-mobile-frame { width:180px; border:2px solid #7893b5; border-radius:18px; padding:7px; background:white; overflow:hidden; }
.pv-mobile-frame img { width:100%; height:214px; object-fit:cover; object-position:100% 50%; border-radius:11px 11px 0 0; display:block; }
.pv-mobile-frame p { color:#233d60; font-size:15px; font-weight:700; line-height:1.6; margin:0; padding:10px 6px 6px; }
.pv-format-diagram figcaption { text-align:center; padding-top:25px; }
.pv-estimate-table caption { text-align:left; font-size:22px; font-weight:700; padding-bottom:18px; color:#203d65; }
.pv-schedule .pv-definitions { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:22px; }
.pv-schedule .pv-definitions > div { padding:17px 22px; background:white; border:1px solid #c5d3e4; }
.pv-schedule dt { font-size:19px; }
.pv-web-example { width:100%; margin-block:auto; }
.pv-web-notes { display:grid; grid-template-columns:.9fr 1.1fr; gap:12px; padding-bottom:22px; }
.pv-page .pv-web-notes p,.pv-page .pv-mobile-note { position:relative; color:#35557e; font-size:16px; font-weight:600; line-height:1.7; }
.pv-web-notes p::after { content:''; position:absolute; left:50%; top:100%; height:18px; border-left:1px solid #829bbe; }
.pv-mobile-example { display:flex; flex-direction:column; align-items:center; }
.pv-page .pv-mobile-note--subject { margin-bottom:22px; }
.pv-mobile-note--subject::after { content:''; position:absolute; left:50%; top:100%; height:18px; border-left:1px solid #829bbe; }
.pv-page .pv-mobile-note--info { margin-top:22px; }
.pv-mobile-note--info::before { content:''; position:absolute; left:50%; bottom:100%; height:18px; border-left:1px solid #829bbe; }
/* One ordered flow; dedicated gaps contain the connecting arrows. */
.pv-process-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px; }
.pv-process-list > li { position:relative; display:grid; grid-template-rows:auto auto 1fr auto; min-width:0; padding:22px 20px; border:1px solid #bacde5; border-radius:6px; background:#f8faff; }
.pv-step-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:15px; }
.pv-page .pv-step-label { color:#365f99; font:600 12px/1.2 Arial,sans-serif; letter-spacing:.08em; margin:0; }
.pv-step-label strong { display:block; font-size:36px; font-weight:500; margin-top:3px; letter-spacing:-.03em; }
.pv-step-top > .icon { width:36px; height:36px; color:#476eaa; }
.pv-process-list h3 { font-size:20px; min-height:3.2em; margin:0 0 16px; }
.pv-page .pv-step-description { font-size:16px; line-height:1.85; color:var(--pv-copy); }
.pv-step-request { min-height:110px; border-top:1px solid #c2d3e7; margin-top:22px; padding-top:16px; }
.pv-page .pv-step-request p { font-size:16px; line-height:1.85; color:var(--pv-copy); }
.pv-page .pv-step-request .pv-request-label { font-size:14px; font-weight:700; color:#244b7f; margin-bottom:7px; }
.pv-flow-connector { position:absolute; width:30px; height:30px; right:-34px; top:53px; color:#4d71af; }
.pv-flow-connector .icon { width:30px; height:30px; stroke-width:2; }
.pv-faq-layout { max-width:960px; }
.pv-page .pv-faq-layout .es-faq { width:100%; }
.pv-page .pv-faq-layout summary { padding-block:25px; }

@media(max-width:1100px) {
 .pv-process-list { grid-template-columns:1fr; gap:42px; }
 .pv-process-list > li { grid-template-columns:88px 1fr; grid-template-rows:auto auto auto; gap:0 24px; padding:25px 30px; }
 .pv-step-top { grid-row:1 / 4; flex-direction:column; justify-content:flex-start; gap:22px; margin:0; }
 .pv-process-list h3 { min-height:0; }
 .pv-step-description,.pv-step-request { grid-column:2; }
 .pv-step-request { min-height:0; }
 .pv-flow-connector { left:calc(50% - 15px); top:auto; right:auto; bottom:-37px; transform:rotate(90deg); }
 .pv-format-branches { gap:52px; }
 .pv-example-copy { padding:14px; }
 .pv-example-copy strong { font-size:18px; }
 .pv-uses article { grid-template-columns:1fr 1.5fr; gap:42px; }
 .pv-uses .pv-definitions { gap:42px; }
 .pv-uses .pv-definitions > div::before { left:-31px; }

 .pv-hero-layout { gap:0 30px; grid-template-columns:1.1fr 1fr; }
 .pv-page .es-hero h1 { font-size:31px; }
 .pv-page .es-hero-actions .button { padding-inline:20px; }
 .pv-service-heading { min-height:190px; }
 .pv-services { gap:24px; }
 .pv-services h3 { font-size:22px; }
}
@media(max-width:800px) {
 .pv-format-diagram { padding:28px 22px 20px; }
 .pv-format-branches { grid-template-columns:1fr; gap:35px; border-left:2px solid #7895bc; padding-left:22px; }
 .pv-page .pv-format-source { margin:0 0 30px; }
 .pv-format-source::after { left:0; height:31px; }
 .pv-format-example::before,.pv-format-example:last-child::before { width:20px; height:0; border:0; border-top:2px solid #7895bc; left:-22px; top:12px; }
 .pv-format-example header { min-height:0; }
 .pv-web-frame { max-width:530px; }
 .pv-uses article { grid-template-columns:1fr; gap:20px; }
 .pv-uses .pv-definitions { margin-left:42px; }
 .pv-uses .pv-definitions > div:first-child::before { content:none; }

 .pv-page .es-section { padding-block:58px; }
 .pv-page .es-breadcrumb { padding-bottom:22px; }
 .pv-hero-layout { grid-template-columns:1fr; gap:22px; padding:0; }
 .pv-hero-photo { grid-column:auto; grid-row:auto; max-width:520px; justify-self:center; }
 .pv-page .es-hero h1 { font-size:36px; }
 .pv-page .es-lead { margin-top:0!important; }
 .pv-page .es-hero-actions { gap:10px 22px; }
 .pv-services { grid-template-columns:1fr; gap:38px; }
 .pv-services > article { display:grid; grid-template-columns:.9fr 1.1fr; gap:0 26px; border-top:1px solid var(--pv-line); padding-top:24px; }
 .pv-service-heading { grid-column:2; min-height:0; }
 .pv-services figure { grid-column:1; grid-row:1 / 3; margin-top:3px; }
 .pv-services .pv-definitions { grid-column:2; }
 .pv-services .es-text-link { grid-column:2; }
 .pv-page .es-page-nav > div { width:100%; }
 .pv-page .es-page-nav a { font-size:13px; gap:6px; padding-inline:8px; }
 .pv-pricing-action { display:block; }
 .pv-pricing-action .button { margin-top:20px; }
 .pv-drone-grid { grid-template-columns:1fr; gap:23px; }
 .pv-drone-grid article { display:grid; grid-template-columns:28px 1fr; gap:0 12px; padding-top:20px; }
 .pv-drone-grid h3 { margin:0 0 7px; }
 .pv-drone-grid p { grid-column:2; }
 .pv-related { grid-template-columns:1fr; gap:0; }
 .pv-related > a + a { border-top:0; }
}
@media(max-width:600px) {
 .pv-uses article { gap:26px; padding-block:24px; }
 .pv-use-heading h3 { font-size:21px; }
 .pv-uses .pv-definitions { grid-template-columns:1fr; margin-left:37px; gap:28px; }
 .pv-uses .pv-definitions > div::before,.pv-uses .pv-definitions > div:first-child::before { content:'↓'; left:0; top:-27px; font-size:19px; line-height:1; }
 .pv-format-diagram { padding:24px 15px 20px; }
 .pv-page .pv-format-source { padding:10px 12px; font-size:15px; }
 .pv-format-branches { padding-left:16px; }
 .pv-format-example::before,.pv-format-example:last-child::before { left:-16px; width:14px; }
 .pv-format-example h3 { font-size:18px; }
 .pv-web-layout { grid-template-columns:.9fr 1.1fr; }
 .pv-example-copy { padding:12px; }
 .pv-example-copy strong { font-size:16px; }
 .pv-page .pv-example-copy p { display:none; }
 .pv-web-layout img { width:100%; }
 .pv-schedule .pv-definitions { grid-template-columns:1fr; gap:15px; }
 .pv-estimate-table caption { display:block; font-size:21px; }
 .pv-process-list > li { display:block; padding:22px; }
 .pv-step-top { flex-direction:row; justify-content:space-between; margin-bottom:15px; }
 .pv-process-list h3 { font-size:21px; margin-bottom:20px; }
 .pv-page .pv-faq-layout summary { padding-block:21px; }

 .pv-page .es-section { padding-block:46px; }
 .pv-page .es-hero { padding-bottom:30px; }
 .pv-page .es-breadcrumb { font-size:11px; padding:17px 0 21px; }
 .pv-hero-layout { gap:19px; }
 .pv-page .pv-hero-eyebrow { font-size:14px; margin-bottom:9px; }
 .pv-hero-eyebrow > span { display:block; }
 .pv-hero-eyebrow .pv-eyebrow-separator { display:none; }
 .pv-page .es-hero h1 { font-size:clamp(25px,7.1vw,32px); line-height:1.6; letter-spacing:-.035em; }
 .pv-hero-photo img { border-radius:5px; }
 .pv-page figcaption { font-size:13px; padding-top:7px; }
 .pv-page .es-hero-actions { margin-top:20px; }
 .pv-page .es-hero-link { font-size:15px; }
 .pv-page .es-demo { font-size:13px; }
 .pv-page .es-page-nav > div { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .pv-page .es-page-nav a { font-size:12px; min-height:54px; padding:10px 6px; }
 .pv-page .es-page-nav a:nth-child(odd) { border-right:0; }
 .pv-page .es-page-nav a { border-right:1px solid #e1e8f2; }
 .pv-page .es-page-nav a:nth-child(3n) { border-right:0; }
 .pv-page .es-page-nav .icon { width:12px; }
 .pv-section-head { margin-bottom:28px; }
 .pv-page h2 { font-size:27px; }
 .pv-page .pv-subtitle { font-size:19px; }
 .pv-services { gap:31px; }
 .pv-services > article { display:block; padding-top:21px; }
 .pv-service-heading { margin-bottom:19px; }
 .pv-services h3 { font-size:24px; }
 .pv-services figure { margin-bottom:10px; }
 .pv-definitions > div { padding:16px 0; }
 .pv-estimate-table,.pv-estimate-table tbody,.pv-estimate-table tr,.pv-estimate-table td,.pv-estimate-table tbody th { display:block; width:100%; }
 .pv-estimate-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .pv-estimate-table tbody th { padding:17px 20px; background:#e2eaf6; border:0; font-size:20px; }
 .pv-estimate-table td { padding:14px 20px 0; border:0; }
 .pv-estimate-table td:last-child { padding-bottom:21px; }
 .pv-estimate-table .pv-mobile-label { display:block; font-size:14px; color:#315581; font-weight:700; margin-bottom:5px; }
 .pv-estimate-table tr + tr { margin-top:18px; }
 .pv-schedule { margin-top:30px; padding-top:26px; }
 .pv-schedule h3 { font-size:21px; }
 .pv-pricing-action .button { width:100%; font-size:15px; padding-inline:17px; }
 .pv-preparation { margin-top:30px; padding:23px 20px; }
 .pv-preparation h3 { font-size:19px; }
 .pv-preparation ul { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
 .pv-preparation li { font-size:14px; gap:6px; }
 .pv-preparation .icon { width:15px; }
 .pv-page .pv-reference { align-items:flex-start; }
 .pv-reference .icon { margin-top:4px; }
 .pv-page .site-contact h2 { font-size:28px; }
}
