:root{
    --ink:#15120F;
    --panel:#211B16;
    --panel-2:#2B241D;
    --paper:#F6F1E9;
    --paper-2:#E8DFCD;
    --wood:#8A5A31;
    --ember:#DD7A2A;
    --ember-dim:#B9631F;
    --brass:#C28A4E;
    --cream:#F1EBE2;
    --line-dark:rgba(239,231,216,0.16);
    --line-light:rgba(21,18,15,0.14);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Work Sans',-apple-system,BlinkMacSystemFont,sans-serif;
    font-size:18px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  h1,h2,h3,h4{
    font-family:'Fraunces',Georgia,serif;
    font-weight:600;
    line-height:1.12;
    margin:0;
    text-wrap:balance;
    letter-spacing:-0.01em;
  }
  .container{max-width:1180px;margin:0 auto;padding-inline:24px;}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px;
    letter-spacing:0.16em;
    text-transform:uppercase;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{content:'';width:22px;height:1px;background:currentColor;opacity:0.55;}
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'IBM Plex Mono',monospace;
    font-size:13.5px;
    letter-spacing:0.04em;
    text-transform:uppercase;
    padding:14px 26px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .35s cubic-bezier(.2,.7,.2,1), background .25s ease, border-color .25s ease, color .25s ease;
  }
  .btn-primary{background:var(--ember);color:#1A1108;}
  .btn-primary:hover{background:#EE8B3D;transform:translateY(-2px);}
  .btn-ghost{border-color:var(--line-dark);color:var(--cream);}
  .btn-ghost:hover{border-color:var(--brass);color:var(--brass);transform:translateY(-2px);}
  .btn-ghost.on-light{border-color:var(--line-light);color:var(--ink);}
  .btn-ghost.on-light:hover{border-color:var(--wood);color:var(--wood);}

  /* ---------- NAV ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    padding:18px 0;
    background:linear-gradient(to bottom, rgba(21,18,15,0.85), rgba(21,18,15,0));
    transition:background .4s ease, padding .4s ease, backdrop-filter .4s ease;
  }
  header.scrolled{
    background:rgba(21,18,15,0.92);
    backdrop-filter:blur(10px);
    padding:12px 0;
    box-shadow:0 1px 0 var(--line-dark);
  }
  .nav-row{display:flex;align-items:center;justify-content:space-between;gap:24px;}
  .brand{display:flex;align-items:center;gap:12px;color:var(--cream);}
  .brand-logo{height:36px;width:auto;display:block;}
  nav.links{display:flex;gap:34px;font-size:14.5px;color:var(--cream);}
  nav.links a{position:relative;padding-bottom:4px;opacity:0.88;transition:opacity .2s;}
  nav.links a:hover{opacity:1;}
  nav.links a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ember);transition:width .3s ease;}
  nav.links a:hover::after{width:100%;}
  .nav-actions{display:flex;align-items:center;gap:18px;}
  .menu-toggle{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:0;}
  .menu-toggle span{width:22px;height:2px;background:var(--cream);display:block;transition:transform .3s, opacity .3s;}
  .mobile-panel{
    display:none;
    position:fixed;inset:0;z-index:99;
    background:var(--ink);
    padding:100px 28px 40px;
    flex-direction:column;
    gap:0;
  }
  .mobile-panel.open{display:flex;}
  .mobile-panel a{
    font-family:'Fraunces',serif;font-size:28px;color:var(--cream);
    padding:16px 0;border-bottom:1px solid var(--line-dark);
  }
  .mobile-panel .btn{margin-top:28px;align-self:flex-start;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:min(880px,96vh);
    display:flex;
    align-items:flex-end;
    background:var(--ink);
    overflow:hidden;
  }
  .hero img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    opacity:0.72;
  }
  .hero::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(21,18,15,0.55) 0%, rgba(21,18,15,0.25) 38%, rgba(21,18,15,0.94) 100%);
  }
  .hero::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(90deg, rgba(21,18,15,0.9) 0%, rgba(21,18,15,0.25) 55%, transparent 78%);
  }
  .hero-inner{
    position:relative;z-index:2;
    width:100%;
    padding:0 24px 76px;
    max-width:1180px;margin:0 auto;
  }
  .hero-content{max-width:640px;}
  .hero .eyebrow{color:var(--brass);margin-bottom:22px;}
  .hero h1{
    font-size:clamp(2.6rem, 5.4vw, 4.5rem);
    color:var(--cream);
    margin-bottom:22px;
  }
  .hero h1 em{color:var(--ember);font-style:normal;}
  .hero p.lede{
    font-size:18px;color:rgba(239,231,216,0.82);max-width:480px;margin-bottom:36px;
  }
  .hero-actions{display:flex;flex-wrap:wrap;gap:16px;}
  .hero-tags{
    position:relative;z-index:2;
    display:flex;flex-wrap:wrap;gap:0;
    border-top:1px solid var(--line-dark);
    max-width:1180px;margin:0 auto;padding:20px 24px 0;
  }
  .hero-tags span{
    font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.05em;
    color:var(--brass);padding-right:22px;margin-right:22px;border-right:1px solid var(--line-dark);
    text-transform:uppercase;
  }
  .hero-tags span:last-child{border-right:none;}

  /* ---------- SECTION SCAFFOLDING ---------- */
  section{position:relative;}
  .section-pad{padding:108px 0;}
  .dark{background:var(--ink);color:var(--cream);}
  .rule{
    display:flex;align-items:center;justify-content:space-between;
    max-width:1180px;margin:0 auto;padding:0 24px 56px;
    font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;
    color:var(--wood);
  }
  .dark .rule{color:var(--brass);}
  .rule .num{opacity:0.5;}
  .rule-flush{padding-top:0;}
  .btn-block{width:100%;justify-content:center;}
  .rule-line{flex:1;height:1px;background:var(--line-light);margin:0 20px;}
  .dark .rule-line{background:var(--line-dark);}

  .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);}
  .reveal.in{opacity:1;transform:none;}
  .reveal-d1{transition-delay:.08s;}
  .reveal-d2{transition-delay:.16s;}
  .reveal-d3{transition-delay:.24s;}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }

  /* ---------- O NAS ---------- */
  .about-grid{
    display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:center;
  }
  .about-photo{position:relative;}
  .about-photo img{border-radius:2px;width:100%;aspect-ratio:4/5;object-fit:cover;}
  .about-photo::before{
    content:'';position:absolute;top:-18px;left:-18px;right:18px;bottom:18px;
    border:1px solid var(--brass);opacity:0.5;border-radius:2px;z-index:-1;
  }
  .about-copy h2{font-size:clamp(1.9rem,3vw,2.7rem);color:var(--ink);margin-bottom:26px;}
  .about-copy p{max-width:56ch;color:#3A342C;margin-bottom:18px;}
  .creds{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:36px;padding-top:32px;border-top:1px solid var(--line-light);}
  .cred b{
    display:block;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;
    letter-spacing:0.1em;text-transform:uppercase;color:var(--wood);margin-bottom:9px;
  }
  .cred span{display:block;font-size:14.5px;line-height:1.55;color:#5c5546;}
  .signature{margin-top:34px;font-family:'Fraunces',serif;font-style:italic;font-size:22px;color:var(--wood);}
  .signature small{display:block;font-family:'IBM Plex Mono',monospace;font-style:normal;font-size:11px;letter-spacing:0.1em;color:#8a8072;text-transform:uppercase;margin-top:6px;}

  /* ---------- SPECIALIZACE ---------- */
  .spec-pair{display:flex;flex-direction:column;}
  .spec-row{display:grid;grid-template-columns:1fr 1fr;min-height:560px;}
  /* No sauna photography exists yet, so this half carries the brand mark and
     the service list instead of a stock interior that is not our own work. */
  .spec-mark{
    position:relative;overflow:hidden;background:var(--ink);
    display:flex;flex-direction:column;justify-content:center;gap:30px;
    padding:72px 68px;
  }
  .spec-mark-ring{
    position:absolute;right:56px;top:50%;transform:translateY(-50%);
    width:auto;height:76%;opacity:0.07;pointer-events:none;
  }
  .spec-list{list-style:none;margin:0;padding:0;position:relative;}
  .spec-list li{
    font-family:'Fraunces',serif;font-size:clamp(1.25rem,2.1vw,1.7rem);color:var(--cream);
    padding:16px 0;border-bottom:1px solid var(--line-dark);
  }
  .spec-list li:first-child{border-top:1px solid var(--line-dark);}
  .spec-mark .btn{align-self:flex-start;position:relative;}
  .spec-photo{position:relative;overflow:hidden;}
  .spec-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
  .spec-row:hover .spec-photo img{transform:scale(1.045);}
  .spec-copy{
    background:var(--panel);color:var(--cream);
    display:flex;flex-direction:column;justify-content:center;
    padding:72px 68px;
  }
  .spec-copy .kicker{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.15em;text-transform:uppercase;color:var(--ember);margin-bottom:18px;}
  .spec-copy h2{font-size:clamp(1.7rem,2.6vw,2.3rem);margin-bottom:20px;}
  .spec-copy p{color:rgba(239,231,216,0.78);max-width:46ch;margin-bottom:26px;}
  .wood-tags{display:flex;flex-wrap:wrap;gap:10px;}
  .wood-tags span{
    font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.03em;
    border:1px solid var(--line-dark);padding:7px 13px;border-radius:2px;color:var(--brass);
  }

  /* ---------- MATERIALY ---------- */
  .materials-head{text-align:left;max-width:640px;margin-bottom:54px;}
  .materials-head h2{font-size:clamp(1.9rem,3vw,2.6rem);}
  .materials-head p{color:#57503f;margin-top:16px;max-width:52ch;}
  .wood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line-light);border:1px solid var(--line-light);}
  .wood-card{background:var(--paper);padding:0;position:relative;}
  .wood-group{
    display:flex;align-items:baseline;gap:14px;
    font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;
    letter-spacing:0.16em;text-transform:uppercase;color:var(--wood);
    margin:0 0 18px;
  }
  .wood-group::after{content:'';flex:1;height:1px;background:var(--line-light);}
  .wood-group-note{order:3;color:#8a8072;letter-spacing:0.08em;}
  .wood-grid + .wood-group{margin-top:52px;}
  /* 1:1 matches the source swatches (675x675) so nothing is cropped */
  .wood-photo{position:relative;aspect-ratio:1/1;overflow:hidden;}
  .wood-photo img{width:100%;height:100%;object-fit:cover;transition:filter .8s ease;filter:saturate(0.94);}
  .wood-card:hover .wood-photo img{filter:saturate(1.05);}
  .wood-info{padding:22px 24px 28px;}
  .wood-info h4{font-family:'IBM Plex Mono',monospace;font-size:14px;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink);margin-bottom:10px;font-weight:600;}
  .wood-info p{font-size:14.5px;color:#5c5546;line-height:1.55;margin:0;}

  /* ---------- REALIZACE ---------- */
  .gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 40px;margin-bottom:44px;flex-wrap:wrap;}
  .gallery-head-copy{max-width:58ch;}
  .gallery-head h2{font-size:clamp(1.9rem,3vw,2.6rem);color:var(--cream);}
  .gallery-head p{color:rgba(239,231,216,0.72);margin:16px 0 0;font-size:16px;}
  .project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
  .project{
    display:flex;flex-direction:column;text-align:left;cursor:pointer;
    background:var(--panel);border:1px solid var(--line-dark);padding:0;border-radius:2px;
    overflow:hidden;color:var(--cream);
    transition:border-color .3s ease, transform .4s cubic-bezier(.2,.7,.2,1);
  }
  .project:hover,.project:focus-visible{border-color:var(--brass);transform:translateY(-3px);}
  .project:focus-visible{outline:2px solid var(--ember);outline-offset:2px;}
  .project-photo{aspect-ratio:3/2;overflow:hidden;}
  .project-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
  .project:hover .project-photo img,.project:focus-visible .project-photo img{transform:scale(1.05);}
  .project-body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:10px;}
  .project-meta{
    display:flex;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:11px;
    letter-spacing:0.14em;text-transform:uppercase;color:var(--brass);
  }
  .project-meta span+span::before{content:'· ';opacity:0.6;}
  .project h3{font-family:'Fraunces',serif;font-size:clamp(1.25rem,2vw,1.55rem);color:var(--cream);}
  .project-cta{
    display:flex;align-items:center;gap:8px;margin-top:2px;
    font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.1em;
    text-transform:uppercase;color:rgba(239,231,216,0.62);
  }
  .project:hover .project-cta,.project:focus-visible .project-cta{color:var(--ember);}

  /* ---------- LIGHTBOX ---------- */
  .lightbox{
    position:fixed;inset:0;z-index:300;background:rgba(15,13,10,0.97);
    backdrop-filter:blur(10px);
    display:flex;align-items:center;justify-content:center;
    opacity:0;visibility:hidden;transition:opacity .3s ease;padding:56px 16px;
  }
  .lightbox.open{opacity:1;visibility:visible;}
  .lightbox-figure{max-width:min(1100px,92vw);max-height:82vh;display:flex;flex-direction:column;gap:14px;align-items:center;}
  .lightbox-figure img{max-width:100%;max-height:76vh;width:auto;object-fit:contain;border-radius:2px;}
  .lightbox-figure figcaption{
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--brass);
  }
  .lightbox-close,.lightbox-nav{
    position:absolute;background:rgba(21,18,15,0.6);border:1px solid var(--line-dark);color:var(--cream);
    border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;
    transition:border-color .2s,color .2s;
  }
  .lightbox-close:hover,.lightbox-nav:hover{border-color:var(--ember);color:var(--ember);}
  .lightbox-close{top:20px;right:20px;width:44px;height:44px;font-size:22px;}
  .lightbox-nav{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:24px;}
  .lightbox-nav.prev{left:16px;}
  .lightbox-nav.next{right:16px;}
  @media (max-width:600px){
    .lightbox{padding:72px 12px;}
    .lightbox-nav{width:44px;height:44px;}
    .lightbox-close{top:12px;right:12px;}
    .lightbox-figure figcaption{font-size:11px;letter-spacing:0.06em;text-align:center;}
  }

  /* ---------- PROCES ---------- */
  .process-head{max-width:620px;margin-bottom:64px;}
  .process-head h2{font-size:clamp(1.9rem,3vw,2.6rem);}
  .process-head p{color:#57503f;margin-top:16px;}
  .process-track{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:28px;}
  .process-track::before{
    content:'';position:absolute;top:29px;left:4%;right:4%;height:1px;
    background:repeating-linear-gradient(to right, var(--wood) 0 8px, transparent 8px 15px);
    opacity:0.55;
  }
  .p-step{position:relative;}
  .p-num{
    font-family:'IBM Plex Mono',monospace;font-size:15px;font-weight:600;
    width:58px;height:58px;border-radius:50%;border:1px solid var(--wood);color:var(--wood);
    display:flex;align-items:center;justify-content:center;background:var(--paper);position:relative;z-index:2;margin-bottom:22px;
  }
  .p-step h3{font-family:'Fraunces',serif;font-size:19px;font-weight:600;margin-bottom:10px;color:var(--ink);}
  .p-step p{font-size:14.5px;color:#5c5546;margin:0;}

  /* ---------- KONTAKT / FOOTER ---------- */
  .contact-wrap{background:var(--panel);border-radius:2px;overflow:hidden;}
  .contact-info{padding:84px 56px;position:relative;color:var(--cream);text-align:center;--bgimg:url('assets/kontakt-mereni.jpg');}
  .contact-info::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(21,18,15,0.86),rgba(21,18,15,0.94)),var(--bgimg);background-size:cover;background-position:center;z-index:0;}
  .contact-info > *{position:relative;z-index:1;}
  .contact-info h2{font-size:clamp(1.8rem,2.8vw,2.4rem);color:var(--cream);margin-bottom:18px;}
  .contact-info > p{color:rgba(239,231,216,0.78);max-width:56ch;margin:0 auto 36px;}
  .contact-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;}
  .contact-actions .btn{font-size:14px;padding:16px 28px;}
  .contact-address{
    display:flex;align-items:flex-start;justify-content:center;gap:9px;
    margin:34px 0 0;font-size:14.5px;line-height:1.4;color:rgba(239,231,216,0.6);
  }
  /* ikona drží první řádek, i když se adresa zalomí */
  .contact-address svg{color:var(--brass);flex-shrink:0;margin-top:2px;}


  footer.site-footer{background:var(--ink);color:rgba(239,231,216,0.55);padding:36px 0;}
  .footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.03em;}

  @media (max-width:920px){
    nav.links{display:none;}
    .menu-toggle{display:flex;}
    .about-grid{grid-template-columns:1fr;gap:44px;}
    .about-photo{max-width:380px;}
    .spec-row{grid-template-columns:1fr;min-height:0;}
    .spec-photo{height:340px;position:relative;}
    .spec-mark{padding:48px 32px;gap:24px;}
    .spec-mark-ring{height:52%;right:28px;opacity:0.05;}
    .spec-copy{padding:52px 32px;}
    .wood-grid{grid-template-columns:repeat(2,1fr);}
    .project-grid{gap:18px;}
    .process-track{grid-template-columns:1fr;gap:36px;}
    .process-track::before{display:none;}
    .contact-info{padding:56px 28px;}
    .section-pad{padding:64px 0;}
  }
  @media (max-width:600px){
    .hero-tags{display:none;}
    .rule{padding-bottom:32px;}
    .section-pad{padding:52px 0;}
    .creds{grid-template-columns:1fr;gap:18px;margin-top:28px;padding-top:26px;}
    /* 14 swatches stay two-up on phones so the list scans without endless scrolling */
    .wood-grid{grid-template-columns:repeat(2,1fr);}
    .wood-info{padding:16px 16px 20px;}
    .wood-info h4{font-size:13px;margin-bottom:7px;}
    .wood-info p{font-size:13.5px;line-height:1.5;}
    .wood-group{margin-bottom:14px;}
    .wood-grid + .wood-group{margin-top:38px;}
    .project-grid{grid-template-columns:1fr;gap:16px;}
    .hero-actions{flex-direction:column;align-items:stretch;}
    .hero-actions .btn{justify-content:center;}
    .contact-actions{flex-direction:column;align-items:stretch;}
    .contact-actions .btn{justify-content:center;}
  }
  @media (max-width:420px){
    body{font-size:16.5px;}
    .hero h1{font-size:clamp(2.1rem,9vw,2.6rem);}
  }
