:root{--ink:#171713;--paper:#f8f7f2;--cream:#eeece5;--sand:#ded7c9;--gold:#cbb690;--muted:#66635b;--line:rgba(23,23,19,.16);--max:1600px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;overflow-x:clip}
body.no-scroll{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button,input,textarea,select{font:inherit}
.wrap{width:100%;max-width:var(--max);margin:auto}
.section{padding:clamp(76px,9vw,150px) clamp(22px,6vw,96px)}
.eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 28px;font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase}
.eyebrow:before{content:"";width:32px;height:1px;background:currentColor}
h1,h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.045em;line-height:.96}
h2{font-size:clamp(46px,6vw,92px)}
em{font-weight:400;color:var(--gold)}
p{line-height:1.75}

.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:19px 24px;border:1px solid transparent;font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;cursor:pointer;transition:transform .25s,background .25s}
.button:hover,.button:focus-visible{transform:translateY(-2px)}
.button-light{background:#fff;color:var(--ink)}
.button-dark{background:var(--ink);color:#fff}
.button-outline{border-color:#ffffff88;color:#fff}
.text-link{display:inline-flex;align-items:center;gap:22px;padding-bottom:8px;border-bottom:1px solid;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}

.site-header{position:absolute;z-index:50;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;width:100%;height:92px;padding:0 clamp(22px,4vw,68px);border-bottom:1px solid #ffffff44;color:#fff}
.site-header.solid{position:relative;background:var(--ink)}
.brand{display:flex;align-items:center;gap:13px}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffffaa;font:italic 18px Georgia}
.brand strong{display:block;font-size:13px;letter-spacing:.13em;text-transform:uppercase}
.brand small{display:block;margin-top:5px;font-size:8px;letter-spacing:.18em;text-transform:uppercase;opacity:.7}
.brand-logo{width:auto;height:52px;max-width:190px;object-fit:contain}
.nav{display:flex;gap:clamp(18px,2.4vw,42px);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.nav a{padding:8px 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a:focus-visible,.nav a[aria-current="page"]{border-color:#fff}
.header-cta{padding:14px 19px;border:1px solid #ffffff99;font-size:9px;letter-spacing:.1em;text-transform:uppercase}
.menu-toggle{display:none;width:48px;height:48px;border:0;background:none;color:#fff}
.menu-toggle span{display:block;width:25px;height:1px;margin:7px auto;background:currentColor}

.hero{position:relative;display:flex;align-items:flex-end;min-height:100svh;overflow:hidden;color:#fff}
.hero-media,.hero-shade{position:absolute;inset:0;width:100%;height:100%}
.hero-media{object-fit:cover}
.hero-shade{background:linear-gradient(90deg,#090907c9 0%,#09090720 67%),linear-gradient(0deg,#090907c9,transparent 48%)}
.hero-content{position:relative;z-index:2;width:min(980px,77%);padding:170px clamp(22px,7vw,115px) 140px}
.hero h1{font-size:clamp(58px,8.3vw,132px)}
.hero-lead{max-width:600px;margin:32px 0;color:#ffffffdc;font-size:clamp(15px,1.3vw,20px)}
.hero-actions{display:flex;align-items:center;gap:40px}
.hero-facts{position:absolute;z-index:3;right:clamp(22px,5vw,76px);bottom:46px;display:flex;gap:38px}
.hero-facts span{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffa8}
.hero-facts strong{display:block;margin-bottom:4px;color:#fff;font:25px Georgia}

.intro{display:grid;grid-template-columns:1.45fr 1fr;align-items:end;gap:9vw}
.lead-copy{margin:0 0 40px;color:var(--muted);font:clamp(17px,1.45vw,22px)/1.7 Georgia}
.events{background:var(--cream)}
.section-head{margin-bottom:65px}
.section-head.split{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:9vw}
.event-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.event-card{display:flex;flex-direction:column;min-height:315px;padding:34px 27px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:.3s}
.event-card:hover{transform:translateY(-7px);background:var(--ink);color:#fff}
.event-card>span{font-size:9px;opacity:.5}
.event-card h3{margin:55px 0 17px;font:400 29px Georgia}
.event-card p{margin:0;font-size:13px;opacity:.66}
.event-card a{display:grid;place-items:center;align-self:flex-end;width:38px;height:38px;margin-top:auto;border:1px solid}

.feature{display:grid;grid-template-columns:1.08fr .92fr;min-height:800px}
.feature-media img{width:100%;height:100%;object-fit:cover}
.feature-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(68px,8vw,128px) clamp(30px,7vw,105px);background:#fff}
.feature-copy>p{color:var(--muted);font:clamp(16px,1.35vw,20px)/1.7 Georgia}
.feature-list{margin:18px 0 42px;padding:0;border-top:1px solid var(--line);list-style:none}
.feature-list li{padding:17px 0;border-bottom:1px solid var(--line);font:16px Georgia}
.feature-list span{margin-right:19px;font:9px Arial;opacity:.45}
.feature-copy .button{align-self:flex-start}

.gallery-grid{display:grid;grid-template-columns:1.15fr .72fr 1fr;grid-auto-rows:285px;gap:14px}
.gallery-grid figure{position:relative;margin:0;overflow:hidden;background:#ddd}
.gallery-grid figure:first-child{grid-row:span 2}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.gallery-grid a:hover img,.gallery-grid a:focus-visible img{transform:scale(1.04)}
.gallery-grid figcaption{position:absolute;right:12px;bottom:10px;padding:6px 8px;background:#fff;font-size:8px}

.hotel{display:grid;grid-template-columns:.9fr 1.1fr;min-height:730px;background:var(--ink);color:#fff}
.hotel-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(75px,9vw,135px) clamp(30px,7vw,110px)}
.hotel-copy>p{color:#ffffffa7;font:clamp(16px,1.4vw,21px)/1.7 Georgia}
.hotel-media img{width:100%;height:100%;object-fit:cover}
.hotel-stats{display:flex;gap:45px;padding:28px 0 40px;border-top:1px solid #ffffff33}
.hotel-stats span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.hotel-stats strong{display:block;margin-bottom:5px;color:#fff;font:23px Georgia;letter-spacing:0;text-transform:none}
.hotel-copy .button{align-self:flex-start}

.page-hero{position:relative;display:flex;align-items:flex-end;min-height:58svh;overflow:hidden;color:#fff}
.page-hero img,.page-hero:after{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero:after{content:"";background:linear-gradient(90deg,#090907cb,#09090730)}
.page-hero-content{position:relative;z-index:2;padding:150px clamp(22px,7vw,110px) 75px}
.page-hero h1{font-size:clamp(54px,8vw,112px)}
.page-title{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(54px,8vw,112px);font-weight:400;letter-spacing:-.045em;line-height:.96}

/* Podstrony */

.content-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    align-items:start;
    gap:clamp(40px,6vw,88px);
    width:min(1280px,calc(100% - 48px));
    max-width:1280px;
    margin-inline:auto;
    overflow:visible;
}

.content-body{
    display:block;
    min-width:0;
    width:100%;
    max-width:100%;
    overflow:hidden;
    color:#4f4c45;
    word-break:normal;
}

.content-body>*{
    min-width:0;
    max-width:100%;
}

.content-body>*:first-child{margin-top:0}
.content-body>*:last-child{margin-bottom:0}

.content-body h2,
.content-body h3,
.content-body h4{
    display:block;
    width:100%;
    max-width:100%;
    color:var(--ink);
    font-family:Georgia,"Times New Roman",serif;
    font-weight:400;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    hyphens:none;
    text-wrap:wrap;
}

.content-body h2{
    margin:58px 0 23px;
    font-size:clamp(30px,3vw,42px);
    letter-spacing:-.025em;
    line-height:1.14;
}

.content-body h2:first-child{margin-top:0}

.content-body h3{
    margin:43px 0 18px;
    font-size:clamp(24px,2.2vw,32px);
    letter-spacing:-.018em;
    line-height:1.22;
}

.content-body h4{
    margin:34px 0 15px;
    font-size:clamp(20px,1.7vw,25px);
    letter-spacing:-.01em;
    line-height:1.3;
}

.content-body h2 strong,
.content-body h3 strong,
.content-body h4 strong,
.content-body h2 b,
.content-body h3 b,
.content-body h4 b{
    font-weight:inherit;
}

.content-body p{
    width:100%;
    max-width:74ch;
    margin:0 0 25px;
    color:#545149;
    font-size:16px;
    line-height:1.85;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:none;
}

.content-body ul,
.content-body ol{
    width:100%;
    max-width:72ch;
    margin:0 0 28px;
    padding-left:25px;
}

.content-body li{
    max-width:100%;
    margin-bottom:9px;
    color:#545149;
    font-size:16px;
    line-height:1.8;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:none;
}

.content-body blockquote{
    width:100%;
    max-width:72ch;
    margin:45px 0;
    padding:28px 32px;
    border-left:3px solid var(--gold);
    background:var(--cream);
    color:#4d4941;
    font:italic clamp(19px,2vw,24px)/1.55 Georgia,"Times New Roman",serif;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
}

.content-body a{
    max-width:100%;
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
    overflow-wrap:break-word;
}

.content-body a:hover,
.content-body a:focus-visible{
    color:#8c7653;
}

.content-body hr{
    width:100%;
    height:1px;
    margin:45px 0;
    border:0;
    background:var(--line);
}

.sidebar{
    position:sticky;
    top:110px;
    align-self:start;
    min-width:0;
    width:100%;
    max-width:300px;
    padding:30px;
    background:var(--cream);
}

.sidebar h3{margin:0 0 20px;font:400 25px Georgia}
.sidebar a{display:block;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.08em;text-transform:uppercase}

/* Kontakt */

.contact-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;background:var(--sand)}
.contact-details h1{font-size:clamp(50px,6vw,88px)}
.contact-list{margin-top:50px;border-top:1px solid var(--line)}
.contact-item{padding:22px 0;border-bottom:1px solid var(--line)}
.contact-item small{display:block;margin-bottom:8px;font-size:8px;letter-spacing:.15em;text-transform:uppercase;opacity:.55}
.contact-item a,.contact-item strong{font:400 21px Georgia}
.form-card{padding:clamp(28px,4vw,58px);background:var(--paper)}
.form-card label{display:block;margin-bottom:25px}
.form-card label>span{display:block;margin-bottom:9px;font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:23px}
.form-card input,.form-card textarea,.form-card select{width:100%;padding:11px 0 14px;border:0;border-bottom:1px solid var(--line);border-radius:0;outline:none;background:transparent}
.form-card input:focus,.form-card textarea:focus,.form-card select:focus{border-color:var(--ink)}
.form-card textarea{resize:vertical}
.form-note{color:var(--muted);font-size:10px}
.alert{margin-bottom:25px;padding:16px 18px;font-size:14px}
.alert.success{background:#e5f2e7;color:#174c25}
.alert.error{background:#f5dfdc;color:#6a1d18}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.lightbox{position:fixed;z-index:10000;inset:0;display:none;align-items:center;justify-content:center;padding:30px;background:#080806ef}
.lightbox.open{display:flex}
.lightbox img{width:auto;height:auto;max-width:min(1400px,94vw);max-height:88vh;object-fit:contain}
.lightbox button{position:absolute;width:46px;height:46px;border:1px solid #ffffff55;background:#0007;color:#fff;cursor:pointer}
.lightbox-close{top:22px;right:22px;font-size:27px}
.lightbox-prev{left:22px;font-size:26px}
.lightbox-next{right:22px;font-size:26px}
.lightbox-caption{position:absolute;bottom:15px;color:#fff;font-size:11px;letter-spacing:.1em}

.footer{padding:clamp(70px,8vw,115px) clamp(22px,6vw,96px) 28px;background:#11110f;color:#fff}
.footer-main{display:grid;grid-template-columns:1.25fr .75fr;gap:9vw;padding-bottom:90px}
.footer h2{font-size:clamp(45px,6vw,88px)}
.footer-links{border-top:1px solid #ffffff3d}
.footer-links a,.footer-links p{display:grid;grid-template-columns:1fr auto;gap:10px;margin:0;padding:21px 0;border-bottom:1px solid #ffffff3d;font:17px Georgia}
.footer-links small{grid-column:1/-1;font:8px Arial;letter-spacing:.15em;text-transform:uppercase;opacity:.5}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:23px;border-top:1px solid #ffffff3d;font-size:8px;letter-spacing:.14em;text-transform:uppercase;opacity:.62}
.footer-bottom nav{display:flex;gap:20px}

.gallery-page{padding-top:clamp(85px,10vw,150px)}
.gallery-full{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.gallery-full figure{position:relative;margin:0;aspect-ratio:3/2;overflow:hidden;background:var(--cream)}
.gallery-full figure:nth-child(4n+1){grid-row:span 2;grid-column:span 2}
.gallery-full img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gallery-full a:hover img{transform:scale(1.035)}
.gallery-full figcaption{position:absolute;bottom:12px;left:12px;padding:7px 10px;background:#fff;font-size:9px}
.error-page{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:70vh}
.error-page .lead-copy{margin-top:32px}

@media(max-width:1000px){
    .site-header,
    .site-header.solid{
        position:-webkit-sticky;
        position:sticky;
        z-index:9999;
        inset:auto;
        top:0;
        width:100%;
        background:rgba(23,23,19,.96);
        border-bottom:1px solid rgba(255,255,255,.14);
        box-shadow:0 5px 24px rgba(0,0,0,.14);
        color:#fff;
        backdrop-filter:blur(12px);
        -webkit-backdrop-filter:blur(12px);
    }

    .nav,.header-cta{display:none}
    .menu-toggle{display:block}

    .nav.open{
        position:absolute;
        z-index:10000;
        top:92px;
        left:0;
        display:flex;
        flex-direction:column;
        gap:18px;
        width:100%;
        max-height:calc(100vh - 92px);
        padding:28px;
        overflow-y:auto;
        background:var(--ink);
        box-shadow:0 18px 30px rgba(0,0,0,.18);
    }

    .hero-content{width:100%;padding-bottom:185px}
    .hero-facts{right:auto;left:22px}
    .intro,.section-head.split{grid-template-columns:1fr;gap:45px}
    .event-grid{grid-template-columns:1fr 1fr}
    .feature,.hotel{grid-template-columns:1fr}
    .hotel-copy{order:2}
    .hotel-media{order:1;min-height:480px}
    .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:300px}
    .gallery-grid figure:first-child{grid-row:auto;grid-column:span 2}
    .content-layout,.contact-section,.footer-main{grid-template-columns:minmax(0,1fr)}
    .content-layout{width:min(720px,calc(100% - 32px));gap:48px}
    .content-body{width:100%;max-width:100%;overflow:hidden}
    .sidebar{position:static;max-width:100%}
    .footer-main{gap:60px}
}

@media(max-width:760px){
    .gallery-full{grid-template-columns:1fr}
    .gallery-full figure:nth-child(4n+1){grid-row:auto;grid-column:auto}
}

@media(max-width:640px){
    html{scroll-padding-top:76px}

    .site-header,
    .site-header.solid{
        height:76px;
        padding-right:18px;
        padding-left:18px;
    }

    .brand small{display:none}
    .brand-logo{height:42px;max-width:150px}
    .nav.open{top:76px;max-height:calc(100vh - 76px)}
    .hero-content{padding:125px 22px 190px}
    .hero h1{font-size:56px}
    .hero-actions{flex-direction:column;align-items:flex-start;gap:25px}
    .hero-facts{gap:20px}
    .hero-facts span{font-size:7px}
    .hero-facts strong{font-size:19px}
    .event-grid{grid-template-columns:1fr}
    .event-card{min-height:245px}

    .gallery-grid{
        display:flex;
        margin-right:-22px;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
    }

    .gallery-grid figure,
    .gallery-grid figure:first-child{
        grid-column:auto;
        flex:0 0 82vw;
        height:400px;
        scroll-snap-align:start;
    }

    .feature-media,.hotel-media{min-height:420px}
    .form-row{grid-template-columns:1fr;gap:0}
    .form-card{margin:0 -5px}
    .footer-bottom{flex-direction:column}
    .footer-bottom nav{flex-wrap:wrap}
    .lightbox{padding:10px}
    .lightbox-prev{left:8px}
    .lightbox-next{right:8px}
    .content-layout{width:calc(100% - 24px)}

    .content-body h2{
        width:100%;
        max-width:100%;
        margin-top:43px;
        margin-bottom:18px;
        font-size:clamp(27px,8.5vw,35px);
        line-height:1.16;
        letter-spacing:-.02em;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
        word-break:normal!important;
    }

    .content-body h3{
        width:100%;
        max-width:100%;
        margin-top:34px;
        font-size:clamp(22px,7vw,28px);
        line-height:1.22;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
        word-break:normal!important;
    }

    .content-body h4{
        width:100%;
        max-width:100%;
        font-size:20px;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
        word-break:normal!important;
    }

    .content-body p,
    .content-body li{
        font-size:16px;
        line-height:1.78;
    }

    .content-body blockquote{
        margin:35px 0;
        padding:23px 20px;
    }
}

@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *{transition:none!important}
}