/* Brand values copied from frontend/app/globals.css light theme; marketing layout scale is independent. */
:root{--heading-size:clamp(30px,3.3vw,46px);--brand:#0E3C2F;--product-bg:#0A2A20;--accent:#D7F25C;--bg:#FAF9F5;--surface:#FDFCF9;--card:#F5F3EC;--border:#EBE7DF;--ink:#141413;--muted:#30302E;--radius:24px;--content:1280px;--edge:clamp(24px,6vw,96px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--brand);font-family:"IBM Plex Sans Thai",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--brand);outline-offset:5px}.skip{position:fixed;top:-100px;left:16px;padding:12px;background:var(--accent);z-index:30}.skip:focus{top:12px}
.header{height:100px;padding:0 var(--edge);display:flex;align-items:center;justify-content:space-between;max-width:1600px;margin:auto}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700}.brand img{object-fit:contain}.brand-light{font-weight:400}.header nav{display:flex;align-items:center;gap:32px;font-size:14px}.header nav span{margin-left:12px}.login{background:var(--card);padding:12px 20px;border-radius:8px}
.hero{padding:68px var(--edge) 0;max-width:1600px;margin:auto}.eyebrow{display:flex;gap:12px;align-items:center;font-size:16px;margin-bottom:32px}.dot{width:8px;height:8px;background:var(--brand);border-radius:50%}.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:end}h1{font-size:var(--heading-size);font-weight:700;line-height:1.4;margin:0;letter-spacing:0}.intro{padding-bottom:12px}.intro p{font-size:18px;line-height:1.85;margin:0 0 28px;color:var(--muted)}.actions{display:flex;gap:12px;align-items:center}.primary,.secondary{min-height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:16px}.primary{background:var(--brand);color:var(--bg);padding:8px 8px 8px 20px;gap:24px}.primary .msym{display:grid;place-items:center;width:40px;height:40px;background:var(--accent);color:var(--brand);font-size:20px;border-radius:5px;transition:transform .2s}.primary:hover .msym{transform:translateY(2px)}.secondary{background:var(--card);color:var(--brand);border:1px solid var(--border);padding:12px 20px}.secondary:hover{background:var(--border)}
.product{background:var(--product-bg);padding:64px var(--edge) 64px;overflow:hidden;scroll-margin-top:16px}.product-top{max-width:var(--content);margin:0 auto 28px;display:flex;justify-content:space-between;color:var(--bg);font-size:14px}.product-top span:last-child{color:var(--accent);font-size:12px}.screen{max-width:1120px;margin:0 auto;background:transparent;border:0;border-radius:16px;overflow:hidden;transform:translateY(var(--lift,24px));transform-origin:top center;will-change:transform}.screen img{display:block;width:100%;height:auto}footer{display:flex;justify-content:space-between;padding:28px var(--edge);font-size:13px}footer span{color:var(--muted)}dialog{border:1px solid var(--border);border-radius:var(--radius);padding:40px;background:var(--bg);color:var(--brand);max-width:calc(100% - 32px)}dialog::backdrop{background:rgb(14 60 47 / 45%)}dialog h2{margin-top:0}dialog p{line-height:1.8}.close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:28px;color:var(--brand)}
@media(min-width:1600px){.product{padding-left:max(var(--edge),calc((100vw - 1280px)/2));padding-right:max(var(--edge),calc((100vw - 1280px)/2))}}
@media(max-width:900px){.header{height:80px}.hero{padding-top:40px}.hero-grid{grid-template-columns:1fr;gap:24px}.intro p{font-size:17px}.desktop-break{display:none}.screen{border-radius:12px}.brand{font-size:20px}.header nav{gap:16px}.product-top{gap:12px}}
@media(max-width:540px){.header nav>a:first-child{display:none}.login{padding:10px 12px}.brand img{width:36px;height:36px}.hero{padding-top:32px}.eyebrow{font-size:14px;margin-bottom:24px}.intro p{font-size:16px}.actions{gap:8px}.primary,.secondary{font-size:14px}.primary{gap:12px;padding-left:14px}.secondary{padding:12px}.product{padding:40px 16px}.product-top{font-size:12px}.product-top span:last-child{display:none}footer{font-size:11px;gap:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.screen{transform:none;will-change:auto}.primary .msym{transition:none}}

/* Material Symbols Sharp matches frontend/components/ui/Icon.tsx. */
@font-face{font-family:'Material Symbols Sharp';font-style:normal;font-weight:400;src:url('/marketing-static/a0ab3543/assets/material-symbols-sharp.ttf') format('truetype');font-display:block}
.msym{font-family:'Material Symbols Sharp';font-weight:400;font-style:normal;font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased;flex-shrink:0}
.primary,.secondary{gap:10px;padding:14px 24px;border-radius:12px}
.primary .msym{display:inline-block;width:20px;height:20px;background:none;color:inherit;border-radius:0;font-size:20px}
.primary:hover{background:#0A2E24}.primary:hover .msym{transform:none}
.header nav a{display:inline-flex;align-items:center;gap:8px}.header nav span{margin-left:0}


@media(max-width:540px){.primary,.secondary{padding:12px 16px;gap:8px}}

/* Hero flows directly into the product image after removing the redundant caption row. */
.hero{padding-bottom:64px}
@media(max-width:900px){.hero{padding-bottom:40px}}

/* Keep the category label connected to the headline; decorative ripple only. */
.eyebrow{margin-bottom:16px}
.hero-grid{align-items:start}
.dot{position:relative;flex-shrink:0}
.dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--brand);animation:category-ripple 2.8s ease-out infinite;pointer-events:none}
@keyframes category-ripple{0%{transform:scale(1);opacity:.5}75%,100%{transform:scale(3);opacity:0}}
@media(prefers-reduced-motion:reduce){.dot::after{animation:none;display:none}}

/* Preview: brand lime contact CTA. */
.secondary{background:var(--accent);border-color:var(--accent);color:var(--brand)}
.secondary:hover{background:#CBE64F;border-color:#CBE64F}

/* Preview: circular lime accent behind the primary CTA arrow. */
.primary{padding:10px 12px 10px 24px}
.primary .msym{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--brand);font-size:20px}
@media(max-width:540px){.primary{padding:10px 12px 10px 16px}}

/* Optical alignment for Thai wordmark tone marks next to the brand icon. */
.brand > span{transform:translateY(2px)}

/* Preview: brand lime category dot and ripple. */
.dot{background:var(--brand)}
.dot::after{background:var(--brand)}

.typing-line{display:grid;position:relative}
.headline-fixed{display:block}
.hero-grid{container-type:inline-size}
#headline{font-size:var(--heading-size)}

.typing-reserve,.typing-display{grid-area:1/1;min-width:0}
.typing-reserve{visibility:hidden;pointer-events:none}
.typing-cursor{font-weight:400;animation:typing-blink 1s step-end infinite}
@keyframes typing-blink{50%{opacity:0}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(prefers-reduced-motion:reduce){.typing-cursor{display:none}}

/* Keep the solid brand core above the lime ripple to prevent color blending. */
.dot::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--brand);z-index:1}

/* Align desktop hero columns along their bottom edge. */
@media(min-width:901px){.hero-grid{align-items:start}.intro{padding-bottom:0}}

/* Preview 27: lime primary, cream secondary, plain icons and no borders. */
.primary,.secondary{border:0;padding:14px 24px;color:var(--brand)}
.primary{background:var(--accent)}
.primary:hover{background:#CBE64F}
.secondary{background:var(--card)}
.secondary:hover{background:var(--border)}
.primary .msym{width:20px;height:20px;border-radius:0;background:transparent;color:inherit;font-size:20px}
@media(max-width:540px){.primary,.secondary{padding:12px 16px}}

.screen video{display:block;width:100%;height:auto}.demo-controls{max-width:1120px;margin:16px auto 0;display:flex;justify-content:flex-end}.demo-controls button{border:0;background:transparent;color:var(--bg);font-size:13px;padding:8px 0}.demo-controls button:focus-visible{outline-color:var(--accent)}

/* Clip the video itself, with no pale backing visible at antialiased corners. */
.screen{position:relative;background:transparent;isolation:isolate}
.screen video{border-radius:inherit}
.product-top{max-width:1120px}
#demo-toggle{position:absolute;right:12px;bottom:12px;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:rgb(0 0 0 / 65%);color:#fff}
#demo-toggle:hover,#demo-toggle:focus-visible{background:rgb(0 0 0 / 85%)}
#demo-toggle:focus-visible{outline-color:var(--accent)}

/* Consistent trailing icons; mobile labels align to the first line. */
.actions .msym{flex-shrink:0;width:20px;height:20px;font-size:20px}
.actions .button-label{text-align:left}
@media(max-width:540px){.actions{align-items:stretch}.actions>.primary,.actions>.secondary{flex:1;min-width:0;justify-content:space-between;align-items:flex-start}.actions .button-label{line-height:1.5}.actions .msym{margin-top:.025em}}

/* Workload: a short bridge from the demo to the product story. */
.workload{padding:96px var(--edge) 104px;background:var(--bg);scroll-margin-top:32px}
.workload-inner{max-width:1120px;margin:auto}
.workload-kicker{text-align:center;font-size:14px;margin:0 0 24px;color:var(--brand)}
.workload h2{text-align:center;font-size:clamp(32px,3.6vw,52px);line-height:1.35;margin:0;font-weight:700}
.workload-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:56px}
.workload-topics article{border-top:1px solid #D5D9CE;padding-top:20px}
.topic-marker{display:flex;align-items:center;justify-content:space-between;color:var(--brand);margin-bottom:24px}
.topic-number{font-size:13px;font-variant-numeric:tabular-nums}
.topic-marker .msym{font-size:20px}
.workload h3{font-size:22px;line-height:1.5;margin:0 0 12px;font-weight:700}
.workload-topics p{font-size:16px;line-height:1.85;margin:0;color:var(--muted)}
@media(max-width:900px){.workload-topics{gap:24px}.workload h3{font-size:19px}.workload-topics p br{display:none}}
@media(max-width:600px){.workload{padding:56px var(--edge) 64px}.workload-kicker{margin-bottom:20px}.workload h2{font-size:32px}.workload-topics{grid-template-columns:1fr;gap:28px;margin-top:36px}.workload-topics article{padding-top:16px}.topic-marker{margin-bottom:12px}.workload h3{font-size:22px;margin-bottom:8px}}

/* Keep the video on a stable layer while scrolling. */
.screen{transform:none;will-change:auto}

/* First feature: shared context for properties and people. */
.portfolio-feature{background:var(--card);padding:88px var(--edge);scroll-margin-top:24px}
.portfolio-layout{max-width:1280px;margin:auto;display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.65fr);align-items:center;gap:56px}
.feature-kicker{font-size:14px;margin:0 0 24px}
.portfolio-copy h2{font-size:clamp(30px,3vw,44px);line-height:1.4;margin:0 0 24px}
.feature-description{font-size:16px;line-height:1.85;color:var(--muted);margin:0 0 28px;max-width:380px}
.feature-points{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-size:15px}
.feature-points li{display:flex;align-items:baseline;gap:12px}
.feature-points li::before{content:"";display:block;flex:0 0 6px;height:6px;border-radius:50%;background:var(--brand)}
.portfolio-visual{margin:0;padding:24px;background:var(--accent);border-radius:20px;min-width:0}
.portfolio-visual img{display:block;width:100%;height:auto;border-radius:10px}
@media(max-width:900px){.portfolio-layout{grid-template-columns:1fr;gap:36px}.portfolio-copy h2 br{display:none}.portfolio-copy h2{max-width:560px}.feature-description{max-width:560px}.portfolio-feature{padding-top:64px;padding-bottom:64px}}
@media(max-width:540px){.portfolio-feature{padding-top:48px;padding-bottom:48px}.portfolio-copy h2{font-size:30px}.feature-kicker{margin-bottom:20px}.portfolio-visual{padding:12px;border-radius:14px}.portfolio-visual img{border-radius:6px}}

/* First story card: focused data illustration instead of a repeated full screen. */
.portfolio-feature{background:var(--bg);padding-top:32px}
.feature-section-heading{max-width:1120px;margin:0 auto 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.feature-section-heading>p{font-size:14px;margin:0 0 20px}
.feature-section-heading h2{font-size:22px;font-weight:700;line-height:1.5;margin:0}
.portfolio-layout{max-width:1120px;background:#E1ECF5;padding:32px;border-radius:24px;gap:40px;grid-template-columns:1fr 1.1fr;align-items:stretch}
.portfolio-copy{display:flex;flex-direction:column;justify-content:space-between;gap:72px;padding:8px}
.portfolio-copy h3{font-size:clamp(26px,2.7vw,36px);line-height:1.45;margin:0 0 20px}
.portfolio-copy .feature-description{margin:0;max-width:390px}
.portfolio-visual{padding:24px 8px;background:transparent;border-radius:0;display:flex;align-items:center}
.property-context{width:100%;padding:28px;background:#FAF9F5;border:1px solid rgb(14 60 47 / 10%);border-radius:18px;box-shadow:0 16px 40px rgb(14 60 47 / 7%)}
.context-top{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px;margin-bottom:28px}
.context-status{background:#E7EFEB;padding:6px 10px;border-radius:20px;white-space:nowrap}
.context-code{font-size:12px;color:var(--muted);margin:0 0 6px}.property-context h4{font-size:24px;margin:0 0 6px;line-height:1.4}.context-room{font-size:13px;color:var(--muted);margin:0}
.context-rent{font-size:25px;font-weight:700;margin:20px 0 24px}.context-rent>span{font-size:13px;font-weight:400}
.context-people{border-top:1px solid var(--border)}.context-people>div{display:grid;gap:5px;padding-top:18px}.context-people>div+div{margin-top:18px;border-top:1px solid var(--border)}.person-label{font-size:12px;color:var(--muted)}.context-people strong{font-size:16px}.person-detail{font-size:12px;color:var(--muted)}
@media(max-width:700px){.portfolio-layout{grid-template-columns:1fr;padding:24px;gap:24px}.portfolio-copy{padding:0;gap:24px}.portfolio-copy h3{font-size:28px}.portfolio-visual{padding:0}.property-context{padding:22px}.feature-section-heading{margin-bottom:24px}}
@media(max-width:400px){.portfolio-layout{padding:20px}.property-context{padding:18px}.portfolio-copy h3{font-size:25px}.context-top{gap:6px;font-size:11px}.property-context h4{font-size:22px}}

/* Marketing presentation based on the app's property card. */
.real-property-card{padding:0;overflow:hidden;border:1px solid #E6E1D7;box-shadow:none;color:#191B18}
.property-photo{height:205px;overflow:hidden;background:#DCE7E5}
.property-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 55%}
.property-card-body{padding:20px}
.property-card-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}
.property-card-heading .context-code{margin:0;color:#7D7C75}
.property-card-heading h4{font-size:18px;line-height:1.5;margin:0}
.property-card-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:7px}
.property-rental-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;white-space:nowrap}
.property-rental-status::before{content:"";width:7px;height:7px;border-radius:50%;background:#209460}
.real-property-card .context-rent{font-size:24px;margin:12px 0 20px}
.property-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.property-facts>div{padding:12px;border:1px solid #E6E1D7;border-radius:14px;display:grid;gap:5px;align-content:start}
.property-facts span{font-size:12px;color:#64665F}.property-facts strong{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.property-facts .property-lease{grid-column:1/-1}
@media(max-width:540px){.property-photo{height:160px}.property-card-body{padding:16px}.property-card-heading h4{font-size:17px}.property-facts{grid-template-columns:1fr}.property-facts>div{padding:10px 12px}.property-card-meta{align-items:flex-start}}

/* Compact the first story card while keeping its property details legible. */
@media(min-width:701px){
  .portfolio-layout{padding:24px 32px;gap:32px}
  .portfolio-copy{gap:36px;padding:8px}
  .portfolio-visual{padding:0 8px}
  .property-photo{height:145px}
  .property-card-body{padding:16px 20px}
  .real-property-card .context-rent{margin:8px 0 14px}
  .property-facts{gap:8px}
  .property-facts>div{padding:9px 12px;gap:3px}
}

/* The card clips the outer corners; the photo-to-content seam stays straight. */
.portfolio-visual .property-photo img{border-radius:0}

/* The cream surface already separates the property card from the blue panel. */
.real-property-card{border:0}

/* One shared inset keeps the story text and property card aligned. */
.portfolio-layout{padding:32px}
.portfolio-copy,.portfolio-visual{padding:0}

/* Second story uses the rental detail structure and demo data. */
.lease-story{background:#FCE3D1;margin-top:24px;scroll-margin-top:32px}
.lease-preview{width:100%;padding:24px;background:var(--bg);border-radius:18px;color:#191B18}
.lease-preview-title>span{font-size:12px;color:var(--muted)}
.lease-preview h4{font-size:23px;line-height:1.4;margin:6px 0 22px}
.lease-preview h5{font-size:16px;margin:0 0 14px}
.lease-section{border-top:1px solid var(--border);padding:20px 0}
.lease-preview dl{margin:0;display:grid;gap:14px}
.lease-preview dt{font-size:12px;color:var(--muted);margin-bottom:4px}
.lease-preview dd{margin:0;font-size:15px;line-height:1.5}
.lease-section-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.paid-label{font-size:12px;color:#187D52;background:#E7EFEB;padding:4px 9px;border-radius:20px}
.lease-preview .lease-payment{grid-template-columns:1fr 1fr;gap:16px}.lease-payment dd{font-weight:700}.lease-payment small{font-size:12px;font-weight:400}
.lease-document{border-top:1px solid var(--border);padding-top:18px;display:flex;justify-content:space-between;gap:16px;font-size:14px}

@media(max-width:540px){.lease-preview{padding:18px}.lease-preview h4{font-size:21px}.lease-preview .lease-payment{grid-template-columns:1fr}.lease-story{margin-top:20px}}

/* Share flow: selection followed by a focused customer-facing collection. */
.share-demo{width:100%;color:#191B18}
.share-selection{padding:16px 20px;background:var(--bg);border-radius:14px;font-size:13px}
.selected-properties{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.selected-properties>span{background:#E7EFEB;color:var(--brand);border-radius:6px;padding:5px 8px;font-size:11px}
.share-flow{text-align:center;font-size:24px;line-height:1;margin:10px 0;color:var(--brand)}
.share-result{background:var(--bg);border-radius:16px;padding:20px}
.share-result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.share-result-heading h4{font-size:20px;margin:0 0 5px}.share-result-heading p{font-size:12px;color:var(--muted);margin:0}.share-link-mark{font-size:24px;color:var(--brand)}
.shared-properties{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.shared-properties article{min-width:0;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.portfolio-visual .shared-properties img{width:100%;height:132px;object-fit:cover;border-radius:0;display:block}
.shared-properties article>div{padding:12px 10px}.shared-properties h5{font-size:14px;line-height:1.4;margin:0 0 7px}.shared-properties p{font-size:11px;line-height:1.6;color:var(--muted);margin:0 0 10px}.shared-properties strong{font-size:17px}.shared-properties small{font-size:10px;font-weight:400}
@media(max-width:540px){.share-selection,.share-result{padding:14px}.shared-properties{grid-template-columns:1fr;gap:12px}.portfolio-visual .shared-properties img{height:120px}.shared-properties h5{font-size:16px}.shared-properties article>div{padding:12px}.share-result-heading h4{font-size:18px}}

/* A single collection preview communicates the sharing outcome. */
.share-caption{display:flex;align-items:center;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border);font-size:13px;color:var(--brand)}
.share-caption svg{flex-shrink:0}
.reminder-story{background:var(--brand);margin-top:28px}
.reminder-preview{width:100%;padding:24px;background:var(--bg);border-radius:18px;color:#191B18}
.reminder-preview-heading{display:flex;align-items:center;gap:10px;color:var(--brand);margin-bottom:24px}
.reminder-preview-heading h4{font-size:20px;line-height:1.5;margin:0}
.reminder-example{border-top:1px solid var(--border);padding:20px 0}
.reminder-audience{font-size:12px;color:var(--brand);margin:0 0 10px}
.reminder-example h5{font-size:17px;line-height:1.5;margin:0 0 14px}
.reminder-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}
.reminder-summary dt{font-size:13px;color:var(--muted);margin-bottom:6px}
.reminder-summary dd{font-size:28px;font-weight:700;margin:0;line-height:1.4}
.reminder-summary small{font-size:13px;font-weight:400}
/* Match status tiles in the app's LINE digest-card and flex-theme. */
.portfolio-visual .line-brand-logo{width:40px;height:40px;flex:0 0 40px;border-radius:0}
.reminder-summary>div{padding:14px;border-radius:12px;min-width:0}
.reminder-summary .summary-overdue{background:#FBDEDC;color:#8E2A2A}
.reminder-summary .summary-expiring{background:#FCE3D1;color:#8E4A1F}
.reminder-summary dt{color:inherit}
@media(max-width:540px){.reminder-summary>div{padding:12px}.reminder-summary dt{font-size:12px}}
.reminder-property{font-size:13px;margin:0 0 12px;color:var(--muted)}
.reminder-amount{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 16px}
.reminder-amount strong{font-size:24px}.reminder-amount span{font-size:12px;color:var(--muted)}
.reminder-note{font-size:11px;line-height:1.7;color:var(--muted);margin:0;padding-top:14px;border-top:1px solid var(--border)}

@media(max-width:540px){.reminder-story{margin-top:20px}.reminder-preview{padding:18px}.reminder-preview-heading h4{font-size:18px}.reminder-summary{gap:12px}}
.portfolio-visual .shared-properties img{height:160px}
@media(max-width:540px){.portfolio-visual .shared-properties img{height:120px}.share-caption{font-size:12px}}

/* Equal card heights and matching bottom offsets keep the stack together on exit. */
.portfolio-feature.stack-ready{padding-bottom:64px}
.stack-ready>.portfolio-layout{position:sticky;top:calc(var(--stack-top,24px) + var(--stack-index)*var(--stack-step,16px));min-height:var(--stack-height);z-index:calc(1 + var(--stack-index));margin-bottom:calc((var(--stack-count) - 1 - var(--stack-index))*var(--stack-step,16px))}
.stack-ready>.portfolio-layout:not(:first-of-type){margin-top:24px}

/* Contract creation is distinct from tenancy tracking. */
.contract-story{background:var(--accent);margin-top:24px;scroll-margin-top:72px}
.contract-demo{width:100%;padding:24px;background:var(--bg);border-radius:18px;color:#191B18}
.contract-demo-header{display:flex;align-items:center;gap:12px;color:var(--brand)}
.contract-demo-header h4{font-size:20px;margin:0}.contract-demo-header .msym{font-size:20px}
.contract-steps{display:flex;gap:8px;justify-content:space-between;font-size:12px;margin:24px 0 18px;color:#656C64}.contract-steps strong{color:var(--brand)}
.contract-paper{padding:24px;background:#fff;border:0;border-radius:4px}.contract-paper .paper-label{font-size:11px;color:#687269;margin:0 0 14px}.contract-paper h5{text-align:center;font-size:19px;margin:0 0 8px}.contract-paper h5+p{text-align:center;font-size:12px;margin:0 0 24px}.contract-paper dl{margin:0;display:grid;gap:14px}.contract-paper dl>div{display:flex;justify-content:space-between;gap:14px;font-size:12px}.contract-paper dt{color:#656C64}.contract-paper dd{margin:0;text-align:right}.paper-signatures{display:flex;gap:32px;margin-top:36px;font-size:11px;color:#656C64}.paper-signatures span{flex:1;text-align:center;border-top:1px solid #CDD5CC;padding-top:8px}.contract-demo-note{font-size:11px;color:#656C64;margin:16px 0 0}
@media(max-width:540px){.contract-demo{padding:18px}.contract-paper{padding:18px}.contract-paper dl>div{display:block}.contract-paper dd{text-align:left;margin-top:4px}.contract-steps{font-size:11px;gap:6px}}

/* Brand palette: lime, cream and forest; keep the LINE preview in its own surface. */
.reminder-story>.portfolio-copy{color:var(--bg)}
.reminder-story>.portfolio-copy .feature-description{color:var(--bg)}

.feature-section-heading>.feature-section-summary{font-size:14px;line-height:24px;color:var(--muted);margin:0;text-align:right}
@media(max-width:700px){.feature-section-heading{align-items:flex-start;flex-direction:column;gap:8px}.feature-section-heading>.feature-section-summary{text-align:left}}

/* A quiet onboarding close after the stacked product stories. */
.getting-started{padding:0 var(--edge) 96px;background:var(--bg)}
.getting-started-inner{max-width:1120px;margin:0 auto;border-top:1px solid #D5D9CE;padding-top:64px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.getting-started-label{font-size:14px;line-height:24px;margin:0 0 24px}
.getting-started h2{font-size:var(--heading-size);font-weight:700;line-height:1.4;margin:0}
.getting-started-description{font-size:16px;line-height:28px;color:var(--muted);margin:24px 0 32px}
.getting-started .primary{gap:24px}
.getting-started-steps{list-style:none;margin:0;padding:0}
.getting-started-steps li{display:grid;grid-template-columns:40px 1fr;gap:24px;padding:32px 0;border-bottom:1px solid #D5D9CE}
.getting-started-steps li:first-child{padding-top:0}
.getting-started-number{font-size:14px;line-height:32px;color:var(--brand)}
.getting-started-steps h3{font-size:22px;line-height:1.5;margin:0 0 8px}
.getting-started-steps p{font-size:16px;line-height:28px;margin:0;color:var(--muted)}
@media(max-width:900px){.getting-started-inner{gap:40px}}
@media(max-width:700px){.getting-started{padding-bottom:64px}.getting-started-inner{grid-template-columns:1fr;gap:48px;padding-top:40px}.getting-started-steps li{gap:16px;padding:24px 0}.getting-started-label{margin-bottom:16px}}

/* Public package draft: no unconfirmed prices or billing formula. */
.pricing{padding:32px var(--edge) 80px;background:var(--bg)}
.pricing-inner{max-width:1120px;margin:auto}
.pricing-heading{text-align:center}.pricing-heading h2{font-size:var(--heading-size);line-height:1.4;margin:0;font-weight:700}.pricing-heading>p{font-size:16px;line-height:28px;color:var(--muted);margin:24px 0 32px}
.billing-cycle{display:flex;justify-content:center;border:0;margin:0 auto 40px;padding:0;gap:8px}.billing-cycle label{position:relative;cursor:pointer}.billing-cycle input{position:absolute;opacity:0;width:1px;height:1px}.billing-cycle label>span{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px 20px;border-radius:8px;background:var(--card);font-size:16px;border:1px solid transparent}.billing-cycle input:checked+span{background:var(--brand);color:var(--bg)}.billing-cycle input:focus-visible+span{outline:3px solid var(--brand);outline-offset:4px}.billing-cycle small{font-size:12px;line-height:20px;background:var(--accent);color:var(--brand);border-radius:4px;padding:0 8px}
.pricing-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.pricing-plan{padding:32px;border-top:2px solid #D5D9CE;background:var(--card);border-radius:0 0 16px 16px}.pricing-plan-paid{background:#EFF9B0;border-top-color:var(--brand)}.plan-audience{font-size:14px;line-height:24px;margin:0 0 16px}.pricing-plan h3{font-size:22px;line-height:1.5;margin:0}.plan-price{font-size:24px;line-height:36px;font-weight:700;margin:24px 0 8px}.plan-price-pending{font-size:20px}.plan-summary{font-size:16px;line-height:28px;min-height:56px;margin:0 0 24px;color:var(--muted)}.pricing-plan ul{margin:0;padding-left:20px;font-size:14px;line-height:28px;color:var(--muted)}.plan-enterprise-note{font-size:14px;line-height:28px;color:var(--muted);margin:0}.billing-detail{margin-top:24px;border-top:1px solid #CAD795;padding-top:16px;font-size:14px;line-height:24px}.billing-detail p{margin:0}.billing-detail dl{margin:12px 0 0}.billing-detail dl>div{display:flex;justify-content:space-between;gap:8px}.billing-detail dd{margin:0}.pricing-sms{font-size:14px;line-height:24px;text-align:center;color:var(--muted);margin:24px 0 0}
@media(max-width:900px){.pricing-plans{gap:16px}.pricing-plan{padding:24px}}
@media(max-width:700px){.pricing{padding-top:16px;padding-bottom:64px}.pricing-plans{grid-template-columns:1fr}.plan-summary{min-height:0}.billing-cycle label>span{padding:12px}.billing-cycle{margin-bottom:24px}}

.plan-contact{margin-top:24px;width:100%}

.pricing-team-note{margin-top:24px;padding-top:24px;border-top:1px solid #D5D9CE;font-size:14px;line-height:24px;color:var(--muted)}.pricing-team-note p{margin:0}.pricing-team-note p+p{margin-top:8px}.pricing-team-note strong{color:var(--brand)}.pricing-team-note button{border:0;padding:0;background:transparent;color:var(--brand);text-decoration:underline;text-underline-offset:4px}

.plan-period{font-size:14px;font-weight:400;white-space:nowrap}.price-vat{font-size:12px;line-height:20px;margin:0 0 20px;color:var(--muted)}.plan-capacity{margin-bottom:24px}.plan-capacity label{display:block;font-size:14px;line-height:24px;margin-bottom:8px}.plan-capacity select{width:100%;min-height:44px;padding:8px 12px;border:1px solid #91A664;border-radius:8px;background:var(--surface);color:var(--brand);font:inherit}.plan-capacity select:focus-visible{outline:3px solid var(--brand);outline-offset:3px}

.portfolio-ai{padding:32px var(--edge) 96px;background:var(--bg)}.portfolio-ai-inner{max-width:1120px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.ai-eyebrow{font-size:14px;line-height:24px;margin:0 0 24px}.portfolio-ai h2{font-size:var(--heading-size);line-height:1.4;margin:0}.ai-description{font-size:16px;line-height:28px;margin:24px 0;color:var(--muted)}.ai-scope{font-size:14px;line-height:24px;color:var(--muted);margin:0}.ai-demo{background:#E7EFEB;border-radius:24px;padding:32px}.ai-demo-header{display:flex;align-items:center;gap:12px;font-size:16px;margin-bottom:32px}.ai-demo-header>span{margin-left:auto;font-size:12px;color:var(--muted)}.ai-demo-conversation{min-height:248px;font-size:16px;line-height:28px}.ai-question{background:var(--accent);padding:12px 16px;border-radius:16px 16px 4px 16px;margin:0 0 16px auto;width:fit-content;max-width:90%}.ai-answer{background:var(--surface);padding:20px;border-radius:4px 16px 16px;max-width:94%;color:var(--muted)}.ai-answer p{margin:0}.ai-answer ul{margin:8px 0;padding-left:20px}.ai-examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.ai-examples button{background:transparent;border:1px solid #9EBAAC;color:var(--brand);font-size:12px;line-height:20px;min-height:40px;padding:8px 12px;border-radius:20px}.ai-examples button[aria-pressed="true"]{background:var(--brand);color:var(--bg);border-color:var(--brand)}.ai-demo-note{font-size:12px;line-height:20px;margin:16px 0 0;color:var(--muted)}.pricing-ai-detail{font-size:14px;line-height:24px;margin-top:24px;border-top:1px solid #D5D9CE;padding-top:16px}.pricing-ai-detail summary{cursor:pointer}.pricing-ai-detail p{color:var(--muted);max-width:800px;margin:12px 0 0}
@media(max-width:900px){.portfolio-ai-inner{gap:32px}.ai-demo{padding:24px}}
@media(max-width:700px){.portfolio-ai{padding-top:16px;padding-bottom:64px}.portfolio-ai-inner{grid-template-columns:1fr;gap:32px}.ai-demo{padding:20px}.ai-demo-header{gap:8px}.ai-demo-conversation{min-height:280px}.ai-answer{max-width:100%}.ai-description br,.ai-scope br{display:none}}

.capacity-hint{font-size:12px;line-height:20px;margin:8px 0 0;color:var(--muted)}

.intro .hero-audience{font-size:14px;line-height:24px;margin:0 0 8px;color:var(--brand)}.supported-types,.intro .supported-types{font-size:12px;line-height:20px;margin:12px 0 0;color:var(--muted)}

/* Two choices; flexible paid capacity instead of feature tiers. */
.pricing-plans{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.pricing-plan-paid .plan-capacity{margin-top:24px}.capacity-controls{display:flex;align-items:center;gap:12px}.capacity-controls input{width:88px;min-height:48px;border:1px solid #91A664;border-radius:8px;background:var(--surface);color:var(--brand);font:inherit;text-align:center}.capacity-controls button{width:44px;height:44px;border:1px solid #91A664;border-radius:8px;background:var(--surface);color:var(--brand);font-size:20px}.capacity-controls button:disabled{opacity:.4;cursor:default}#managed-properties-range{display:block;width:100%;margin:16px 0;accent-color:var(--brand);min-height:32px}.capacity-presets{display:flex;flex-wrap:wrap;gap:8px}.capacity-presets button{min-width:40px;min-height:40px;border:1px solid #91A664;background:transparent;color:var(--brand);border-radius:8px;font:inherit;font-size:14px}.capacity-presets button[aria-pressed="true"]{background:var(--brand);color:var(--bg)}.pricing-plan-paid .billing-detail{margin:0 0 24px}.pricing-custom{text-align:center;font-size:14px;line-height:24px;margin:24px 0 32px}.pricing-custom button{border:0;background:transparent;color:var(--brand);padding:0;text-decoration:underline;text-underline-offset:4px}.pricing-faq{max-width:1120px;margin:auto}.usage-table-wrap{overflow-x:auto}.usage-table{width:100%;border-collapse:collapse;font-size:14px;line-height:24px;margin-top:16px;text-align:left}.usage-table caption{text-align:left;padding-bottom:12px;color:var(--muted)}.usage-table th,.usage-table td{padding:12px 16px 12px 0;border-bottom:1px solid #D5D9CE;vertical-align:top}.usage-table th{font-weight:500}.sms-addons{border-top:1px solid #D5D9CE;margin-top:32px;padding-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}.sms-addons h3{font-size:22px;line-height:1.5;margin:0 0 8px}.sms-addons p{font-size:14px;line-height:24px;margin:0;color:var(--muted)}.sms-packs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;font-size:16px;line-height:28px}.sms-packs span{border-left:1px solid #D5D9CE;padding-left:16px}.sms-packs strong{display:block;color:var(--brand)}.sms-addons>.secondary{justify-self:end}
@media(max-width:700px){.pricing-plans{grid-template-columns:1fr}.sms-addons{grid-template-columns:1fr}.sms-addons>.secondary{justify-self:start}.sms-packs{gap:8px}.sms-packs span{padding-left:8px}.usage-table th,.usage-table td{padding-right:8px;font-size:12px}}

.pricing-plan{min-width:0}.capacity-controls{gap:8px}.capacity-controls input{min-width:0;width:72px}.capacity-controls button{flex-shrink:0}

/* Restore the original contact footer with real, static demo screenshots. */
.marketing-footer{display:block;background:var(--product-bg);color:var(--bg);padding:0 var(--edge) 64px;overflow:hidden}.marketing-footer-inner{max-width:1280px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:56px;align-items:start}.footer-contact{padding-top:64px}.marketing-footer span{color:inherit}.footer-brand{display:inline-flex;align-items:center;gap:12px;font-size:26px;font-weight:700;margin-bottom:24px}.marketing-footer .footer-brand-accent{color:var(--accent)}.footer-contact address{font-style:normal;font-size:14px;line-height:24px;color:#C7D6CE}.footer-contact-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.footer-contact-row .msym{font-size:20px;line-height:24px;color:var(--accent)}.footer-legal{display:flex;flex-wrap:wrap;gap:8px 16px;border-top:1px solid #3E6357;padding-top:20px;margin-top:24px;font-size:12px;line-height:20px;color:#BDCEC5}.footer-copyright{font-size:12px;line-height:24px;color:#BDCEC5;margin:16px 0 0}.footer-copyright img{display:inline-block;vertical-align:middle;margin-left:4px;object-fit:contain}.marketing-footer a:hover{text-decoration:underline;text-underline-offset:4px}.marketing-footer a.footer-contact-row:hover{text-decoration:none}.marketing-footer a.footer-contact-row:hover>span:not(.msym){text-decoration:underline;text-underline-offset:4px}.marketing-footer a:focus-visible{outline-color:var(--accent)}.footer-screens{position:relative;aspect-ratio:1.6;min-width:0}.footer-screens img{position:absolute;width:92%;height:auto;border:0;border-radius:12px;box-shadow:0 16px 40px rgb(0 0 0 / 12%);display:block}.footer-screen-back{top:-64px;right:0}.footer-screen-front{bottom:0;left:0}
@media(max-width:900px){.marketing-footer-inner{gap:32px;grid-template-columns:1fr 1fr}.marketing-footer{padding-bottom:48px}.footer-contact{padding-top:48px}.footer-brand{font-size:24px}}
@media(max-width:700px){.marketing-footer-inner{grid-template-columns:1fr;gap:40px}.footer-screens{order:-1;max-width:560px;width:100%;margin:auto;aspect-ratio:1.5}.footer-screen-back{top:-32px}.footer-contact{padding-top:0}.footer-legal{gap:8px 12px}}

/* Complete the pricing story before answering purchase questions. */
.pricing-faq{margin-top:40px}.faq-heading{font-size:22px;line-height:1.5;margin:0 0 24px}
#contact{width:480px;max-height:calc(100dvh - 32px);overflow:auto}#contact h2{font-size:26px;padding-right:24px}.sales-qr{display:block;width:160px;height:160px;object-fit:contain;margin:16px auto}#sales-request label{display:block;font-size:14px;margin-bottom:8px}#sales-message{display:block;width:100%;font:inherit;font-size:16px;line-height:1.6;padding:12px;border:1px solid var(--border);border-radius:8px;resize:vertical;margin-bottom:12px}#sales-request p,#sales-status{font-size:13px;line-height:1.6}.sales-line{display:flex;justify-content:center;margin-top:16px}.sales-copy-id{display:block;margin:16px auto 0;background:none;border:0;color:var(--brand);text-decoration:underline;padding:12px}#sales-status:empty{display:none}
@media(max-width:700px){.portfolio-layout{padding:20px;gap:20px}.portfolio-copy{gap:12px}.feature-kicker{margin:0}.portfolio-copy h3{margin-bottom:12px}.feature-description{line-height:1.65}.contract-demo,.lease-preview,.reminder-preview{padding:16px}.shared-properties{grid-template-columns:1fr}.shared-properties article{display:grid;grid-template-columns:88px minmax(0,1fr)}.portfolio-visual .shared-properties img{width:88px;height:100%;min-height:112px}.shared-properties article>div{padding:10px}.shared-properties h5{font-size:15px}.shared-properties p{margin-bottom:6px}.shared-properties strong{font-size:16px}#contact{padding:24px}}

/* Lime opening: original copy alongside two static mobile captures. */
.header{background:var(--accent);max-width:none;padding-inline:max(var(--edge),calc((100vw - 1280px)/2))}.header .login{background:var(--brand);color:var(--bg)}
.hero{max-width:none;background:var(--accent);padding:40px max(var(--edge),calc((100vw - 1280px)/2)) 64px;overflow:hidden}.hero-grid{max-width:1280px;margin:auto;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;align-items:center;container-type:normal}.hero-copy{min-width:0}.hero .eyebrow{margin-bottom:24px}.hero .intro{margin-top:28px;padding:0}.hero .intro p{color:var(--brand);margin-bottom:20px}.hero .intro .hero-audience{font-size:16px;margin-bottom:12px}.hero .primary{background:var(--brand);color:var(--bg)}.hero .primary .msym{background:none;color:inherit}.hero .secondary{background:transparent;border:1px solid var(--brand)}.hero .secondary:hover{background:rgb(14 60 47 / 8%)}
.hero-phones{position:relative;width:100%;max-width:384px;aspect-ratio: .68;justify-self:end}.hero-phone{position:absolute;width:62%;background:#101410;border:8px solid #101410;border-radius:40px;overflow:hidden;box-shadow:0 12px 28px rgb(14 60 47 / 12%)}.hero-phone::after{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:28%;height:18px;border-radius:20px;background:#101410}.hero-phone-back{top:0;right:0}.hero-phone-front{bottom:0;left:0}.phone-screen{overflow:hidden;background:var(--bg);padding-top:32px}.phone-screen img{display:block;width:100%;height:auto}.phone-pending{padding:32px 16px;font-size:18px;line-height:1.7;color:var(--brand)}.phone-pending small{font-size:12px;color:var(--muted)}
@media(max-width:1000px) and (min-width:761px){.hero-grid{gap:24px;grid-template-columns:1.15fr 1fr}.hero .actions{flex-wrap:wrap}.hero-phone{border-width:6px;border-radius:30px}}
@media(max-width:760px){.hero{padding-top:32px;padding-bottom:40px}.hero-grid{grid-template-columns:1fr;gap:36px}.hero .intro{margin-top:20px}.hero .eyebrow{font-size:14px;margin-bottom:20px}.hero-phones{max-width:300px;justify-self:center;aspect-ratio:.68}.hero-phone{border-width:6px;border-radius:30px}.hero-phone::after{height:12px;top:6px}.phone-screen{padding-top:24px}.hero .actions{flex-wrap:wrap}}

.headline-phrase{white-space:nowrap}

/* Let the frame follow the screenshot's natural height, including its bottom navigation. */
#contact{text-align:center;padding:40px;scrollbar-gutter:stable}#contact h2{margin:0 0 20px;padding:0 24px;line-height:1.4}#contact>p{margin:0;line-height:1.8}.sales-qr{margin:28px auto 32px;width:180px;height:180px}#contact .sales-line{margin-top:0;min-height:56px;background:var(--brand);color:var(--bg);padding:14px 20px;gap:12px}#contact .sales-line:hover{background:#0A2E24}#contact .sales-line .msym{background:none;color:inherit;width:20px;height:20px;border-radius:0}#contact .sales-copy-id{margin:16px auto 0;min-height:44px}#contact .close{top:16px;right:16px;width:36px;height:36px;display:grid;place-items:center}#sales-request{margin:0 0 24px}#sales-message{text-align:left}#sales-request .secondary{background:transparent;border:1px solid var(--brand);min-height:44px}#sales-request p{margin:12px 0 0}#contact #sales-status:not(:empty){margin-top:16px}
@media(max-width:540px){#contact{padding:32px 24px 24px}#contact h2{font-size:24px;margin-bottom:16px}.sales-qr{width:160px;height:160px;margin:24px auto}#contact .sales-line{font-size:14px;padding:12px;min-height:52px}}

/* Opening layers: demo covers the hero, then workload covers the demo. */
.opening-stack{position:relative;isolation:isolate}.opening-panel{background:var(--accent)}
@media(min-width:901px) and (min-height:720px){
  .opening-panel{height:100svh;display:flex;flex-direction:column;position:sticky;top:0;z-index:0}
  .opening-panel .header{flex-shrink:0;width:100%;margin:0}
  .opening-panel .hero{flex:1;width:100%;min-height:0;display:flex;align-items:center;padding-top:32px;padding-bottom:48px}
  .opening-panel .hero-grid{width:100%}
  .opening-panel .hero-phones{max-width:min(384px,calc((100svh - 180px)*.68))}
  .opening-stack>.product{height:100svh;position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:center;scroll-margin-top:0}
  .opening-stack>.workload{position:relative;z-index:2}
  .opening-stack .screen{width:100%;max-width:min(1120px,calc((100svh - 128px)*1.875));margin:0}
}
@media(prefers-reduced-motion:reduce){.opening-panel,.opening-stack>.product{position:relative;top:auto}}

/* Bring the phone pair closer to the hero copy on desktop. */
@media(min-width:1001px){.hero-phones{translate:-64px 0}}


/* Original navigation: centered links and a lime push drawer. */
.header{position:relative;z-index:2;gap:24px}.header .desktop-section-nav{gap:24px;font-size:14px;white-space:nowrap}.desktop-nav-actions{display:flex;gap:10px;white-space:nowrap;font-size:14px}.nav-login,.nav-start{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border-radius:12px;border:1px solid var(--brand);font-weight:600}.nav-start{background:var(--brand);color:var(--bg)}.nav-login:hover{background:rgb(14 60 47 / 8%)}.nav-start:hover{background:#0A2E24}.desktop-section-nav a:hover{text-decoration:underline;text-underline-offset:4px}.drawer-toggle,#mobile-drawer{display:none}
#workload,#pricing,#faq,#getting-started,#footer-contact{scroll-margin-top:24px}
@media(max-width:960px){
 body{overflow-x:clip;--drawer-width:min(80vw,calc(100vw - 88px),320px)}
 .header .desktop-section-nav,.desktop-nav-actions{display:none}
 .drawer-toggle{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--brand);border-radius:8px;background:transparent;color:var(--brand);flex-shrink:0}.drawer-toggle .msym{font-size:20px}
 #main{transition:transform 280ms cubic-bezier(.2,.8,.2,1)}.drawer-open{overflow:hidden}.drawer-open #main{transform:translateX(calc(-1 * var(--drawer-width)))}
 #mobile-drawer{display:block;position:fixed;inset:0 0 0 auto;width:var(--drawer-width);background:var(--accent);color:var(--brand);border-left:1px solid rgb(14 60 47 / 15%);z-index:20;padding:64px 20px 24px;overflow-y:auto;visibility:hidden;transform:translateX(100%);transition:transform 280ms cubic-bezier(.2,.8,.2,1),visibility 280ms}
 .drawer-open #mobile-drawer{visibility:visible;transform:translateX(0)}
 #mobile-drawer nav{margin:0 -20px}#mobile-drawer nav a{display:block;padding:14px 20px;border-bottom:1px solid rgb(14 60 47 / 12%);font-size:18px;line-height:28px}#mobile-drawer nav a:hover{background:rgb(14 60 47 / 6%)}
 .drawer-actions{display:grid;gap:10px;padding-top:24px}.drawer-actions a{min-height:48px}
}
@media(prefers-reduced-motion:reduce){#main,#mobile-drawer{transition:none}}

@font-face{font-family:MenuSharp;src:url('/marketing-static/a0ab3543/assets/material-symbols-menu.ttf') format('truetype');font-weight:400;font-style:normal;font-display:block}.drawer-toggle[aria-expanded="false"] .msym{font-family:MenuSharp;text-transform:none}


@media(min-width:961px) and (max-width:1200px){
 .header{gap:16px;padding-inline:32px}.header .desktop-section-nav{gap:16px;font-size:14px}.desktop-nav-actions{gap:8px}.desktop-nav-actions a{padding:10px 14px}.header .brand{font-size:18px;gap:8px}
}

/* Reuse the original notification pop and travelling connector sequence. */
.slip-flow{padding:32px var(--edge) 80px;background:var(--bg)}.slip-flow-inner{max-width:1120px;margin:auto}.slip-flow-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px}.slip-flow h2{font-size:24px;line-height:1.5;margin:0}.slip-flow-heading p{font-size:16px;line-height:28px;color:var(--muted);margin:12px 0 0}
.slip-sequence{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr) 40px minmax(0,1fr);list-style:none;padding:0;margin:0;align-items:start}.slip-step{min-width:0}.slip-notification{display:flex;align-items:center;gap:10px;min-height:100px;padding:16px;border-radius:24px;background:rgba(245,243,236,.9)}.slip-avatar{position:relative;display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--brand);color:white;font-size:16px;font-weight:600}.slip-avatar img[width="16"]{position:absolute;right:-3px;bottom:-3px}.slip-avatar-brand{background:none}.slip-avatar-brand img:first-child,.slip-avatar-photo img:first-child{border-radius:50%;object-fit:cover}.slip-message{flex:1;min-width:0}.slip-message strong{font-size:14px;color:#1A1A17}.slip-message p{font-size:14px;line-height:22px;margin:4px 0 0;color:#333}.slip-time{display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:12px;color:var(--muted)}.slip-time .msym{font-size:20px;color:var(--brand)}.slip-step h3{font-size:14px;line-height:24px;text-align:center;margin:16px 0 0;font-weight:600}.slip-connector{position:relative;height:100px;overflow:hidden;display:flex;align-items:center}.slip-connector:before{content:"";width:100%;height:1px;background:var(--border)}.slip-connector .msym{position:absolute;right:0;font-size:20px;color:#B8C3B6}
@keyframes slip-row-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.04)}100%{opacity:1;transform:scale(1)}}
@keyframes slip-row-arrow{from{opacity:0;translate:-32px 0}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:no-preference){.slip-sequence.is-playing .slip-notification{animation:slip-row-pop .46s ease-out both;animation-delay:var(--step-delay)}.slip-sequence.is-playing h3{animation:slip-row-pop .46s ease-out both;animation-delay:calc(var(--step-delay) + .34s)}.slip-sequence.is-playing .slip-connector .msym{animation:slip-row-arrow .7s ease-out both;animation-delay:var(--arrow-delay)}}
@media(max-width:700px){.slip-flow{padding-top:16px;padding-bottom:64px}.slip-flow-heading{align-items:flex-start;flex-direction:column;gap:16px}.slip-sequence{grid-template-columns:1fr;max-width:400px;margin:auto}.slip-notification{min-height:88px}.slip-connector{height:40px;justify-content:center}.slip-connector:before{width:1px;height:100%}.slip-connector .msym{right:auto;rotate:90deg;bottom:0}.slip-step h3{margin-top:12px}@keyframes slip-row-arrow{from{opacity:0;translate:0 -28px}to{opacity:1;translate:0 0}}}

/* Equal-width header actions; drawer actions share the available width. */
.desktop-nav-actions > a {width:132px;padding-inline:12px}
.drawer-actions > a {width:100%}

/* Narrow phones need full-width actions to avoid splitting Thai labels. */
.hero .actions > a,.hero .actions > button {white-space:nowrap}
@media(max-width:380px) {
  .hero .actions {display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  .hero .actions > a,.hero .actions > button {width:100%;min-height:56px}
}

/* Bring the two hero phones closer vertically while preserving their overlap. */
.hero-phone-back {top:3%}
.hero-phone-front {bottom:3%}

/* Match navigation and hero action dimensions and icon placement. */
.desktop-nav-actions > a,.hero .actions > a,.hero .actions > button {
  width:156px;min-height:48px;border-radius:10px;padding:8px 12px;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.nav-login,.nav-start {font-weight:400;gap:12px}
.nav-login .msym,.nav-start .msym {font-size:20px;width:20px;height:20px;flex-shrink:0}
.drawer-actions > a {min-height:48px;justify-content:space-between;padding:8px 12px}
@media(min-width:961px) and (max-width:1100px) {
  .header {gap:12px;padding-inline:24px}
  .header .desktop-section-nav {gap:12px}
}
@media(max-width:760px) {
  .hero .actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .hero .actions > a,.hero .actions > button {width:100%;padding-inline:12px;gap:8px}
}
@media(max-width:380px) {.hero .actions {grid-template-columns:minmax(0,1fr);gap:12px}}

/* Compact header actions with a consistent label-to-icon gap. */
.desktop-nav-actions > a {width:144px;justify-content:center;gap:8px;padding-inline:12px}

/* Compact sample agreement rows and fictional signature artwork. */
.contract-paper h5+p{margin-bottom:16px}
.contract-paper dl{gap:0}
.contract-paper dl>div{display:grid;grid-template-columns:minmax(88px, .8fr) minmax(0, 1.2fr);gap:12px;padding:10px 0;border-bottom:1px solid #edf0eb}
.contract-paper dd{text-align:left}
.paper-signatures{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:0;margin-top:18px}
.paper-signatures img{display:block;grid-column:1/-1;width:100%;height:auto;max-height:90px;object-fit:contain}
.paper-signatures span{padding-top:6px}
@media(max-width:480px){.contract-paper{padding:18px}.contract-paper dl>div{grid-template-columns:88px minmax(0,1fr);gap:8px}.paper-signatures{column-gap:20px;margin-top:14px}}

/* Give the LINE assistant its own quiet section band. */
.portfolio-ai{background:#E7EFEB;padding-top:72px;padding-bottom:72px}
.portfolio-ai .ai-demo{background:#fff}
.portfolio-ai .ai-answer{background:#F3F6F3}
@media(max-width:700px){.portfolio-ai{padding-top:48px;padding-bottom:48px}}

/* Tighter nested spacing for mobile stacked stories. */
@media(max-width:700px){
 .portfolio-feature{padding-left:16px;padding-right:16px}
 .portfolio-layout{padding:16px;gap:16px;border-radius:20px}
 .portfolio-copy{gap:8px}
 .portfolio-copy h3{margin-bottom:8px}
 .share-result,.contract-demo,.lease-preview,.reminder-preview{padding:12px}
 .share-result-heading{margin-bottom:16px}
 .stack-ready>.portfolio-layout:not(:first-of-type){margin-top:16px}
}

@media(max-width:700px){.portfolio-layout{align-content:start}.portfolio-copy{justify-content:flex-start}}

/* Match the assistant preview inset to the other product previews. */
.ai-demo{padding:24px}
@media(max-width:700px){
 .ai-demo{padding:12px;border-radius:18px}
 .ai-demo-header{margin-bottom:24px}
 .ai-answer{padding:16px}
}

/* iPhone 18 Pro body ratio (71.9 × 150 mm); artwork keeps its native ratio. */
.hero-phones{container-type:inline-size}
.hero-phone{aspect-ratio:71.9 / 150;border-width:1.35cqw;border-radius:10cqw}
.hero-phone .phone-screen{height:100%;padding-top:8cqw;position:relative}
.hero-phone .phone-screen img{width:100%;height:auto;position:absolute;bottom:0;left:0}
.hero-phone::after{width:27%;height:4.2cqw;top:2.2cqw;border-radius:3cqw}

/* Align the desktop hero copy and phone group with the content guides. */
@media(min-width:1001px){
 .hero-grid{max-width:1120px}
 .hero-phones{translate:none}
}

/* Consistent, more compact desktop story illustrations. */
@media(min-width:701px){
 .portfolio-layout{padding:24px;gap:32px}
 .portfolio-visual{align-items:stretch}
 .portfolio-visual>div{width:100%;min-height:var(--preview-height,0px);padding:20px;border-radius:18px}
 .portfolio-copy{gap:32px}
 .contract-steps{margin:16px 0 12px}
 .contract-paper{padding:16px}
 .contract-paper .paper-label{margin-bottom:10px}
 .contract-paper h5+p{margin-bottom:12px}
 .contract-paper dl>div{padding:8px 0}
 .paper-signatures{margin-top:12px}
 .paper-signatures img{max-height:60px}
 .contract-demo-note{margin-top:12px}
}

@media(min-width:701px){.portfolio-visual>.share-demo{padding:0;display:flex}.share-demo>.share-result{width:100%;padding:20px;border-radius:18px}}

/* Share the story preview's desktop column and dimensions with the AI demo. */
@media(min-width:701px){
 .portfolio-ai-inner{grid-template-columns:1fr 1.1fr;gap:32px;padding-inline:24px}
 .portfolio-ai .ai-demo{min-height:var(--ai-preview-height,0px);padding:20px;border-radius:18px;display:flex;flex-direction:column}
 .portfolio-ai .ai-examples{margin-top:auto;padding-top:24px}
}

/* Common closing rows for the three product examples. */
.share-result,.lease-preview,.contract-demo{display:flex;flex-direction:column}
.preview-footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);margin-top:auto;padding-top:16px;font-size:14px;line-height:1.5;color:var(--brand)}
.preview-footer>div{min-width:0;display:flex;flex-direction:column;gap:4px}
.preview-footer small{font-size:12px;color:#656C64}
.preview-footer .msym{flex-shrink:0;font-size:20px}
.preview-footer-amount{margin-left:auto;white-space:nowrap}
.share-result .shared-properties,.lease-preview .lease-section:last-of-type,.contract-demo .contract-paper{margin-bottom:20px}
.share-link-demo{flex-wrap:wrap;gap:8px}
.demo-link-text{font-size:12px;overflow-wrap:anywhere}
.share-link-demo .demo-copy-label{margin-left:auto;border:1px solid #B8C8BD;background:transparent;color:var(--brand);border-radius:8px;padding:8px 10px;font-size:12px;min-height:40px;display:inline-flex;align-items:center;cursor:default}
@media(max-width:700px){.preview-footer{margin-top:20px;padding-top:12px}.share-result .shared-properties,.contract-demo .contract-paper{margin-bottom:0}}

/* Align footer icons with the first text line in two-line summaries. */
.preview-footer>.msym{align-self:flex-start;line-height:20px}

/* Give the pricing heading room after the colored AI section. */
.pricing{padding-top:72px}
@media(max-width:700px){.pricing{padding-top:48px}}

/* Each half of the signature artwork is centered over its own signing line. */
.paper-signatures .signature-art{width:min(100%,90px);height:60px;justify-self:center;background-image:url('/marketing-static/a0ab3543/assets/demo-signatures.png');background-repeat:no-repeat;background-size:200% 100%}
.paper-signatures .signature-landlord{background-position:left center}
.paper-signatures .signature-tenant{background-position:right center}

/* Compact pricing comparison: one capacity control and aligned decisions. */
.pricing .billing-cycle{width:fit-content;max-width:100%;gap:4px;padding:4px;background:#EFEEE7;border-radius:12px;margin-bottom:32px}
.pricing .billing-cycle label>span{min-height:44px;padding:8px 16px;background:transparent;gap:8px}
.pricing .billing-cycle input:checked+span{background:var(--brand);color:var(--bg)}
.pricing .pricing-plans{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.pricing .pricing-plan{padding:32px;border:1px solid #D5DED6;border-radius:20px;background:#FCFCF9}
.pricing .pricing-plan-paid{border:2px solid var(--brand);padding:31px;background:#F4F7F2}
.pricing .plan-audience{margin:0 0 8px;font-size:14px}
.pricing .plan-heading h3{font-size:24px;line-height:1.5}
.pricing .plan-price-block{margin-top:24px}
.pricing .plan-price{font-size:40px;line-height:1.3;margin:0 0 8px;letter-spacing:-.5px}
.pricing .plan-period{font-size:14px;letter-spacing:0}
.pricing .price-vat{margin:0;font-size:12px}
.pricing .plan-capacity{margin:24px 0 20px;min-height:88px}
.pricing .capacity-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pricing .plan-capacity label{margin:0;font-size:14px}
.pricing .capacity-controls{gap:4px}
.pricing .capacity-controls button{width:40px;height:44px;border-color:#CBD6CC;background:#fff;cursor:pointer}
.pricing .capacity-controls input{width:56px;height:44px;min-height:44px;border-color:#CBD6CC;background:#fff;appearance:textfield}
.pricing .capacity-controls input::-webkit-inner-spin-button,.pricing .capacity-controls input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.pricing .capacity-controls>span{font-size:14px;margin-left:4px}
.pricing .plan-free-capacity>p:first-child{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;font-size:14px}
.pricing .plan-free-capacity strong{font-size:16px}
.pricing .plan-contact{margin:0;min-height:48px;border-radius:12px;font-size:16px;padding:12px 20px;justify-content:center}
.pricing .plan-free-capacity+.plan-contact{border:1px solid var(--brand);background:transparent}
.pricing .pricing-plan ul{margin-top:24px;padding:20px 0 0 20px;border-top:1px solid #DCE3DA;font-size:14px;line-height:1.75}
.pricing .pricing-plan li+li{margin-top:8px}
.pricing .pricing-plan-paid .billing-detail{margin:20px 0 0;padding-top:16px;border-color:#DCE3DA;font-size:12px}
.pricing .pricing-custom{font-size:12px;margin:20px 0 40px}
@media(max-width:800px){.pricing .capacity-row{align-items:flex-start;flex-direction:column;gap:8px}.pricing .plan-capacity{min-height:116px}}
@media(max-width:700px){
 .pricing .pricing-plans{grid-template-columns:1fr;gap:20px}
 .pricing .pricing-plan{padding:24px;border-radius:16px}
 .pricing .pricing-plan-paid{padding:23px}
 .pricing .plan-capacity{min-height:0}
 .pricing .capacity-row{flex-direction:row;align-items:center}
 .pricing .plan-price{font-size:32px}
 .pricing .billing-cycle label>span{font-size:14px;padding:8px 12px}
}
@media(max-width:360px){.pricing .capacity-row{flex-direction:column;align-items:flex-start}}

.pricing .pricing-plan-paid .plan-contact{background:var(--brand);color:var(--bg);border:1px solid var(--brand)}
.pricing .pricing-plan-paid .plan-contact:hover{background:#0A2E24}

/* Match the app Slider: an 8px filled track and a 24px round thumb. */
.pricing #managed-properties-range{appearance:none;-webkit-appearance:none;width:100%;height:24px;min-height:24px;margin:12px 0 4px;border:0;border-radius:999px;cursor:pointer;background:linear-gradient(to right,var(--brand) 0%,var(--brand) var(--range-fill,0%),#D5DED6 var(--range-fill,0%),#D5DED6 100%) center / 100% 8px no-repeat}
.pricing #managed-properties-range::-webkit-slider-runnable-track{height:24px;background:transparent;border-radius:999px}
.pricing #managed-properties-range::-moz-range-track{height:24px;background:transparent;border:0;border-radius:999px}
.pricing #managed-properties-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border:3px solid #F4F7F2;border-radius:50%;background:var(--brand)}
.pricing #managed-properties-range::-moz-range-thumb{box-sizing:border-box;width:24px;height:24px;border:3px solid #F4F7F2;border-radius:50%;background:var(--brand)}
.pricing #managed-properties-range:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
@media(min-width:701px){.pricing .plan-capacity{min-height:128px}}
@media(min-width:701px) and (max-width:800px){.pricing .plan-capacity{min-height:156px}}

/* Equal billing options with the savings badge inside the yearly option. */
.pricing .billing-cycle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:416px;max-width:100%;gap:4px;padding:4px;border-radius:16px;margin:0 auto 32px}
.pricing .billing-cycle label{min-width:0}
.pricing .billing-cycle label>span{justify-content:center;min-height:48px;padding:8px 12px;font-size:16px;line-height:24px;border-radius:12px;gap:8px;white-space:nowrap}
.pricing .billing-cycle small{font-size:12px;line-height:20px;padding:0 8px}
@media(max-width:480px){.pricing .billing-cycle label>span{font-size:14px;padding:8px 4px;gap:6px}.pricing .billing-cycle small{padding:0 4px}}

/* A compact pricing rhythm and rounded, labeled capacity track. */
.pricing .pricing-plan{padding:24px}
.pricing .pricing-plan-paid{padding:23px}
.pricing .plan-audience{margin-bottom:4px}
.pricing .plan-price-block{margin-top:16px}
.pricing .plan-price{font-size:32px;margin-bottom:4px}
.pricing .plan-capacity{margin:16px 0;min-height:124px}
.pricing .pricing-plan ul{margin-top:16px;padding-top:16px}
.pricing .pricing-plan li+li{margin-top:4px}
.pricing .pricing-plan-paid .billing-detail{margin-top:16px;padding-top:12px}
.pricing .billing-detail dl{margin-top:8px}
.pricing #managed-properties-range{background:none;height:24px;margin:8px 0 0}
.pricing #managed-properties-range::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:linear-gradient(to right,var(--brand) 0%,var(--brand) var(--range-fill,0%),#D5DED6 var(--range-fill,0%),#D5DED6 100%)}
.pricing #managed-properties-range::-webkit-slider-thumb{margin-top:-8px}
.pricing #managed-properties-range::-moz-range-track{height:8px;border-radius:999px;background:linear-gradient(to right,var(--brand) 0%,var(--brand) var(--range-fill,0%),#D5DED6 var(--range-fill,0%),#D5DED6 100%)}
.capacity-scale{position:relative;height:20px;margin:2px 12px 0;font-size:12px;line-height:20px;color:#767D74}
.capacity-scale span{position:absolute;left:var(--tick);transform:translateX(-50%)}
.pricing .capacity-hint{margin-top:4px}
@media(min-width:701px) and (max-width:800px){.pricing .plan-capacity{min-height:160px}}
@media(max-width:700px){.pricing .plan-capacity{min-height:0}.pricing .pricing-plan{padding:20px}.pricing .pricing-plan-paid{padding:19px}}

/* Shared card rhythm stays stable across billing cycles. */
.pricing .pricing-plans{align-items:stretch;grid-auto-rows:1fr}
.pricing .pricing-plan{display:flex;flex-direction:column}
.pricing .plan-heading{min-height:64px}
.pricing .plan-cycle-note{font-size:12px;line-height:20px;margin:8px 0 0;min-height:40px;max-width:100%}
.pricing .plan-capacity{min-height:140px}
.pricing .pricing-plan ul{flex:1}
.pricing .capacity-controls{gap:8px}
.pricing .capacity-controls button{width:44px;height:44px;border:0;border-radius:50%;background:#E3EBE5}
.pricing .capacity-number{display:flex;align-items:center;gap:4px;border:1px solid #B8CBBE;border-radius:12px;background:#fff;padding-right:10px}
.pricing .capacity-number input{width:54px;border:0;background:transparent;border-radius:12px}
.pricing .capacity-number span{font-size:14px}
@media(max-width:900px){.pricing .capacity-row{flex-direction:column;align-items:flex-start;gap:8px}.pricing .plan-capacity{min-height:176px}}
@media(max-width:700px){.pricing .plan-heading{min-height:72px}}

/* Slider first, with one precise-entry field and less reserved space. */
.pricing .plan-heading{min-height:0}
.pricing .plan-cycle-note{margin-top:4px;min-height:40px}
.pricing .plan-price-block{margin-top:12px}
.pricing .plan-capacity{margin:8px 0 16px;min-height:0}
.capacity-heading{display:flex;justify-content:space-between;align-items:center;font-size:14px;line-height:24px}
.capacity-heading strong{font-size:16px}
.capacity-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.pricing .capacity-entry label{font-size:12px;margin:0}
.pricing .capacity-number{width:140px;min-width:0}
.pricing .capacity-number input{flex:1;min-width:0;height:44px;font:inherit;font-size:14px;text-align:left;padding-left:12px;appearance:textfield}
.pricing .capacity-number input::-webkit-inner-spin-button,.pricing .capacity-number input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.pricing .capacity-number span{font-size:14px}
.pricing .plan-free-capacity{flex:1}
.pricing .pricing-plan ul{flex:0 0 auto;min-height:110px}
@media(max-width:700px){.pricing .plan-heading{min-height:72px}.pricing .pricing-plan ul{min-height:140px}}

/* Soft green step controls complement the card and slider. */
.pricing .capacity-entry .capacity-controls{display:flex;align-items:center;gap:8px}
.pricing .capacity-entry .capacity-controls button{width:32px;height:32px;border:0;border-radius:50%;background:#E3EBE5;color:var(--brand)}
.pricing .capacity-entry .capacity-controls button:hover:not(:disabled){background:#D3E2D7}
.pricing .capacity-entry .capacity-number{width:108px;border-color:#B8CBBE}
@media(max-width:480px){.pricing .capacity-entry{flex-wrap:wrap;gap:8px}.pricing .capacity-entry label{flex-basis:100%}}

/* The free plan mirrors the paid capacity section with a static summary. */
.free-capacity-summary{background:#F5F4EF;border-radius:12px;padding:16px;margin:8px 0;font-size:14px;line-height:24px}
.pricing .free-capacity-summary strong{font-size:14px;font-weight:600}
.free-capacity-summary p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:20px}

/* Match the free summary to the slider and number-entry block. */
.free-capacity-summary{min-height:100px;margin-bottom:4px;display:flex;flex-direction:column;justify-content:center}

/* Balanced free-plan allowances within the shared preview height. */
.free-capacity-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:16px}
.free-capacity-summary>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.free-capacity-summary>div+div{border-left:1px solid #E2DFD6;padding-left:16px}
.free-capacity-summary span{font-size:12px;line-height:20px;color:var(--muted)}
.pricing .free-capacity-summary strong{font-size:16px;line-height:24px;font-weight:500}

/* Keep pricing details beside the price without expanding either card. */
.plan-price-meta{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.pricing .price-detail-link{font:inherit;color:var(--brand);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#A4B7AD}
.price-detail-link:hover{text-decoration-color:currentColor}
.price-detail-dialog{width:480px;padding:28px;border-radius:16px;max-height:calc(100dvh - 32px);overflow:auto}
.price-detail-dialog h2{font-size:22px;line-height:32px;margin:0 32px 4px 0}
.price-detail-dialog .close{display:grid;place-items:center;width:36px;height:36px;top:16px;right:16px;cursor:pointer;border-radius:12px}
.price-detail-dialog .breakdown-context{font-size:14px;color:var(--muted);margin:0 0 24px}
.receipt-lines{margin:0;font-size:14px;line-height:24px}
.receipt-lines>div{display:flex;justify-content:space-between;gap:20px;margin-top:16px}
.receipt-lines>div[hidden]{display:none}
.receipt-lines dt{color:var(--muted)}
.receipt-lines dt small{display:block;font-size:12px;font-weight:400}
.receipt-lines dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.receipt-lines .receipt-total{border-top:1px solid #D5DED6;padding-top:20px;margin-top:20px;font-weight:600}
.receipt-total dt{color:var(--brand)}
.receipt-total dd{font-size:20px}
.price-detail-dialog .receipt-tax,.price-detail-dialog .breakdown-footnote{font-size:12px;color:var(--muted);line-height:20px;margin:12px 0 0}
@media(max-width:1100px){.pricing .plan-cycle-note{min-height:60px}}
@media(max-width:480px){.price-detail-dialog{padding:24px 20px}}

/* App Modal / ModalHeader / ModalBody tokens (frontend/lib/tokens.ts). */
.price-detail-dialog{width:480px;max-width:calc(100% - 24px);max-height:85dvh;padding:0;border:0;border-radius:24px;background:#FDFCF9;color:#141413;box-shadow:0 2px 4px rgba(10,42,32,.15),0 6px 12px rgba(10,42,32,.08);overflow:hidden}
.price-detail-dialog[open]{display:flex;flex-direction:column}
.price-detail-dialog::backdrop{background:rgba(10,42,32,.55)}
.price-detail-header{flex-shrink:0;padding:16px 56px 12px 16px;border-bottom:1px solid #EBE7DF}
.price-detail-dialog h2{font-size:16px;font-weight:700;line-height:24px;color:#141413;margin:0}
.price-detail-dialog .breakdown-context{font-size:12px;line-height:18px;color:#30302E;margin:4px 0 0}
.price-detail-dialog .close{top:12px;right:12px;width:32px;height:32px;padding:0;border-radius:999px;color:#30302E}
.price-detail-dialog .close:hover{background:#F4F2EC}
.price-detail-dialog .close:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* showModal() moves focus to the autofocus element; it is the TITLE (tabindex=-1), not the close button, so iOS Safari does not paint a focus ring around the × the moment the dialog opens (seen 2026-09-22). The ring still shows for real keyboard focus. */
dialog h2[tabindex="-1"]:focus{outline:none}
.price-detail-body{padding:16px;overflow-y:auto;flex:1;min-height:0}
.price-detail-dialog .receipt-lines>div:first-child{margin-top:0}
.price-detail-dialog .receipt-lines dt{color:#30302E}
.price-detail-dialog .receipt-lines dd{color:#141413}
.price-detail-dialog .receipt-total{border-color:#EBE7DF;padding-top:16px;margin-top:16px}
.price-detail-dialog .receipt-total dt,.price-detail-dialog .receipt-total dd{color:var(--brand)}
.price-detail-dialog .receipt-tax,.price-detail-dialog .breakdown-footnote{color:#30302E}

/* Current app centered popup composition: 420px panel, 48px top / 36px sides. */
.price-detail-dialog{width:420px;overflow-y:auto}
.price-detail-dialog[open]{display:block}
.price-detail-header{padding:48px 36px 0;border:0;text-align:center}
.price-detail-dialog h2{font-size:20px;line-height:28px;margin:0 0 8px}
.price-detail-dialog .breakdown-context{font-size:14px;line-height:22px;margin:0}
.price-detail-body{padding:28px 36px 24px;overflow:visible}

/* Compact contact popup, using the app's centered modal composition. */
#contact{width:420px;max-width:calc(100% - 24px);max-height:85dvh;padding:48px 36px 24px;border:0;border-radius:24px;background:#FDFCF9;color:#141413;scrollbar-gutter:auto;box-shadow:0 2px 4px rgba(10,42,32,.15),0 6px 12px rgba(10,42,32,.08)}
#contact::backdrop{background:rgba(10,42,32,.55)}
#contact h2{font-size:20px;line-height:28px;margin:0 0 8px;padding:0}
#contact .contact-intro{font-size:14px;line-height:22px;color:#30302E;margin:0}
#contact .close{top:12px;right:12px;width:32px;height:32px;padding:0;border-radius:999px;color:#30302E}
#contact .sales-qr{width:128px;height:128px;margin:20px auto 8px}
.sales-id-row{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;margin:8px 0 20px}
#contact .sales-copy-id,#sales-copy,#sales-qr-toggle{font:inherit;font-size:12px;line-height:20px;color:var(--brand);background:none;border:0;padding:4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
#contact .sales-copy-id{display:inline-block;min-height:0;margin:0}
#contact #sales-request{display:flex;align-items:baseline;gap:12px;background:#F5F4EF;border-radius:12px;padding:12px;margin:0 0 16px;text-align:left}
#contact #sales-request[hidden]{display:none}
#contact #sales-message{flex:1;width:auto;min-width:0;font-size:12px;line-height:20px;padding:0;margin:0;border:0;background:none;color:#30302E;user-select:text}
#sales-copy{flex-shrink:0}
#contact .sales-line{min-height:44px;font-size:14px;line-height:20px;padding:12px 16px;border-radius:12px;margin:0}
#sales-qr-toggle{display:none}
#contact #sales-status:not(:empty){font-size:12px;line-height:20px;margin:12px 0 0}
@media(max-width:540px){#contact .sales-qr-area{display:none}#contact.show-sales-qr .sales-qr-area{display:block}#sales-qr-toggle{display:block;margin:12px auto 0}#contact .sales-id-row{margin:16px 0 20px}}

/* SMS is a lightweight add-on row, separate from the main plan cards. */
.pricing .sms-addons{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px 28px;margin:32px 0 0;padding:24px 0;border:0;border-top:1px solid #D5DED6;border-radius:0;background:none}
.pricing .sms-addons h3{font-size:18px;line-height:28px;margin:0 0 4px}
.pricing .sms-addons p{font-size:12px;line-height:20px}
.sms-addons .sms-packs{border:0;padding:0;margin:0;display:flex;justify-content:center;gap:20px;min-width:0}
.sms-packs label{display:flex;align-items:center;gap:8px;cursor:pointer;min-height:44px}
.sms-packs input{position:static;opacity:1;width:16px;height:16px;margin:0;flex-shrink:0;accent-color:var(--brand);cursor:pointer}
.sms-addons .sms-packs span{border:0;padding:0}
.sms-addons .sms-packs label>span{display:flex;flex-direction:column;gap:0;background:none;border:0;border-radius:0;box-shadow:none}
.sms-addons .sms-packs strong{font-size:14px;line-height:22px;font-weight:500;white-space:nowrap}
.sms-addons .sms-pack-price{font-size:12px;line-height:20px;color:#30302E;white-space:nowrap}
.sms-packs input:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.sms-footer{display:contents}
.pricing .sms-addons .sms-terms{grid-column:1/-1;grid-row:2;font-size:12px;line-height:20px;color:var(--muted)}
.sms-terms br{display:none}
.sms-terms br::after{content:' '}
.sms-footer .secondary{grid-column:3;grid-row:1;border:1px solid var(--brand);border-radius:12px;background:transparent;font-size:14px;line-height:20px;min-height:44px;padding:12px 16px;white-space:nowrap}
.sms-footer .secondary:hover{background:#E7EFEB;border-color:var(--brand)}
@media(max-width:800px){.pricing .sms-addons{grid-template-columns:1fr auto}.sms-addons .sms-packs{grid-column:1/-1;justify-content:flex-start;gap:32px}.sms-footer .secondary{grid-column:2;grid-row:1}.pricing .sms-addons .sms-terms{grid-row:3}}
@media(max-width:540px){.pricing .sms-addons{grid-template-columns:1fr;gap:12px;padding:24px 0}.sms-addons .sms-packs{display:flex;flex-direction:column;gap:0}.sms-packs label{min-height:44px;gap:12px}.sms-addons .sms-packs label>span{flex:1;flex-direction:row;justify-content:space-between;align-items:baseline}.sms-addons .sms-pack-price{font-size:14px}.sms-footer .secondary{grid-column:1;grid-row:4;justify-self:start}.sms-terms br{display:block}}

/* Centered SMS section with one clear vertical reading order. */
.pricing .sms-addons{display:flex;flex-direction:column;align-items:center;gap:0;text-align:center;padding:48px 0;margin-top:40px}
.pricing .sms-addons h3{font-size:28px;line-height:36px;margin:0 0 8px}
.pricing .sms-heading p{font-size:14px;line-height:24px}
.sms-addons .sms-packs{display:flex;flex-direction:row;justify-content:center;gap:40px;width:100%;max-width:560px;margin:28px 0}
.sms-addons .sms-packs label{gap:12px;min-height:64px;text-align:left}
.sms-addons .sms-packs label>span{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.sms-addons .sms-packs strong{font-size:18px;line-height:28px}
.sms-addons .sms-pack-price{font-size:16px;line-height:24px}
.sms-footer{display:flex;flex-direction:column;align-items:center;gap:16px}
.sms-footer .secondary{order:-1;min-height:48px;padding:12px 28px}
.pricing .sms-addons .sms-terms{font-size:12px;line-height:20px}
.sms-terms br{display:block}
@media(max-width:540px){.pricing .sms-addons{padding:36px 0;margin-top:32px}.pricing .sms-addons h3{font-size:24px;line-height:32px}.sms-addons .sms-packs{gap:0;justify-content:space-between;max-width:360px;margin:24px 0}.sms-addons .sms-packs label{gap:6px;min-height:56px}.sms-addons .sms-packs strong{font-size:16px;line-height:24px}.sms-addons .sms-pack-price{font-size:14px;line-height:20px}.sms-footer{width:100%}}

/* Split SMS layout: introduction left, compact selectable packs right. */
.pricing .sms-addons{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:start;gap:20px 48px;text-align:left;padding:40px 0}
.sms-heading{grid-column:1;grid-row:1 / span 2;padding-top:8px}
.sms-addons .sms-packs{grid-column:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:none;gap:12px;margin:0}
.sms-addons .sms-packs label{position:relative;display:block;min-height:0;cursor:pointer}
.sms-addons .sms-packs input{position:absolute;top:14px;right:14px;width:16px;height:16px;z-index:1;margin:0}
.sms-addons .sms-packs label>span{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:40px 16px 16px;border:1px solid #D5DED6;border-radius:12px;background:#FDFCF9}
.sms-addons .sms-packs input:checked+span{border-color:var(--brand);background:#E8EFE9;box-shadow:inset 0 0 0 1px var(--brand)}
.sms-addons .sms-packs label:hover>span{border-color:#91AA9B}
.sms-addons .sms-packs input:focus-visible+span{outline:2px solid var(--brand);outline-offset:3px}
.sms-addons .sms-packs strong{font-size:18px;line-height:28px}
.sms-addons .sms-pack-price{font-size:14px;line-height:22px}
.sms-footer{grid-column:2;display:flex;flex-direction:column;align-items:flex-end;gap:12px;width:100%;text-align:right}
.sms-footer .secondary{order:0}
@media(max-width:800px){.pricing .sms-addons{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);gap:20px 24px}.sms-addons .sms-packs{gap:8px}.sms-addons .sms-packs label>span{padding:36px 12px 12px}}
@media(max-width:540px){.pricing .sms-addons{grid-template-columns:1fr;gap:20px;padding:32px 0}.sms-heading{grid-column:1;grid-row:auto;padding:0}.sms-addons .sms-packs{grid-column:1;max-width:none;margin:0}.sms-addons .sms-packs strong{font-size:16px;line-height:24px}.sms-footer{grid-column:1;align-items:flex-start;text-align:left}.sms-footer .secondary{width:100%}}

/* Center the SMS terms and action beneath the pack choices. */
.sms-addons .sms-footer{align-items:center;text-align:center}

/* Center the SMS footer across the full section width. */
.sms-addons .sms-heading{grid-row:1}
.sms-addons .sms-footer{grid-column:1 / -1;grid-row:2}
@media(max-width:540px){.sms-addons .sms-footer{grid-row:3}}

/* Compact SMS options: radio shares the quantity row. */
.sms-addons .sms-packs label>span{padding:16px;gap:4px}
.sms-addons .sms-packs strong{padding-right:24px}
.sms-addons .sms-packs input{top:22px;right:16px}
@media(max-width:800px){.sms-addons .sms-packs label>span{padding:16px 10px}.sms-addons .sms-packs input{right:10px}}
@media(max-width:540px){.sms-addons .sms-packs input{top:20px}.sms-addons .sms-packs strong{padding-right:20px;font-size:14px}}

/* Softer SMS quantity typography; retain the compact mobile size. */
@media(min-width:541px){.sms-addons .sms-packs strong{font-size:16px;font-weight:500}}

/* Outline only the SMS introduction and options, leaving the footer outside. */
.pricing .sms-addons{display:block;border:0;padding:0 0 40px}
.sms-selection{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:center;gap:32px;border:1px solid #D5DED6;border-radius:16px;padding:24px;background:transparent}
.sms-selection .sms-heading{padding:0}
.sms-addons .sms-footer{margin-top:20px}
@media(max-width:800px){.sms-selection{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);gap:20px;padding:20px}}
@media(max-width:540px){.sms-selection{grid-template-columns:1fr;gap:20px;padding:16px}.pricing .sms-addons{padding-bottom:32px}}

/* A quiet reading section, narrower than the pricing comparison. */
.faq-section{background:#F2F0E9;padding:64px var(--edge);color:var(--brand)}
.faq-section .pricing-faq{max-width:720px;margin:0 auto}
.faq-section .faq-heading{font-size:28px;line-height:40px;margin:0 0 32px;font-weight:700}
.faq-section .pricing-ai-detail{margin:0;padding:0;border-top:1px solid #D7D9CF;font-size:14px;line-height:24px}
.faq-section .pricing-ai-detail:last-child{border-bottom:1px solid #D7D9CF}
.faq-section summary{display:flex;align-items:center;justify-content:space-between;gap:24px;list-style:none;padding:20px 0;font-size:16px;font-weight:500;line-height:26px;cursor:pointer}
.faq-section summary::-webkit-details-marker{display:none}
.faq-section summary .msym{flex-shrink:0;font-size:20px;color:#65746B}
.faq-section summary:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:4px}
.faq-section .faq-collapse{display:none}
.faq-section details[open] .faq-expand{display:none}
.faq-section details[open] .faq-collapse{display:inline-block}
.faq-section .pricing-ai-detail p{font-size:14px;line-height:26px;color:#4D554F;max-width:none;margin:0 0 16px;padding-right:44px}
.faq-section .pricing-ai-detail p:last-child{margin-bottom:24px}
.faq-section .usage-table-wrap{margin:0 0 16px}
@media(max-width:540px){.faq-section{padding:40px 24px}.faq-section .faq-heading{font-size:24px;line-height:32px;margin-bottom:24px}.faq-section summary{gap:16px;padding:18px 0}.faq-section .pricing-ai-detail p{padding-right:0}}

@font-face{font-family:FaqSharp;src:url('/marketing-static/a0ab3543/assets/material-symbols-faq.ttf') format('truetype');font-weight:400;font-style:normal;font-display:block}
.faq-section summary .msym{font-family:FaqSharp;width:20px;height:20px;font-weight:400;text-transform:none}

/* Light FAQ surface and a quiet support link beside the heading. */
.faq-section{background:#F5F4EF}
.faq-section + .getting-started .getting-started-inner{border-top:0}
.faq-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}
.faq-section .faq-header .faq-heading{margin:0}
.faq-help{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;line-height:20px;color:#65746B;white-space:nowrap}
.faq-help button{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:8px 0;font:inherit;color:var(--brand);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.faq-help .msym{font-size:20px}
@media(max-width:540px){.faq-header{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:24px}}

/* Text-only FAQ categories. */
.faq-tabs{display:flex;justify-content:center;gap:32px;margin:0 0 24px}
.faq-tabs [role="tab"]{font:inherit;font-size:16px;line-height:24px;font-weight:500;color:#717970;padding:12px 0;border:0;border-bottom:2px solid transparent;background:none;cursor:pointer}
.faq-tabs [aria-selected="true"]{color:var(--brand);border-bottom-color:var(--brand)}
.faq-tabs [role="tab"]:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:2px}
.faq-section [role="tabpanel"][hidden]{display:none}
@media(max-width:540px){.faq-tabs{gap:24px}.faq-tabs [role="tab"]{font-size:14px}}

/* Rounded quota comparison, with a quiet header and clear cell spacing. */
.faq-section .usage-table-wrap{border:1px solid #D5DED6;border-radius:12px;overflow:hidden;background:#FDFCF9;margin:0 0 20px}
.faq-section .usage-table{margin:0;border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed}
.faq-section .usage-table th,.faq-section .usage-table td{padding:14px 16px;border-bottom:1px solid #E2E6DE;vertical-align:top;font-size:14px;line-height:24px;overflow-wrap:break-word}
.faq-section .usage-table thead th{background:#EAF0EA;font-weight:500}
.faq-section .usage-table th:first-child{width:34%}
.faq-section .usage-table thead th:nth-child(2){width:20%}
.faq-section .usage-table tbody th{font-weight:500}
.faq-section .usage-table tr>:not(:last-child){border-right:1px solid #E2E6DE}
.faq-section .usage-table tbody tr:last-child>*{border-bottom:0}
@media(max-width:540px){.faq-section .usage-table th,.faq-section .usage-table td{padding:12px 8px;font-size:12px;line-height:20px}.faq-section .usage-table thead th:nth-child(2){width:22%}}

/* Equal-width question suggestions with soft filled inactive states. */
.ai-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:max-content;max-width:100%}
.ai-examples button{border:0;background:#E8EFEB;padding:10px 16px}
.ai-examples button[aria-pressed="true"]{background:var(--brand);color:var(--bg)}
@media(max-width:540px){.ai-examples{width:100%}.ai-examples button{padding:10px 8px}}

/* Keep the getting-started introduction together as one centered group. */
.getting-started-copy{align-self:center}
.getting-started-label{margin-bottom:16px}
.getting-started-description{margin:20px 0 24px}

/* Mobile section title and compact link-copy row. */
@media(max-width:600px){
 .feature-section-heading{align-items:center;text-align:center}
 .feature-section-heading>.feature-section-summary{text-align:center}
 .share-link-demo{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px}
 .share-link-demo .demo-copy-label{margin-left:0;white-space:nowrap}
}

/* Match mobile preview heights to the tallest example at the current width. */
@media(max-width:700px){
 .portfolio-visual>div{min-height:var(--preview-height,0px)}
 .portfolio-visual>.share-demo{display:flex}
 .share-demo>.share-result{width:100%;flex:1}
 .shared-properties{grid-auto-rows:1fr}
 .share-result .preview-footer,.lease-preview .preview-footer,.contract-demo .preview-footer{margin-top:auto}
}

/* Center section introductions on phones; keep their detailed content left aligned. */
@media(max-width:600px){
 .slip-flow-heading,.faq-header{flex-direction:column;align-items:center;text-align:center}
 .portfolio-ai-copy,.getting-started-copy{text-align:center}
}

/* Phone choices retain readable labels and dedicated control space. */
@media(max-width:540px){
 .sms-addons .sms-packs{grid-template-columns:1fr}
 .sms-addons .sms-packs label>span{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:14px 44px 14px 14px}
 .sms-addons .sms-packs strong{padding-right:0;white-space:nowrap}
 .sms-addons .sms-packs input{top:50%;right:14px;transform:translateY(-50%)}
 .ai-examples{display:flex;flex-wrap:wrap;gap:8px}
 .ai-examples button{flex:0 0 108px;white-space:nowrap;padding:10px 8px;min-height:40px;border-radius:24px}
}

/* Persistent desktop navigation above the scrolling section layers. */
@media(min-width:961px){
 html{scroll-padding-top:72px}
 .header{position:fixed;inset:0 0 auto;height:72px;width:100%;z-index:25}
 .opening-panel{padding-top:72px}
}
@media(min-width:961px) and (min-height:720px){
 .opening-stack>.product{top:72px;height:calc(100svh - 72px)}
 .opening-stack .screen{max-width:min(1120px,calc((100svh - 200px)*1.875))}
}
@media(prefers-reduced-motion:reduce){.opening-stack>.product{top:auto}}

#plan-unit-note:not([hidden]){display:block}
#plan-saving:not([hidden]){display:inline-block;margin-left:12px;padding:4px 8px;border-radius:6px;background:#E8EFEB;font-size:12px;font-weight:500;line-height:20px;vertical-align:middle;white-space:nowrap}

/* Group the receipt and align the tax breakdown with the price column. */
.price-detail-dialog .receipt-lines>div{margin-top:12px;gap:16px}
.price-detail-dialog #breakdown-monthly-row{font-weight:500}
.price-detail-dialog #breakdown-year-row{border-top:1px solid #EBE7DF;padding-top:16px;margin-top:16px}
.price-detail-dialog .receipt-total{padding-top:16px;margin-top:16px}
.price-detail-dialog .receipt-tax{margin:12px 0 0}
.receipt-tax>div{display:flex;justify-content:space-between;gap:16px;margin-top:4px}
.receipt-tax dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.price-detail-dialog #plan-unit-note{border-top:1px solid #EBE7DF;margin-top:16px;padding-top:16px;font-size:14px;font-weight:500;color:var(--brand)}
.price-detail-dialog #breakdown-year-note{margin-top:4px;color:#65746B}

.price-detail-dialog .receipt-lines>.receipt-tax-row{font-size:12px;line-height:20px;margin-top:12px}
.price-detail-dialog .receipt-lines>.receipt-tax-row+.receipt-tax-row{margin-top:4px}
.price-detail-dialog .receipt-tax-row dd{color:#30302E}

.home-language-control{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font:inherit;color:inherit}.home-language-control select{font:inherit;line-height:20px;color:inherit;background:transparent;border:0;padding:0 4px;min-height:20px;cursor:pointer}.home-language-control option{color:#103e30;background:#faf9f6}.home-language-control select:focus-visible{outline:2px solid #d7f75b;outline-offset:4px}
