/* Druhá designová iterace: zachovává původní strukturu a chování. */
@font-face { font-family: Lora; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/fonts/lora-regular.ttf') format('truetype'); }
@font-face { font-family: Lora; font-style: italic; font-weight: 400; font-display: swap; src: url('../assets/fonts/lora-italic.ttf') format('truetype'); }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/fonts/montserrat-regular.ttf') format('truetype'); }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url('../assets/fonts/montserrat-medium.ttf') format('truetype'); }
:root {
  --color-bg: #fcfaf6;
  --color-bg-soft: #f7f4ee;
  --color-text: #343e37;
  --color-text-muted: #5e685c;
  --color-gold: #a28047;
  --color-dark: #303d37;
  --serif: "Lora", Georgia, serif;
  --body: "Lora", Georgia, serif;
  --sans: "Montserrat", sans-serif;
}
body { font-size: 1rem; line-height: 1.8; }
.site-header { height: 106px; padding-inline: max(5vw, calc((100vw - 1580px) / 2)); background: var(--color-bg); }
.brand { gap: 15px; }
.brand img { width: 86px; height: 80px; }
.brand strong { font-size: clamp(1.3rem, 1.6vw, 1.75rem); font-weight: 400; line-height: 1.2; }
.brand small, footer small { font-family: var(--sans); font-weight: 400; font-size: .64rem; line-height: 1.6; letter-spacing: .16em; }
nav { gap: clamp(36px, 3.6vw, 64px); }
nav a { font: 400 1.0625rem/1.6 var(--sans); padding-block: 16px 10px; }
.eyebrow { font: 500 .78rem/1.7 var(--sans); letter-spacing: .24em; margin-bottom: 23px; }
h2, .about h2, .services h2, .contact h2 { font: 400 clamp(1.85rem, 2.55vw, 2.75rem)/1.3 var(--serif); letter-spacing: -.025em; }
.hero { position: relative; isolation: isolate; display: block; min-height: 580px; background: var(--color-bg-soft); }
.hero-copy { width: 43%; max-width: none; padding: 65px 24px 50px max(5vw, calc((100vw - 1680px) / 2)); }
.hero-copy::before { left: max(2vw, calc((100vw - 1800px) / 2)); top: 44px; bottom: 48px; opacity: .5; }
.hero h1 { max-width: 11em; font: 400 clamp(2.4rem, 3.1vw, 3.65rem)/1.22 var(--serif); letter-spacing: -.035em; text-wrap: balance; }
.hero-image { position: absolute; inset: 0 0 0 42%; z-index: -1; }
/* Průhledný je pouze levý kraj, nikoli postava. Zdrojová fotografie se nemění. */
.hero-image img { object-position: 80% 46%; -webkit-mask-image: linear-gradient(to right, transparent, #000 80px); mask-image: linear-gradient(to right, transparent, #000 80px); }
.gold-line { height: 1px; width: 65px; margin: 30px 0 25px; opacity: .75; }
.hero .hero-copy > .hero-intro { max-width: 29em; font-size: clamp(1rem, 1.3vw, 1.18rem); line-height: 1.85; margin: 0 0 25px; }
.button { font-size: 1rem; padding: 12px 28px; gap: 28px; margin-top: 0; background: var(--color-dark); }
.button:hover, .button:focus-visible { background: #46564b; }
.hero .hero-copy > .brand-signature, footer p { font: italic 400 1.05rem/1.6 var(--serif); color: var(--color-gold); letter-spacing: .025em; }
.hero-copy > .brand-signature { margin: 22px 0 0 4px; }
.brand-signature span, footer p span { margin-left: 5px; font-size: .7rem; }
.about { max-width: 1250px; padding-block: 85px 60px; gap: clamp(50px, 7vw, 115px); grid-template-columns: .7fr 1.3fr; }
.about-copy > p:last-child { max-width: 34em; font-size: 1.05rem; line-height: 1.95; margin-top: 27px; }
.botanical-frame { width: min(235px, 100%); height: 260px; }
/* Jedna větvička z pravé poloviny původního assetu; soubor zůstává beze změny. */
.botanical-branch { display: block; position: absolute; width: 145px; height: 290px; left: 45px; top: -15px; overflow: hidden; transform: rotate(24deg); }
.botanical-frame img { position: absolute; width: 290px; height: 290px; max-width: none; margin: 0; right: 0; top: 0; transform: none; }
.botanical-frame::before, .botanical-frame::after { opacity: .55; }
.services { padding-block: 40px 70px; background: linear-gradient(var(--color-bg), var(--color-bg-soft)); }
.service-list { max-width: 1180px; margin-top: 38px; }
.service-list article { padding: 5px 26px; }
.service-list article + article::before { top: 48px; bottom: 12px; opacity: .4; }
.service-icon { display: grid; place-items: center; height: 68px; transform: none; }
.service-icon svg { width: 68px; height: 68px; fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.service-list h3 { font: 400 1.7rem/1.4 var(--serif); margin: 28px 0 16px; }
.service-list p { font-size: 1.0625rem; line-height: 1.8; max-width: 25em; margin-inline: auto; }
.service-list p br { display: initial; }
.quote-band { min-height: 270px; background: var(--color-bg-soft); }
.photo-placeholder { background: #eee8df; color: #75664f; -webkit-mask-image: linear-gradient(to right, #000 70%, transparent); mask-image: linear-gradient(to right, #000 70%, transparent); }
.photo-placeholder::before { display: none; }
.photo-placeholder span { border: 0; font: 400 .75rem/1.8 var(--sans); max-width: 80%; }
.quote-band blockquote { background: transparent; font-size: clamp(1.2rem, 1.65vw, 1.65rem); line-height: 1.6; padding: 44px clamp(35px, 6vw, 100px); }
.quote-band b { font-size: 3.2rem; opacity: .8; }
.quote-band .gold-line { margin-top: 23px; }
.contact { padding: 66px 24px 62px; color: #f3f0e8; }
.contact .eyebrow { color: #c5a46e; }
.contact-intro { font-size: 1rem; line-height: 1.85; margin: 22px 0 37px; }
.contact-list { row-gap: 20px; margin-bottom: 35px; }
.contact-list a { font-size: 1rem; padding-inline: 20px; color: #eeeae1; border-color: #a2804760; }
.contact-icon { flex-shrink: 0; opacity: .85; }
.button-outline { background: transparent; border-color: #b998625e; padding: 9px 30px; }
.berry { width: 245px; height: 245px; opacity: .6; }
.berry-left { left: -78px; bottom: -55px; }
.berry-right { right: -72px; top: -55px; }
footer { padding-block: 28px; gap: 45px; background: var(--color-bg); }
footer strong { font-size: 1.1rem; line-height: 1.3; font-weight: 400; }
footer small { font-size: .58rem; }
footer i { opacity: .45; }
footer p { font-size: 1.25rem; }
section[id] { scroll-margin-top: 25px; }
@media (max-width: 1000px) {
  .site-header { padding-inline: 30px; }
  .brand strong { font-size: 1.2rem; }
  .brand small { font-size: .53rem; }
  nav { gap: 26px; }
  .hero { min-height: 550px; }
  .hero-copy { width: 43%; padding: 60px 16px 45px 4vw; }
  .hero h1 { font-size: 2.05rem; }
  .hero-image { left: 42%; }
  .hero-image img { object-position: 65% 46%; }
  .hero-copy::before { left: 2.5vw; }
  .about { gap: 45px; padding-block: 75px 55px; }
  .about h2 br { display: initial; }
  .service-list article { padding-inline: 18px; }
  .contact-list { max-width: 650px; }
  .contact-list a { border: 0; }
}
@media (max-width: 760px) {
  .site-header { height: 90px; padding: 8px 20px; }
  .brand { gap: 8px; }
  .brand img { width: 65px; height: 61px; }
  .brand strong { font-size: 1rem; }
  .brand small { font-size: .47rem; letter-spacing: .1em; }
  .menu-toggle { padding: 10px 0 10px 12px; }
  .menu-toggle b { font-family: var(--sans); font-size: .65rem; }
  nav { top: 90px; gap: 2px; background: var(--color-bg); }
  nav a { font-size: 1rem; }
  .hero { min-height: 0; }
  .hero-copy { width: 100%; max-width: none; padding: 60px 30px 24px 36px; }
  .hero-copy::before { left: 17px; top: 52px; bottom: 30px; }
  .hero h1 { font-size: clamp(2rem, 8.2vw, 3.35rem); max-width: 13em; line-height: 1.28; }
  .hero .eyebrow { font-size: .65rem; letter-spacing: .18em; }
  .hero .hero-copy > .hero-intro { font-size: .98rem; }
  .hero-intro br { display: none; }
  .hero .hero-copy > .brand-signature { font-size: .98rem; }
  .hero-image { position: relative; inset: auto; height: clamp(360px, 95vw, 540px); z-index: 0; }
  .hero-image img { object-position: 54% 48%; mask-image: linear-gradient(to bottom, transparent, #000 85px); -webkit-mask-image: linear-gradient(to bottom, transparent, #000 85px); }
  .about { grid-template-columns: 1fr; gap: 50px; padding: 65px 30px 45px; }
  .botanical-frame { width: 190px; margin-inline: auto; }
  .about-copy > p:last-child { font-size: 1rem; line-height: 1.9; }
  .about h2 { font-size: 1.85rem; }
  .services { padding: 35px 26px 60px; }
  .service-list { margin-top: 36px; gap: 60px; }
  .service-list article { padding: 0; }
  .service-list article + article::before { top: -30px; bottom: auto; }
  .service-list h3 { margin: 18px 0 14px; }
  .quote-band { grid-template-columns: 1fr; }
  .photo-placeholder { min-height: 185px; mask-image: linear-gradient(to bottom, #000 60%, transparent); -webkit-mask-image: linear-gradient(to bottom, #000 60%, transparent); }
  .quote-band blockquote { padding: 28px 36px 50px; }
  .contact { padding: 60px 28px; }
  .contact-intro { line-height: 1.9; }
  .contact-list { gap: 18px; }
  .contact-list a { padding-inline: 0; font-size: 1rem; }
  .berry { width: 180px; height: 180px; opacity: .4; }
  .berry-left { left: -75px; bottom: -55px; }
  .berry-right { right: -78px; top: -52px; }
  footer { flex-wrap: wrap; justify-content: center; text-align: center; gap: 23px; padding: 30px 22px; }
  footer p { width: 100%; margin: 0; font-size: 1.15rem; }
}
