/* Shared responsive rules load last to keep older page styles consistent. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
main,section,article,figure,.page-wrap,.hero-copy,.workflow-panel,.finance-product,.tour-main{min-width:0}
.page-hero>*,.section-heading>*,.finance-layout>*,.faq>*,.field>*,.value-grid>*,.office-workflow>*{min-width:0}
p,h1,h2,h3,a,button{overflow-wrap:break-word}
.button{max-width:100%;white-space:normal;text-align:center}
.site-header .header-demo{white-space:nowrap}
.site-header nav{gap:clamp(14px,1.7vw,26px)}
footer{grid-template-columns:minmax(174px,1fr) minmax(0,1fr) minmax(0,1.5fr)}
footer>div{min-width:0;flex-wrap:wrap}
footer>div a{padding-block:8px}
.detail-preview,.full-preview-link{min-height:44px;display:flex;align-items:center;justify-content:center}
@media(min-width:761px) and (max-width:1000px){
 .page-hero{grid-template-columns:1fr;gap:36px;padding-top:64px}
 .page-hero>div:last-child{max-width:720px;width:100%}
 .value-grid{grid-template-columns:1fr;gap:20px}
 .value-card{padding-bottom:12px}
 .section-heading{align-items:flex-start;gap:28px}
 .section-heading>p{width:40%;flex-shrink:0}
 .features article{padding:22px}
 .finance-layout{grid-template-columns:1fr;gap:36px}
 .finance-copy{max-width:700px}
 .finance-product{width:100%}
 .office-workflow{gap:28px}
}
@media(max-width:760px){
 .site-header{padding-inline:max(12px,env(safe-area-inset-left));gap:8px}
 .site-header .actual-logo{width:112px;height:42px}
 .site-header .menu-toggle{min-width:44px;min-height:44px;flex-shrink:0}
 .site-header .header-demo{font-size:14px;padding:12px 14px;min-height:46px}
 .site-header nav{gap:0;padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .site-header nav>a{min-height:48px}
 .section,.page-wrap{padding-inline:6%}
 .info-page h1{font-size:clamp(40px,10vw,64px);letter-spacing:-.045em}
 .section h2,.info-page h2{font-size:clamp(32px,8.5vw,42px);letter-spacing:-.04em}
 .page-intro,.section-heading>p,.field-copy>p{font-size:16px}
 .page-hero-actions{gap:18px}
 .photo-feature.portrait-feature{gap:30px}
 .actual-phone{width:min(260px,82vw);transform:rotate(3deg)}
 .phone-caption{position:static;text-align:center;margin-top:24px;line-height:1.5;font-size:12px}
 .phone-stage{flex-direction:column}
 .finance-preview-label{flex-wrap:wrap;gap:8px;font-size:11px}
 .recovery-story{padding:16px;gap:12px;grid-template-columns:minmax(0,1fr) auto}
 .recovery-story strong{font-size:clamp(23px,6.5vw,28px)}
 .tour-notes{flex-wrap:wrap;gap:10px 18px;line-height:1.6}
 .tour-notes span+span{border:0;padding-left:0}
 footer{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
 footer .actual-logo{width:min(151px,100%);height:auto;min-height:44px}
 footer>div{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;font-size:14px;line-height:1.5}
 .booking-actions{align-items:stretch}
 .booking-actions .button{min-width:0;width:100%}
 .booking-actions .page-text-link{min-height:44px;display:flex;align-items:center}
 /* The same film plays in a normal-flow phone layout, without a scroll trap. */
 .cinema-hero{height:auto}
 .cinema-pin{position:relative;top:0;height:auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(290px,72vw) auto;row-gap:22px;padding:58px 6% 20px}
 .cinema-stamp{top:22px;left:6%;right:6%;font-size:10px}
 .cinema-hero .hero-copy,.cinema-pin[data-phase=lead] .hero-copy{position:relative;top:auto;left:auto;right:auto;width:100%;transform:none;grid-row:1;align-self:start}
 .cinema-kicker{font-size:10px;line-height:1.6;margin-bottom:16px;letter-spacing:1px}
 .cinema-hero h1,.cinema-pin[data-phase=lead] .hero-copy h1{font-size:clamp(43px,11vw,76px);line-height:1.04;letter-spacing:-.055em}
 .cinema-pin[data-phase=lead] .hero-copy h1 em{display:block}
 .cinema-hero .hero-copy>p,.cinema-pin[data-phase=lead] .hero-copy>p{display:block;font-size:16px;line-height:1.65;max-width:540px;min-height:0;margin-top:18px}
 .cinema-hero .hero-actions,.cinema-pin[data-phase=lead] .hero-actions{display:flex;gap:12px 18px;flex-wrap:wrap;margin-top:20px}
 .cinema-hero .hero-actions .button{font-size:14px;min-height:46px;padding:13px 16px}
 .cinema-hero .hero-tour-link{min-height:44px;display:inline-flex;align-items:center}
 .cinema-stage{left:6%;right:auto;top:var(--mobile-stage-top,400px);bottom:auto;width:88%;height:max(270px,calc(72vw - 20px));transform:none;perspective:1100px}
 .crm-screen-tabs{left:0;right:0;bottom:0;gap:5px;flex-wrap:wrap}
 .crm-screen-tabs button{font-size:12px;min-height:44px;padding:8px}
 .cinema-controls{position:relative;left:auto;right:auto;bottom:auto;grid-row:3;width:100%;align-self:end}
 .cinema-transport>div{flex-wrap:wrap;justify-content:flex-start;gap:8px 20px}
 .cinema-transport button{min-height:44px;font-size:13px}
 .cinema-chapters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
 .cinema-chapters button{font-size:13px;min-height:54px}
 .cinema-scroll{display:none}
 /* Dialog scrolls internally, with navigation and the close button reachable. */
 #tour-dialog.guided-tour{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}
 .guided-tour .tour-header{padding:16px 58px 14px 16px}
 .guided-tour #close-tour{top:8px;right:8px;min-width:44px;min-height:44px}
 .tour-sidebar nav button{min-height:44px;font-size:13px}
 .tour-view-toolbar{flex-wrap:wrap;gap:6px}
 .tour-view-toolbar>span{font-size:12px}
 .tour-view-toolbar button,.tour-view-toolbar #full-preview-link{min-height:44px;display:inline-flex;align-items:center;font-size:13px}
 .tour-main{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .guided-tour .tour-controls{padding-bottom:max(12px,env(safe-area-inset-bottom));gap:8px}
 .guided-tour .tour-controls .button{font-size:13px;min-height:46px}
}
@media(max-width:360px){
 .site-header .actual-logo{width:98px}
 .site-header .header-demo{padding-inline:10px;font-size:13px}
 footer{grid-template-columns:1fr}
 .brand-panel,.split-statement,.company-summary{padding:24px}
 .company-capacity{gap:18px}
}
@media(prefers-reduced-motion:reduce){.cinema-pin{position:relative;top:0}}

/* Stable phone composition: no changing copy height or expensive blur layers. */
@media(max-width:760px){
 .cinema-copy-change .cinema-kicker,.cinema-copy-change h1,.cinema-copy-change .hero-copy>p{animation:none}
 .cinema-hero .hero-copy{opacity:1;text-shadow:none}
 .cinema-pin[data-docking=true] .cinema-plane[data-product=home] .product-frame{aspect-ratio:1440/1000}
 .cinema-controls .cinema-transport{min-height:96px;align-items:flex-start}
 .cinema-transport>div{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}
 .cinema-transport button{text-align:left}
 #motion-toggle{grid-column:1;grid-row:1}
 #skip-intro,.cinema-transport .enlarge-preview{grid-column:2;grid-row:1}
 #replay-film{grid-column:1;grid-row:2}
 .jobsite-visual:before{display:none}
 .cinema-grid,.cinema-halo{display:none}
 .cinema-plane,.cinema-phone,.cinema-stage,.cinema-camera{will-change:auto;filter:none;box-shadow:none}
 .cinema-backplate{display:none}
 .crm-screen-tabs button{backdrop-filter:none}
 dialog::backdrop{backdrop-filter:none}
 #tour-content.guided-viewport iframe{transition:none}
}
/* Phones use a finite, inline sequence with one CRM frame, never a sticky stage. */
.phone-film{height:auto;touch-action:pan-y pinch-zoom}
.phone-film .cinema-pin{position:relative;top:0;height:auto;min-height:0;display:flex;flex-direction:column;gap:24px;padding:58px 6% 24px;overflow:hidden}
.phone-film .hero-copy,.phone-film .cinema-pin[data-phase=lead] .hero-copy{position:relative;inset:auto;transform:none;width:100%;order:1;opacity:1}
.phone-film h1,.phone-film .cinema-pin[data-phase=lead] h1{font-size:clamp(43px,10vw,76px);line-height:1.04}
.phone-film .hero-copy>p{font-size:16px;line-height:1.65;min-height:0}
.phone-film .cinema-pin[data-phase=lead] .hero-copy>p{display:block}
.phone-film .cinema-pin[data-phase=lead] .hero-actions{display:flex}
.phone-film .cinema-pin:before,.phone-film .cinema-grid,.phone-film .cinema-halo,.phone-film .cinema-phone,.phone-film .cinema-backplate,.phone-film .cinema-annotation,.phone-film .hero-foot{display:none}
.phone-film-screen{position:relative;width:100%;aspect-ratio:1.3;order:2;overflow:hidden;border-radius:10px;background:#f3eee5;isolation:isolate;touch-action:pan-y pinch-zoom}
.phone-film .jobsite-visual{background:#17271c;transition:opacity .35s;pointer-events:none}
.phone-film .jobsite-visual:before,.phone-film .tablet-portal,.phone-film .construction-light{display:none}
.phone-film .jobsite-world,.phone-film .jobsite-world>img,.phone-film .jobsite-framing,.phone-film .jobsite-manager,.phone-film .jobsite-framing>img,.phone-film .jobsite-manager>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 55%;transform:none;will-change:auto}
.phone-film .jobsite-framing{clip-path:none;transition:opacity .8s}
.phone-film .jobsite-manager{transition:opacity .4s,transform 1.5s ease;transform-origin:62% 70%}
.phone-film .cinema-stage{position:absolute;inset:0;width:100%;height:100%;transform:none;perspective:none;transition:opacity .35s;will-change:auto}
.phone-film .cinema-camera{transform:none;animation:none;will-change:auto}
.phone-film .cinema-plane{display:none}
.phone-film .cinema-plane[data-product=home]{display:block;position:absolute;inset:0;width:100%;height:auto;opacity:1;transform:none;filter:none;transition:none;will-change:auto;border:0;border-radius:0;box-shadow:none}
.phone-film .cinema-plane .product-frame{aspect-ratio:1440/1000}
.phone-film .cinema-window-bar{height:24px}
.phone-film .crm-screen-tabs{left:0;right:0;bottom:4px;gap:4px;flex-wrap:wrap}
.phone-film .crm-screen-tabs button{min-height:44px;padding:8px;font-size:12px}
.phone-film .cinema-controls{position:relative;inset:auto;width:100%;order:3}
.phone-film .cinema-transport{min-height:96px}
.phone-film .cinema-chapters{grid-template-columns:1fr 1fr}
.phone-film iframe{pointer-events:none!important}

/* The phone walkthrough has one scrolling column and intrinsic-height previews. */
#tour-dialog.mobile-tour{position:fixed;inset:0;width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;grid-template-rows:auto minmax(0,1fr) auto}
.mobile-tour .tour-header{position:relative;min-width:0;padding:calc(12px + env(safe-area-inset-top)) 64px 12px max(16px,env(safe-area-inset-left));gap:0}
.mobile-tour .tour-header h2{font-size:18px;line-height:1.3;letter-spacing:-.4px}
.mobile-tour .tour-header .section-label{font-size:10px;margin-bottom:6px}
.mobile-tour .tour-demo-badge{display:none}
.mobile-tour #close-tour{position:absolute;right:max(8px,env(safe-area-inset-right));top:calc(8px + env(safe-area-inset-top));width:44px;height:44px;min-width:44px;font-size:28px}
.mobile-tour .tour-layout{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
.mobile-tour .tour-sidebar{flex:none;min-width:0;max-width:100%;padding:8px 12px;border-right:0;border-bottom:1px solid #d9dfcf;overflow:hidden}
.mobile-tour .tour-sidebar>p,.mobile-tour .tour-sample{display:none}
.mobile-tour .tour-sidebar nav{display:flex;flex-direction:row;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.mobile-tour .tour-sidebar nav button{flex:0 0 auto;min-height:44px;font-size:14px;padding:9px 12px;gap:7px}
.mobile-tour .tour-sidebar nav button>span{font-size:12px}
.mobile-tour .tour-sidebar nav button i{display:none}
.mobile-tour .tour-main{flex:1 1 0;min-height:0;min-width:0;width:100%;display:block;padding:20px max(16px,env(safe-area-inset-right)) 24px max(16px,env(safe-area-inset-left));overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.mobile-tour .tour-step-heading h3{font-size:24px;line-height:1.25}
.mobile-tour .tour-step-heading p,.mobile-tour .tour-takeaway p{font-size:16px;line-height:1.6}
.mobile-tour .tour-step-heading #tour-eyebrow{font-size:12px}
.mobile-tour .tour-view-toolbar{padding:18px 0 10px}
.mobile-tour .tour-view-toolbar>span{font-size:14px}
.mobile-tour .tour-view-toolbar>div,.mobile-tour .tour-screen-hint{display:none}
#tour-dialog.mobile-tour #tour-content{flex:none;min-height:0;aspect-ratio:auto;border-radius:10px;max-width:100%!important}
#tour-dialog.mobile-tour #tour-content iframe{position:absolute;inset:0;max-width:100%;transform:none!important;transition:none;will-change:auto;pointer-events:none}
.mobile-tour .tour-takeaway strong{font-size:17px;line-height:1.4}
.mobile-tour .tour-takeaway>span{font-size:12px}
.mobile-tour .tour-controls{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;padding:12px max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));min-width:0}
.mobile-tour .tour-controls .button{width:100%;max-width:none;min-width:0;min-height:48px;font-size:16px;padding:10px 12px}
.mobile-tour .tour-controls>div{font-size:14px;min-width:42px}
.mobile-tour .tour-progress{display:none}

/* A direct, static opening on phones and touch tablets. Desktop keeps the film. */
.mobile-welcome{display:none}
.home-founder-story{margin-top:40px;padding-top:30px;border-top:1px solid #cbd2c6;max-width:760px}
.home-founder-story h3{font-size:26px;margin:0 0 12px}
.home-founder-story p{font-size:18px;line-height:1.6;margin:0 0 16px}
.home-founder-story a{font-weight:600;text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px),(pointer:coarse) and (max-width:1100px){
 .cinema-hero{display:none!important}
 .mobile-welcome{display:block;background:#122f27;color:#fff;padding:56px 6% 52px}
 .mobile-welcome .section-label{color:#dafa79;font-size:12px;line-height:1.6;margin-bottom:22px}
 .mobile-welcome h1{font-size:clamp(40px,10vw,68px);line-height:1.08;letter-spacing:-.045em;margin:0}
 .mobile-welcome h1 em{font-style:normal;color:#dafa79}
 .mobile-welcome>p{font-size:18px;line-height:1.6;max-width:520px;margin:24px 0}
 .mobile-welcome .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:26px}
 .mobile-welcome .hero-tour-link{color:white;min-height:44px;display:inline-flex;align-items:center}
}
