.inner-page { display: flow-root; }
.inner-intro { padding-top: 70px; }
.inner-breadcrumb { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; font-size: 14px; line-height: 20px; font-weight: 500; color: var(--accent); }
.inner-breadcrumb a:hover { text-decoration: underline; }
.inner-page h1 { margin: 0; color: var(--ink); font-size: 72px; line-height: 1.0556; font-weight: 400; letter-spacing: -.036em; }
.inner-intro--price h1 { font-size: 88px; line-height: 1.08; }
.inner-lead { margin: 30px 0 0; color: var(--muted); font-size: 18px; line-height: 28px; }
.inner-intro--price .inner-lead { margin-top: 36px; }
.inner-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.inner-service-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 632px); align-items: center; gap: 32px; padding-top: 71px; }
.inner-service-hero h1 { font-size: clamp(54px, 4.445vw, 64px); line-height: 1.045; }
.inner-service-hero .inner-lead { max-width: 540px; margin-top: 28px; }
.service-hero-image { width: 100%; height: 520px; object-fit: cover; border-radius: 24px; }
.service-facts { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; }
.service-facts > div { min-width: 126px; padding: 15px 22px; border-radius: 20px; background: #fff; display: flex; flex-direction: column-reverse; gap: 5px; }
.service-facts dt, .case-facts dt { color: var(--muted); font-size: 13px; line-height: 17px; }
.service-facts dd { margin: 0; font-size: 22px; font-weight: 450; line-height: 26px; white-space: nowrap; }
.inner-service-hero .home-button { min-height: 52px; padding-inline: 22px; }
.inner-four { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.numbered-grid > article { min-height: 278px; display: flex; flex-direction: column; justify-content: space-between; padding: 32px; border-radius: 28px; background: #fff; }
.numbered-grid > article:first-child { background: var(--accent); color: #fff; }
.numbered-grid article > span { color: var(--muted); font-size: 14px; }
.numbered-grid article:first-child > span { color: #e0e4ff; }
.numbered-grid h3 { margin: 0; font-size: 26px; line-height: 30px; font-weight: 430; letter-spacing: -.02em; }
.numbered-grid p { margin: 12px 0 0; color: var(--muted); font-size: 15px; line-height: 23px; }
.numbered-grid article:first-child p { color: #eef0ff; }
.inner-checklist { display: grid; grid-auto-flow: column; grid-template-rows: repeat(5, 1fr); grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 52px; margin: 0; padding: 12px 40px; list-style: none; background: #fff; border-radius: 28px; }
.inner-checklist li { min-height: 77px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); font-size: 17px; }
.inner-checklist li:nth-child(5n) { border: 0; }
.inner-checklist li span { display: inline-grid; flex: 0 0 28px; height: 28px; place-items: center; border-radius: 50%; color: var(--accent); background: #eef0ff; font-size: 15px; }
.inner-case-grid { display: grid; gap: 14px; }
.inner-case-grid--small { grid-template-columns: repeat(3, minmax(0,1fr)); }
.inner-case-grid--portfolio { grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 64px; }
.inner-case-tile { position: relative; min-width: 0; scroll-margin-top: 20px; }
.inner-case-tile .case-visual { aspect-ratio: 1320 / 855; }
.inner-case-grid--small .inner-case-tile { min-height: 373px; padding: 10px 10px 0; }
.inner-case-grid--small .case-soon { left: 16px; bottom: 12px; font-size: 64px; }
.inner-case-grid--small .case-copy { padding: 12px 10px 16px; }
.inner-case-grid--small h3 { font-size: 20px; line-height: 24px; }
.inner-case-grid--small .case-copy p { max-width: calc(100% - 38px); }
.inner-case-grid--portfolio .case-copy { min-height: 104px; padding-right: 54px; }
.inner-case-grid--portfolio .case-soon { font-size: 120px; }
.inner-circle-link { display: inline-grid; width: 54px; height: 54px; place-items: center; border-radius: 50%; background: var(--ink); color: #fff; font-size: 22px; }
.inner-case-tile .inner-circle-link { position: absolute; right: 22px; bottom: 21px; width: 44px; height: 44px; background: var(--paper); color: var(--ink); }
.inner-case-grid--small .inner-circle-link { right: 14px; bottom: 14px; width: 32px; height: 32px; font-size: 17px; }
.inner-circle-link:hover { background: var(--accent); color: #fff; }
.inner-timeline { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; list-style: none; margin: 0; padding: 0; }
.inner-timeline li { min-height: 199px; display: flex; flex-direction: column; padding: 24px 24px 20px; border-radius: 24px; background: #fff; }
.inner-timeline li:last-child { background: var(--ink); color: #fff; }
.timeline-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 13px; line-height: 20px; }
.timeline-meta span:first-child { color: var(--accent); font-weight: 500; }
.inner-timeline li:last-child .timeline-meta { color: #d0d0da; }
.inner-timeline h3 { margin: auto 0 8px; padding-top: 14px; font-size: 22px; line-height: 27px; font-weight: 430; letter-spacing: -.018em; }
.timeline-meter { height: 3px; border-radius: 10px; background: var(--line); overflow: hidden; }
.timeline-meter span { display: block; width: calc(var(--step) * 20%); height: 100%; background: var(--accent); }
.inner-related { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.inner-related a { min-height: 181px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 28px 36px; border-radius: 28px; background: #fff; }
.inner-related .inner-circle-link { flex: 0 0 54px; }
.inner-related a:hover .inner-circle-link { background: var(--accent); }
.inner-related small { color: var(--accent); font-size: 14px; }
.inner-related h3 { margin: 7px 0; font-size: 32px; line-height: 37px; letter-spacing: -.025em; font-weight: 430; }
.inner-related p { margin: 0; color: var(--muted); font-size: 15px; line-height: 23px; }
.inner-services-index { margin-top: 82px; }
.services-compare { margin-top: 24px; }

.inner-placeholder { display: grid; place-items: center; border-radius: 24px; background: var(--border); color: #55555f; text-align: center; font-size: 17px; }
.inner-placeholder small { display: block; margin-top: 6px; color: var(--muted); font-size: 14px; }
.about-photo { height: 560px; margin-top: 58px; }
.inner-page--about .numbered-grid > article { min-height: 300px; }
.inner-tools { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; margin: 0; padding: 0; }
.inner-tools li { display: flex; gap: 10px; align-items: center; min-height: 62px; padding: 12px 24px; border-radius: 999px; background: #fff; font-size: 20px; }
.inner-tools li::before { width: 9px; height: 9px; border-radius: 50%; background: var(--accent); content: ''; }
.inner-contact-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 64px; }
.inner-contact-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.inner-contact-cards article { min-height: 200px; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; padding: 24px 28px; background: #fff; border-radius: 24px; }
.inner-contact-cards article:nth-child(2) { background: var(--accent); color: #fff; }
.inner-contact-cards article > div:first-child { display: flex; justify-content: space-between; gap: 12px; }
.inner-contact-cards h2 { margin: 0; font-size: 26px; line-height: 32px; font-weight: 400; letter-spacing: -.025em; }
.inner-contact-cards p { margin: 8px 0 0; font-size: 14px; color: var(--muted); }
.inner-contact-cards article:nth-child(2) p { color: #e0e4ff; }
.inner-map { align-content: center; gap: 12px; }
.inner-map > span { display: block; width: 24px; height: 24px; border-radius: 50%; border: 4px solid #fff; background: var(--accent); box-shadow: 0 2px 8px #2a2a3340; }
.inner-map b { padding: 7px 12px; border-radius: 999px; background: #fff; font-size: 14px; }
.inner-legal { margin-top: 16px; padding: 23px 36px; border-radius: 24px; background: #fff; }
.inner-legal small { color: var(--muted); font-size: 14px; }
.inner-legal p { margin: 7px 0 0; font-size: 18px; }
.inner-thanks { min-height: 680px; padding-top: 118px; text-align: center; }
.inner-thanks-check { display: grid; place-items: center; width: 96px; height: 96px; margin: 0 auto 29px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 40px; }
.inner-thanks .inner-actions { justify-content: center; }
.inner-generic { min-height: 500px; padding-block: 85px; }

.case-detail-tags { display: flex; gap: 8px; margin: 24px 0 14px; padding: 0; list-style: none; }
.case-detail-tags li { padding: 8px 18px; border-radius: 999px; background: #fff; font-size: 15px; }
.case-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px; margin: 30px 0 16px; padding: 28px 36px; background: #fff; border-radius: 24px; }
.case-facts dd { margin: 8px 0 0; font-size: 20px; line-height: 25px; }
.case-facts a { color: var(--accent); }
.case-detail-hero { display: block; width: 100%; height: 720px; object-fit: cover; border-radius: 28px; }
.case-problem { display: grid; grid-template-columns: 440px minmax(0,1fr); gap: 40px; }
.case-problem h2 { font-size: 44px; }
.case-problem > p { margin: 0; font-size: 24px; line-height: 35px; }
.case-work-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 14px; }
.case-work-grid .inner-placeholder { height: 340px; }
.case-work-grid .case-copy { padding: 22px 16px 28px; }
.case-work-grid small { color: var(--accent); font-size: 14px; }
.case-work-grid h3 { margin-top: 6px; font-size: 26px; line-height: 32px; }
.case-work-grid p { margin-top: 8px; font-size: 15px; line-height: 23px; }
.case-design { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.case-design > img { display: block; width: 100%; height: 620px; object-fit: cover; border-radius: 24px; }
.case-design-wide { grid-column: 1 / -1; }
.case-design-desktop { height: 700px; }
.case-design-detail { height: 420px; }
.case-results article { min-height: 240px; display: flex; flex-direction: column; justify-content: flex-end; padding: 32px; border-radius: 28px; background: #fff; }
.case-results article:first-child { background: var(--accent); color: #fff; }
.case-results article:last-child { background: var(--ink); color: #fff; }
.case-results strong { font-size: 56px; line-height: 60px; font-weight: 350; letter-spacing: -.025em; }
.case-results p { margin: 8px 0 0; font-size: 15px; line-height: 22px; }
.case-quote { margin: 40px 0 0; padding: 48px 56px; border-radius: 28px; background: #fff; }
.case-quote blockquote { margin: 0; font-size: 36px; line-height: 47px; font-weight: 400; letter-spacing: -.02em; }
.case-quote figcaption { display: flex; align-items: center; gap: 16px; margin-top: 26px; }
.case-quote .review-avatar { flex-basis: 56px; height: 56px; }
.case-quote strong, .case-quote small { display: block; }
.case-quote small { margin-top: 4px; color: var(--muted); font-size: 14px; }
.case-next { display: grid; grid-template-columns: 1fr 42%; align-items: center; gap: 24px; min-height: 360px; padding: 12px 12px 12px 48px; border-radius: 28px; background: var(--ink); color: #fff; }
.case-next .home-kicker { color: #aeb6ff; }
.case-next p { margin-bottom: 0; font-size: 16px; }
.case-next img { width: 100%; height: 336px; border-radius: 20px; object-fit: cover; }

.price-cards .service-card { min-height: 726px; padding: 30px 32px; }
.price-cards .service-card h3 { max-width: none; font-size: 29px; }
.price-cards .service-card p { min-height: 0; }
.price-cards .service-price { font-size: 36px; }
.price-cards .price-small { margin-top: 7px; font-size: 13px; line-height: 20px; }
.price-exclusions li::before, .service-card--featured .price-exclusions li::before { color: var(--muted); content: '—'; }
.price-seo { min-height: 248px; margin-top: 16px; padding: 38px 48px; display: grid; grid-template-columns: 440px minmax(0,1fr); gap: 46px; align-items: center; border-radius: 28px; background: var(--ink); color: #fff; }
.price-seo .home-kicker { color: #aeb6ff; }
.price-seo h3 { margin: 0; font-size: 36px; line-height: 42px; font-weight: 400; letter-spacing: -.025em; }
.price-seo p:not(.home-kicker) { margin: 15px 0 0; color: #d0d0da; font-size: 15px; line-height: 23px; }
.price-seo ul { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; list-style: none; }
.price-seo li { padding: 10px 14px; border-radius: 999px; background: #ffffff15; font-size: 15px; }
.price-table-wrap { border-radius: 28px; background: #fff; padding: 20px 48px; }
.price-table { width: 100%; table-layout: fixed; border-collapse: collapse; text-align: left; }
.price-table th, .price-table td { padding: 16px 6px; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 22px; }
.price-table tr > :first-child { width: 31.5%; }
.price-table th { font-weight: 500; }
.price-table thead th { font-size: 17px; }
.price-table small { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; }
.price-table tfoot :is(th,td) { border: 0; }
.price-table tfoot strong { display: block; margin-bottom: 12px; font-size: 26px; font-weight: 400; }
.price-table tfoot .home-button { min-height: 52px; }
.price-factors article, .price-payment article { padding: 30px 32px; min-height: 278px; border-radius: 28px; background: #fff; }
.price-factors article:first-child { background: var(--ink); color: #fff; }
.price-factors article > span { display: inline-grid; width: 52px; height: 52px; place-items: center; border-radius: 15px; color: var(--accent); background: #eef0ff; font-size: 22px; }
.price-factors article:first-child > span { background: #ffffff16; color: #fff; }
.price-factors h3 { margin: 42px 0 10px; font-size: 24px; font-weight: 430; line-height: 30px; }
.price-factors p, .price-payment p { margin: 0; color: var(--muted); font-size: 15px; line-height: 23px; }
.price-factors article:first-child p, .price-payment article:last-child p { color: #e0e4ff; }
.price-addons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.price-addons article { min-height: 138px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 23px 28px; border-radius: 24px; background: #fff; }
.price-addons h3 { margin: 0 0 8px; font-size: 20px; font-weight: 500; }
.price-addons p { margin: 0; color: var(--muted); font-size: 14px; line-height: 21px; }
.price-addons span { padding: 7px 12px; border-radius: 999px; background: var(--paper); font-size: 12px; white-space: nowrap; }
.price-payment { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.price-payment article { min-height: 244px; display: flex; flex-direction: column; justify-content: space-between; }
.price-payment article:last-child, .price-estimate { background: var(--accent); color: #fff; }
.price-payment article > div:first-child { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.price-payment h3 { margin: 0 0 8px; font-size: 44px; line-height: 46px; font-weight: 400; letter-spacing: -.025em; }
.price-estimate { min-height: 260px; margin-bottom: 86px; padding: 46px 56px; border-radius: 28px; display: grid; grid-template-columns: 46% minmax(0,1fr); align-items: center; gap: 20px; }
.price-estimate h2 { font-size: 44px; line-height: 51px; }
.price-estimate p { max-width: 420px; margin: 14px 0 0; color: #e0e4ff; font-size: 16px; line-height: 24px; }
.price-estimate-fields { display: flex; align-items: center; gap: 10px; }
.price-estimate label { min-width: 0; flex: 1; }
.price-estimate input { width: 100%; min-height: 54px; border: 0; border-radius: 999px; padding: 12px 16px; background: #ffffff26; color: #fff; font: inherit; font-size: 15px; }
.price-estimate input::placeholder { color: #fff; }
.price-estimate :focus-visible { outline-color: #fff; }
.price-estimate .home-button { min-height: 54px; padding-inline: 17px; }
@media (max-width: 1310px) {
    .inner-service-hero { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .price-estimate { grid-template-columns: 42% minmax(0,1fr); }
}
