/* A project brief with the calm, rounded surfaces of Finapp. */
[hidden] { display: none !important; }
.order-heading { background:#cec0f3; display:grid; grid-template-columns:1.35fr 1fr; gap:8%; align-items:end; padding-top:65px; padding-bottom:60px; }
.order-heading h1 { font-size:clamp(54px,6.4vw,98px); font-weight:400; line-height:1.03; letter-spacing:-.065em; margin:32px 0 0; }
.order-heading h1 em { font-family:Georgia,serif; font-weight:400; }
.order-heading>p { font-size:19px; line-height:1.65; max-width:450px; margin:0 0 4px; }
.order-layout { display:grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap:7%; background:#eef1f6; padding-top:64px; align-items:start; }
.order-aside { position:sticky; top:35px; }
.order-star { font-size:76px; line-height:1; display:block; color:#6450b8; }
.order-aside>h2 { font-size:clamp(28px,3vw,43px); line-height:1.18; letter-spacing:-.045em; font-weight:400; max-width:400px; margin:22px 0 34px; }
.project-summary { background:#e1e8d4; border:1px solid #cbd4bc; padding:26px; border-radius:16px; }
.project-summary h3 { font-size:26px; line-height:1.2; letter-spacing:-.6px; font-weight:500; margin:20px 0 12px; }
.project-summary p:not(.eyebrow) { font-size:16px; margin:0 0 20px; }
.summary-budget { display:inline-block; font-size:14px; padding:7px 12px; border:1px solid #788666; border-radius:99px; }
.next-steps { margin:34px 0; }
.next-steps h3 { font-size:16px; font-weight:600; }
.next-steps ol { list-style:none; counter-reset:steps; margin:18px 0 0; padding:0; }
.next-steps li { counter-increment:steps; display:flex; align-items:center; gap:12px; margin:14px 0; font-size:16px; }
.next-steps li:before { content:'0' counter(steps); font-size:12px; border:1px solid #b4b6be; border-radius:50%; width:30px; height:30px; display:grid; place-items:center; flex-shrink:0; }
.direct-mail { font-size:clamp(16px,2vw,24px); border-bottom:1px solid; overflow-wrap:anywhere; }
.order-form { padding:32px; min-width:0; }
.form-progress { list-style:none; display:flex; justify-content:space-between; gap:10px; padding:0 0 25px; margin:0 0 30px; border-bottom:1px solid #d8e2f0; }
.form-progress li { display:flex; align-items:center; gap:9px; font-size:14px; color:#62616c; }
.form-progress li>span { border:1px solid #b8bdc7; border-radius:50%; width:29px; height:29px; display:grid; place-items:center; flex-shrink:0; }
.form-progress li[aria-current] { color:#24211f; font-weight:600; }
.form-progress li[aria-current]>span { background:#dfff70; border-color:#8da63a; }
.form-progress li.complete>span { background:#252331; color:white; border-color:#252331; }
.order-form fieldset { margin:0; padding:0; border:0; min-width:0; }
.order-form legend { font-size:29px; font-weight:500; line-height:1.2; letter-spacing:-.7px; padding:0; margin-bottom:25px; }
.service-options { display:grid; gap:12px; }
.order-form .service-option { position:relative; display:flex; align-items:center; gap:14px; padding:17px; border:1px solid #d8e2f0; background:#f8faff; border-radius:12px; margin:0; cursor:pointer; transition:background .15s,border-color .15s; }
.order-form .service-option:has(:checked) { background:#e9e2f8; border-color:#7254b0; box-shadow:0 0 0 1px #7254b0; }
.order-form .service-option input { appearance:auto; width:18px; height:18px; margin:0; flex-shrink:0; accent-color:#6445a9; }
.order-form .service-option>span { color:#24211f; }
.service-option strong { display:block; font-size:16px; font-weight:500; line-height:1.3; }
.service-option small { display:block; font-size:14px; line-height:1.4; color:#555360; margin-top:5px; }
.service-option .option-mark { margin-left:auto; font-size:23px; }
.service-option:has(:checked) .option-mark { transform:rotate(45deg); }
.order-form .form-grid { grid-template-columns:1fr 1fr; gap:18px; }
.order-form .form-actions { margin-top:28px; justify-content:space-between; }
.order-form .button { font-size:16px; min-height:48px; }
.order-form .step-next { margin-left:auto; }
.field-help { font-size:14px; color:#575564; line-height:1.65; margin:0 0 24px; }
.order-form .form-grid label { margin-bottom:15px; }
.order-form label .optional { color:#62606a; font-weight:400; }
.order-form label .field-error, .field-error { display:block; color:#a22323; font-size:14px; line-height:1.5; margin-top:7px; font-weight:400; }
.field-error:empty { margin:0; }
.order-form [aria-invalid=true] { border-color:#a22323; background:#fff5f4; }
.order-form .textarea-meta { display:flex; gap:16px; justify-content:space-between; font-size:13px; color:#575564; margin:-12px 0 8px; }
.textarea-meta [data-count] { white-space:nowrap; }
.brief-review { border:1px solid #d8e2f0; background:#f4f7fc; border-radius:12px; padding:20px; margin:8px 0 24px; }
.brief-review p { font-size:16px; }
.order-form .text-link { background:transparent; color:inherit; border:0; border-bottom:1px solid; padding:2px 0; font-size:14px; }
.order-form .consent { display:flex; align-items:start; gap:12px; font-weight:400; line-height:1.6; margin-bottom:4px; }
.order-form .consent input { width:20px; height:20px; flex-shrink:0; margin:3px 0 0; accent-color:#6445a9; }
.order-form .consent>span { color:#45414e; }
.consent a { text-decoration:underline; text-underline-offset:3px; }
.honeypot { position:absolute; left:-9999px; height:1px; width:1px; overflow:hidden; }
.order-form .form-status { display:block; margin:0; }
.order-form .form-status.is-visible { margin-top:22px; }
.order-form .form-status.is-error { background:#fff0ec; color:#842c21; border-color:#e8a79a; }
.form-fallback { border-top:1px solid #d8e2f0; padding-top:22px; margin:25px 0 0; display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.form-fallback a { font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.order-success { padding:30px 0; }
.success-mark { display:grid; place-items:center; width:70px; height:70px; border-radius:50%; background:#dfff70; font-size:35px; }
.order-success h2 { font-size:36px; line-height:1.2; letter-spacing:-1px; font-weight:400; }
.order-success p { font-size:18px; line-height:1.6; }
.receipt { display:flex; flex-direction:column; gap:8px; padding:24px; border-radius:12px; background:#efebf7; margin:28px 0; }
.receipt span { font-size:14px; }
.receipt strong { font-size:clamp(17px,2vw,24px); letter-spacing:1px; overflow-wrap:anywhere; }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:#626170; }
.price-card li { font-size:16px; }
.price-card .button { font-size:16px; }
.price-card .plan-time { font-size:14px; }
.services .page-lead { max-width:800px; font-size:19px; }
.services .process { background:#dfff70; }
.services .process h2 { max-width:950px; }
.privacy .page-hero { background:#e6def4; }
.privacy-content { max-width:950px; }
.privacy-content article { margin-bottom:45px; }
.privacy-content h2 { font-size:28px; letter-spacing:-.7px; margin:0 0 16px; }
.privacy-content p { font-size:18px; line-height:1.75; }
.footer-bottom>a.privacy-link { display:inline-block; }
@media(max-width:1100px) {
  .order-layout { grid-template-columns:minmax(0,.65fr) minmax(0,1fr); gap:4%; }
  .form-progress li { flex-direction:column; align-items:start; }
  .order-form { padding:26px; }
  .order-form .form-grid { grid-template-columns:1fr; gap:0; }
}
@media(max-width:760px) {
  .order-heading { grid-template-columns:1fr; gap:26px; padding-top:45px; padding-bottom:38px; }
  .order-heading h1 { font-size:clamp(46px,10vw,74px); margin-top:25px; }
  .order-heading>p { font-size:17px; max-width:600px; }
  .order-layout { grid-template-columns:1fr; padding-top:30px; gap:32px; }
  .order-aside { display:none; }
  .order-star,.order-aside>h2,.order-aside .next-steps { display:none; }
  .project-summary { padding:20px; }
  .project-summary h3 { margin:12px 0 8px; font-size:25px; }
  .project-summary p:not(.eyebrow) { margin-bottom:14px; }
  .direct-mail { margin-top:18px; width:fit-content; font-size:16px; }
  .order-form { padding:24px 20px; }
  .form-progress li { font-size:13px; }
  .order-form legend { font-size:27px; }
  .order-form .form-actions { gap:12px; }
  .order-form .button { padding:12px 17px; gap:16px; }
  .order-submit { flex:1; justify-content:space-between; }
  .order-form .textarea-meta { flex-direction:column; gap:6px; font-size:14px; }
  .order-success h2 { font-size:32px; }
  .hero-bottom p,.hero-bottom .button { font-size:14px; }
  .language-switch a { min-height:36px; min-width:30px; font-size:11px; }
  .services .page-lead { font-size:17px; }
}
@media(prefers-reduced-motion:reduce) { .service-option { transition:none; } }

/* Sculpture, floor and cast shadow share one studio render and one light source. */
.home .hero-visual { position:absolute; z-index:-2; width:min(68vw,120svh,1152px); aspect-ratio:3/2; right:1%; top:50%; transform:translateY(-55%); pointer-events:none; isolation:isolate; }
.home .hero-art { position:relative; z-index:1; top:auto; right:auto; display:block; width:100%; height:100%; max-width:100%; object-fit:contain; object-position:center; mask-image:linear-gradient(90deg,transparent,#000 9%,#000 88%,transparent),linear-gradient(180deg,transparent,#000 3%,#000 91%,transparent); mask-composite:intersect; animation:sculpture-enter 1s ease both; }
.home .hero-wash { background:linear-gradient(90deg,#ff7557 0%,#ff7557 29%,#ff755700 57%); }
@keyframes sculpture-enter { from { opacity:0; } to { opacity:1; } }
@media(max-width:900px) {
 .home .hero-visual { width:82vw; right:-13%; top:55%; }
 .home .hero-wash { background:linear-gradient(90deg,#ff7557 0%,#ff7557 19%,#ff755700 68%); }
}
@media(max-width:600px) {
 .home .hero-visual { width:112vw; top:auto; bottom:90px; right:-6%; transform:none; }
 .home .hero-art { top:auto; right:auto; }
 .home .hero-wash { background:linear-gradient(180deg,#ff7557 0%,#ff7557 32%,#ff755700 63%); }
}
@media(prefers-reduced-motion:reduce) { .home .hero-art { animation:none; } }

@media(min-width:1001px) {
 .home .hero { height:auto; max-height:none; min-height:calc(100svh - 105px); }
 .home .hero .hero-content { padding-top:clamp(30px,6svh,85px); padding-bottom:32px; }
 .home .hero h1 { font-size:clamp(86px,min(10.9vw,18svh),176px); }
}
