/* ============================================================
   Willa Ostromir — styles v2
   Stacked contrasting blocks · paper / pine / ecru / ink
   ============================================================ */

:root{
  --paper:#f3eee3;
  --ecru:#e9dfca;
  --map-paper:#f1ece1;
  --pine:#2e4438;
  --pine2:#26392f;
  --ink:#1d1812;
  --ink-soft:#6b6354;
  --cream:#f1ead9;
  --cream-soft:#cdc4ae;
  --gold:#b08c45;
  --gold-soft:#d8bd84;
  --line:rgba(29,24,18,.14);
  --line-light:rgba(241,234,217,.16);
  --maxw:1120px;
  --radius:clamp(22px,3.2vw,44px);
  --serif:"Playfair Display", Georgia, serif;
  --sans:"Inter", "Helvetica Neue", Arial, sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

body{
  font-family:var(--sans);
  font-weight:300;
  color:var(--ink);
  background:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
}

::selection{background:var(--pine);color:var(--paper)}

/* ---------- language switching ---------- */
html[lang="pl"] .t-en{display:none!important}
html[lang="en"] .t-pl{display:none!important}
html[lang="pl"] .lang-toggle .lt-pl,
html[lang="en"] .lang-toggle .lt-en{font-weight:500;opacity:1}

/* ---------- textures ---------- */
.block{position:relative}
.hero,.b-paper,.b-ecru,.b-map{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='720' viewBox='0 0 720 720'%3E%3Cg fill='none' stroke='%231d1812' stroke-opacity='0.04' stroke-width='1'%3E%3Cpath d='M-20 120 C 120 60, 240 180, 380 130 S 640 60, 760 140'/%3E%3Cpath d='M-20 170 C 120 110, 250 230, 390 180 S 650 110, 760 190'/%3E%3Cpath d='M-20 420 C 100 360, 230 480, 370 430 S 630 370, 760 440'/%3E%3Cpath d='M-20 640 C 130 580, 260 690, 400 645 S 660 585, 760 655'/%3E%3Cellipse cx='180' cy='300' rx='80' ry='30' transform='rotate(-14 180 300)'/%3E%3Cellipse cx='180' cy='300' rx='44' ry='16' transform='rotate(-14 180 300)'/%3E%3Cellipse cx='560' cy='540' rx='88' ry='34' transform='rotate(11 560 540)'/%3E%3Cellipse cx='560' cy='540' rx='50' ry='19' transform='rotate(11 560 540)'/%3E%3C/g%3E%3C/svg%3E");
  background-size:720px 720px;
}
.b-pine,.b-pine2,.b-ink{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='720' viewBox='0 0 720 720'%3E%3Cg fill='none' stroke='%23f1ead9' stroke-opacity='0.035' stroke-width='1'%3E%3Cpath d='M-20 120 C 120 60, 240 180, 380 130 S 640 60, 760 140'/%3E%3Cpath d='M-20 170 C 120 110, 250 230, 390 180 S 650 110, 760 190'/%3E%3Cpath d='M-20 420 C 100 360, 230 480, 370 430 S 630 370, 760 440'/%3E%3Cpath d='M-20 640 C 130 580, 260 690, 400 645 S 660 585, 760 655'/%3E%3Cellipse cx='180' cy='300' rx='80' ry='30' transform='rotate(-14 180 300)'/%3E%3Cellipse cx='180' cy='300' rx='44' ry='16' transform='rotate(-14 180 300)'/%3E%3Cellipse cx='560' cy='540' rx='88' ry='34' transform='rotate(11 560 540)'/%3E%3Cellipse cx='560' cy='540' rx='50' ry='19' transform='rotate(11 560 540)'/%3E%3C/g%3E%3C/svg%3E");
  background-size:720px 720px;
}

/* ---------- loader ---------- */
.loader{
  position:fixed;inset:0;z-index:200;
  background:var(--paper);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;
  transition:opacity .55s ease;
}
html.loaded .loader{opacity:0;pointer-events:none}
html.is-loading{overflow:hidden}
.loader-mark{display:flex;flex-direction:column;align-items:center;line-height:1}
.lm-willa{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:1.15rem;color:var(--pine);margin-bottom:.45rem;
}
.lm-name{
  font-family:var(--serif);font-weight:500;
  font-size:2.1rem;letter-spacing:.18em;text-transform:uppercase;
  margin-right:-.18em;color:var(--ink);
}
.loader-bar{
  width:130px;height:1.5px;background:rgba(29,24,18,.12);
  overflow:hidden;border-radius:2px;
}
.loader-bar i{
  display:block;width:42%;height:100%;background:var(--gold);
  animation:loadbar 1.1s ease-in-out infinite;
}
@keyframes loadbar{
  0%{transform:translateX(-110%)}
  100%{transform:translateX(340%)}
}

/* ---------- progress bar ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:80;background:transparent}
.progress span{display:block;height:100%;width:0;background:var(--gold)}

/* ---------- header ---------- */
.site-head{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem clamp(1.1rem,3vw,1.6rem);
  pointer-events:none;
}
.site-head>*{pointer-events:auto}

.brand{
  display:flex;align-items:center;gap:.55rem;
  color:var(--ink);text-decoration:none;
  transition:color .45s ease;
}
.brand-mark{flex:none}
.brand-name{
  font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:1.35rem;letter-spacing:.01em;white-space:nowrap;
}

.pill-nav{
  position:absolute;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:.2rem;
  background:rgba(29,24,18,.07);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(29,24,18,.12);
  border-radius:999px;padding:.4rem;
  transition:background .45s ease,border-color .45s ease;
}
.pill-nav a{
  font-size:.82rem;font-weight:500;
  color:rgba(29,24,18,.72);text-decoration:none;
  padding:.42rem 1.05rem;border-radius:999px;
  transition:background .3s ease,color .3s ease;
  white-space:nowrap;
}
.pill-nav a:hover{background:rgba(29,24,18,.08);color:var(--ink)}
.pill-nav a.active{background:var(--ink);color:var(--paper)}
.pill-nav a:focus{outline:none}
.pill-nav a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.head-right{display:flex;align-items:center;gap:.6rem}
.head-cta{
  font-size:.82rem;font-weight:600;text-decoration:none;
  background:var(--ink);color:var(--paper);
  padding:.6rem 1.4rem;border-radius:999px;
  transition:background .3s ease,color .3s ease,transform .3s ease;
  white-space:nowrap;
}
.head-cta:hover{transform:translateY(-1px)}
.lang-toggle{
  font-family:var(--sans);font-size:.74rem;letter-spacing:.1em;
  background:rgba(29,24,18,.07);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(29,24,18,.12);border-radius:999px;
  padding:.55rem .9rem;cursor:pointer;color:var(--ink);
  display:flex;gap:.35rem;align-items:center;
  transition:background .45s ease,border-color .45s ease,color .45s ease;
}
.lang-toggle span{opacity:.45;transition:opacity .3s ease}
.lt-sep{opacity:.3}
.burger{
  display:none;
  background:rgba(29,24,18,.07);border:1px solid rgba(29,24,18,.12);
  border-radius:999px;width:42px;height:42px;
  align-items:center;justify-content:center;cursor:pointer;
  color:var(--ink);
  transition:background .45s ease,border-color .45s ease,color .45s ease;
}

/* header over dark blocks — white glass variant */
.site-head.on-dark .brand{color:#fff}
.site-head.on-dark .pill-nav{
  background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.3);
}
.site-head.on-dark .pill-nav a{color:rgba(255,255,255,.8)}
.site-head.on-dark .pill-nav a:hover{background:rgba(255,255,255,.2);color:#fff}
.site-head.on-dark .pill-nav a.active{background:#fff;color:var(--ink)}
.site-head.on-dark .head-cta{background:#fff;color:var(--ink)}
.site-head.on-dark .lang-toggle,
.site-head.on-dark .burger{
  background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.3);color:#fff;
}

@media (max-width:1080px){
  .pill-nav,.head-cta{display:none}
  .burger{display:flex}
}

/* mobile menu */
.mobile-menu{
  position:fixed;inset:0;z-index:90;
  background:var(--ink);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .4s ease;
}
body.menu-open .mobile-menu{opacity:1;pointer-events:auto}
body.menu-open{overflow:hidden}
.mobile-menu nav{display:flex;flex-direction:column;gap:1.3rem;text-align:center}
.mobile-menu a{
  font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:clamp(1.7rem,6vw,2.4rem);
  color:var(--cream);text-decoration:none;
}
.mobile-menu a:hover{color:var(--gold-soft)}
.mobile-menu .mm-mail{
  margin-top:1.4rem;font-family:var(--sans);font-style:normal;font-weight:400;
  font-size:1rem;letter-spacing:.06em;color:var(--gold-soft);
}

/* ---------- blocks ---------- */
.block{
  border-radius:var(--radius) var(--radius) 0 0;
  margin-top:calc(var(--radius) * -1);
  padding:clamp(5.5rem,11vh,9rem) clamp(1.2rem,4vw,3rem);
  overflow:clip;
}
.block:first-of-type{margin-top:0;border-radius:0}
.inner{max-width:var(--maxw);margin:0 auto;position:relative}

.hero{background-color:var(--paper)}
.b-paper{background-color:var(--paper);color:var(--ink)}
.b-ecru{background-color:var(--ecru);color:var(--ink)}
.b-map{background-color:var(--map-paper);color:var(--ink);padding-left:0;padding-right:0}
.b-pine{background-color:var(--pine);color:var(--cream)}
.b-pine2{background-color:var(--pine2);color:var(--cream)}
.b-ink{background-color:var(--ink);color:var(--cream)}

/* ---------- type ---------- */
.sec-label{
  font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1.2rem;
}
.block h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2.3rem,5.4vw,4.2rem);
  line-height:1.05;margin-bottom:clamp(1.8rem,4vw,3.2rem);
}
.block h2 em{font-style:italic}
.b-paper h2 em,.b-ecru h2 em,.b-map h2 em{color:var(--pine)}
.b-pine h2 em,.b-pine2 h2 em,.b-ink h2 em{color:var(--gold-soft)}

.lead{font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.85}
.b-pine .lead,.b-pine2 .lead,.b-ink .lead{color:var(--cream)}
.narrow{max-width:60ch}
.center{margin-left:auto;margin-right:auto;text-align:center}
.muted{opacity:.66}

.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3.4rem)}
@media (max-width:760px){.cols{grid-template-columns:1fr}}
.hist-intro{margin-bottom:clamp(3rem,7vh,5rem)}

/* .rv is animated by GSAP (from-state applied in JS) — visible by default */
.rv{will-change:transform,opacity}

/* ---------- hero ---------- */
.hero{
  min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding-top:clamp(6.5rem,15vh,11rem);
  text-align:center;
}
html.snap .hero{min-height:880px}

.hero-stage{
  position:absolute;inset:0;
  pointer-events:none;
}
/* full-bleed stage: drawing and photograph share identical geometry,
   both dissolve into the paper — no visible image edges anywhere */
.hs-frame{position:absolute;inset:0}
/* the drawing and the photograph are a traced pair on pure white —
   multiply blending melts both into the paper, only the house remains */
/* base = the ink drawing (transparent background, melts into the paper);
   reveal = the photograph, visible only through the cursor mask.
   Both layers share identical geometry so they never drift apart. */
.hs-base,.hs-reveal{
  position:absolute;inset:0;
  background-image:url("assets/villa-drawing.png");
  background-size:auto 88%;
  background-position:center 100%;
  background-repeat:no-repeat;
}
.hs-base{opacity:.85}
.hs-reveal{
  background-image:url("assets/villa-photo.png");
  pointer-events:none;
  -webkit-mask-repeat:no-repeat;
          mask-repeat:no-repeat;
}
@media (max-width:760px){
  .hs-base,.hs-reveal{
    background-size:auto 56%;
    background-position:center 92%;
  }
}

.hero-core{position:relative;z-index:2}
.eyebrow{
  font-size:.76rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:1.6rem;
}
.hero-title{
  font-family:var(--serif);font-weight:400;line-height:.95;
  display:flex;flex-direction:column;align-items:center;
}
.ht-willa{
  font-style:italic;font-weight:300;
  font-size:clamp(1.5rem,3.6vw,2.4rem);
  color:var(--pine);letter-spacing:.12em;
  margin-bottom:.5rem;
}
.ht-name{
  font-size:clamp(2.6rem,12.5vw,9rem);
  font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  margin-right:-.12em;
  color:#15100a;
  display:inline-flex;
  /* paper halo lifts the letters off the imagery */
  text-shadow:0 0 14px rgba(243,238,227,.95), 0 0 36px rgba(243,238,227,.8),
              0 0 72px rgba(243,238,227,.55);
}
.ch-w{display:inline-block;overflow:hidden}
.ch{display:inline-block}
.hero-sub{
  margin-top:1.7rem;
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.05rem,1.8vw,1.4rem);
  color:var(--ink-soft);letter-spacing:.06em;
  text-shadow:0 0 12px rgba(243,238,227,.95), 0 0 30px rgba(243,238,227,.8);
}
.hero-hint{
  position:absolute;bottom:2.2rem;left:clamp(1.4rem,4vw,3rem);
  font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-soft);opacity:.7;
}
.scroll-cue{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
}
.scroll-cue i{
  width:1px;height:46px;background:var(--ink-soft);display:block;position:relative;overflow:hidden;
}
.scroll-cue i::after{
  content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;
  background:var(--gold);animation:cue 2.2s ease-in-out infinite;
}
@keyframes cue{0%{top:-100%}55%{top:100%}100%{top:100%}}

@media (max-width:420px){
  .eyebrow{font-size:.66rem;letter-spacing:.22em}
}

/* ---------- detale ---------- */
.detail-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:clamp(1.2rem,2.6vw,2.2rem);
}
@media (max-width:760px){.detail-grid{grid-template-columns:1fr}}
.detail{
  background:rgba(243,238,227,.55);
  border:1px solid rgba(29,24,18,.08);
  border-radius:calc(var(--radius) * .5);
  padding:clamp(1.6rem,3vw,2.6rem);
  transition:transform .5s cubic-bezier(.22,.8,.3,1), box-shadow .5s ease, background .5s ease;
}
.detail:hover{
  transform:translateY(-6px);
  background:rgba(243,238,227,.92);
  box-shadow:0 28px 60px -30px rgba(29,24,18,.35);
}
.d-no{
  font-family:var(--serif);font-style:italic;font-size:1.1rem;
  color:var(--gold);margin-bottom:.9rem;letter-spacing:.1em;
}
.detail h3{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(1.35rem,2.2vw,1.75rem);margin-bottom:.6rem;
}
.detail p{font-size:.98rem;line-height:1.75;color:var(--ink-soft)}
.detail .d-no + h3 + p em{font-style:italic}

/* ---------- timeline ---------- */
.timeline{position:relative;margin-top:1.5rem}
.tl-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.tl-path{fill:none;stroke:var(--gold);stroke-width:1.6}
.tl-path-ghost{fill:none;stroke:var(--line-light);stroke-width:1.6}
.tl-dot{fill:var(--ink);stroke:var(--gold);stroke-width:2;opacity:0}
.tl-dot.on{opacity:1}
.tl-dot-core{fill:var(--gold);opacity:0}
.tl-dot-core.on{opacity:1}
html.snap .tl-dot,html.snap .tl-dot-core{transition:none!important}

.tl-item{
  position:relative;width:calc(50% - 110px);
  padding:0 0 clamp(3rem,6.5vh,4.6rem);
}
.tl-item:nth-of-type(odd){margin-left:0;text-align:right}
.tl-item:nth-of-type(even){margin-left:auto;text-align:left}
.tl-year{
  font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:clamp(1.6rem,2.8vw,2.2rem);color:var(--gold-soft);line-height:1;margin-bottom:.45rem;
}
.tl-item h3{
  font-family:var(--serif);font-weight:500;color:var(--cream);
  font-size:clamp(1.25rem,2vw,1.55rem);margin-bottom:.45rem;
}
.tl-item p{font-size:.96rem;line-height:1.75;color:var(--cream-soft)}

@media (max-width:760px){
  .tl-item,
  .tl-item:nth-of-type(odd),
  .tl-item:nth-of-type(even){
    width:auto;margin-left:68px;text-align:left;
  }
}

/* ---------- mapa (interactive 3D plate) ---------- */
.mapa-head{padding:0 clamp(1.2rem,4vw,3rem);margin-bottom:clamp(2.5rem,5vw,4rem)}

.map3d-scene{
  position:relative;
  width:min(1100px,88vw);
  margin:0 auto;
  perspective:1600px;
  perspective-origin:50% 12%;
  /* the tilted plate projects shorter than its layout box */
  margin-bottom:max(-24vw, -320px);
}
.map3d{
  transform-style:preserve-3d;
  transform:rotateX(var(--tilt,52deg));
  will-change:transform;
}
.map3d-plate{
  position:relative;
  transform-style:preserve-3d;
  background:#efe9da;
  border:1px solid rgba(29,24,18,.16);
  box-shadow:0 90px 140px -50px rgba(29,24,18,.55);
}
/* slab thickness: a real 3D front edge */
.map3d-plate::after{
  content:"";position:absolute;left:0;right:0;top:100%;height:18px;
  background:linear-gradient(#d6ccb4,#c4b99f);
  transform:rotateX(-90deg);
  transform-origin:center top;
}
.map3d-img{width:100%;display:block;filter:contrast(1.02)}
.map3d-pins{position:absolute;inset:0;transform-style:preserve-3d}

/* pins stand upright on the tilted plate */
.pin{
  position:absolute;left:var(--x);top:var(--y);
  width:0;height:0;
  transform-style:preserve-3d;
}
.pin-hit{
  position:absolute;left:0;bottom:0;
  width:34px;height:40px;
  margin-left:-17px;
  background:none;border:0;padding:0;cursor:pointer;
  transform:rotateX(calc(-1 * var(--tilt,52deg)));
  transform-origin:bottom center;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
}
.pin-hit:focus{outline:none}
.pin-stem{
  width:1.6px;height:14px;background:var(--ink);opacity:.55;
}
.pin-head{
  width:13px;height:13px;border-radius:50%;
  background:var(--pine);
  border:2px solid #fbf8f1;
  box-shadow:0 5px 12px -2px rgba(29,24,18,.5);
  transition:transform .25s cubic-bezier(.22,.8,.3,1), background .25s ease;
}
.pin-hit:hover .pin-head,
.pin-hit:focus-visible .pin-head,
.pin.is-open .pin-head{
  transform:scale(1.5);
  background:var(--gold);
}
/* Ostromir: gold, larger, with a permanent label */
.pin--star .pin-head{
  width:17px;height:17px;background:var(--gold);
  animation:pinpulse 2.6s ease-out infinite;
}
.pin--star .pin-stem{height:20px;opacity:.8}
@keyframes pinpulse{
  0%{box-shadow:0 5px 12px -2px rgba(29,24,18,.5), 0 0 0 0 rgba(176,140,69,.5)}
  70%{box-shadow:0 5px 12px -2px rgba(29,24,18,.5), 0 0 0 14px rgba(176,140,69,0)}
  100%{box-shadow:0 5px 12px -2px rgba(29,24,18,.5), 0 0 0 0 rgba(176,140,69,0)}
}
.pin-label{
  position:absolute;bottom:100%;left:50%;transform:translate(-50%,-4px);
  background:var(--ink);color:var(--cream);
  font-size:.66rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  padding:.35em .9em;border-radius:999px;white-space:nowrap;
  pointer-events:none;
}

/* tooltip (screen-space, not tilted) */
.map-tip{
  position:absolute;z-index:6;
  transform:translate(-50%,calc(-100% - 14px));
  background:var(--ink);color:var(--cream);
  padding:.85rem 1.15rem .9rem;border-radius:14px;
  min-width:210px;max-width:280px;
  box-shadow:0 24px 50px -18px rgba(29,24,18,.6);
  pointer-events:none;
}
.map-tip::after{
  content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:7px solid transparent;border-top-color:var(--ink);
}
.mt-name{
  font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:1.08rem;line-height:1.25;
}
.mt-meta{margin-top:.3rem;font-size:.8rem;color:var(--cream-soft);letter-spacing:.03em}
.mt-note{margin-top:.3rem;font-size:.72rem;color:var(--gold-soft);letter-spacing:.04em}
.mt-note:empty{display:none}

.credit{
  max-width:var(--maxw);margin:1.4rem auto 0;
  padding:0 clamp(1.2rem,4vw,3rem);
  font-size:.76rem;letter-spacing:.1em;color:var(--ink-soft);
}

@media (max-width:760px){
  .map3d-scene{
    perspective:none;
    margin-bottom:0;
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:.5rem;
  }
  .map3d{transform:none;width:170%}
  .map3d-plate::after{display:none}
  .pin-hit{transform:none}
}

/* ---------- dojazd ---------- */
.loc-grid{
  display:grid;grid-template-columns:minmax(260px,1fr) 1.6fr;
  gap:clamp(1.4rem,3vw,2.6rem);align-items:stretch;
}
@media (max-width:760px){.loc-grid{grid-template-columns:1fr}}
.loc-card{
  background:rgba(241,234,217,.05);
  border:1px solid var(--line-light);
  border-radius:calc(var(--radius) * .5);
  padding:clamp(1.6rem,3vw,2.4rem);
  display:flex;flex-direction:column;gap:1.05rem;justify-content:center;
}
.loc-line{font-size:1.02rem;line-height:1.7;color:var(--cream)}
.loc-line strong{font-family:var(--serif);font-size:1.5rem;font-weight:500}
.loc-map{
  position:relative;min-height:340px;
  border-radius:calc(var(--radius) * .5);overflow:hidden;
  border:1px solid var(--line-light);
}
.loc-map iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:grayscale(.5) sepia(.14) contrast(.95);
}
.btn{
  align-self:flex-start;
  font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;
  padding:.85em 1.7em;border-radius:999px;transition:all .35s ease;
}
.btn.ghost{color:var(--gold-soft);border:1px solid rgba(216,189,132,.5)}
.btn.ghost:hover{background:var(--gold-soft);border-color:var(--gold-soft);color:var(--ink)}

/* ---------- kontakt ---------- */
.contact{text-align:center}
.contact h2{margin-left:auto;margin-right:auto}
.mail{
  display:inline-block;margin-top:clamp(1.8rem,4vw,2.6rem);
  font-family:var(--serif);font-weight:400;font-style:italic;
  font-size:clamp(1.7rem,5vw,3.6rem);
  color:var(--pine);text-decoration:none;
  border-bottom:1px solid rgba(46,68,56,.3);
  padding-bottom:.1em;
  transition:color .35s ease,border-color .35s ease;
}
.mail:hover{color:var(--gold);border-color:var(--gold)}

/* ---------- footer ---------- */
.site-foot{
  max-width:var(--maxw);margin:clamp(4rem,8vw,6rem) auto 0;
  padding-top:2rem;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-size:.78rem;letter-spacing:.08em;color:var(--ink-soft);
}
