:root{color-scheme:light;--charcoal:#171717;--link:#234e70;--ink:#252525}*{box-sizing:border-box}body{margin:0;font:1.05rem/1.6 system-ui,sans-serif;color:var(--ink);background:#f2f2f2}a{color:var(--link)}a:focus-visible{outline:3px solid #306590;outline-offset:4px}.wrap{width:min(1100px,92%);margin:auto}header{background:white;border-bottom:1px solid #d2d2d2}nav{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem 0}nav a{text-decoration:none;font-weight:650}nav img{width:205px;height:48px;object-fit:contain;vertical-align:middle}nav [aria-current]{text-decoration:underline;text-underline-offset:.35em}.hero{background:linear-gradient(125deg,#111111,#393939);color:white;border-bottom:2px solid #9e252a;padding:clamp(3rem,8vw,7rem) 0}.hero p{max-width:65ch}.tag{font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:#b8d5e7}h1,h2,h3{line-height:1.12}h1{font-size:clamp(2.1rem,5vw,4.2rem);max-width:22ch;margin:.2em 0}.section{padding:3rem 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,275px),1fr));gap:1rem}.card,figure{margin:0;background:white;padding:1.3rem;border:1px solid #d2d2d2;border-radius:1rem}.btn{display:inline-block;background:#ededed;color:#202020;padding:.7rem 1rem;border-radius:.5rem;font-weight:750;text-decoration:none}figure img{width:100%;height:260px;object-fit:contain;background:#ededed;border-radius:.5rem}figcaption{margin-top:.7rem}footer{background:var(--charcoal);color:white;padding:1.4rem 0}footer a{color:#d4e4ef}

nav { display:grid; grid-template-columns:auto minmax(0,1fr); }
.nav-links { display:flex; flex-wrap:wrap; justify-content:center; gap:.4rem 1rem; }
.nav-links a, .language { padding:.55rem .15rem; }
.nav-links { align-items:center; }
.language { margin-inline-start:auto; }
main .section + .section { border-top:1px solid #d2d2d2; }
.gallery figure { min-width:0; }
.gallery figure img { height:clamp(240px,40vw,365px); }
.gallery figcaption { font-weight:650; }
.faq details { max-width:75ch; margin:.8rem 0; }
.faq summary { cursor:pointer; font-weight:700; }
@media(max-width:900px) {
  nav { grid-template-columns:minmax(0,1fr) auto; gap:.3rem 1rem; }
  .nav-links { grid-row:2; grid-column:1/-1; justify-content:start; flex-wrap:nowrap; overflow-x:auto; padding:.2rem; }
  .nav-links a { flex:none; white-space:nowrap; }
}
@media(max-width:480px) {
  nav img { width:min(185px,100%); }
  .nav-links { column-gap:.7rem; }
  .nav-links a { font-size:.94rem; }
  .hero, .section { padding:2.5rem 0; }
}
.language-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.language select { padding:.55rem .45rem; color:var(--ink); border:1px solid #a0a0a0; background:#f2f2f2; border-radius:.25rem; font:inherit; font-size:.875rem; }
.language select:focus-visible { outline:3px solid #306590; outline-offset:3px; }
.gallery-open { display:block; width:100%; border:0; padding:0; background:transparent; cursor:zoom-in; }
.gallery-open:focus-visible { outline:3px solid #306590; outline-offset:4px; }
.image-preview { width:min(840px,92vw); max-height:90vh; border:1px solid #a0a0a0; border-radius:1rem; padding:1rem; color:var(--ink); }
.image-preview::backdrop { background:rgb(17 17 17 / 75%); }
.image-preview form { display:flex; justify-content:flex-end; margin-bottom:.75rem; }
.image-preview button { padding:.5rem .8rem; border:1px solid #a0a0a0; border-radius:.4rem; background:#e9e9e9; color:var(--charcoal); font:inherit; cursor:pointer; }
.image-preview img { display:block; width:100%; max-height:68vh; object-fit:contain; }
.image-preview p { margin:.5rem 0 0; }

.request-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.request-form > p, .form-wide { grid-column:1/-1; }
.request-form label { display:grid; gap:.35rem; font-weight:650; }
.request-form input, .request-form select, .request-form textarea { width:100%; min-width:0; padding:.65rem; border:1px solid #a0a0a0; border-radius:.4rem; color:var(--ink); background:white; font:inherit; }
.request-form button:disabled { opacity:.65; cursor:default; }
@media(max-width:640px) { .request-form { grid-template-columns:1fr; } }
.request-form label { display:block; }
.request-form label > :is(input, select, textarea) { display:block; margin-top:.35rem; }
.request-form ::placeholder { color:#626262; opacity:1; }
.required-mark { color:#9e252a; font-weight:750; }
.business-card-original { max-width:620px; margin:auto; }
.business-card-original img { display:block; width:100%; height:auto; }

nav .brand { display:flex; align-items:center; gap:.6rem; min-width:0; color:var(--charcoal); font-weight:750; line-height:1.2; }
nav .brand img { flex:none; width:clamp(48px,9vw,76px); height:48px; object-fit:contain; }
/* Brand gradients inspired by the blue iris and the card's graphite finish. */
:root {
  --charcoal: #192b3e;
  --ink: #1f2d3b;
  --link: #174f7a;
  --panel-gradient: linear-gradient(145deg, #ffffff 20%, #edf1f5 100%);
  --action-gradient: linear-gradient(135deg, #17466f, #326b92);
}
body { background: linear-gradient(145deg, #f7f8fa, #dce4eb); }
header { background: linear-gradient(110deg, #ffffff 12%, #e5ebf0); border-color: #b4c4d2; }
.hero {
  background: linear-gradient(118deg, #183d61 0%, #2f5e82 48%, #48535d 100%);
  border-bottom-color: #80aecb;
}
.tag { color: #d0ebfb; }
.card, figure, .image-preview { background: var(--panel-gradient); border-color: #becbd6; }
figure img { background: linear-gradient(145deg, #e8eef3, #d1dae2); }
main .section + .section { border-color: #b4c4d2; }
.btn, .image-preview button { background: var(--action-gradient); color: white; border-color: #275b82; }
.language select, .request-form input, .request-form select, .request-form textarea {
  background: linear-gradient(160deg, #ffffff 45%, #eef3f7);
  border-color: #899caf;
}
.image-preview::backdrop { background: rgb(23 40 56 / 78%); }
footer { background: linear-gradient(115deg, #20384d, #444c54); }
body > header { position:sticky; top:0; z-index:10; box-shadow:0 3px 14px #192b3e24; }
.menu-toggle { display:none; }
@media(max-width:900px) {
  body > header { position:sticky; top:0; z-index:10; box-shadow:0 3px 14px #192b3e24; }
  header nav { grid-template-columns:minmax(0,1fr) auto; gap:.45rem; padding:.6rem 0; }
  nav .brand { font-size:clamp(.85rem,3.6vw,1.05rem); gap:.35rem; }
  nav .brand img { width:clamp(32px,10vw,48px); height:36px; }
  .menu-toggle { display:inline-flex; align-items:center; gap:.3rem; padding:.5rem; border:1px solid #899caf; border-radius:.3rem; color:var(--ink); background:#f1f5f8; font:inherit; font-size:.85rem; cursor:pointer; }
  .menu-toggle:focus-visible { outline:3px solid #306590; outline-offset:2px; }
  header .nav-links { display:none; grid-row:2; grid-column:1/-1; max-height:60vh; overflow:auto; }
  .menu-toggle[aria-expanded="true"] + .nav-links { display:flex; flex-direction:column; align-items:stretch; }
  .nav-links .language { margin-inline-start:0; border-top:1px solid #b4c4d2; }
}
@media (min-width: 901px) {
  .nav-links { justify-content: flex-end; }
  .nav-links .language { margin-inline-start: 0; }
}
.gallery-open { position:relative; cursor:pointer; }
.gallery-open::after {
  content:""; position:absolute; right:.65rem; bottom:.65rem;
  width:2.25rem; height:2.25rem; border-radius:50%;
  background:#17334c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='5.5'/%3E%3Cpath d='m14 14 5 5M8 10h4m-2-2v4'/%3E%3C/svg%3E") center / 1.25rem no-repeat;
  box-shadow:0 2px 8px #0004; pointer-events:none;
}
.gallery-open:hover::after,.gallery-open:focus-visible::after { background-color:#245d88; }
.home-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(1rem,4vw,3rem); }
.home-gallery { background:#142f48; color:white; padding:.65rem; min-width:0; border-color:#91aec2; }
.home-gallery-window { aspect-ratio:5/3; overflow:hidden; border-radius:.65rem; background:#35556d; }
.camera-slide { width:100%; height:100%; background-size:300% 500%; background-repeat:no-repeat; animation:camera-zoom 5.5s ease-out both; }
.is-paused .camera-slide { animation-play-state:paused; }
@keyframes camera-zoom { from { transform:scale(1); } to { transform:scale(1.09); } }
.home-gallery figcaption { display:flex; justify-content:space-between; align-items:center; gap:.75rem; margin:.4rem .3rem 0; }
.camera-play { color:white; background:transparent; border:1px solid #91aec2; border-radius:.3rem; padding:.35rem .6rem; cursor:pointer; }
.camera-dots { display:flex; flex-wrap:wrap; justify-content:center; }
.camera-dots button { display:grid; place-items:center; width:clamp(17px,4.5vw,24px); height:26px; border:0; padding:0; background:transparent; cursor:pointer; }
.camera-dots button::before { content:""; width:7px; height:7px; border-radius:50%; background:#aac0d0; }
.camera-dots [aria-current="true"]::before { background:white; transform:scale(1.45); }
.home-next { max-width:70ch; }
@media(max-width:800px) { .home-hero { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .camera-slide { animation:none; } }
.camera-slide { background-image:url("assets/camera-scenes.png"); background-size:300% 550%; }
.camera-note { display:block; text-align:center; color:#d8e6ef; font-size:.75rem; }
