:root { --ink:#11313d; --deep:#0c2732; --sea:#135467; --coral:#ee7660; --sand:#f4f0e9; --warm:#e7d4bc; --cream:#fcfaf6; --line:rgba(17,49,61,.16); --serif:"Playfair Display", Georgia, serif; --sans:"DM Sans", Arial, sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.55; } body.menu-open { overflow:hidden; } a { color:inherit; text-decoration:none; } button,input,textarea { font:inherit; } button { cursor:pointer; } :focus-visible { outline:3px solid #ee7660; outline-offset:3px; } .page-width { width:min(1180px, calc(100% - 48px)); margin-inline:auto; } .section { padding:128px 0; } .sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; } .skip-link:focus { z-index:99; top:12px; left:12px; background:#fff; padding:8px 12px; border-radius:5px; }
.site-header { position:absolute; z-index:10; left:0; right:0; top:0; color:#fff; } .nav-shell { width:min(1280px, calc(100% - 48px)); margin:auto; height:92px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.28); } .brand { display:flex; align-items:center; gap:10px; font-family:var(--serif); font-size:21px; line-height:1; letter-spacing:-.4px; } .brand b { font-weight:700; } .brand-mark { width:31px; height:31px; display:grid; place-items:center; font-size:31px; line-height:.7; color:#e9d7bd; transform:translateY(-2px); } .brand small { display:block; margin-top:6px; font-family:var(--sans); font-weight:500; text-transform:uppercase; font-size:9px; letter-spacing:1.7px; opacity:.78; } .main-nav { display:flex; align-items:center; gap:30px; font-size:13px; font-weight:600; letter-spacing:.2px; } .main-nav>a:not(.nav-cta) { opacity:.9; } .main-nav>a:not(.nav-cta):hover { opacity:1; color:#e7d4bc; } .nav-cta { border:1px solid rgba(255,255,255,.76); padding:11px 16px; border-radius:30px; transition:.2s; } .nav-cta:hover { background:#fff; color:var(--ink); }.nav-cta span { padding-left:5px; }.menu-toggle { display:none; }
.hero { min-height:760px; height:100svh; position:relative; display:flex; align-items:center; overflow:hidden; color:#fff; background:var(--deep); }.hero-image { position:absolute; inset:0; background:linear-gradient(90deg, rgba(7,27,35,.85) 0%, rgba(7,27,35,.53) 45%, rgba(7,27,35,.08) 100%), linear-gradient(0deg,rgba(7,27,35,.35),rgba(7,27,35,.03) 60%), url("assets/ogrod.webp") center/cover no-repeat; transform:scale(1.01); }.hero-content { position:relative; padding-top:75px; }.eyebrow { margin:0 0 16px; text-transform:uppercase; color:var(--sea); font-size:11px; font-weight:700; letter-spacing:2px; }.eyebrow.light { color:#e7d4bc; }.hero h1,.section h2,.booking h2 { margin:0; max-width:800px; font-family:var(--serif); font-weight:600; font-size:clamp(47px, 6.3vw, 88px); line-height:.98; letter-spacing:-3px; }.hero h1 em,.section h2 em,.booking h2 em { font-weight:600; color:#e7d4bc; }.hero-copy { max-width:488px; font-size:18px; line-height:1.6; margin:28px 0 32px; color:rgba(255,255,255,.88); }.hero-actions { display:flex; align-items:center; gap:24px; }.button { display:inline-flex; align-items:center; justify-content:center; gap:14px; border:0; font-size:13px; font-weight:700; letter-spacing:.25px; transition:transform .2s,background .2s,color .2s; }.button:hover { transform:translateY(-2px); }.button-primary { color:#fff; background:var(--coral); padding:16px 21px; border-radius:3px; }.button-primary:hover { background:#fb8a75; }.button-primary span { font-size:19px; line-height:0; }.button-text { color:#fff; padding:14px 0; }.button-text span { font-size:18px; }.hero-details { position:absolute; bottom:37px; left:0; padding:0; margin:0; list-style:none; display:flex; gap:0; }.hero-details li { min-width:168px; padding-right:28px; margin-right:28px; border-right:1px solid rgba(255,255,255,.36); }.hero-details li:last-child { border:0; }.hero-details strong { display:block; color:#fff; font-size:12px; }.hero-details span { display:block; margin-top:3px; color:rgba(255,255,255,.7); font-size:11px; }.hero-scroll { position:absolute; z-index:2; right:38px; bottom:38px; width:34px; height:52px; border:1px solid rgba(255,255,255,.65); border-radius:20px; display:grid; place-items:center; }.hero-scroll span { width:1px; height:13px; background:#fff; animation:scroll 1.6s infinite; } @keyframes scroll { 0%{transform:translateY(-7px);opacity:0} 30%,70%{opacity:1} 100%{transform:translateY(7px);opacity:0} }
.intro { display:grid; grid-template-columns:.95fr 1fr; gap:120px; }.section h2 { font-size:clamp(39px,4.6vw,64px); color:var(--ink); }.section h2 em { color:var(--sea); }.intro-copy { max-width:510px; padding-top:7px; }.intro-copy p { margin:0 0 18px; color:#35525c; }.inline-link { position:relative; display:inline-flex; align-items:center; gap:10px; margin-top:10px; color:var(--sea); font-size:13px; font-weight:700; }.inline-link:after { content:""; position:absolute; left:0; right:0; bottom:-5px; height:1px; background:currentColor; transform-origin:left; transition:transform .25s; }.inline-link:hover:after { transform:scaleX(.4); }.inline-link span { font-size:19px; }.feature-band { background:var(--sand); }.feature-grid { display:grid; grid-template-columns:repeat(4,1fr); }.feature-grid article { min-height:226px; padding:42px 30px 35px; border-left:1px solid var(--line); }.feature-grid article:last-child { border-right:1px solid var(--line); }.feature-icon { color:var(--sea); font-family:var(--serif); font-size:28px; }.feature-grid h3 { margin:20px 0 8px; font-size:16px; }.feature-grid p { margin:0; font-size:13px; color:#64777e; line-height:1.5; }.stay { display:grid; grid-template-columns:1.04fr .96fr; gap:100px; align-items:center; }.image-frame { overflow:hidden; background:#e6e4de; }.image-frame img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease; }.image-frame:hover img { transform:scale(1.035); }.stay-photo { height:605px; }.stay-content { max-width:440px; }.stay-content>p:not(.eyebrow) { color:#49626a; margin:22px 0 22px; }.check-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }.check-list li { padding:13px 0 13px 26px; border-bottom:1px solid var(--line); position:relative; font-size:13px; color:#35525c; }.check-list li:before { content:"✓"; position:absolute; left:2px; color:var(--coral); font-weight:700; }
.gallery { background:#f0ebe3; padding-bottom:128px; }.gallery-header { display:flex; justify-content:space-between; align-items:end; padding-bottom:46px; }.gallery-header>p { width:310px; margin:0 0 4px; color:#587077; font-size:14px; }.gallery-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; grid-auto-rows:230px; gap:14px; }.gallery-item { position:relative; padding:0; overflow:hidden; border:0; background:#ccd3d3; }.gallery-item:after { content:"↗"; position:absolute; bottom:12px; right:14px; display:grid; width:31px; height:31px; place-items:center; background:rgba(255,255,255,.92); color:var(--ink); border-radius:50%; opacity:0; transform:translateY(7px); transition:.25s; }.gallery-item:hover:after { opacity:1; transform:none; }.gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }.gallery-item:hover img { transform:scale(1.04); }.gallery-large { grid-row:span 2; }.gallery-tall { grid-row:span 2; }.lightbox { border:0; padding:0; width:min(1000px, calc(100vw - 34px)); max-height:calc(100vh - 36px); color:#fff; background:#0c2732; box-shadow:0 15px 60px rgba(0,0,0,.5); }.lightbox::backdrop { background:rgba(4,19,25,.84); backdrop-filter:blur(3px); }.lightbox img { display:block; width:100%; max-height:calc(100vh - 104px); object-fit:contain; }.lightbox p { margin:0; padding:9px 18px; font-size:13px; }.lightbox-close { position:absolute; right:12px; top:12px; width:37px; height:37px; border:0; border-radius:50%; color:#fff; background:rgba(11,38,48,.82); font-size:28px; line-height:1; }
.location { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; align-items:center; }.location-content { max-width:420px; }.location-content>p:not(.eyebrow) { color:#49626a; margin:22px 0; }.distances { display:flex; gap:0; margin:31px 0 20px; }.distances div { padding:0 17px; border-left:1px solid var(--line); }.distances div:first-child { padding-left:0; border-left:0; }.distances dt { font-family:var(--serif); font-size:25px; line-height:1; color:var(--sea); }.distances dd { margin:5px 0 0; color:#60747a; font-size:11px; line-height:1.35; }.location-photo { height:540px; }.booking { position:relative; overflow:hidden; padding:115px 0; color:#fff; background:var(--deep); }.booking-bg { position:absolute; inset:0; opacity:.18; background:linear-gradient(90deg,#0c2732 20%,transparent 80%),url("assets/willa-zewnatrz.webp") center/cover; }.booking-grid { position:relative; display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; align-items:center; }.booking h2 { font-size:clamp(43px,5.2vw,70px); }.booking-heading>p:not(.eyebrow) { max-width:400px; color:rgba(255,255,255,.76); margin:25px 0 22px; }.phone { font-family:var(--serif); color:#e7d4bc; font-size:28px; }.booking-form { background:#fff; padding:34px; color:var(--ink); box-shadow:0 14px 48px rgba(4,24,31,.24); }.form-row { display:flex; flex-direction:column; gap:6px; margin-bottom:17px; }.form-row label { color:#47626b; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; }.form-row label span { color:#8b999e; font-weight:500; text-transform:none; letter-spacing:0; }.form-row input,.form-row textarea { width:100%; outline:0; border:0; border-bottom:1px solid #b6c3c4; padding:7px 0; border-radius:0; color:var(--ink); background:transparent; }.form-row input:focus,.form-row textarea:focus { border-color:var(--coral); }.form-row textarea { resize:vertical; }.form-split { display:grid; grid-template-columns:1fr 1fr; gap:22px; }.form-button { width:100%; margin-top:6px; }.form-note { margin:13px 0 0; color:#75878c; font-size:10px; text-align:center; }.faq { display:grid; grid-template-columns:.78fr 1.22fr; gap:85px; }.faq-list { border-top:1px solid var(--line); }.faq details { border-bottom:1px solid var(--line); }.faq summary { display:flex; justify-content:space-between; gap:14px; padding:18px 0; list-style:none; font-weight:600; font-size:15px; cursor:pointer; }.faq summary::-webkit-details-marker { display:none; }.faq summary span { color:var(--coral); font-size:22px; font-weight:400; transition:transform .2s; }.faq details[open] summary span { transform:rotate(45deg); }.faq details p { margin:0; padding:0 34px 20px 0; color:#587077; font-size:14px; }
.site-footer { background:#09232c; color:#eaf0ed; padding-top:58px; }.footer-grid { display:grid; grid-template-columns:1.45fr 1fr 1fr .7fr; gap:30px; padding-bottom:48px; }.footer-brand { align-self:start; }.footer-label { margin:0 0 10px; color:#aabbbd; text-transform:uppercase; font-size:10px; letter-spacing:1.4px; font-weight:700; }.footer-grid>div>a,.footer-grid address { display:block; color:#f2f5f2; font-size:13px; font-style:normal; line-height:1.9; }.footer-grid>div>a:hover { color:#e7d4bc; }.footer-bottom { display:flex; justify-content:space-between; padding:18px 0 25px; color:#90a3a6; border-top:1px solid rgba(255,255,255,.13); font-size:11px; }.mobile-book { display:none; }
@media (max-width:850px) { .page-width { width:min(100% - 36px, 620px); }.nav-shell { width:calc(100% - 36px); height:76px; }.main-nav { position:fixed; z-index:-1; inset:0; display:flex; flex-direction:column; justify-content:center; gap:25px; background:var(--deep); transform:translateY(-100%); transition:transform .3s; font-size:20px; }.main-nav.open { transform:none; }.nav-cta { font-size:14px; }.menu-toggle { position:relative; z-index:2; display:grid; gap:5px; padding:10px 0 10px 10px; border:0; color:#fff; background:transparent; }.menu-toggle span:not(.sr-only) { display:block; width:25px; height:1px; background:currentColor; transition:.2s; }.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(6px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }.hero { min-height:700px; }.hero-image { background-position:57% center; }.hero-content { padding-top:80px; }.hero h1 { font-size:clamp(44px,13vw,68px); letter-spacing:-2px; }.hero-copy { font-size:16px; max-width:410px; }.hero-details { bottom:23px; }.hero-details li { min-width:unset; width:33.333%; padding-right:13px; margin-right:13px; }.hero-details strong { font-size:10px; }.hero-details span { font-size:9px; }.hero-scroll { display:none; }.section { padding:84px 0; }.intro,.stay,.location,.booking-grid,.faq { grid-template-columns:1fr; gap:40px; }.intro-copy { padding:0; }.feature-grid { grid-template-columns:repeat(2,1fr); }.feature-grid article { min-height:190px; padding:28px 20px; }.feature-grid article:nth-child(2) { border-right:1px solid var(--line); }.feature-grid article:nth-child(n+3) { border-top:1px solid var(--line); }.stay-photo { height:460px; }.stay-content { max-width:unset; }.gallery { padding-bottom:84px; }.gallery-header { display:block; padding-bottom:30px; }.gallery-header>p { width:auto; margin:20px 0 0; }.gallery-grid { grid-template-columns:1.15fr .85fr; grid-auto-rows:170px; gap:9px; }.gallery-large { grid-row:span 2; }.gallery-tall { grid-row:span 2; }.location-photo { height:420px; grid-row:1; }.booking { padding:82px 0; }.booking-grid { gap:35px; }.booking-form { padding:25px; }.faq { gap:35px; }.footer-grid { grid-template-columns:1fr 1fr; gap:35px 20px; }.footer-grid .brand { grid-column:span 2; }.mobile-book { position:fixed; z-index:8; bottom:14px; left:18px; right:18px; display:flex; justify-content:center; align-items:center; gap:13px; height:50px; border:0; border-radius:3px; background:var(--coral); color:#fff; font-size:13px; font-weight:700; box-shadow:0 10px 25px rgba(10,36,45,.28); }.mobile-book span { font-size:19px; }.site-footer { padding-bottom:66px; } }
@media (max-width:420px) { .brand { font-size:18px; }.brand-mark { font-size:27px; }.hero-actions { gap:18px; }.button-primary { padding:14px 15px; }.button-text { font-size:12px; }.hero-details li { padding-right:8px; margin-right:8px; }.feature-grid { grid-template-columns:1fr; }.feature-grid article { border-right:1px solid var(--line); border-top:1px solid var(--line); }.feature-grid article:first-child { border-top:0; }.gallery-grid { grid-auto-rows:145px; }.form-split { grid-template-columns:1fr; gap:0; }.footer-bottom { flex-direction:column; gap:5px; }.distances { flex-wrap:wrap; gap:15px; }.distances div { padding-right:10px; }.section h2 { letter-spacing:-1.5px; } }

/* Keeps the reservation CTA and key facts visually separate at every hero height. */
.hero-details { position:static; margin:38px 0 0; }

/* The external calendar is deliberately deferred until a visitor asks to book. */
.booking-widget-panel { min-height:315px; background:#fff; padding:34px; color:var(--ink); box-shadow:0 14px 48px rgba(4,24,31,.24); }.booking-widget-intro { text-align:center; }.booking-widget-icon { display:grid; width:35px; height:35px; margin:0 auto 12px; place-items:center; border-radius:50%; color:#fff; background:var(--sea); font-size:16px; font-weight:700; }.booking-widget-intro h3 { margin:0; font-family:var(--serif); font-size:28px; line-height:1.1; }.booking-widget-intro>p:not(.form-note) { max-width:390px; margin:12px auto 16px; color:#587077; font-size:13px; }.booking-widget-intro ul { display:flex; justify-content:center; gap:13px; flex-wrap:wrap; padding:0; margin:0 0 20px; list-style:none; color:#47626b; font-size:11px; font-weight:600; }.booking-widget-intro li { display:flex; align-items:center; gap:5px; }.booking-widget-intro li:before { content:"✓"; color:var(--coral); font-weight:700; }.booking-widget-panel .form-button { margin-top:0; }.booking-widget-panel .button:disabled { cursor:wait; opacity:.8; transform:none; }.booking-widget-holder { min-height:80px; }.booking-widget-holder bb-widget { display:block; min-height:300px; }.noscript-booking { color:var(--sea); text-align:center; }.noscript-booking a { text-decoration:underline; }
.footer-grid { grid-template-columns:1.45fr 1fr 1fr .7fr .9fr; }.social-links a { display:flex !important; align-items:center; gap:7px; }.social-links span { display:grid; width:19px; height:19px; place-items:center; border:1px solid rgba(255,255,255,.4); border-radius:50%; font-family:Arial,sans-serif; font-size:11px; font-weight:700; }
@media (max-width:850px) { .footer-grid { grid-template-columns:1fr 1fr; } }

.booking-legal-note { margin:12px 0 0; color:#75878c; font-size:10px; line-height:1.45; text-align:center; }.booking-legal-note a { color:var(--sea); text-decoration:underline; }.footer-doc-links { display:flex; justify-content:center; flex-wrap:wrap; gap:14px; }.footer-doc-links a:hover { color:#e7d4bc; }.cookie-notice { position:fixed; z-index:30; right:18px; bottom:18px; width:min(390px,calc(100% - 36px)); padding:16px; color:#eef5f2; background:#0b2d38; box-shadow:0 14px 35px rgba(0,0,0,.28); font-size:12px; }.cookie-notice p { margin:0; line-height:1.5; }.cookie-notice strong { display:block; margin-bottom:3px; font-size:13px; }.cookie-notice a { color:#e7d4bc; text-decoration:underline; }.cookie-notice button { margin-top:12px; border:1px solid rgba(255,255,255,.6); border-radius:2px; padding:7px 13px; color:#fff; background:transparent; font-size:11px; font-weight:700; }.cookie-notice button:hover { background:#fff; color:var(--ink); }
.legal-body { background:#fcfaf6; color:var(--ink); }.legal-header { color:#fff; background:#0c2732; }.legal-nav { min-height:80px; display:flex; align-items:center; justify-content:space-between; }.legal-header .brand { color:#fff; }.back-link { color:#dce6e4; font-size:12px; font-weight:700; }.back-link:hover { color:#e7d4bc; }.legal-main { padding:75px 0 105px; }.legal-main h1 { margin:0; font-family:var(--serif); font-size:clamp(42px,5vw,68px); line-height:1; letter-spacing:-2px; }.legal-main h1 em { color:var(--sea); }.legal-lead { margin:19px 0 54px; color:#60747a; }.legal-layout { display:grid; grid-template-columns:220px minmax(0,760px); gap:75px; align-items:start; }.legal-toc { position:sticky; top:24px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.legal-toc p { margin:0 0 9px; color:#72868c; font-size:10px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; }.legal-toc a { display:block; padding:5px 0; color:var(--sea); font-size:12px; }.legal-toc a:hover { color:var(--coral); }.legal-content section { margin:0 0 43px; scroll-margin-top:25px; }.legal-content h2 { margin:0 0 15px; font-family:var(--serif); font-size:28px; line-height:1.1; }.legal-content p,.legal-content li { color:#3d5962; font-size:14px; }.legal-content p { margin:0 0 13px; }.legal-content ol,.legal-content ul { margin:0; padding-left:22px; }.legal-content li { margin-bottom:8px; padding-left:4px; }.legal-content a { color:var(--sea); text-decoration:underline; text-underline-offset:2px; }.legal-content strong { color:var(--ink); }.child-summary { margin-top:18px; padding:18px 22px; border-left:3px solid var(--coral); background:#f1e6d8; }.child-summary p { margin-bottom:6px; }.legal-footer { padding:23px 0; color:#a9babd; background:#09232c; font-size:11px; }.legal-footer a { color:#e7d4bc; }.legal-footer a:hover { color:#fff; }
@media (max-width:850px) { .footer-bottom { align-items:flex-start; }.footer-doc-links { justify-content:flex-start; }.legal-main { padding:55px 0 82px; }.legal-layout { grid-template-columns:1fr; gap:25px; }.legal-toc { position:static; display:flex; gap:11px; flex-wrap:wrap; }.legal-toc p { width:100%; }.legal-toc a { padding:0; }.legal-content h2 { font-size:25px; }.legal-nav { min-height:73px; }.cookie-notice { bottom:76px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
@media (max-width:850px) { .booking-widget-panel { padding:25px; }.booking-widget-intro h3 { font-size:25px; }.booking-widget-intro ul { display:grid; grid-template-columns:1fr 1fr; text-align:left; gap:7px 10px; } }

/* A manual, scroll-snap carousel keeps a larger gallery easy to browse without autoplay. */
.gallery-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 28px) / 3); gap:14px; overflow-x:auto; overscroll-behavior-inline:contain; padding:0 0 12px; scroll-behavior:smooth; scroll-snap-type:inline mandatory; scrollbar-color:var(--sea) transparent; scrollbar-width:thin; }.gallery-track::-webkit-scrollbar { height:8px; }.gallery-track::-webkit-scrollbar-thumb { background:var(--sea); border-radius:99px; }.gallery-track .gallery-item { height:360px; scroll-snap-align:start; }.gallery-controls { display:flex; align-items:center; justify-content:flex-end; gap:14px; margin-top:18px; }.gallery-controls p { margin:0 auto 0 0; color:#587077; font-size:12px; }.gallery-control { display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:0 14px; border:1px solid var(--line); color:var(--sea); background:transparent; font-size:12px; font-weight:700; transition:.2s; }.gallery-control:hover { color:#fff; background:var(--sea); border-color:var(--sea); }
@media (max-width:850px) { .gallery-track { grid-auto-columns:calc((100% - 9px) / 1.12); gap:9px; }.gallery-track .gallery-item { height:300px; }.gallery-controls { margin-top:14px; } }
