/* One continuous film, with the homepage moving across it. */
.home-page { --story-edge: 56px; }
.home-page .site-navigation { position: fixed; inset: 0 0 auto; }
.home-page #main { padding-top: 30px; outline: none; }
.story-stage { position: relative; }
.story-backdrop { position: fixed; inset: 30px 0 0; z-index: -1; background: #171717; overflow: hidden; }
.story-backdrop .hero-film { z-index: 0; object-position: center; }
.story-backdrop::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #0007, #0003 40%, #0005 65%, #000b); }
.story-panel { position: relative; min-height: calc(100svh - 30px); display: flex; align-items: center; padding: 80px var(--story-edge) 110px; font-family: var(--editorial); }
.story-cover { padding-left: 0; padding-right: 0; }
.story-panel:not(.story-cover) { background: linear-gradient(90deg, #080808c9, #0808088f 65%, #08080866); }
.story-content { width: 100%; max-width: 1180px; margin: auto; }
.story-split { display: grid; grid-template-columns: 1.25fr 1fr; gap: 10%; align-items: center; }
.story-panel .section-label { color: #d0d0d0; font-family: 'Instrument Sans', Arial, sans-serif; font-size: 10px; margin-bottom: 32px; }
.story-panel h2 { font: 400 clamp(64px, 8.3vw, 120px)/.96 var(--display); text-transform: uppercase; letter-spacing: -.02em; }
.story-copy { font-size: clamp(17px, 1.6vw, 23px); line-height: 1.55; max-width: 500px; color: #e0e0e0; }
.story-copy p + p { font-size: 16px; color: #bfbfbf; margin-top: 24px; }
.story-link { display: inline-block; font: 500 11px/1.5 'Instrument Sans', Arial, sans-serif; letter-spacing: .12em; text-decoration: none; margin-top: 35px; padding: 10px 0; }
.story-service-list { display: grid; gap: 27px; }
.story-service-list article { display: grid; grid-template-columns: 1.25fr 1fr; gap: 10%; align-items: center; }
.story-service-list h2 { font-size: clamp(45px, 5.3vw, 74px); }
.story-service-list h2 a { text-decoration: none; }
.story-service-list p { max-width: 350px; font-size: 17px; line-height: 1.6; color: #cecece; }
.story-construction h2 { font-size: clamp(57px, 7vw, 101px); }
.story-contact-details { margin-top: 35px; font-size: 20px; }
.story-contact-details > a { display: block; width: fit-content; max-width: 100%; text-decoration: none; overflow-wrap: anywhere; }
.story-contact-details .story-link { margin-top: 20px; }
.story-footer { margin-top: 65px; display: flex; justify-content: space-between; gap: 20px; font: 400 10px/1.6 'Instrument Sans', Arial, sans-serif; color: #aaa; }
.story-footer > div { display: flex; gap: 26px; }
.story-footer a { text-decoration: none; }
.home-page .hero-bottom { position: fixed; z-index: 5; grid-template-columns: 1fr auto; left: var(--story-edge); right: var(--story-edge); pointer-events: none; }
.home-page .hero-bottom .hero-contact { grid-column: 1; grid-row: 1; justify-self: start; pointer-events: auto; }
.home-page .hero-bottom .film-toggle { grid-column: 2; grid-row: 1; pointer-events: auto; }
.horizontal-home .story-stage { position: sticky; top: 30px; height: calc(100svh - 30px); overflow: clip; }
.horizontal-home .story-backdrop { position: absolute; inset: 0; z-index: 0; }
.horizontal-home .story-track { position: relative; display: flex; align-items: flex-start; height: 100%; will-change: transform; }
.horizontal-home .story-panel { flex: 0 0 100%; min-width: 0; min-height: var(--stage-height); height: auto; }
.horizontal-home .hero-bottom { position: absolute; }
@media (max-width: 1100px) {
  .home-page { --story-edge: 36px; }
  .story-split, .story-service-list article { gap: 7%; }
}
@media (max-width: 800px) {
  .story-panel { padding-top: 45px; padding-bottom: 100px; }
  .story-split { grid-template-columns: 1fr; gap: 35px; max-width: 570px; }
  .story-panel h2 { font-size: clamp(55px, 9vw, 76px); }
  .story-copy { max-width: 100%; font-size: 18px; }
  .story-copy p + p { font-size: 15px; margin-top: 17px; }
  .story-panel .section-label { margin-bottom: 22px; }
  .story-service-list { gap: 25px; }
  .story-service-list article { grid-template-columns: 1fr; gap: 10px; }
  .story-service-list h2 { font-size: 49px; }
  .story-service-list p { font-size: 15px; max-width: 450px; }
  .story-link { margin-top: 22px; }
  .story-footer { margin-top: 42px; flex-direction: column; gap: 12px; }
}
@media (max-width: 550px) {
  .home-page { --story-edge: 23px; }
  .story-panel { padding-top: 35px; padding-bottom: 85px; }
  .story-panel h2 { font-size: clamp(43px, 12.5vw, 65px); }
  .story-split { gap: 26px; }
  .story-panel .section-label { font-size: 8px; margin-bottom: 22px; }
  .story-copy { font-size: 16px; line-height: 1.5; }
  .story-copy p + p { font-size: 14px; }
  .story-link { font-size: 9px; margin-top: 19px; }
  .story-service-list { gap: 23px; }
  .story-service-list h2 { font-size: clamp(38px, 10.7vw, 53px); }
  .story-service-list p { font-size: 14px; line-height: 1.5; }
  .story-contact-details { font-size: 16px; margin-top: 27px; }
  .story-contact-details > a:not(.story-link) { font-size: 13px; }
  .story-footer { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce), (max-height: 539px) {
  .story-panel { min-height: calc(100svh - 30px); }
}
@media (min-height: 540px) and (max-height: 740px) {
  .story-panel { padding-top: 30px; padding-bottom: 85px; }
  .story-services .section-label { margin-bottom: 18px; }
  .story-service-list { gap: 15px; }
  .story-service-list h2 { font-size: clamp(36px, 4.5vw, 58px); }
  .story-service-list p { font-size: 14px; line-height: 1.4; }
  .story-services .story-link { margin-top: 17px; }
}
@media (max-width: 550px) and (min-height: 540px) and (max-height: 740px) {
  .story-service-list article { gap: 6px; }
  .story-service-list p { font-size: 13px; }
}

/* Full sections share the continuous film and translucent charcoal treatment. */
.site-navigation a[aria-current=location] { color: #fff; }
.story-service-list { gap: 22px; }
.story-service-list h2 { font-size: clamp(35px, 4.1vw, 58px); }
.story-service-list p { font-size: 16px; }
.story-service-detail h2 { font-size: clamp(60px, 6.5vw, 94px); overflow-wrap: normal; }
.story-points { list-style: none; padding: 0; margin: 28px 0 0; font-size: 16px; line-height: 1.6; color: #cecece; }
.story-points li { padding: 5px 0; }
.story-lead { font: 400 17px/1.6 var(--editorial); color: #d0d0d0; max-width: 440px; margin-top: 25px; }
.story-topic-list { display: grid; gap: 25px; font: 400 16px/1.6 var(--editorial); color: #d0d0d0; }
.story-topic-list h3 { font: 400 32px/1.1 var(--display); text-transform: uppercase; color: #e8e8e8; margin-bottom: 9px; }
.story-inquiry-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9%; align-items: center; }
.story-inquiry-intro h2 { font-size: clamp(65px, 7.8vw, 108px); }
.story-contact { padding-top: 55px; padding-bottom: 105px; }
.story-contact .inquiry-area { border: 0; padding: 0; max-width: none; font-family: var(--editorial); }
.story-contact .inquiry-area > h2 { font: 400 44px/1 var(--display); margin-bottom: 15px; }
.story-contact .inquiry-area > p { font-size: 14px; color: #ccc; margin-bottom: 25px; }
.story-contact .inquiry-area label { font-size: 12px; margin: 16px 0 7px; }
.story-contact .inquiry-area label span { font-size: 10px; }
.story-contact .inquiry-area input,
.story-contact .inquiry-area textarea,
.story-contact .inquiry-area select { background: #ffffff0d; border: 0; border-bottom: 1px solid #ffffff65; color: #eee; font-size: 16px; padding: 10px 12px; }
.story-contact .inquiry-area select option { background: #222; }
.story-contact .inquiry-area input { height: 44px; }
.story-contact .inquiry-area textarea { min-height: 120px; }
.story-contact .inquiry-area .primary-button { background: #ddd; color: #111; border-color: #ddd; font-size: 10px; min-height: 44px; }
.story-contact .inquiry-area .form-note { color: #bbb; font-size: 10px; }
.story-contact .inquiry-result { background: #10101080; padding: 25px; }
.story-contact .inquiry-result h3 { font-family: var(--display); text-transform: uppercase; }
.story-contact .inquiry-result p { font-size: 14px; }
.story-contact .story-footer { margin-top: 38px; }
@media (max-width: 1100px) {
  .story-inquiry-layout { grid-template-columns: .8fr 1.2fr; gap: 6%; }
  .story-contact-details > a:not(.story-link) { font-size: 14px; }
}
@media (max-width: 800px) {
  .story-service-list { gap: 24px; }
  .story-service-list h2 { font-size: 45px; }
  .story-service-list p { font-size: 15px; }
  .story-service-detail h2 { font-size: 65px; }
  .story-points { font-size: 15px; margin-top: 20px; }
  .story-lead { font-size: 16px; }
  .story-topic-list { font-size: 15px; gap: 24px; }
  .story-topic-list h3 { font-size: 29px; }
  .story-inquiry-layout { grid-template-columns: 1fr; gap: 42px; max-width: 570px; margin: auto; }
  .story-contact .story-footer { max-width: 570px; margin-left: auto; margin-right: auto; }
  .story-contact .inquiry-area > h2 { font-size: 39px; }
}
@media (max-width: 550px) {
  .story-panel { padding-top: 38px; padding-bottom: 95px; }
  .story-service-list { gap: 24px; }
  .story-service-list h2 { font-size: 35px; }
  .story-service-list p { font-size: 14px; }
  .story-service-detail h2 { font-size: 48px; }
  .story-points { font-size: 14px; }
  .story-inquiry-intro h2 { font-size: 57px; }
  .story-contact .inquiry-area > h2 { font-size: 35px; }
  .story-contact .inquiry-area input { height: 46px; }
  .story-contact .inquiry-area .form-pair { gap: 0; }
  .story-contact .inquiry-result { padding: 20px 12px; }
}
/* Concise screen-sized chapters: no vertical pauses between slides. */
.horizontal-home .story-panel {height:var(--stage-height);min-height:0;padding:45px var(--story-edge) 85px;overflow:hidden}
.story-service-list article{display:block}.story-service-list{gap:18px}.story-service-list h2{font-size:clamp(32px,4.1vw,58px)}
.story-points{margin:0;font-size:19px;line-height:1.6}.story-split{gap:8%}
.owner-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;height:100%}.owner-portrait{height:100%;max-height:650px;max-width:100%;object-fit:contain;object-position:bottom center;justify-self:center}.owner-layout h2{font-size:clamp(60px,7vw,100px)}
.compact-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.story-contact .compact-fields label{margin:0}.compact-fields input,.compact-fields select{display:block;width:100%;margin-top:5px}
.story-contact .inquiry-area>h2{margin-bottom:24px}.story-contact .inquiry-result{padding:0;background:none}.story-contact .inquiry-result textarea{height:160px}.story-contact .draft-actions{gap:10px;flex-wrap:wrap}.story-contact .draft-actions .button{padding:10px 18px}.story-contact .inquiry-area #inquiry-next{margin-top:24px}.story-contact .story-footer{margin-top:20px}
@media(max-width:800px){.story-contact .story-inquiry-layout{gap:24px}.story-contact .story-footer{display:none}.story-contact .story-contact-details{margin:12px 0 0}.story-contact .inquiry-area>h2{font-size:32px;margin-bottom:16px}.owner-layout{grid-template-columns:1fr 1fr;gap:5%}.owner-layout h2{font-size:55px}}
@media(max-width:550px){.horizontal-home .story-panel{padding:24px 23px 74px}.story-panel .section-label{margin-bottom:14px}.story-split{gap:18px}.story-panel h2,.story-service-detail h2{font-size:42px}.story-service-list{gap:17px}.story-service-list h2{font-size:30px}.story-points{font-size:15px;line-height:1.5}.story-link{margin-top:15px}.owner-layout{display:flex;flex-direction:column;gap:16px;justify-content:center;text-align:center}.owner-portrait{height:clamp(120px,29svh,250px);flex-shrink:1;min-height:0}.owner-layout h2{font-size:42px}.owner-layout h2 br{display:none}.owner-layout .story-lead{font-size:14px;margin-top:12px}.owner-layout .section-label{font-size:8px}.compact-fields{grid-template-columns:1fr;gap:8px}.story-contact .inquiry-area input{height:36px}.story-contact .inquiry-area select{height:38px;padding:6px 9px}.story-contact .inquiry-area label{font-size:11px}.story-contact .inquiry-area #inquiry-next{margin-top:15px}.story-contact .story-inquiry-layout{gap:14px}.story-contact .story-contact-details>a{font-size:11px}.story-contact .inquiry-area>h2{font-size:28px;margin-bottom:12px}.story-contact .inquiry-area textarea{min-height:90px;height:120px}.home-page .site-navigation nav{gap:5px}.home-page .site-navigation a{font-size:8px;letter-spacing:0}}
@media(max-height:500px){.horizontal-home .story-panel{padding-top:15px;padding-bottom:55px}.story-split{grid-template-columns:1fr 1fr;gap:5%}.story-panel h2,.story-service-detail h2{font-size:35px}.story-panel .section-label{margin-bottom:10px}.story-points{font-size:13px}.story-service-list{gap:8px;grid-template-columns:1fr 1fr}.story-service-list h2{font-size:26px}.owner-layout{display:grid;grid-template-columns:1fr 1fr;text-align:left}.owner-portrait{height:100%;max-height:230px}.owner-layout h2{font-size:35px}.owner-layout .story-lead{font-size:13px}.compact-fields{grid-template-columns:1fr 1fr;gap:5px 14px}.story-contact .inquiry-area>h2{font-size:25px;margin-bottom:10px}.story-contact .inquiry-area input,.story-contact .inquiry-area select{height:32px}.story-contact .inquiry-area #inquiry-next{margin-top:10px}.story-contact .inquiry-area .button{min-height:32px;padding:6px 14px}.story-contact .inquiry-area textarea{height:75px;min-height:65px}}

/* A balanced service directory with equally weighted choices. */
.story-services .story-content{max-width:1100px;text-align:center}
.story-services .section-label{margin-bottom:48px}
.story-services .story-service-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:60px;row-gap:42px;align-items:center}
.story-services .story-service-list h2{font-size:clamp(32px,3.6vw,50px);line-height:1.1;letter-spacing:-.015em}
.story-services .story-service-list a{display:inline-block;padding:8px 0}
@media(max-width:650px){.story-services .story-content{max-width:420px}.story-services .section-label{margin-bottom:28px}.story-services .story-service-list{grid-template-columns:1fr;gap:18px}.story-services .story-service-list h2{font-size:clamp(26px,6.8vw,36px)}.story-services .story-service-list a{padding:3px 0}}
@media(max-height:500px){.story-services .section-label{margin-bottom:20px}.story-services .story-service-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 35px}.story-services .story-service-list h2{font-size:clamp(20px,3.3vw,30px)}.story-services .story-service-list a{padding:3px 0}}
.home-page .story-cover .cover-contact{position:absolute;bottom:42px;left:var(--story-edge);font-family:'Instrument Sans',Arial,sans-serif}
@media(max-width:800px){.home-page .story-cover .cover-contact{bottom:32px}}
@media(max-width:550px){.home-page .story-cover .cover-contact{bottom:28px}}

.owner-portrait{filter:grayscale(1)}

/* Portrait at 75% of its original size, tucked closer to the owner copy. */
.owner-layout{column-gap:2%}
.owner-portrait{transform:scale(.75);transform-origin:right center;justify-self:end;object-position:right center}
@media(max-width:550px) and (min-height:501px){
  .owner-layout{gap:8px}
  .owner-portrait{transform-origin:center bottom;object-position:center bottom}
}

/* Prestige's serif headings, sized for the original text-only chapters. */
.story-panel h2{font-family:var(--serif);line-height:1.08;letter-spacing:-.045em}
.story-services .story-service-list h2{font-size:clamp(24px,2.8vw,39px);line-height:1.15;letter-spacing:-.035em}
.story-services .story-service-list{column-gap:45px;row-gap:36px}
.story-service-detail h2,.story-construction h2{font-size:clamp(36px,4.15vw,62px);overflow-wrap:normal}
.story-owner h2{font-size:clamp(42px,5.2vw,74px)}
.story-contact .story-inquiry-intro h2{font-size:clamp(42px,5.7vw,82px)}
.story-contact .inquiry-area>h2{font-family:var(--serif);font-size:32px;line-height:1.1}
@media(max-width:1000px) and (min-width:651px){
 .story-service-detail h2,.story-construction h2{font-size:36px}
 .story-owner h2{font-size:43px}
}
@media(max-width:650px) and (min-height:501px){
 .story-services .story-service-list{gap:16px}
 .story-services .story-service-list h2{font-size:clamp(21px,5.5vw,30px)}
 .story-services .section-label{margin-bottom:24px}
 .story-service-detail h2,.story-construction h2{font-size:clamp(29px,7.8vw,44px);}
 .story-owner h2{font-size:clamp(29px,7.5vw,41px)}
 .story-contact .inquiry-area>h2{font-size:26px}
}
@media(max-width:650px) and (max-height:700px) and (min-height:501px){
 .story-service-detail h2,.story-construction h2{font-size:29px;}
 .story-owner .story-lead{font-size:13px;line-height:1.45}
}
@media(max-height:500px){
 .story-service-detail h2,.story-construction h2{font-size:clamp(24px,3.6vw,32px);}
 .story-services .story-service-list{gap:18px 35px}
 .story-services .story-service-list h2{font-size:clamp(18px,2.8vw,25px)}
 .story-owner h2{font-size:30px}
 .story-owner .story-link{margin-top:12px}
 .story-contact .inquiry-area>h2{font-size:24px}
}

/* Keep the contact identity visible while the whole chapter fits on a phone. */
@media(max-width:800px){
 .story-contact .story-inquiry-layout{gap:22px}
 .story-contact .story-inquiry-intro .section-label{margin-bottom:8px}
 .story-contact .story-inquiry-intro h2{font-size:clamp(36px,8vw,48px)}
 .story-contact .story-contact-details{font-size:18px;line-height:1.5}
 .story-contact .story-contact-details>a{font-size:14px;line-height:1.6}
 .story-contact .compact-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
 .story-contact .compact-fields label{min-width:0}
 .story-contact .inquiry-result{margin-top:0}
 .story-contact .inquiry-result h3{font-size:26px;line-height:1.1}
}
@media(max-width:550px) and (min-height:501px){
 .story-contact .inquiry-area input,.story-contact .inquiry-area select{height:44px}
}
@media(max-height:500px){
 .story-contact .story-inquiry-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:6%}
 .story-contact .story-inquiry-intro h2{font-size:36px}
 .story-contact .story-contact-details{margin-top:10px;font-size:17px;line-height:1.5}
 .story-contact .story-contact-details>a{font-size:13px;line-height:1.6}
 .story-contact .story-footer{display:none}
 .story-contact .compact-fields{gap:5px 12px}
 .story-contact .inquiry-area input,.story-contact .inquiry-area select{padding:3px 8px}
 .story-contact .inquiry-result{margin-top:0}
 .story-contact .inquiry-result h3{font-size:22px;line-height:1.1}
 .story-contact .draft-actions{margin-top:12px}
}
@media(max-width:550px) and (max-height:500px){
 .story-contact .story-inquiry-layout{grid-template-columns:1fr;gap:12px}
 .story-contact .story-inquiry-intro h2{font-size:32px}
 .story-contact .story-contact-details{margin-top:6px}
}
@media(max-width:350px){
 .story-contact .story-contact-details>a{font-size:13px}
}
