/* Preserve artwork proportions, including images with HTML width/height attributes. */
.original-btn{display:block;width:100%;min-width:0}
.original-btn img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
#viewer{width:min(94vw,1300px)}
#viewer img{display:block;width:100%;height:auto;max-height:78dvh;object-fit:contain}
.mobile-booking-dock{display:none}

@media(max-width:700px){
  body.demo{padding-bottom:calc(100px + env(safe-area-inset-bottom));background:var(--bg)}
  .demo .demo-bar{min-height:42px;font-size:12px;padding:6px 5%;background:var(--ink);color:var(--bg)}
  .demo-bar .lang button{color:var(--bg)}
  .demo-bar .lang button[aria-pressed=true]{background:var(--bg);color:var(--ink)}
  .demo .site-nav{border:0;padding:22px 6%;gap:16px}
  .demo .site-nav .brand{font-size:25px;letter-spacing:-.6px;max-width:75%}
  .demo .nav-toggle{font-size:13px;border-radius:50px;padding:11px 17px;border-color:color-mix(in srgb,var(--ink) 20%,transparent)}
  .demo .mobile-menu.open{margin:0 5% 12px;padding:24px;border-radius:20px;background:var(--soft);border:0}
  .demo .hero,.demo.layout-arch .hero,.demo.layout-panel .hero,.demo.layout-center .hero{display:flex;flex-direction:column;gap:0;padding:0 5% 35px;text-align:left;overflow:visible}
  .demo .hero-photo,.demo.layout-center .hero-photo,.demo.layout-editorial .hero-photo{order:0!important;width:100%;max-width:100%;transform:none;box-shadow:none;position:relative}
  .demo .hero-photo .photo{border-radius:26px;max-height:430px;box-shadow:0 20px 40px color-mix(in srgb,var(--ink) 12%,transparent)}
  .demo.layout-arch .hero-photo .photo{border-radius:180px 180px 26px 26px}
  .demo.layout-bold .hero-photo .photo{border-radius:16px}
  .demo .photo-caption{position:absolute;left:14px;right:14px;bottom:42px;margin:0;z-index:1;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid #ffffff70;border-radius:14px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px);font-size:10px;line-height:1.4;letter-spacing:1px;color:var(--ink)}
  .demo .photo-caption span:last-child{max-width:42%;text-align:right}
  .demo .hero-copy,.demo.layout-panel .hero-copy,.demo.layout-arch .hero-copy{order:1!important;position:relative;z-index:2;width:calc(100% - 20px);max-width:none;margin:-22px 10px 0;padding:27px 22px 26px;background:var(--bg);border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:22px;box-shadow:0 18px 38px color-mix(in srgb,var(--ink) 9%,transparent)}
  .demo .hero-copy .eyebrow{font-size:10px;letter-spacing:1.3px;line-height:1.7}
  .demo .hero h1,.demo.layout-panel .hero h1,.demo.layout-center .hero h1{font-size:clamp(36px,10.5vw,58px);line-height:1.04;letter-spacing:-1.6px;margin:14px 0 18px;overflow-wrap:normal}
  .demo .hero p:not(.eyebrow){font-size:15px;line-height:1.7;margin-bottom:0}
  .demo .hero-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:22px}
  .demo .btn{border-radius:50px;min-height:48px;font-size:14px;font-weight:600;padding:13px 18px;transition:box-shadow .2s,transform .2s}
  .demo .btn:not(.secondary){box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 20%,transparent)}
  .demo .btn:active{transform:scale(.98)}
  .demo .hero-actions .secondary{background:var(--soft);border-color:transparent}
  .demo .book-strip{margin:0 5%;padding:24px;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:24px;background:var(--soft)}
  .demo .book-strip h2{font-size:25px;line-height:1.15}
  .demo .book-strip select{border-radius:12px;min-height:48px;background:var(--bg);color:var(--ink);font-size:15px}
  .demo .section{padding:48px 6%}
  .demo .section h2{font-size:clamp(30px,9vw,42px);line-height:1.08;letter-spacing:-1px}
  .demo .section-heading>p{font-size:15px;line-height:1.7}
  .demo .services{display:grid;gap:13px}
  .demo .service{padding:25px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:22px;background:color-mix(in srgb,var(--soft) 55%,var(--bg));position:relative}
  .demo .service-num{display:inline-flex;width:35px;height:35px;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:var(--button-ink);font-size:12px;letter-spacing:0}
  .demo .service h3{font-size:25px;margin-top:19px}
  .demo .service p{font-size:15px;line-height:1.65}
  .demo .service-bottom{gap:14px;font-size:13px;margin-top:24px}
  .demo .service-bottom button{padding:10px 0;font-weight:600}
  .demo .work-section{margin:0 4%;padding:26px 5%;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:24px;background:var(--soft)}
  .demo .work-layout{display:flex;flex-direction:column;gap:25px;align-items:stretch}
  .demo .original-btn{border-radius:15px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);box-shadow:0 10px 25px #00000012}
  .demo .work-copy .eyebrow{display:block;margin-bottom:14px;font-size:11px}
  .demo .work-copy p{font-size:15px;line-height:1.7;margin:17px 0}
  .demo .work-copy .btn{width:100%}
  .demo .contact-layout{padding:26px;border-radius:24px;background:var(--soft)}
  .demo .contact-layout p{font-size:15px;line-height:1.7}
  .demo .contact-layout .btn{width:100%}
  .demo .site-footer{border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding:30px 6%}
  .demo .mobile-booking-dock{display:flex;align-items:center;justify-content:space-between;gap:18px;position:fixed;left:4%;right:4%;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;padding:11px 12px 11px 20px;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);border-radius:24px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(20px);box-shadow:0 10px 45px #0003}
  .mobile-booking-dock>a{display:grid;gap:3px;font-size:14px;font-weight:600;line-height:1.25}
  .mobile-booking-dock small{font-size:11px;font-weight:400;opacity:.7}
  .mobile-booking-dock .btn{min-width:132px;flex-shrink:0;min-height:47px}
  #viewer{padding:45px 10px 14px;border-radius:18px}
  #viewer img{max-height:65dvh;aspect-ratio:auto}
  #booking{border-radius:24px}
}
