/* Karkonoski Glamping — shared, portable layout. No external fonts or UI dependencies. */
:root {
  --pine:#193c30; --deep:#102b23; --ink:#233a30; --muted:#536256;
  --paper:#f8f6f0; --cream:#eeeadd; --sage:#dfe5da; --accent:#914c2e;
  --line:#cdd2c6; --white:#fffefa; --max:1240px; --gutter:clamp(20px,4vw,64px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body.modal-open{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:4px}
button,input,select,textarea{font:inherit}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b87937;outline-offset:5px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.08;letter-spacing:-.04em;margin:0}
h1{font-size:clamp(44px,5.4vw,76px)}
h2{font-size:clamp(34px,3.6vw,51px)}
h3{font-size:clamp(26px,2.6vw,36px)}
h1 i,h2 i{font-weight:400}
p{margin:0 0 18px}
p:last-child{margin-bottom:0}
ul{padding-left:20px}
.container{width:min(var(--max),calc(100% - var(--gutter)*2));margin-inline:auto}
.section{padding-block:72px}
.eyebrow{font-size:11px;font-weight:650;letter-spacing:.17em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.light{color:#d7cdb3}
.lead{font-size:18px;line-height:1.7;color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:18px;font-size:14px;font-weight:650;text-decoration:none;border-bottom:1px solid currentColor;padding:6px 0}
.text-link:hover{color:var(--accent)}
.text-link span{font-size:19px;font-weight:400}
.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;min-height:48px;padding:13px 23px;border:1px solid var(--pine);background:var(--pine);color:var(--white);font-size:13px;font-weight:650;text-decoration:none;line-height:1.4;transition:background .18s}
.button:hover{background:var(--deep)}
.button-cream{background:var(--cream);color:var(--pine);border-color:var(--cream)}
.button-cream:hover{background:#fff}
.button-outline{background:transparent;color:var(--pine)}
.button-outline:hover{background:var(--sage)}
.button-small{min-height:43px;padding:10px 17px;font-size:12px}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:15px 26px;margin-top:25px}
.skip{position:fixed;top:8px;left:12px;z-index:100;transform:translateY(-160%);background:var(--white);padding:10px 15px}
.skip:focus{transform:none}
.topline{background:var(--deep);color:#e2e8dd;display:flex;justify-content:center;gap:15px;padding:8px 20px;font-size:10px;letter-spacing:.14em;text-align:center}
.header{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner{min-height:82px;display:flex;align-items:center;gap:30px;justify-content:space-between}
.brand{display:flex;flex-direction:column;gap:3px;text-decoration:none;line-height:1.1;flex-shrink:0}
.brand-logo{width:115px;height:78px;object-fit:contain}.header-inner{min-height:96px}.footer .brand-logo{width:165px;height:113px;background:#faf8f2;padding:10px;border-radius:3px}
.brand span{font-size:12px;font-weight:650;letter-spacing:.19em}
.brand em{font:24px Georgia,serif;letter-spacing:.095em;font-style:normal}
.site-nav{display:flex;align-items:center;gap:26px}
.site-nav a{font-size:13px;font-weight:550;text-decoration:none;padding-block:9px}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--accent)}
.header-actions{display:flex;align-items:center;gap:12px}
.menu-toggle{display:none;background:transparent;border:1px solid var(--line);padding:10px 13px;min-height:43px;color:var(--ink);font-size:13px}
.hero{background:var(--pine);color:var(--white)}
.hero-layout{display:grid;grid-template-columns:1fr 1.05fr;max-width:1600px;margin:auto}
.hero-copy{padding:clamp(38px,5vw,72px) clamp(24px,5vw,80px);align-self:center}
.hero-copy h1{max-width:650px}
.hero-copy .eyebrow{color:#d7cdb3}
.hero-copy>p:not(.eyebrow){color:#e1e6d9;max-width:490px;font-size:17px;margin-top:23px}
.hero-copy .text-link{color:#f7f2e7}
.hero-photo{margin:0;position:relative;min-height:520px;overflow:hidden}
.hero-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-photo figcaption{position:absolute;left:22px;right:22px;bottom:20px;padding:12px 17px;background:#102b23e8;color:#fffefa;font-size:12px}
.hero-photo figcaption span{display:block;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#d7cdb3;margin-bottom:3px}
.facts-bar{background:var(--cream);border-bottom:1px solid var(--line)}
.facts-bar .container{display:grid;grid-template-columns:repeat(4,1fr);padding-block:21px;gap:20px}
.facts-bar p{margin:0;font-size:12px;color:var(--muted);border-left:1px solid #c5c6b8;padding-left:20px}
.facts-bar p:first-child{border:0;padding-left:0}
.facts-bar strong{display:block;font-size:16px;font-weight:600;color:var(--ink);margin-bottom:3px}
.section-head{display:grid;grid-template-columns:1.1fr .8fr;gap:60px;align-items:end;margin-bottom:32px}
.section-head p:last-child{color:var(--muted);font-size:16px;max-width:520px}
.section-head .eyebrow{color:var(--accent);font-size:11px}
.intro{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(28px,7vw,90px);align-items:start}
.intro .lead{margin-bottom:18px}
.intro h2{max-width:490px}
.stays{background:var(--cream)}
.stay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.stay-card{background:var(--paper);border:1px solid #d7d9cc}
.stay-image{position:relative;display:block;overflow:hidden;aspect-ratio:1.5}
.stay-image img{width:100%;height:100%;object-fit:cover;object-position:50% 66%;transition:transform .3s}
.stay-image:hover img{transform:scale(1.025)}
.image-tag{position:absolute;left:18px;bottom:18px;background:var(--paper);padding:7px 12px;font-size:11px;color:var(--ink);font-weight:650;letter-spacing:.04em}
.stay-content{padding:26px 28px 28px}
.stay-title{display:flex;justify-content:space-between;align-items:baseline;gap:15px;margin-bottom:18px}
.stay-title h3{font-size:37px}
.stay-title span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.stay-content>p{color:var(--muted);font-size:15px}
.stay-facts{list-style:none;padding:16px 0;margin:20px 0 0;border-block:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;font-size:12px}
.stay-facts li::before{content:"✓";padding-right:7px;color:var(--accent)}
.stay-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:22px}
.stay-actions .text-link{font-size:12px}
.experience{background:var(--pine);color:var(--white)}
.experience-layout{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.experience-photo{position:relative;aspect-ratio:1.12;overflow:hidden;margin:0}
.experience-photo img{width:100%;height:100%;object-fit:cover}
.experience-copy>p:not(.eyebrow){color:#dce3d7;margin-top:22px}
.amenities{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px;margin-top:27px}
.amenity{border-top:1px solid #ffffff35;padding-top:15px}
.amenity h3{font-family:inherit;font-size:14px;font-weight:600;letter-spacing:0;line-height:1.4;margin-bottom:5px}
.amenity p{font-size:13px;color:#cbd6c6}
.gallery-head{margin-bottom:28px}
.gallery-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-auto-rows:clamp(230px,22vw,310px);gap:16px}
.gallery-item{position:relative;height:100%;padding:0;border:0;background:var(--sage);overflow:hidden;cursor:zoom-in}
.gallery-item img{width:100%;height:100%;object-fit:cover}
.gallery-item span{position:absolute;left:12px;bottom:12px;background:#102b23e8;color:var(--white);font-size:11px;padding:8px 12px;text-align:left}
.around{background:var(--sage)}
.around-layout{display:grid;grid-template-columns:.8fr 1fr;gap:60px;align-items:start}
.around-copy .lead{margin-top:22px}
.destination-list{display:grid;gap:0}
.destination{display:grid;grid-template-columns:32px 1fr;gap:15px;border-top:1px solid #adbaa8;padding:22px 0}
.destination:last-child{padding-bottom:0}
.destination-number{font-size:11px;color:var(--accent);padding-top:7px}
.destination h3{font-size:26px;line-height:1.2;margin-bottom:9px}
.destination p{font-size:14px;color:var(--muted)}
.reviews{background:var(--cream);border-block:1px solid var(--line)}
.reviews-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.review-card{background:var(--paper);border:1px solid var(--line);padding:26px;display:flex;flex-direction:column;min-height:230px}
.review-card blockquote{margin:0;color:var(--ink);font:20px/1.45 Georgia,"Times New Roman",serif}
.review-card blockquote::before{content:"“";display:block;color:var(--accent);font-size:42px;line-height:.7;margin-bottom:12px}
.review-meta{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:16px;margin-top:auto;font-size:12px}
.review-author{font-weight:700}.review-source{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:10px}
.reviews-loading{color:var(--muted);grid-column:1/-1}
.for-you-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.reason{border-top:1px solid var(--line);padding-top:19px}
.reason .number{font-size:11px;color:var(--accent);margin-bottom:14px;display:block}
.reason h3{font-size:28px;margin-bottom:15px}
.reason p{font-size:14px;color:var(--muted)}
.practical-strip{background:var(--cream);padding:32px 0;border-block:1px solid var(--line)}
.practical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.practical-grid p{margin:0;font-size:13px;color:var(--muted)}
.practical-grid strong{display:block;color:var(--ink);font-size:14px;margin-bottom:7px}
.faq-layout{display:grid;grid-template-columns:.75fr 1.2fr;gap:70px;align-items:start}
.faq-intro p:not(.eyebrow){color:var(--muted);margin-top:20px;font-size:15px}
.faq-list{border-bottom:1px solid var(--line)}
details{border-top:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;font-size:15px;font-weight:550;line-height:1.45}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:23px;font-weight:300;flex-shrink:0}
details[open] summary::after{content:"−"}
details>p{padding:0 32px 22px 0;color:var(--muted);font-size:14px;max-width:650px;margin:0}
.closing{background:var(--pine);color:var(--white);padding:50px 0}
.closing-layout{display:flex;align-items:center;justify-content:space-between;gap:35px}
.closing h2{font-size:clamp(34px,4vw,52px)}
.closing p:not(.eyebrow){color:#dce3d7;margin-top:16px;max-width:560px;font-size:15px}
.closing .button{flex-shrink:0}
.footer{background:var(--deep);color:#dce3d7;padding:40px 0 22px;font-size:13px}
.footer-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:35px}
.footer .brand{color:var(--white);margin-bottom:18px}
.footer h2{font:600 12px system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:#d7cdb3;margin-bottom:17px}
.footer p{margin-bottom:9px;font-size:12px}
.footer a{text-decoration:none;overflow-wrap:anywhere}
.footer a:hover{text-decoration:underline}
.footer-links{display:grid;gap:10px}
.footer-bottom{border-top:1px solid #ffffff25;margin-top:30px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;color:#acbdae;font-size:10px}
.content-hero{background:var(--cream);padding:48px 0 42px;border-bottom:1px solid var(--line)}
.breadcrumbs{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted);margin-bottom:27px}
.breadcrumbs a{text-decoration:none}
.content-hero h1{font-size:clamp(40px,4.8vw,65px);max-width:950px}
.content-hero .lead{max-width:750px;margin-top:20px;font-size:17px}
.page-jump{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:24px;font-size:13px;font-weight:600}
.detail-section{padding-block:58px}
.detail-section+.detail-section{border-top:1px solid var(--line)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.detail-photo{margin:0;aspect-ratio:1.15;position:relative;overflow:hidden;background:var(--sage)}
.detail-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 64%}
.detail-copy h2{font-size:46px;margin-bottom:21px}
.detail-copy>p{font-size:15px;color:var(--muted)}
.detail-copy .eyebrow{font-size:11px;color:var(--accent)}
.detail-copy .stay-facts{margin-bottom:23px}
.detail-note{font-size:12px!important;border-left:2px solid var(--accent);padding-left:13px;margin-top:20px!important}
.comfort{background:var(--cream)}
.comfort-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin-top:30px}
.comfort-grid article{border-top:1px solid var(--line);padding-top:18px}
.comfort-grid h3{font:600 15px/1.4 system-ui,sans-serif;letter-spacing:0;margin-bottom:10px}
.comfort-grid p{font-size:13px;color:var(--muted)}
.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}
.article-card{padding:27px;background:var(--cream);border-top:2px solid var(--accent)}
.article-card h2{font-size:30px;margin-bottom:19px}
.article-card p{font-size:14px;color:var(--muted)}
.article-card .eyebrow{font-size:10px;color:var(--accent)}
.article-card .text-link{font-size:12px}
.contact-panel{background:var(--sage);padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:40px}
.contact-panel h2{font-size:32px;margin-bottom:15px}
.contact-panel p{font-size:14px}
.contact-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;margin-top:19px}
dialog{border:1px solid var(--line);padding:32px;background:var(--paper);color:var(--ink);width:min(94vw,560px);max-height:90svh;overflow:auto;box-shadow:0 24px 90px #0005}
dialog::backdrop{background:#102b23bc}
dialog h2{font-size:34px;padding-right:18px}
.modal-close{position:absolute;right:8px;top:7px;width:44px;height:44px;border:0;background:transparent;color:var(--ink);font-size:29px;line-height:1}
.selected-unit{color:var(--accent);font-size:13px;margin:15px 0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:grid;gap:6px;margin:16px 0;font-size:13px;font-weight:550}
input,select{width:100%;min-width:0;min-height:46px;padding:10px;border:1px solid #aeb9aa;background:var(--white);color:var(--ink)}
.form-error{color:#a23424;font-size:13px;margin:10px 0}
.form-error:empty{display:none}
.form-note{font-size:12px;color:var(--muted);margin-top:14px}
form .button{width:100%;margin-top:6px}
#lightbox{width:min(92vw,920px);padding:50px 16px 16px;background:var(--paper)}
#lightbox img{max-height:76svh;width:auto;max-width:100%;margin:auto;object-fit:contain}
#lightbox-caption{font-size:12px;text-align:center;margin-top:12px}
@media(min-width:1600px){.hero-copy{padding-left:100px}.hero-photo{min-height:570px}}
@media(max-width:1050px){
  .header-inner{gap:20px}.site-nav{gap:16px}.site-nav a{font-size:12px}
  .hero-copy{padding:40px 30px}.hero-photo{min-height:470px}
  .section-head,.around-layout,.faq-layout{gap:35px}
  .experience-layout,.detail-grid{gap:32px}.stay-content{padding:23px}
  .section{padding-block:58px}.comfort-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:800px){
  .header-inner{min-height:73px;flex-wrap:wrap;gap:0 15px;padding-block:12px}
  .brand span{font-size:10px}.brand em{font-size:21px}
  .header-actions{margin-left:auto}.js .menu-toggle{display:inline-flex;align-items:center}
  .site-nav{order:3;width:100%;justify-content:space-between;padding-top:13px;margin-top:12px;border-top:1px solid var(--line)}
  .js .site-nav:not(.is-open){display:none}
  .hero-layout{grid-template-columns:1fr 1fr}.hero-copy{padding:34px 24px}
  .hero-copy h1{font-size:46px}.hero-copy>p:not(.eyebrow){font-size:15px}
  .hero-photo{min-height:440px}.hero-photo figcaption{left:12px;right:12px;bottom:12px;font-size:11px}
  .hero-copy .actions{gap:14px}.hero-copy .text-link{font-size:12px}
  .facts-bar .container{grid-template-columns:repeat(2,1fr);gap:15px 22px}
  .facts-bar p:nth-child(3){border:0;padding-left:0}
  .section-head,.intro,.experience-layout,.around-layout,.faq-layout{grid-template-columns:1fr;gap:24px}
  .section-head{margin-bottom:27px}.section-head p:last-child{max-width:none}
  .experience-photo{aspect-ratio:1.8}.experience-copy{max-width:650px}
  .stay-grid{gap:18px}.stay-title{display:block}.stay-title span{display:block;margin-top:8px}
  .stay-facts{grid-template-columns:1fr}.stay-content{padding:20px}
  .for-you-grid,.article-grid{gap:18px}.article-card{padding:21px}
  .reviews-grid{gap:14px}.review-card{padding:21px;min-height:210px}
  .detail-grid{gap:28px}.detail-copy h2{font-size:38px}.detail-photo{aspect-ratio:.85}
  .footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}
  .closing-layout{align-items:start;flex-direction:column}
}
@media(max-width:560px){
  html{scroll-padding-top:100px}
  .topline{font-size:8px;gap:7px;padding:7px 12px;letter-spacing:.07em}
  .header-actions{gap:8px}.button-small{padding:10px 12px;font-size:10px}
  .menu-toggle{padding:10px;font-size:11px}
  .site-nav{flex-wrap:wrap;gap:7px 22px;justify-content:flex-start}
  .site-nav a{min-height:40px;display:flex;align-items:center}
  .hero-layout{grid-template-columns:1fr}.hero-copy{padding:37px var(--gutter) 32px}
  .hero-copy h1{font-size:clamp(42px,11vw,57px);max-width:470px}
  .hero-copy>p:not(.eyebrow){margin-top:20px;font-size:15px}
  .hero-photo{min-height:0;aspect-ratio:1.4}.hero-photo>img{object-position:center 58%}
  .hero-photo figcaption{left:var(--gutter);right:var(--gutter);bottom:15px;padding:9px 12px}
  .hero-photo figcaption span{display:none}
  .facts-bar strong{font-size:14px}.facts-bar p{font-size:11px}
  .section{padding-block:43px}.eyebrow{font-size:10px;margin-bottom:13px}
  .lead{font-size:16px}.intro{gap:20px}
  .stay-grid{grid-template-columns:1fr;gap:25px}.stay-image{aspect-ratio:1.45}
  .stay-title{display:flex}.stay-title h3{font-size:33px}.stay-title span{font-size:10px;margin:0}
  .stay-facts{grid-template-columns:1fr 1fr;font-size:11px}
  .stay-content>p{font-size:14px}.stay-content{padding:22px}
  .experience-photo{aspect-ratio:1.4}.amenities{gap:18px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:12px}
  .gallery-item{height:auto;aspect-ratio:1.1}
  .gallery-item:first-child{grid-column:1/-1;aspect-ratio:1.8}
  .gallery-item span{left:8px;bottom:8px;padding:6px 8px;font-size:10px}
  .for-you-grid,.practical-grid,.article-grid,.reviews-grid{grid-template-columns:1fr;gap:23px}
  .reason h3{font-size:27px}.reason .number{margin-bottom:10px}
  .practical-grid{gap:20px}.practical-strip{padding-block:28px}
  .content-hero{padding:27px 0 33px}.breadcrumbs{margin-bottom:22px}
  .content-hero h1{font-size:42px}.content-hero .lead{font-size:15px}
  .detail-section{padding-block:38px}.detail-grid{grid-template-columns:1fr;gap:26px}
  .detail-photo{aspect-ratio:1.35}.detail-grid.reverse .detail-photo{order:0}
  .detail-grid.reverse .detail-copy{order:1}
  .comfort-grid{gap:20px}.comfort-grid h3{font-size:14px}
  .contact-panel{grid-template-columns:1fr;padding:25px;gap:25px}
  .footer-grid{gap:26px 18px}.footer-bottom{flex-direction:column;gap:8px}
  .closing{padding-block:37px}.closing-layout{gap:24px}
  dialog{padding:27px 21px}.form-row{gap:12px}dialog h2{font-size:30px}
  .form-row input{font-size:14px;padding:9px 5px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Photo-led stay story, September 2026. */
.moments{background:#f1eddf}
.moment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px 36px}
.moment-card{min-width:0}
.moment-card>.gallery-item{display:block;width:100%;height:auto;aspect-ratio:4/3}
.moment-card>.gallery-item img{object-position:50% 58%}
.moment-card:nth-child(1) img,.moment-card:nth-child(3) img,.moment-card:nth-child(4) img{object-position:50% 90%}
.moment-copy{padding-top:24px;max-width:540px}
.moment-copy .eyebrow{font-size:10px;letter-spacing:.14em;margin-bottom:12px}
.moment-copy h3{font-size:clamp(27px,2.6vw,36px);line-height:1.15;margin-bottom:16px}
.moment-copy>p:last-child{font-size:16px;line-height:1.75;color:var(--muted)}
@media(max-width:650px){.moment-grid{grid-template-columns:1fr;gap:38px}.moment-copy{padding-top:20px}.moment-copy>p:last-child{font-size:15px}}
.hero-copy>p.booking-reassurance{font-size:12px;line-height:1.8;color:#d4dcca;margin-top:23px;padding-top:18px;border-top:1px solid #ffffff30}
.rituals{background:#f1eddf}
.ritual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.ritual-card>.gallery-item{display:block;width:100%;height:auto;aspect-ratio:3/4}
.ritual-card:nth-child(2){padding-top:48px}
.ritual-card:nth-child(3){padding-top:96px}
.ritual-copy{padding:24px 0 0}
.ritual-copy h3{font-size:30px;margin-bottom:15px}
.ritual-copy>p:last-child{color:var(--muted);font-size:15px}
.soft-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);padding-top:26px;margin-top:36px}
.soft-cta p{font:italic 25px/1.35 Georgia,serif;margin:0;max-width:620px}
.soft-cta .button{flex-shrink:0}
.view-pause{position:relative;isolation:isolate;min-height:480px;display:flex;align-items:center;color:var(--white);padding-block:72px;background:var(--deep)}
.view-pause>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.view-pause::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#102b23dc,#102b2355);z-index:-1}
.view-pause h2{font-size:clamp(36px,4.8vw,65px);max-width:800px;margin-bottom:30px}
.inside-story{background:var(--cream)}
.inside-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 25px}
.inside-grid .gallery-item{display:block;width:100%;height:auto;aspect-ratio:4/3}
.inside-grid h3{font-size:26px;margin:22px 0 13px}
.inside-grid p{color:var(--muted);font-size:15px}
.gallery-item img{transition:transform .4s ease}
.gallery-item:hover img{transform:scale(1.035)}
.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:16px}
.lightbox-controls button{width:48px;height:44px;background:var(--pine);border:0;color:var(--white);font-size:22px}
.photo-count{font-size:13px;min-width:65px;text-align:center}
.mobile-booking{display:none}
@media(min-width:801px){.hero-photo{min-height:650px}.hero-copy h1{font-size:clamp(52px,5.4vw,78px)}}
@media(max-width:900px){.ritual-grid{gap:18px}.ritual-copy h3{font-size:25px}.inside-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){
  body:has(.mobile-booking){padding-bottom:88px}
  .ritual-grid{grid-template-columns:1fr;gap:32px}
  .ritual-card:nth-child(n){padding-top:0}
  .ritual-card>.gallery-item{aspect-ratio:4/3}
  .ritual-copy{padding-top:19px}.ritual-copy h3{font-size:29px}
  .soft-cta{align-items:flex-start;flex-direction:column;gap:19px;margin-top:28px}
  .soft-cta p{font-size:24px}
  .inside-grid{grid-template-columns:1fr;gap:30px}
  .inside-grid .gallery-item{aspect-ratio:4/3}
  .view-pause{min-height:420px;padding-block:48px}.view-pause>img{object-position:60% center}
  .view-pause::before{background:#102b2399}
  .mobile-booking{position:fixed;bottom:0;left:0;right:0;z-index:19;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px calc(13px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -4px 20px #102b2310}
  .mobile-booking strong{display:block;font-size:12px}.mobile-booking span{display:block;font-size:10px;color:var(--muted)}
  .mobile-booking .button{min-height:44px;font-size:11px;padding-inline:14px;flex-shrink:0}
  body.modal-open .mobile-booking{visibility:hidden}
}
.gift-teaser{background:var(--cream)}
@media(min-width:801px){.site-nav{gap:16px}.site-nav a{font-size:12px}.header-inner{gap:20px}}

/* Two separate photographic walks; each lightbox stays within its tent. */
.gallery-jump{margin:4px 0 14px}
.tent-gallery{margin-top:42px;padding-top:30px;border-top:1px solid var(--line);scroll-margin-top:12px}
.tent-gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:25px}
.tent-gallery-heading h3{font-size:clamp(27px,3vw,37px);max-width:620px}
.tent-gallery-heading .eyebrow{margin-bottom:10px}
.tent-gallery-heading>p{font-size:13px;color:var(--muted);max-width:300px;flex-shrink:0}
.tent-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 22px;margin-bottom:20px}
.tent-gallery-card{margin:0;min-width:0}
.tent-gallery-card .gallery-item{display:block;width:100%;height:auto;aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--sage)}
.tent-gallery-card .gallery-item img{width:100%;height:100%;object-fit:cover;object-position:center 58%;transition:transform .3s}
.tent-gallery-card .gallery-item:hover img{transform:scale(1.025)}
.tent-gallery-card figcaption{padding:15px 0 0}
.tent-gallery-card figcaption .eyebrow{display:block;margin-bottom:6px;font-size:10px}
.tent-gallery-card figcaption p{font:22px/1.25 Georgia,serif;color:var(--pine)}
.tent-gallery-card:nth-child(2) .gallery-item img{object-position:center 58%}
.hero-photo>img[src*="gabi-sniezka"]{object-position:62% center}
.moment-card:nth-child(1) img[src*="gabi-"]{object-position:50% 62%}
.moment-card:nth-child(2) img[src*="gabi-"]{object-position:50% 64%}
.moment-card:nth-child(3) img[src*="gabi-"]{object-position:50% 57%}
@media(max-width:1000px){.tent-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tent-gallery-heading{align-items:flex-start;flex-direction:column;gap:15px}.tent-gallery-heading>p{max-width:none}}
@media(max-width:600px){.tent-gallery-grid{grid-template-columns:1fr;gap:28px}.tent-gallery{margin-top:30px}.tent-gallery-card figcaption p{font-size:23px}.hero-photo>img[src*="gabi-sniezka"]{object-position:62% 54%}}
@media(prefers-reduced-motion:reduce){.tent-gallery-card .gallery-item img{transition:none}}
/* Keep the full mezzanine visible: guests can compare the real layouts. */
.tent-gallery-card:nth-child(2) .gallery-item img{object-fit:contain;object-position:center;background:var(--cream)}

/* Editorial stories: one photograph, one lived moment, room to read. */
.moment-grid{display:flex;flex-direction:column;gap:72px}
.moment-card{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,5vw,76px);align-items:center}
.moment-card>.gallery-item{aspect-ratio:4/5;min-height:0}
.moment-card:nth-child(even)>.gallery-item{order:2}
.moment-copy{padding:18px 0;border:0;max-width:560px}
.moment-copy h3{font-size:clamp(30px,3.1vw,43px);line-height:1.17;letter-spacing:-.025em;margin-bottom:24px}
.moment-copy>p:not(.eyebrow){font-size:16px;line-height:1.9;color:var(--muted);max-width:52ch}
.moment-copy .eyebrow{font-size:10px;line-height:1.7;margin-bottom:18px;letter-spacing:.13em}
.tent-gallery-card figcaption{padding:20px 2px 0}
.tent-gallery-card figcaption p{font:15px/1.8 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--muted)}
.tent-gallery-card figcaption .eyebrow{line-height:1.6;margin-bottom:10px}
.tent-gallery-grid{gap:38px 26px}
.inside-grid article>p{font-size:15px;line-height:1.85}
.inside-grid h3{font-size:29px;line-height:1.2}
.hero-copy>p:not(.eyebrow){line-height:1.8}
#lightbox-caption{font-size:14px;line-height:1.65;max-width:740px;margin:15px auto 0}
@media(max-width:800px){.moment-grid{gap:44px}.moment-card{grid-template-columns:1fr;gap:0}.moment-card:nth-child(even)>.gallery-item{order:0}.moment-card>.gallery-item{aspect-ratio:4/3}.moment-copy{padding:25px 0 0;max-width:none}.moment-copy h3{font-size:32px;margin-bottom:18px}.moment-copy>p:not(.eyebrow){font-size:16px;line-height:1.85;max-width:none}.moment-copy .eyebrow{margin-bottom:13px}}
@media (min-width: 1000px) {
  .tent-gallery-card:last-child:nth-child(3n + 1) { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
  .tent-gallery-card:last-child:nth-child(3n + 1) figcaption { max-width: 460px; padding: 0 24px; }
}

/* Audit: readable small text, reliable hidden states and compact-screen controls. */
[hidden]{display:none!important}
.legal-footer{display:flex;flex-wrap:wrap;gap:8px 18px}
.footer-bottom{flex-wrap:wrap;align-items:center}
.review-card blockquote{margin-bottom:22px}
#lightbox[open]{display:flex;flex-direction:column;align-items:center;gap:12px;overflow:hidden}
#lightbox img{min-height:0;flex:1 1 auto;object-fit:contain;max-height:calc(90svh - 190px);touch-action:pan-y pinch-zoom}
#lightbox-caption{flex:0 0 auto;margin:0;max-height:5em;overflow:auto}
.lightbox-controls{flex:0 0 auto;margin-top:0}
.photo-error{font-size:14px;text-align:center;color:var(--accent);margin:0}
@media(max-width:800px){
  .site-nav{max-height:calc(100svh - 130px);overflow-y:auto;overscroll-behavior:contain}
  input,select,textarea,.form-row input{font-size:16px}
}
@media(max-width:420px){
  .footer-grid{grid-template-columns:1fr}
  .stay-title{display:block}.stay-title span{margin-top:8px}
}
@media(max-width:560px){body:has(.mobile-booking){padding-bottom:calc(88px + env(safe-area-inset-bottom))}}
@media(max-height:500px){
  #lightbox{padding-top:42px;padding-bottom:10px}
  #lightbox img{max-height:calc(90svh - 145px)}
  #lightbox-caption{max-height:2.6em;font-size:12px}
  #lightbox[open]{gap:6px}
}


/* Booking belongs to the page; the calendar chooses a date range. */
.booking-section{background:var(--cream);scroll-margin-top:100px}
.booking-section h2{font-size:clamp(30px,4vw,48px)}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;max-width:1000px;margin:28px auto 0;align-items:start}
.stay-calendar{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:12px}
.calendar-navigation{display:flex;align-items:center;justify-content:space-between;gap:8px}
.calendar-navigation h3{font:600 18px/1.4 system-ui,sans-serif;text-transform:capitalize}
.calendar-navigation button,.calendar-reset{min-height:44px;min-width:44px;border:1px solid var(--line);background:var(--paper);color:var(--pine);border-radius:6px}
.calendar-navigation button:disabled{opacity:.4;cursor:default}
.calendar-guide{min-height:42px;margin:16px 0;font-size:13px;color:var(--muted)}
.calendar-days,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.calendar-weekdays span{text-align:center;font-size:12px;color:var(--muted);padding:8px 0}
.calendar-day{min-height:44px;width:100%;aspect-ratio:1;max-height:62px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--ink);font-size:15px}
.calendar-day:hover:not(:disabled){background:var(--sage)}
.calendar-day:disabled{color:#73766f;opacity:.6;cursor:default;text-decoration:line-through}
.calendar-day[aria-current=date]{box-shadow:inset 0 0 0 1px var(--accent)}
.calendar-day.in-range,.calendar-day.range-preview{background:var(--sage);border-radius:0}
.calendar-day.range-start,.calendar-day.range-end,.calendar-day.range-start:hover,.calendar-day.range-end:hover{background:var(--pine);color:white;font-weight:700}
.calendar-note{font-size:12px;color:var(--muted);margin-top:16px}
.stay-dates{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-bottom:1px solid var(--line);padding-bottom:20px}
.stay-dates span{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.stay-dates strong{font-size:17px}
.stay-length{margin:14px 0;font-size:14px}.calendar-reset{padding:8px 14px;font-size:13px}
.hotres-inline{margin-top:36px;scroll-margin-top:100px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}
.hotres-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;background:var(--pine);color:white}
.hotres-toolbar h3{font:600 17px/1.4 system-ui,sans-serif}.hotres-toolbar p{font-size:12px;margin-top:4px;color:#e1e6d9}
.hotres-reset{min-height:44px;padding:8px 14px;background:var(--paper);color:var(--pine);border:0;flex-shrink:0;font-size:13px}
.hotres-content iframe{display:block;width:100%;height:850px;min-height:600px;border:0;background:white}
.hotres-status{padding:12px 18px;font-size:14px;background:var(--cream)}
.hotres-help{padding:12px 20px;display:flex;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;font-size:12px;border-top:1px solid var(--line)}.hotres-fallback{font-weight:600}
body.booking-visible .mobile-booking{visibility:hidden}
@media(max-width:700px){
 .booking-layout{grid-template-columns:1fr;gap:24px}.stay-calendar{padding:16px}.calendar-day{min-height:36px}.calendar-guide{min-height:42px}
 .hotres-content iframe{height:80dvh;min-height:600px}.hotres-toolbar{padding:12px;gap:10px}.hotres-toolbar h3{font-size:14px}.hotres-toolbar p{font-size:11px}
 .hotres-reset{padding:8px 10px;font-size:12px}.hotres-help{padding:12px;font-size:11px}
}

/* Homepage: booking directly after the hero and balanced photo stories. */
body[data-page="index"] #rezerwacja{padding-block:52px 60px;border-bottom:1px solid var(--line)}
body[data-page="index"] .moment-grid{gap:56px}
body[data-page="index"] .moment-copy>p:not(.eyebrow){line-height:1.8;margin-bottom:16px}
body[data-page="index"] .moment-copy>p:last-child{margin-bottom:0}
@media(min-width:801px){
 body[data-page="index"] .moment-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,58px)}
 body[data-page="index"] .moment-card>.gallery-item{aspect-ratio:6/5}
 body[data-page="index"] .moment-copy{padding-block:10px}
 body[data-page="index"] .moment-copy h3{font-size:clamp(29px,2.7vw,38px);margin-bottom:18px}
 body[data-page="index"] .moment-card>.gallery-item img{object-position:50% 55%}
}
@media(max-width:800px){body[data-page="index"] #rezerwacja{padding-block:36px 44px}body[data-page="index"] .moment-grid{gap:40px}}
@media(min-width:801px) and (max-width:1000px){
 body[data-page="index"] .moment-card{grid-template-columns:minmax(0,1fr);gap:24px}
 body[data-page="index"] .moment-card:nth-child(even)>.gallery-item{order:0}
 body[data-page="index"] .moment-card>.gallery-item{aspect-ratio:3/2}
 body[data-page="index"] .moment-copy{max-width:none;padding:0}
 body[data-page="index"] .moment-copy>p:not(.eyebrow){max-width:none}
}

/* Booking with a voucher: a secondary entry below the Hotres availability button. */
.voucher-book{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.voucher-book .button{width:100%}
.voucher-book .form-note{margin-top:10px}
