/* Interior pages only: the approved homepage and its shared CSS stay untouched. */
/* Reserve the gallery page scrollbar gutter before and during modal scroll locking. */
html:has([data-gallery-dialog]) { scrollbar-gutter:stable; }
.interior-page { --page-bg:#071317; --page-panel:#0b1c21; --page-line:rgba(255,255,255,.13); --page-muted:#a6b6bb; --page-accent:#22d3ee; background:var(--page-bg); color:#f5f8f9; font-family:Manrope,sans-serif; }
.interior-page *, .interior-page *::before, .interior-page *::after { box-sizing:border-box; }
.interior-page main { overflow:clip; }
.interior-page main h1,.interior-page main h2,.interior-page main h3,.interior-page main h4 { margin:0; font-family:Syne,sans-serif; font-weight:700; }
.interior-page main p { margin:0; }
.interior-page main a { opacity:1; }
.interior-page :focus-visible { outline:2px solid var(--page-accent); outline-offset:6px; }
.page-container { width:100%; max-width:1500px; margin-inline:auto; padding-inline:clamp(24px,4.5vw,64px); }
.page-eyebrow { display:block; margin:0 0 24px !important; color:var(--page-accent); font-size:10px; font-weight:700; line-height:1.7; letter-spacing:.23em; text-transform:uppercase; }
.page-hero { isolation:isolate; position:relative; display:flex; align-items:center; min-height:780px; min-height:min(880px,100svh); padding-block:180px 88px; border-bottom:1px solid var(--page-line); }
.page-hero::before { position:absolute; inset:0; z-index:-1; content:""; background:radial-gradient(ellipse at 70% 10%,rgba(34,211,238,.08),transparent 60%),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px); background-size:auto,80px 80px,80px 80px; }
.page-hero-image { position:absolute; z-index:-2; inset:0 0 0 34%; overflow:hidden; }
.page-hero-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.65); }
.page-hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#071317 0%,rgba(7,19,23,.78) 25%,rgba(7,19,23,.4) 80%),linear-gradient(0deg,#071317,transparent 50%,rgba(7,19,23,.3)); }
.page-hero h1 { max-width:1080px; font-size:clamp(3.4rem,6.9vw,7rem); line-height:.98; letter-spacing:-.065em; text-wrap:balance; }
.page-hero h1 .accent, .section-heading .accent { color:var(--page-accent); }
.page-hero .hero-intro { max-width:560px; margin-top:30px; color:#becad0; font-size:clamp(1rem,1.5vw,1.15rem); line-height:1.75; }
.hero-index { display:flex; gap:16px; align-items:center; margin-top:64px; color:#8fa5ad; font-size:9px; letter-spacing:.2em; text-transform:uppercase; }
.hero-index::before { content:""; width:36px; height:1px; background:var(--page-accent); }
.page-hero--compact { min-height:0; padding-block:182px 76px; }
.page-hero--compact h1 { max-width:1000px; }
.page-section { padding-block:clamp(76px,9vw,136px); }
.page-section--lined { border-bottom:1px solid var(--page-line); }
.section-heading { font-size:clamp(2.4rem,4.3vw,4.6rem); line-height:1.05; letter-spacing:-.055em; text-wrap:balance; }
.section-intro { max-width:650px; margin-top:26px !important; color:var(--page-muted); font-size:17px; line-height:1.85; }
.page-actions { display:flex; flex-wrap:wrap; align-items:center; gap:28px; margin-top:36px; }
.page-button { display:inline-flex; align-items:center; justify-content:space-between; gap:38px; min-height:56px; padding:18px 26px; border:1px solid var(--page-accent); background:var(--page-accent); color:#031014; font-size:10px; font-weight:800; letter-spacing:.16em; line-height:1.5; text-transform:uppercase; text-decoration:none; transition:background .2s,color .2s; cursor:pointer; }
.page-button:hover { background:#a5f3fc; border-color:#a5f3fc; }
.page-button span { font-size:21px; font-weight:400; line-height:1; }
.page-button [data-submit-label] { font:inherit; }
.page-button--outline { background:transparent; color:var(--page-accent); }
.page-button--outline:hover { color:#031014; }
.page-text-link { display:inline-flex; align-items:center; gap:20px; min-height:44px; font-size:12px; font-weight:600; text-decoration:none; }
.page-text-link:hover { color:var(--page-accent); }
.page-text-link span { color:var(--page-accent); font-size:20px; }
.page-split { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(40px,7vw,108px); }
.page-split--wide { grid-template-columns:1.15fr .85fr; }
.page-copy p + p { margin-top:22px; }
.page-copy > p:not(.page-eyebrow) { color:var(--page-muted); line-height:1.85; }
.page-photo { position:relative; margin:0; }
.page-photo img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.page-photo--landscape img { aspect-ratio:4/3; }
.page-photo figcaption { display:flex; justify-content:space-between; gap:24px; margin-top:16px; font-size:10px; line-height:1.65; letter-spacing:.12em; text-transform:uppercase; color:var(--page-muted); }
.page-photo figcaption span:last-child { color:var(--page-accent); }
.feature-list { margin-top:36px; }
.feature { display:grid; grid-template-columns:30px 1fr; gap:16px; border-top:1px solid var(--page-line); padding-block:25px; }
.feature-number { color:var(--page-accent); font-size:11px; line-height:2.2; }
.feature h3 { font-size:22px; line-height:1.25; letter-spacing:-.03em; }
.feature p { margin-top:12px; color:var(--page-muted); line-height:1.8; font-size:14px; }
.page-cta { position:relative; isolation:isolate; overflow:hidden; padding-block:clamp(76px,8vw,120px); border-block:1px solid var(--page-line); background:#0a1c22; }
.page-cta::before { content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at 80% 80%,rgba(34,211,238,.1),transparent 60%); }
.page-cta .section-heading { max-width:870px; }
.page-cta-inner { display:grid; grid-template-columns:1.25fr .75fr; gap:64px; align-items:end; }
.page-cta .page-copy { max-width:460px; }
.service-strip { display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--page-line); }
.service-strip a { display:flex; align-items:center; justify-content:space-between; padding:28px 24px; font-size:11px; text-transform:uppercase; letter-spacing:.17em; text-decoration:none; border-right:1px solid var(--page-line); }
.service-strip a:last-child { border:0; }
.service-strip a:hover { background:var(--page-panel); color:var(--page-accent); }
.service-strip span { color:var(--page-accent); font-size:23px; }
.rental-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:48px; }
.rental-heading p { max-width:350px; color:var(--page-muted); }
.rental-package { display:grid; grid-template-columns:.9fr 1.1fr; border:1px solid var(--page-line); margin-top:32px; background:#0a191e; }
.rental-showcase { display:flex; flex-direction:column; padding:36px; border-right:1px solid var(--page-line); background:radial-gradient(ellipse at 50% 50%,rgba(34,211,238,.08),transparent 65%); }
.package-topline { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; }
.package-topline .page-eyebrow { margin-bottom:18px !important; }
.availability { font-size:10px; color:#a6dacf; white-space:nowrap; }
.availability::before { content:""; display:inline-block; width:5px; height:5px; border-radius:50%; background:#5eead4; margin-right:8px; }
.rental-showcase h3 { font-size:clamp(2rem,3.1vw,3rem); letter-spacing:-.045em; }
.rental-products { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:20px; flex:1; padding:24px; margin-top:32px; background:#e5edef; }
.rental-products figure { margin:0; min-width:0; text-align:center; }
.rental-products img { width:100%; height:220px; object-fit:contain; mix-blend-mode:multiply; }
.rental-products figcaption { margin-top:20px; color:#36565f; font-size:9px; font-weight:700; letter-spacing:.15em; line-height:1.7; }
.rental-products--streaming { grid-template-columns:1fr 1fr; }
.rental-products--streaming figure:first-child { grid-column:1/-1; }
.rental-products--streaming img { height:165px; }
.rental-details { padding:36px 40px; }
.rental-details h4 { margin-top:22px; font-size:18px; line-height:1.4; }
.spec-list { list-style:none; margin:14px 0 0; padding:0; }
.spec-list li { position:relative; padding-left:18px; margin-top:8px; font-size:13px; color:var(--page-muted); line-height:1.7; }
.spec-list li::before { content:""; position:absolute; top:.75em; left:0; width:4px; height:4px; background:var(--page-accent); }
.package-booking { margin-top:30px; padding-top:28px; border-top:1px solid var(--page-line); display:flex; flex-wrap:wrap; gap:22px; align-items:center; justify-content:space-between; }
.package-booking p { max-width:150px; font-size:10px; line-height:1.8; letter-spacing:.1em; text-transform:uppercase; color:var(--page-muted); }
.package-booking .page-button { gap:20px; }
.faq-layout { display:grid; grid-template-columns:.7fr 1.3fr; gap:80px; }
.faq-list details { border-top:1px solid var(--page-line); }
.faq-list details:last-child { border-bottom:1px solid var(--page-line); }
.faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 0; cursor:pointer; font-size:16px; font-weight:600; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; flex-shrink:0; font-size:25px; color:var(--page-accent); font-weight:400; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list details p { padding:0 38px 28px 0; color:var(--page-muted); font-size:14px; line-height:1.9; }
.project-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px 36px; }
.project-card { margin:0; min-width:0; }
.project-card:first-child { grid-column:1/-1; }
.project-image { position:relative; display:block; width:100%; overflow:hidden; background:#10252b; text-decoration:none; }
.project-image img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .6s; }
.project-card:first-child .project-image img { aspect-ratio:2.05; }
.project-image:hover img { transform:scale(1.035); }
.image-expand { position:absolute; right:16px; bottom:16px; display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.4); background:rgba(7,19,23,.8); color:#fff; font-size:24px; }
.project-info { display:flex; justify-content:space-between; align-items:start; gap:30px; padding-top:22px; }
.project-info h2 { font-size:clamp(1.4rem,2.1vw,2rem); line-height:1.2; letter-spacing:-.04em; }
.project-info p { color:var(--page-muted); font-size:12px; margin-top:12px; }
.project-info .project-number { color:var(--page-accent); font-size:11px; padding-top:4px; }
.project-location { font-size:10px !important; text-transform:uppercase; letter-spacing:.14em; }
.spotlight-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:30px; padding-top:24px; border-top:1px solid var(--page-line); }
.spotlight-stats p { font-size:13px; }
.spotlight-stats span { display:block; color:var(--page-muted); font-size:9px; text-transform:uppercase; letter-spacing:.17em; margin-bottom:10px; }
.project-tags { display:flex; flex-wrap:wrap; gap:8px; padding:0; list-style:none; margin-top:28px; }
.project-tags li { padding:8px 10px; border:1px solid var(--page-line); color:var(--page-muted); font-size:9px; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:44px; }
.gallery-grid img { aspect-ratio:1; }
.gallery-grid .image-expand { width:28px; height:28px; font-size:18px; right:10px; bottom:10px; }
.use-case-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:48px; }
.use-case { border-top:1px solid var(--page-line); padding:26px 28px 26px 0; }
.use-case h3 { font-size:19px; letter-spacing:-.025em; }
.use-case p { margin-top:16px; color:var(--page-muted); font-size:13px; line-height:1.8; }
.experience-stat { border-top:1px solid var(--page-line); padding-top:36px; margin-top:40px; }
.experience-stat strong { display:block; color:var(--page-accent); font-family:Syne,sans-serif; font-weight:700; font-size:clamp(6rem,12vw,11rem); line-height:.9; letter-spacing:-.08em; }
.experience-stat h3 { margin-top:20px; font-size:20px; }
.experience-stat p { max-width:480px; margin-top:20px; color:var(--page-muted); font-size:14px; line-height:1.8; }
.about-team { margin-top:70px; }
.about-team img { aspect-ratio:2.2; object-position:center; }
.form-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(48px,7vw,100px); align-items:start; }
.inquiry-form h2 { font-size:clamp(2rem,3vw,3rem); letter-spacing:-.045em; }
.inquiry-form .form-intro { color:var(--page-muted); margin-top:16px; margin-bottom:36px; }
.form-fields { display:grid; grid-template-columns:1fr 1fr; gap:26px 22px; }
.form-field--full { grid-column:1/-1; }
.form-field label { display:block; margin-bottom:10px; font-size:12px; color:#d2dde0; }
.form-field input,.form-field textarea,.form-field select { display:block; width:100%; min-height:54px; padding:15px 16px; border:1px solid #385058; border-radius:0; background:#0b1c21; color:#f5f8f9; font-family:Manrope,sans-serif; font-size:14px; box-shadow:none; }
.form-field select { padding-right:38px; color-scheme:dark; }
.form-field input:focus,.form-field textarea:focus,.form-field select:focus { border-color:var(--page-accent); outline:1px solid var(--page-accent); outline-offset:0; box-shadow:none; }
.form-field [aria-invalid="true"] { border-color:#fda4af; }
.form-field textarea { min-height:180px; resize:vertical; line-height:1.8; }
.form-field ::placeholder { color:#879ba2; opacity:1; }
.form-field .errorlist,.form-errors .errorlist { padding:0; list-style:none; color:#fda4af; font-size:12px; margin:10px 0 0; }
.form-errors { padding:18px 22px; border:1px solid #fda4af; background:#301c25; margin-bottom:28px; color:#ffe4e6; }
.form-errors .errorlist { margin:0; }
.form-errors a { text-decoration:underline; }
.form-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-note { margin-top:18px !important; font-size:12px; color:var(--page-muted); }
.page-button:disabled { opacity:.65; cursor:wait; }
.contact-aside { border-top:1px solid var(--page-line); }
.contact-aside h2 { padding-top:32px; font-size:24px; }
.contact-detail { padding-block:24px; border-bottom:1px solid var(--page-line); }
.contact-detail dt { margin-bottom:12px; color:var(--page-muted); font-size:10px; text-transform:uppercase; letter-spacing:.18em; }
.contact-detail dd { margin:0; font-size:18px; line-height:1.65; }
.contact-detail address { font-style:normal; }
.contact-aside .page-photo { margin-top:36px; }
.contact-aside .page-photo img { aspect-ratio:4/3; }
.direct-email { margin-top:54px; padding-top:30px; border-top:1px solid var(--page-line); }
.direct-email h2 { font-size:21px; padding:0; }
.direct-email p { color:var(--page-muted); margin-top:14px; font-size:14px; }
.direct-email a { color:var(--page-accent); text-decoration:underline; }
.success-mark { display:grid; place-items:center; width:68px; height:68px; margin-bottom:30px; border:1px solid var(--page-accent); color:var(--page-accent); font-size:32px; }
.interior-footer { border-top:1px solid var(--page-line); }
.footer-topline { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px 0; border-bottom:1px solid var(--page-line); font-size:10px; letter-spacing:.18em; color:var(--page-muted); }
.footer-topline a { text-transform:uppercase; text-decoration:none; }
.footer-topline a span { margin-left:18px; color:var(--page-accent); }
.footer-columns { display:grid; grid-template-columns:1.4fr 1fr 1fr .7fr; gap:40px; padding-block:64px; }
.footer-brand img { width:128px; height:auto; }
.footer-brand p { margin-top:22px; }
.footer-columns p,.footer-columns address,.footer-columns a { font-size:13px; color:var(--page-muted); line-height:1.9; font-style:normal; }
.footer-columns .page-eyebrow { font-size:9px; color:#e0e9ec; }
.footer-columns a { display:block; width:fit-content; margin-bottom:8px; text-decoration:none; }
.footer-columns a:hover { color:var(--page-accent); }
.footer-columns nav nav,.footer-columns div nav { margin-top:22px; }
.footer-social { display:flex; gap:20px; margin-top:24px; }
.footer-social a { font-size:10px; }
.footer-directions { margin-top:16px; }
.footer-bottomline { display:flex; justify-content:space-between; align-items:center; gap:40px; border-top:1px solid var(--page-line); padding:24px 0; }
.footer-bottomline p { color:#8da2aa; font-size:10px; line-height:1.9; }
.footer-bottomline a { text-decoration:underline; }
.interior-skip { position:fixed; top:12px; left:20px; z-index:100; transform:translateY(-200%); padding:12px 20px; background:var(--page-accent); color:#031014; }
.interior-skip:focus { transform:translateY(0); }
.gallery-dialog { width:min(1100px,calc(100vw - 32px)); max-height:calc(100svh - 32px); padding:20px; border:1px solid #49606a; background:#071317; color:#fff; }
.gallery-dialog::backdrop { background:rgba(3,12,16,.88); opacity:var(--gallery-backdrop,1); }
.gallery-dialog img { width:100%; height:70svh; object-fit:contain; }
.gallery-dialog-bar { display:flex; justify-content:space-between; gap:24px; align-items:center; padding-bottom:20px; }
.gallery-dialog-bar p { color:var(--page-muted); font-size:13px; }
.gallery-dialog button { min-height:44px; padding:8px 18px; border:1px solid var(--page-line); color:var(--page-accent); font-size:12px; }
@media (min-width:1500px) { .page-hero { min-height:850px; } .page-hero--compact { min-height:0; } }
@media (max-width:1023px) {
  .page-hero { min-height:720px; padding-top:164px; }
  .page-hero--compact { min-height:0; }
  .page-hero-image { left:20%; opacity:.7; }
  .page-hero h1 { font-size:clamp(3.3rem,8vw,5.5rem); }
  .page-split,.page-split--wide { gap:38px; }
  .page-cta-inner { gap:40px; grid-template-columns:1fr 1fr; }
  .rental-package { grid-template-columns:1fr; }
  .rental-showcase { border-right:0; border-bottom:1px solid var(--page-line); }
  .rental-products { max-width:600px; width:100%; margin:32px auto 0; }
  .rental-products--streaming { grid-template-columns:repeat(3,1fr); }
  .rental-products--streaming figure:first-child { grid-column:auto; }
  .rental-products--streaming img { height:175px; }
  .faq-layout { gap:40px; grid-template-columns:.8fr 1.2fr; }
  .use-case-grid,.gallery-grid { grid-template-columns:repeat(2,1fr); }
  .form-layout { grid-template-columns:1.2fr .8fr; gap:40px; }
  .footer-columns { grid-template-columns:1fr 1fr; gap:44px; }
}
@media (max-width:700px) {
  .page-hero { min-height:730px; padding-block:158px 64px; }
  .page-hero--compact { min-height:0; padding-block:160px 62px; }
  .page-hero h1 { font-size:clamp(2rem,10.5vw,4.5rem); line-height:1.02; letter-spacing:-.055em; }
  .page-hero-image { left:0; opacity:.5; }
  .page-hero-image::after { background:linear-gradient(90deg,rgba(7,19,23,.95),rgba(7,19,23,.3)),linear-gradient(0deg,#071317,transparent 80%); }
  .hero-index { margin-top:42px; }
  .page-split,.page-split--wide,.page-cta-inner,.faq-layout,.form-layout { grid-template-columns:1fr; gap:42px; }
  .section-heading { font-size:clamp(2.3rem,8.5vw,3.3rem); }
  .page-photo img { max-height:560px; }
  .page-photo--landscape img { max-height:none; }
  .page-actions { gap:20px; }
  .service-strip { grid-template-columns:1fr; }
  .service-strip a { border-right:0; border-bottom:1px solid var(--page-line); padding-inline:0; }
  .rental-heading { display:block; }
  .rental-heading > p { margin-top:24px; }
  .rental-showcase,.rental-details { padding:26px 22px; }
  .rental-products { gap:14px; padding:18px; }
  .rental-products img { height:180px; }
  .rental-products--streaming { grid-template-columns:1fr 1fr; }
  .rental-products--streaming figure:first-child { grid-column:1/-1; }
  .rental-products--streaming img { height:135px; }
  .project-grid { grid-template-columns:1fr; gap:44px; }
  .project-card:first-child .project-image img { aspect-ratio:4/3; }
  .project-info h2 { font-size:1.65rem; }
  .gallery-grid { gap:10px; }
  .use-case { padding-right:20px; }
  .use-case h3 { font-size:18px; }
  .about-team img { aspect-ratio:4/3; }
  .form-fields { grid-template-columns:1fr; }
  .footer-columns { grid-template-columns:1fr 1fr; gap:38px 24px; padding-block:48px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottomline { align-items:start; flex-direction:column; gap:14px; }
  .footer-topline { font-size:8px; letter-spacing:.1em; }
  .gallery-dialog { padding:14px; }
  .gallery-dialog img { height:60svh; }
}
@media (prefers-reduced-motion:reduce) { .interior-page *, .interior-page *::before, .interior-page *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
