/*
Theme Name: Jurak Fotografia
Theme URI: https://jurakfotografia.pl
Author: Mamy Strategie
Description: Motyw portfolio dla Lukasz Jurak Fotografia - sluby, eventy, komunie, koncerty. Przeniesiony z projektu statycznego.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: jurakfotografia
*/


  :root{
    --ivory:#faf7ef;
    --ivory-deep:#f2ecdc;
    --black:#131210;
    --ink:#211f1a;
    --ink-dim:#6b6558;
    --gold:#b7893a;
    --gold-deep:#8f6a2b;
    --gold-light:#e0bd76;
    --line:rgba(33,31,26,0.16);
    --line-strong:rgba(33,31,26,0.32);
    --line-blk:rgba(250,247,239,0.16);
    --line-blk-strong:rgba(250,247,239,0.32);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ivory);
    color:var(--ink);
    font-family:'Jost', sans-serif;
    font-weight:400;
    overflow-x:hidden;
  }
  h1,h2,h3{ font-family:'Bodoni Moda', serif; font-weight:500; line-height:1.05; color:var(--ink); }
  em{ font-style:italic; color:var(--gold-deep); }
  .serif-lead{ font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:500; }
  .wrap{ max-width:1180px; margin:0 auto; padding:0 6vw; }
  .label{
    font-family:'Jost', sans-serif; font-size:0.72rem; letter-spacing:0.28em; text-transform:uppercase;
    color:var(--gold-deep); display:flex; align-items:center; gap:0.7rem;
  }
  .label::before{ content:""; width:26px; height:1px; background:var(--gold-deep); display:inline-block; }
  .on-black .label{ color:var(--gold-light); }
  .on-black .label::before{ background:var(--gold-light); }

  /* ---------- TICKER ---------- */
  .ticker{
    background:var(--black); color:var(--gold-light);
    font-family:'Jost', sans-serif; font-size:0.68rem; letter-spacing:0.22em; text-transform:uppercase;
    padding:0.55rem 0; white-space:nowrap; overflow:hidden; position:relative; z-index:210;
  }
  .ticker-track{ display:inline-flex; gap:2.2rem; animation:scroll-left 32s linear infinite; }
  .ticker-track span{ display:inline-flex; align-items:center; gap:2.2rem; }
  .ticker-track span::after{ content:"◆"; color:var(--gold-deep); font-size:0.5rem; margin-left:2.2rem; }
  @keyframes scroll-left{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* ---------- NAV ---------- */
  nav{
    position:sticky; top:0; z-index:200;
    display:flex; align-items:center; justify-content:space-between;
    padding:1rem 6vw;
    background:rgba(250,247,239,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .logo-mark{ display:flex; align-items:center; text-decoration:none; }
  .logo-mark img{ height:52px; width:auto; display:block; }
  .nav-links{
    display:flex; gap:2.2rem; list-style:none;
    font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase;
  }
  .nav-links a{ color:var(--ink); text-decoration:none; position:relative; padding-bottom:4px; transition:color .25s ease; }
  .nav-links a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:width .3s ease; }
  .nav-links a:hover{ color:var(--gold-deep); }
  .nav-links a:hover::after{ width:100%; }
  .nav-toggle{ display:none; background:none; border:none; color:var(--ink); font-size:1.5rem; cursor:pointer; }

  /* ---------- HERO ---------- */
  .hero{
    min-height:92svh; display:flex; align-items:center; justify-content:center; position:relative;
    text-align:center; padding:5rem 0 4rem;
    overflow:hidden;
  }
  .hero-ring{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-52%);
    width:min(72vw, 720px); aspect-ratio:1/1; border-radius:50%;
    border:1px solid var(--line-strong);
    pointer-events:none;
  }
  .hero-ring::before{
    content:""; position:absolute; inset:34px; border-radius:50%; border:1px solid var(--line);
  }
  .hero-inner{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
  .hero-logo{ width:min(84vw, 500px); height:auto; margin-bottom:1.2rem; }
  .hero-rule{ width:64px; height:1px; background:var(--gold); margin:1.6rem 0; }
  .hero h1{ font-size:clamp(2.1rem, 4.6vw, 3.4rem); max-width:18ch; }
  .hero p.lead{
    margin-top:1.4rem; max-width:46ch; color:var(--ink-dim); font-size:1.08rem; line-height:1.7;
    font-family:'Cormorant Garamond', serif; font-style:italic;
  }
  .cta-row{ margin-top:2.4rem; display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }
  .btn{
    font-family:'Jost', sans-serif; font-size:0.78rem; letter-spacing:0.12em; font-weight:500;
    text-transform:uppercase; padding:0.95rem 2.1rem; text-decoration:none;
    border-radius:0; transition:all .25s ease; display:inline-block;
  }
  .btn-primary{ background:var(--black); color:var(--ivory); border:1px solid var(--black); }
  .btn-primary:hover{ background:var(--gold-deep); border-color:var(--gold-deep); }
  .btn-outline{ border:1px solid var(--line-strong); color:var(--ink); }
  .btn-outline:hover{ border-color:var(--gold-deep); color:var(--gold-deep); }

  .stat-row{ display:flex; gap:3rem; margin-top:3rem; justify-content:center; flex-wrap:wrap; }
  .stat{ text-align:center; }
  .stat b{ font-family:'Bodoni Moda', serif; font-size:1.9rem; color:var(--gold-deep); display:block; }
  .stat span{ font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-dim); }

  /* ---------- SECTION shared ---------- */
  section{ padding:7rem 0; }
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:2rem;
    margin-bottom:3.6rem; padding-bottom:2rem; border-bottom:1px solid var(--line);
  }
  .on-black .section-head{ border-bottom-color:var(--line-blk); }
  .section-head h2{ font-size:clamp(1.9rem, 3.2vw, 2.6rem); margin-top:0.6rem; }
  .section-head p{ max-width:32ch; color:var(--ink-dim); font-size:0.95rem; line-height:1.6; font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.05rem;}
  .on-black .section-head p{ color:var(--line-blk-strong); }

  /* ---------- ABOUT ---------- */
  .about-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:4.5rem; align-items:center; }
  .medallion{ position:relative; width:100%; max-width:340px; margin:0 auto; }
  .medallion-frame{
    aspect-ratio:1/1; border-radius:50%; border:1px solid var(--gold);
    padding:14px;
  }
  .medallion-inner{
    width:100%; height:100%; border-radius:50%;
    border:1px dashed var(--line-strong);
    background:
      repeating-linear-gradient(135deg, rgba(33,31,26,0.03) 0 2px, transparent 2px 14px),
      var(--ivory-deep);
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    color:var(--ink-dim); font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase; gap:0.5rem; padding:1.5rem;
  }
  .medallion-inner b{ color:var(--gold-deep); font-size:0.72rem; letter-spacing:0.06em; }
  .medallion-inner svg{ width:26px; height:26px; opacity:0.55; }
  .medallion-badge{
    position:absolute; bottom:0; right:6%; width:88px; height:88px; border-radius:50%;
    background:var(--black); color:var(--gold-light); display:flex; flex-direction:column;
    align-items:center; justify-content:center; text-align:center;
    box-shadow:0 8px 24px rgba(0,0,0,0.18);
    font-family:'Bodoni Moda', serif;
  }
  .medallion-badge b{ font-size:1.3rem; line-height:1; }
  .medallion-badge span{ font-family:'Jost', sans-serif; font-size:0.5rem; letter-spacing:0.08em; text-transform:uppercase; margin-top:2px; }

  .about-copy p{ color:var(--ink-dim); line-height:1.85; font-size:1rem; margin-bottom:1.2rem; }
  .about-copy p:first-of-type{
    font-size:1.3rem; color:var(--ink); font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:500;
  }

  /* ---------- SERVICES ---------- */
  .services-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
  .service-card{ padding:2.6rem 2.4rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
  .frame{
    border:1px solid var(--gold); padding:8px; margin-bottom:1.6rem;
  }
  .frame .placeholder{ aspect-ratio:4/5; }
  .placeholder{
    border:1px dashed var(--line-strong);
    background:
      repeating-linear-gradient(135deg, rgba(33,31,26,0.03) 0 2px, transparent 2px 14px),
      var(--ivory-deep);
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    color:var(--ink-dim); font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; gap:0.5rem; padding:1.2rem;
  }
  .placeholder b{ color:var(--gold-deep); font-size:0.68rem; letter-spacing:0.06em; }
  .placeholder svg{ width:24px; height:24px; opacity:0.55; }
  .numeral{ font-family:'Bodoni Moda', serif; font-style:italic; font-size:0.95rem; color:var(--gold-deep); margin-bottom:0.4rem; }
  .service-card h3{ font-size:1.4rem; margin-bottom:0.7rem; font-weight:500; }
  .service-card p{ color:var(--ink-dim); font-size:0.92rem; line-height:1.7; }

  /* ---------- PHOTO SLOTS (auto-detecting real photos) ---------- */
  .photo-slot{ position:relative; cursor:pointer; overflow:hidden; }
  .photo-slot img{ display:none; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
  .photo-slot:hover img{ transform:scale(1.05); }
  .frame .photo-slot{ aspect-ratio:4/5; }
  .concert-gallery .frame .photo-slot{ height:100%; }
  .gallery-btn{
    display:inline-flex; align-items:center; gap:0.5rem; margin-top:1.1rem;
    font-family:'Jost', sans-serif; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--gold-deep); background:none; border:none; cursor:pointer; padding:0;
    border-bottom:1px solid transparent; transition:border-color .25s ease;
  }
  .gallery-btn:hover{ border-bottom-color:var(--gold-deep); }
  .concerts .gallery-btn{ color:var(--gold-light); margin-top:2.2rem; }

  /* ---------- LIGHTBOX ---------- */
  .lightbox{
    position:fixed; inset:0; background:rgba(13,12,10,0.96); z-index:1000;
    display:none; align-items:center; justify-content:center; flex-direction:column;
    opacity:0; transition:opacity .25s ease;
  }
  .lightbox.open{ display:flex; opacity:1; }
  .lb-stage{ position:relative; width:min(88vw, 1000px); height:78vh; display:flex; align-items:center; justify-content:center; }
  .lb-stage img{ max-width:100%; max-height:100%; object-fit:contain; display:none; box-shadow:0 20px 60px rgba(0,0,0,0.5); }
  .lb-loading, .lb-empty{
    display:none; flex-direction:column; align-items:center; gap:0.8rem; text-align:center;
    color:var(--line-blk-strong); font-family:'Jost', sans-serif; font-size:0.8rem; letter-spacing:0.05em;
  }
  .lb-empty code{ color:var(--gold-light); font-family:monospace; background:rgba(255,255,255,0.06); padding:0.2rem 0.5rem; }
  .lb-close, .lb-prev, .lb-next{
    position:absolute; background:none; border:1px solid var(--line-blk-strong); color:var(--ivory-deep);
    cursor:pointer; font-size:1.1rem; width:46px; height:46px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; transition:border-color .25s ease, color .25s ease;
  }
  .lb-close:hover, .lb-prev:hover, .lb-next:hover{ border-color:var(--gold-light); color:var(--gold-light); }
  .lb-close{ top:1.6rem; right:1.6rem; }
  .lb-prev{ left:1.6rem; top:50%; transform:translateY(-50%); }
  .lb-next{ right:1.6rem; top:50%; transform:translateY(-50%); }
  .lb-counter{ margin-top:1.2rem; font-family:'Jost', sans-serif; font-size:0.72rem; letter-spacing:0.12em; color:var(--line-blk-strong); }
  @media (max-width:760px){
    .lb-prev, .lb-next{ width:38px; height:38px; font-size:0.95rem; }
    .lb-prev{ left:0.6rem; } .lb-next{ right:0.6rem; } .lb-close{ top:1rem; right:1rem; }
    .lb-stage{ width:94vw; height:68vh; }
  }

  /* ---------- CONCERTS ---------- */
  .concerts{ background:var(--black); color:var(--ivory-deep); position:relative; }
  .concerts::before{
    content:""; position:absolute; inset:0;
    background:repeating-linear-gradient(90deg, rgba(183,137,58,0.06) 0 1px, transparent 1px 90px);
    pointer-events:none;
  }
  .concert-intro{
    max-width:58ch; color:var(--line-blk-strong); line-height:1.8; margin:-1.6rem 0 3rem;
    font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.1rem; position:relative; z-index:1;
  }
  .concert-gallery{ display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:170px; gap:1rem; position:relative; z-index:1; }
  .concert-gallery .frame{ border-color:var(--gold-light); padding:6px; height:100%; }
  .concert-gallery .frame .placeholder{ height:100%; aspect-ratio:auto; border-color:rgba(250,247,239,0.25); background:repeating-linear-gradient(135deg, rgba(250,247,239,0.04) 0 2px, transparent 2px 14px), #1c1a16; color:var(--line-blk-strong); }
  .concert-gallery .frame .placeholder b{ color:var(--gold-light); }
  .concert-gallery .frame:nth-child(1){ grid-column:span 2; grid-row:span 2; }
  .concert-gallery .frame:nth-child(4){ grid-row:span 2; }
  .concert-gallery .frame:nth-child(6){ grid-column:span 2; }

  /* ---------- CONTACT ---------- */
  .contact{ text-align:center; }
  .contact h2{ font-size:clamp(2rem, 4vw, 3rem); max-width:18ch; margin:0 auto; }
  .contact p.lead{
    max-width:42ch; margin:1.4rem auto 2.6rem; color:var(--ink-dim);
    font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.1rem; line-height:1.7;
  }
  /* ---------- BOOKING FORM ---------- */
  .booking-form{
    max-width:640px; margin:2.6rem auto 0; text-align:left;
    background:#fff; border:1px solid var(--line); padding:2.2rem;
  }
  .bf-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-bottom:1.2rem; }
  .bf-field{ display:flex; flex-direction:column; }
  .bf-field.bf-full{ margin-bottom:1.4rem; }
  .bf-field label{
    font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-deep);
    margin-bottom:0.5rem; font-family:'Jost', sans-serif;
  }
  .bf-field input, .bf-field select, .bf-field textarea{
    font-family:'Jost', sans-serif; font-size:0.92rem; padding:0.7rem 0.8rem;
    border:1px solid var(--line-strong); background:var(--ivory); color:var(--ink);
  }
  .bf-field input:focus, .bf-field select:focus, .bf-field textarea:focus{
    outline:none; border-color:var(--gold-deep);
  }
  .bf-field textarea{ resize:vertical; font-family:'Jost', sans-serif; }
  .booking-form .btn{ width:100%; border:none; cursor:pointer; margin-top:0.4rem; }
  .bf-status{ margin-top:1rem; font-size:0.85rem; color:var(--gold-deep); min-height:1.2rem; }
  @media (max-width:640px){ .bf-row{ grid-template-columns:1fr; } .booking-form{ padding:1.4rem; } }

  .contact-info{ margin-top:3.4rem; display:flex; justify-content:center; gap:3.5rem; flex-wrap:wrap; }
  .contact-info div{ text-align:left; }
  .contact-info span{ display:block; font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:0.45rem; }
  .contact-info a, .contact-info p{ color:var(--ink); font-size:1rem; text-decoration:none; }

  footer{
    padding:2.6rem 6vw; display:flex; justify-content:space-between; align-items:center;
    background:var(--black); border-top:1px solid var(--line-blk);
    font-size:0.72rem; letter-spacing:0.05em; color:var(--line-blk-strong); flex-wrap:wrap; gap:1rem;
  }
  footer img{ height:34px; opacity:0.9; }
  .footer-brand{ display:flex; align-items:center; gap:0.7rem; color:var(--ivory-deep); }
  .footer-social{ display:flex; gap:0.9rem; }
  .footer-social a{
    width:36px; height:36px; border:1px solid rgba(250,247,239,0.25); border-radius:50%;
    display:flex; align-items:center; justify-content:center; color:var(--ivory-deep);
    text-decoration:none; transition:border-color .25s ease, color .25s ease;
  }
  .footer-social a:hover{ border-color:var(--gold-light); color:var(--gold-light); }
  .footer-social svg{ width:17px; height:17px; fill:currentColor; }
  footer{ flex-wrap:wrap; row-gap:1.2rem; }

  @media (max-width: 880px){
    .nav-links{
      position:fixed; top:0; right:0; height:100svh; width:72%; background:var(--ivory);
      flex-direction:column; justify-content:center; align-items:flex-start; padding:2rem 2.4rem;
      transform:translateX(100%); transition:transform .35s ease; border-left:1px solid var(--line);
    }
    .nav-links.open{ transform:translateX(0); }
    .nav-toggle{ display:block; }
    .about-grid{ grid-template-columns:1fr; }
    .services-grid{ grid-template-columns:1fr; }
    .concert-gallery{ grid-template-columns:repeat(2, 1fr); }
    .concert-gallery .frame:nth-child(1){ grid-column:span 2; }
    .stat-row{ gap:1.8rem; }
    .contact-info{ gap:2rem; }
  }
