/* A single, readable mobile canvas. Activated only when scroll motion is available. */
@media (max-width:640px) and (min-height:560px) {
  .mobile-stage-active .service-frame { overflow:visible; }
  .mobile-stage-active .service-copy .steps { display:none; }
  .mobile-stage-active .demo-wrap {
    height:min(650px, calc(100svh - 36px));
    display:grid; grid-template-rows:65px minmax(0,1fr) 28px;
    align-content:stretch; width:100%; position:relative;
  }
  .ct-mobile-scene-head { color:var(--ink); padding:0 2px 13px; display:grid; grid-template-columns:1fr auto; align-content:start; gap:6px 12px; }
  .ct-mobile-scene-head strong { font-size:16px; font-weight:600; line-height:1.4; letter-spacing:-.025em; }
  .ct-mobile-scene-head small { font:10px/1.5 var(--mono); align-self:center; color:var(--muted); }
  .ct-mobile-scene-track { height:2px; grid-column:1/-1; background:#1725221a; overflow:hidden; margin-top:5px; }
  .ct-mobile-scene-track i { display:block; width:100%; height:100%; background:var(--ink); transform:scaleX(0); transform-origin:left; }
  .marketing-section .ct-mobile-scene-head { color:var(--paper); }
  .marketing-section .ct-mobile-scene-head small { color:#d0d9d3; }
  .marketing-section .ct-mobile-scene-track { background:#ffffff24; }
  .marketing-section .ct-mobile-scene-track i { background:var(--signal); }
  .mobile-stage-active .demo-wrap>.demo { width:100%; height:100%; min-height:0; max-height:none; overflow:hidden; margin:0; position:relative; }
  .mobile-stage-active .demo-caption { margin:10px 0 0; padding:0 2px; align-self:start; font-size:8px; line-height:1.3; }
  .mobile-stage-active .demo-caption .scroll-cue { font-size:8px; }
  .mobile-stage-active .ct-mobile-panel { will-change:transform,opacity; }

  /* Sales: one properly proportioned sheet at a time, not miniature documents. */
  .mobile-stage-active .ct-docs-toolbar { position:absolute; inset:0 0 auto; height:42px; padding-inline:16px; }
  .mobile-stage-active .ct-docs-output, .mobile-stage-active .ct-docs-pages { display:contents; }
  .mobile-stage-active .ct-docs-output-label { display:none; }
  .mobile-stage-active .ct-docs-request {
    position:absolute; inset:68px 17px 65px; margin:0; padding:24px 21px;
    display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:20px;
    border:1px solid #d2dccb; border-radius:10px; background:#fffef8;
  }
  .mobile-stage-active .ct-docs-avatar { width:42px; height:42px; font-size:12px; margin:0; }
  .mobile-stage-active .ct-docs-request-copy>span { display:block; font-size:12px; line-height:1.5; }
  .mobile-stage-active .ct-docs-request-copy>p { font-size:24px; line-height:1.27; letter-spacing:-.035em; margin:13px 0 18px; }
  .mobile-stage-active .ct-docs-request-copy>small { font-size:10px; line-height:1.7; }
  .mobile-stage-active .ct-docs-page { position:absolute; inset:54px 13px 53px; margin:0; padding:20px; border-radius:5px; overflow:hidden; }
  .mobile-stage-active .ct-docs-page>* { flex-shrink:0; }
  .mobile-stage-active .ct-docs-masthead { padding-bottom:11px; }
  .mobile-stage-active .ct-docs-masthead>span { font-size:10px; }
  .mobile-stage-active .ct-docs-masthead>small { font-size:8px; }
  .mobile-stage-active .ct-docs-proposal-title { margin:17px 0; grid-template-columns:minmax(0,1fr) 75px; gap:10px; }
  .mobile-stage-active .ct-docs-proposal-title small { font-size:8px; }
  .mobile-stage-active .ct-docs-proposal-title h3 { font-size:35px; }
  .mobile-stage-active .ct-docs-proposal-title img { width:75px; height:94px; }
  .mobile-stage-active .ct-docs-route { padding-block:15px; gap:12px; }
  .mobile-stage-active .ct-docs-route b { font-size:14px; }
  .mobile-stage-active .ct-docs-route small { font-size:8px; }
  .mobile-stage-active .ct-docs-inclusions { padding-top:16px; }
  .mobile-stage-active .ct-docs-inclusions>small { font-size:9px; }
  .mobile-stage-active .ct-docs-inclusions>p { font-size:12px; line-height:1.7; }
  .mobile-stage-active .ct-docs-invoice-title { margin:17px 0; }
  .mobile-stage-active .ct-docs-invoice-title h3 { font-size:33px; }
  .mobile-stage-active .ct-docs-bill-to { padding-bottom:15px; }
  .mobile-stage-active .ct-docs-bill-to b { font-size:13px; }
  .mobile-stage-active .ct-docs-bill-to>span { font-size:10px; }
  .mobile-stage-active .ct-docs-line-items>div { font-size:12px; padding-block:9px; grid-template-columns:1fr 70px; }
  .mobile-stage-active .ct-docs-line-items>div>span:last-child { font-size:10px; }
  .mobile-stage-active .ct-docs-line-items>.ct-docs-table-head { font-size:8px; padding-block:5px; }
  .mobile-stage-active .ct-docs-total { padding-top:13px; }
  .mobile-stage-active .ct-docs-total,.mobile-stage-active .ct-docs-total>b { font-size:13px; }
  .mobile-stage-active .ct-docs-invoice-note { font-size:10px; margin-top:11px; }
  .mobile-stage-active .ct-docs-review { position:absolute; inset:auto 0 0; height:42px; min-height:42px; padding:11px 13px; align-items:center; }
  .mobile-stage-active .ct-docs-review>p { font-size:10px; max-width:none; }
  .mobile-stage-active .ct-docs-review>small { font-size:7px; }

  /* Itinerary: notes become a cover, then turn to the day plan. */
  .mobile-stage-active .itinerary-demo { display:block; padding:0; }
  .mobile-stage-active .itinerary-book { display:contents; }
  .mobile-stage-active .raw-note,
  .mobile-stage-active .book-cover,
  .mobile-stage-active .book-page { position:absolute; inset:14px 14px 52px; width:auto; height:auto; min-height:0; margin:0; transform:none; border-radius:7px; overflow:hidden; }
  .mobile-stage-active .raw-note { background:#fffef9; border:1px solid #d2d9ce; }
  .mobile-stage-active .raw-note .window-bar { padding-inline:17px; height:42px; }
  .mobile-stage-active .raw-note h3 { margin:25px 19px 21px; font-size:24px; }
  .mobile-stage-active .raw-note>p { margin-inline:19px; font-size:12px; line-height:2.15; }
  .mobile-stage-active .file-tag { margin:22px 19px; font-size:10px; line-height:1.5; }
  .mobile-stage-active .book-cover>img { width:100%; height:100%; object-fit:cover; }
  .mobile-stage-active .book-cover h3 { font-size:39px; }
  .mobile-stage-active .book-cover>small { top:24px; left:23px; }
  .mobile-stage-active .book-cover>div { left:23px; bottom:27px; }
  .mobile-stage-active .book-page { padding:25px 22px; background:#fffef7; border:1px solid #d3d8cc; }
  .mobile-stage-active .book-page>h3 { margin:16px 0 20px; font-size:31px; }
  .mobile-stage-active .book-page .day { display:flex; padding-block:12px; font-size:13px; }
  .mobile-stage-active .book-page .day p { font-size:12px; }
  .mobile-stage-active .book-footer { margin-top:12px; padding-top:12px; font-size:9px; }
  .mobile-stage-active .format-chip { position:absolute; inset:auto 14px 10px; width:auto; min-height:31px; margin:0; padding:7px 10px; font-size:9px; gap:7px; }

  /* Campaign: each decision has the whole canvas before the next one appears. */
  .mobile-stage-active .ct-campaign { display:block; }
  .mobile-stage-active .ct-campaign__bar { position:absolute; inset:0 0 auto; height:42px; min-height:42px; padding-inline:14px; }
  .mobile-stage-active .ct-campaign__bar>span:first-child { font-size:11px; }
  .mobile-stage-active .ct-campaign__draft { font-size:7px; }
  .mobile-stage-active .ct-campaign__route { display:none; }
  .mobile-stage-active .ct-campaign__panels { display:contents; }
  .mobile-stage-active .ct-campaign__brief { position:absolute; inset:74px 17px 58px; margin:0; padding:24px 22px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:22px; }
  .mobile-stage-active .ct-campaign__command { width:42px; height:40px; font-size:23px; }
  .mobile-stage-active .ct-campaign__brief small { font-size:10px; }
  .mobile-stage-active .ct-campaign__brief p { font-size:27px; line-height:1.22; letter-spacing:-.035em; margin-top:13px; }
  .mobile-stage-active .ct-campaign__offer { display:block; margin:0; text-align:left; font-size:12px; line-height:1.8; }
  .mobile-stage-active .ct-campaign__panel { position:absolute; inset:55px 13px 14px; margin:0; padding:20px; min-height:0; }
  .mobile-stage-active .ct-campaign__panel-head,
  .mobile-stage-active .ct-campaign__postcodes,
  .mobile-stage-active .ct-campaign__age,
  .mobile-stage-active .ct-campaign__interests,
  .mobile-stage-active .ct-campaign__placements,
  .mobile-stage-active .ct-campaign__note { flex-shrink:0; }
  .mobile-stage-active .ct-campaign__panel-head small { font-size:9px; }
  .mobile-stage-active .ct-campaign__panel-head h3 { font-size:25px; margin-top:5px; }
  .mobile-stage-active .ct-campaign__map { height:auto; flex:1; min-height:100px; max-height:245px; margin-top:19px; }
  .mobile-stage-active .ct-campaign__postcodes { margin-top:14px; }
  .mobile-stage-active .ct-campaign__postcodes>span { font-size:12px; padding:8px 10px; }
  .mobile-stage-active .ct-campaign__note { font-size:11px; padding-top:14px; }
  .mobile-stage-active .ct-campaign__age { margin-top:34px; font-size:12px; }
  .mobile-stage-active .ct-campaign__age>b { font-size:29px; }
  .mobile-stage-active .ct-campaign__age-track { height:6px; margin-top:20px; }
  .mobile-stage-active .ct-campaign__age-labels { font-size:10px; margin-top:8px; }
  .mobile-stage-active .ct-campaign__interests { margin-top:28px; gap:17px; }
  .mobile-stage-active .ct-campaign__interests>div { font-size:14px; }
  .mobile-stage-active .ct-campaign__ad { min-height:130px; height:auto; max-height:265px; flex:1; margin-top:18px; }
  .mobile-stage-active .ct-campaign__ad h4 { font-size:36px; }
  .mobile-stage-active .ct-campaign__ad span { font-size:9px; }
  .mobile-stage-active .ct-campaign__placements { margin-top:12px; }
  .mobile-stage-active .ct-campaign__placements span { font-size:10px; padding:6px 10px; }
  .mobile-stage-active .ct-campaign__review { position:absolute; inset:76px 17px 55px; margin:0; padding:27px 22px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:22px; }
  .mobile-stage-active .ct-campaign__review-icon { width:43px; height:43px; font-size:20px; }
  .mobile-stage-active .ct-campaign__review b { font-size:27px; line-height:1.2; letter-spacing:-.035em; }
  .mobile-stage-active .ct-campaign__review div>span { font-size:13px; line-height:1.7; margin-top:13px; }
  .mobile-stage-active .ct-campaign__review-state { display:block; text-align:left; margin:0; font-size:9px; }

  /* Website: a compact real page hands off to a readable enquiry record. */
  .mobile-stage-active .website-demo { display:block; }
  .mobile-stage-active .travel-browser { position:absolute; inset:10px 0; margin:0; overflow:hidden; }
  .mobile-stage-active .travel-browser .window-bar { height:32px; padding-inline:15px; font-size:9px; }
  .mobile-stage-active .travel-home { height:calc(100% - 32px); display:block; position:relative; min-height:0; }
  .mobile-stage-active .travel-home>nav { position:relative; height:49px; padding:15px 18px; }
  .mobile-stage-active .travel-home nav b { font-size:15px; }
  .mobile-stage-active .travel-home nav span { font-size:8px; }
  .mobile-stage-active .travel-copy { position:relative; z-index:1; width:100%; padding:22px 22px 19px; background:#fffaf0; }
  .mobile-stage-active .travel-copy small { font-size:9px; }
  .mobile-stage-active .travel-copy h3 { margin:13px 0; font-size:36px; }
  .mobile-stage-active .travel-copy p { font-size:12px; line-height:1.55; }
  .mobile-stage-active .travel-cta { font-size:10px; padding:10px 12px; margin-top:17px; }
  .mobile-stage-active .travel-home>img { position:relative; height:100%; max-height:190px; width:100%; object-fit:cover; }
  .mobile-stage-active .enquiry-card { position:absolute; inset:50px 8px; width:auto; height:auto; margin:0; padding:29px 25px; display:flex; flex-direction:column; justify-content:center; }
  .mobile-stage-active .enquiry-card .badge { align-self:flex-start; font-size:11px; }
  .mobile-stage-active .enquiry-card h3 { font-size:29px; margin:22px 0; }
  .mobile-stage-active .enquiry-card>div { font-size:12px; padding-block:15px; }
  .mobile-stage-active .enquiry-card>p { font-size:12px; margin-top:22px; }
}
@media (max-width:640px) and (min-height:560px) and (max-height:680px) {
  .mobile-stage-active .ct-docs-page { padding:15px 17px; }
  .mobile-stage-active .ct-docs-masthead { padding-bottom:8px; }
  .mobile-stage-active .ct-docs-proposal-title { margin:11px 0; }
  .mobile-stage-active .ct-docs-proposal-title h3 { font-size:30px; }
  .mobile-stage-active .ct-docs-proposal-title img { height:78px; }
  .mobile-stage-active .ct-docs-route { padding-block:10px; }
  .mobile-stage-active .ct-docs-inclusions { padding-top:10px; }
  .mobile-stage-active .ct-docs-invoice-title { margin:10px 0; }
  .mobile-stage-active .ct-docs-invoice-title h3 { font-size:29px; }
  .mobile-stage-active .ct-docs-bill-to { padding-bottom:10px; }
  .mobile-stage-active .ct-docs-line-items>div { padding-block:6px; font-size:11px; }
  .mobile-stage-active .ct-docs-total { padding-top:9px; }
  .mobile-stage-active .ct-docs-invoice-note { margin-top:8px; font-size:9px; }
  .mobile-stage-active .book-page { padding:20px; }
  .mobile-stage-active .book-page>h3 { margin:12px 0; font-size:27px; }
  .mobile-stage-active .book-page .day { padding-block:9px; }
  .mobile-stage-active .book-footer { padding-top:9px; margin-top:8px; }
  .mobile-stage-active .raw-note h3 { margin-top:19px; margin-bottom:17px; }
  .mobile-stage-active .raw-note>p { line-height:1.9; }
  .mobile-stage-active .file-tag { margin-top:17px; }
  .mobile-stage-active .ct-campaign__panel { padding:16px 18px; }
  .mobile-stage-active .ct-campaign__panel-head h3 { font-size:22px; }
  .mobile-stage-active .ct-campaign__map { margin-top:12px; }
  .mobile-stage-active .ct-campaign__postcodes { margin-top:10px; }
  .mobile-stage-active .ct-campaign__note { padding-top:10px; }
  .mobile-stage-active .ct-campaign__age { margin-top:24px; }
  .mobile-stage-active .ct-campaign__interests { margin-top:20px; gap:13px; }
  .mobile-stage-active .ct-campaign__ad { margin-top:12px; }
  .mobile-stage-active .travel-home>nav { height:43px; padding-block:12px; }
  .mobile-stage-active .travel-copy { padding-block:17px; }
  .mobile-stage-active .travel-copy h3 { font-size:32px; margin-block:11px; }
  .mobile-stage-active .travel-cta { margin-top:13px; }
  .mobile-stage-active .enquiry-card { inset-block:24px; padding:24px 21px; }
  .mobile-stage-active .enquiry-card h3 { font-size:27px; margin-block:17px; }
  .mobile-stage-active .enquiry-card>div { padding-block:12px; }
  .mobile-stage-active .enquiry-card>p { margin-top:17px; }
}
@media (max-width:340px) and (min-height:560px) {
  .ct-mobile-scene-head strong { font-size:14px; }
  .mobile-stage-active .ct-docs-page { padding-inline:14px; inset-inline:10px; }
  .mobile-stage-active .ct-docs-proposal-title { grid-template-columns:minmax(0,1fr) 57px; gap:7px; }
  .mobile-stage-active .ct-docs-proposal-title img { width:57px; }
  .mobile-stage-active .ct-docs-proposal-title h3 { font-size:29px; }
  .mobile-stage-active .ct-docs-proposal-title small { font-size:7px; }
  .mobile-stage-active .ct-docs-inclusions>p { font-size:11px; }
  .mobile-stage-active .ct-docs-request-copy>p { font-size:23px; }
  .mobile-stage-active .ct-docs-total,.mobile-stage-active .ct-docs-total>b { font-size:11px; }
  .mobile-stage-active .raw-note>p { margin-inline:14px; font-size:11px; }
  .mobile-stage-active .book-page { padding-inline:17px; }
  .mobile-stage-active .book-page .day { font-size:12px; gap:8px; }
  .mobile-stage-active .book-page .day p { font-size:11px; }
  .mobile-stage-active .format-chip { font-size:8px; }
  .mobile-stage-active .ct-campaign__panel { padding-inline:15px; }
  .mobile-stage-active .ct-campaign__panel-head h3 { font-size:22px; }
  .mobile-stage-active .ct-campaign__postcodes>span { padding-inline:7px; font-size:11px; }
  .mobile-stage-active .ct-campaign__interests>div { font-size:12px; }
  .mobile-stage-active .ct-campaign__brief p,.mobile-stage-active .ct-campaign__review b { font-size:24px; }
  .mobile-stage-active .enquiry-card { padding-inline:18px; }
  .mobile-stage-active .enquiry-card h3 { font-size:25px; }
  .mobile-stage-active .enquiry-card>div { font-size:11px; }
}
