:root { --black:#080807; --black-soft:#12110f; --champagne:#e5d3ad; --gold:#b9934e; --ivory:#f5f0e7; }
body { background:var(--ivory); color:#171512; line-height:1.68; letter-spacing:.008em; }
.topbar { height:92px; padding:0 3.5vw; background:var(--black); color:white; border-bottom:1px solid rgba(229,211,173,.22); }
.boutique-logo { display:block; width:145px; height:48px; object-fit:contain; background:#fff; }
.brand-copy strong { display:flex; align-items:baseline; gap:6px; color:#fff; line-height:1; }
.brand-base { font-family:'Hanken Grotesk',sans-serif; font-style:normal; font-weight:600; letter-spacing:.12em; }
.brand-international { font-family:'Fraunces',serif; font-size:1.12em; font-style:italic; font-weight:400; letter-spacing:.02em; text-transform:none; }
.topbar .brand small { color:#9c9589; }
.topbar nav a { color:#d7d0c4; } .topbar nav a:hover { color:var(--champagne); }
.topbar .lang { color:#716d66; } .topbar .lang .active { color:var(--champagne); }
.button { min-height:56px; padding:0 28px; background:var(--champagne); color:var(--black); border:1px solid var(--champagne); box-shadow:none; }
.button:hover { background:transparent; color:var(--champagne); transform:none; } .button-small { min-height:44px; }
.hero { min-height:calc(100vh - 92px); padding:8vh 7vw 8vh 9vw; align-items:center; isolation:isolate; background:var(--black); }
.hero-photo { inset:0; transform:none; background-position:58% center; filter:saturate(.88) contrast(1.04) brightness(.86); animation:villaIn 1.5s cubic-bezier(.2,.8,.2,1) both; }
.hero-overlay { background:linear-gradient(90deg,rgba(8,8,7,.96) 0%,rgba(8,8,7,.78) 36%,rgba(8,8,7,.12) 64%,rgba(8,8,7,.08) 100%),linear-gradient(0deg,rgba(8,8,7,.48),transparent 55%); }
.hero-content { z-index:5; width:min(58vw,900px); max-width:none; animation:wordsIn 1s .18s cubic-bezier(.2,.8,.2,1) both; }
.hero .eyebrow { display:flex; align-items:center; gap:14px; margin-bottom:30px; color:var(--champagne); }
.hero .eyebrow::before { content:''; width:54px; height:1px; background:var(--gold); }
.hero h1 { max-width:980px; color:white; font-size:clamp(76px,8.8vw,150px); font-weight:400; line-height:.92; letter-spacing:-.035em; text-wrap:balance; }
.hero h1::after { content:''; display:inline-block; width:.13em; height:.13em; margin-left:.08em; border-radius:50%; background:var(--gold); }
.hero-copy { max-width:540px; margin:36px 0 38px; color:#d5d0c7; font-size:18px; line-height:1.62; }
.hero-copy span { display:block; }
.hero-buttons { gap:32px; } .hero .text-link { color:#fff; border-color:var(--gold); }
.hero-portrait { --portrait-opacity:.88; position:absolute; z-index:3; right:2.5vw; bottom:4%; width:min(30vw,460px); height:70%; opacity:var(--portrait-opacity); background:url('assets/tereza-vacovska-cutout.png') center bottom/contain no-repeat; border:0; border-radius:0; box-shadow:none; outline:0; filter:saturate(.82) contrast(1.04); -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 79%,rgba(0,0,0,.9) 89%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0%,#000 79%,rgba(0,0,0,.9) 89%,transparent 100%); animation:portraitIn 1.2s .34s cubic-bezier(.2,.8,.2,1) both; }
.hero-portrait::before { display:none; }
.hero-signature { position:absolute; z-index:6; right:4.2vw; bottom:1.8%; display:flex; align-items:center; color:var(--champagne); text-shadow:0 2px 18px rgba(0,0,0,.72); }
.hero-signature span { position:relative; font-family:'Italianno','Segoe Script',cursive; font-size:clamp(44px,4.2vw,68px); font-weight:400; line-height:1; letter-spacing:.02em; white-space:nowrap; }
.hero-signature span::after { content:''; position:absolute; left:8%; right:2%; bottom:-5px; height:1px; background:linear-gradient(90deg,transparent,var(--gold) 16%,var(--gold) 82%,transparent); opacity:.72; }
.hero-rail { position:absolute; z-index:6; left:2.3vw; top:9%; bottom:9%; display:flex; flex-direction:column; align-items:center; gap:16px; color:#877b67; font-size:9px; letter-spacing:.23em; writing-mode:vertical-rl; transform:rotate(180deg); }
.hero-rail i { flex:1; width:1px; background:rgba(185,147,78,.38); }
.hero-proof { z-index:7; right:4vw; top:27px; bottom:auto; background:rgba(8,8,7,.66); border:1px solid rgba(229,211,173,.22); backdrop-filter:blur(12px); }
.hero-proof div { padding:15px 19px; border-left-color:rgba(229,211,173,.22); } .hero-proof div:first-child { border-left:0; } .hero-proof strong { color:var(--champagne); font-size:23px; }
.manifesto { position:relative; padding:125px 8vw 135px 14vw; background:var(--champagne); color:var(--black); overflow:hidden; }
.manifesto::after { content:''; display:none; }
.manifesto-index { position:absolute; left:5vw; top:138px; color:#765d32; font-size:10px; font-weight:800; letter-spacing:.2em; writing-mode:vertical-rl; }
.manifesto p { position:relative; z-index:1; margin:0; font-family:'Fraunces',serif; font-size:clamp(50px,6.2vw,96px); line-height:1.08; letter-spacing:-.025em; }
.manifesto .manifesto-accent { margin-left:8vw; font-style:italic; } .manifesto .manifesto-last { margin-left:20vw; color:#725525; }
.manifesto-caption { position:relative; z-index:1; display:block; margin:52px 0 0 20vw; font-size:10px; font-weight:800; letter-spacing:.21em; }
.intro { padding:130px 7vw; background:var(--ivory); grid-template-columns:.16fr 1.34fr .8fr; }
.intro h2,.guide h2 { font-size:clamp(46px,5.5vw,82px); line-height:1.06; letter-spacing:-.02em; } .eyebrow.dark { color:#9b7332; }
.services { grid-template-columns:repeat(4,1fr); padding:0 5vw 120px; border:0; background:var(--ivory); gap:18px; }
.services article { min-height:320px; padding:34px 30px; border:1px solid #cfc4b0; background:transparent; }
.services article:nth-child(2),.services article:nth-child(4) { margin-top:34px; background:var(--black-soft); color:white; border-color:var(--black-soft); }
.services article>span { color:var(--gold); } .services h3 { margin-top:100px; font-size:30px; line-height:1.2; letter-spacing:-.01em; }
.services article:nth-child(2) p,.services article:nth-child(4) p { color:#aaa398; }
.profile { grid-template-columns:1fr 1fr; background:var(--black); }
.profile-image { min-height:830px; filter:saturate(.82); } .profile-copy { padding:10vw 8vw; }
.profile h2 { color:var(--champagne); font-size:clamp(70px,7.5vw,112px); line-height:.94; letter-spacing:-.035em; } .profile .lead { color:var(--champagne); line-height:1.62; }
.profile .collaboration-line { margin:30px 0 0; padding:18px 0 18px 22px; border-left:1px solid var(--gold); color:#e3d7c0; font-family:'Fraunces',serif; font-size:18px; font-style:italic; line-height:1.55; }
.credentials { margin-left:14%; grid-template-columns:1fr; }
.guide { padding:130px 7vw; background:#eee7db; } .video-grid { gap:20px; }
.video-card { border:1px solid #cfc4b0; background:transparent; } .thumb { height:330px; } .video-card h3 { font-size:31px; line-height:1.18; letter-spacing:-.01em; }
.books-showcase { grid-template-columns:repeat(2,minmax(0,500px)); gap:18px; }
.book-cover-card { background:var(--black); border:1px solid #2d2a25; } .book-cover-card:nth-child(2) { background:#191713; }
.properties { padding:65px 0; background:var(--champagne); } .properties>.eyebrow { color:#66491e; }
.assessment { grid-template-columns:.76fr 1.24fr; padding:120px 7vw; background:var(--black); }
.assessment h2 { line-height:1.05; letter-spacing:-.02em; }
.assessment form { position:relative; padding:54px; background:#171511; border:1px solid rgba(229,211,173,.35); }
.assessment form::before { content:'CONFIDENTIAL PROPERTY DOSSIER'; position:absolute; right:22px; top:17px; color:#746d61; font-size:9px; font-weight:800; letter-spacing:.2em; }
.assessment input,.assessment select,.assessment textarea { border-color:#5e574c; }
.assessment input:focus,.assessment select:focus,.assessment textarea:focus { border-color:var(--gold); }
.photo-upload { border-color:rgba(185,147,78,.5); background:rgba(229,211,173,.025); }
.photo-kicker,.upload-icon { color:var(--champagne); } .upload-icon { border-color:var(--gold); }
.upload-drop:hover,.upload-drop.is-dragging { border-color:var(--gold); background:rgba(229,211,173,.06); }
.books-heading h3,.book-cover-card strong { line-height:1.18; letter-spacing:-.01em; }
footer { background:#030303; } .footer-brand { align-items:center; } .footer-brand .boutique-logo { width:128px; height:43px; } .floating-wa { background:var(--champagne); color:var(--black); }
.property-marquee { white-space:nowrap; display:flex; justify-content:center; align-items:center; gap:20px; padding:0 4vw; color:var(--black); font-family:Georgia,serif; font-size:clamp(20px,2.5vw,34px); font-weight:500; letter-spacing:-.015em; }
.property-marquee span { color:var(--black); opacity:1; }
.property-marquee i { color:var(--black); font-size:13px; font-style:normal; opacity:.58; }
@keyframes villaIn { from { opacity:0; transform:scale(1.04); } to { opacity:1; transform:scale(1); } }
@keyframes wordsIn { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
@keyframes portraitIn { from { opacity:0; transform:translateX(28px); } to { opacity:var(--portrait-opacity); transform:translateX(0); } }
@media (prefers-reduced-motion:reduce) { .hero-photo,.hero-content,.hero-portrait { animation:none; } }
@media (max-width:1100px) {
  .hero { padding-left:8vw; } .hero-content { width:62vw; } .hero-portrait { --portrait-opacity:.82; right:1vw; width:31vw; height:66%; }
  .hero-signature { right:2.2vw; }
  .services { grid-template-columns:1fr 1fr; } .services article:nth-child(2),.services article:nth-child(4) { margin-top:0; }
  .profile { grid-template-columns:1fr; } .profile-image { min-height:650px; }
}
@media (max-width:680px) {
  .topbar { height:72px; }
  .topbar .brand { gap:8px; } .topbar .boutique-logo { width:78px; height:38px; } .topbar .brand-copy strong { font-size:9px; gap:3px; } .topbar .brand-copy small { display:none; }
  .hero { min-height:calc(100svh - 72px); padding:95px 24px 144px; align-items:flex-end; }
  .hero-photo { background-position:60% center; }
  .hero-overlay { background:linear-gradient(0deg,rgba(8,8,7,.98) 0%,rgba(8,8,7,.82) 50%,rgba(8,8,7,.16) 100%); }
  .hero-content { width:100%; } .hero h1 { font-size:clamp(56px,15vw,82px); line-height:.96; letter-spacing:-.025em; }
  .hero-copy { margin:25px 0 30px; font-size:16px; }
  .hero-portrait { --portrait-opacity:.78; right:4px; top:8px; bottom:auto; width:150px; height:205px; background-position:center bottom; -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 75%,rgba(0,0,0,.86) 87%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0%,#000 75%,rgba(0,0,0,.86) 87%,transparent 100%); }
  .hero-signature { right:12px; top:191px; bottom:auto; } .hero-signature span { font-size:31px; }
  .property-marquee { white-space:normal; flex-wrap:wrap; justify-content:center; gap:8px 12px; padding:0 24px; text-align:center; font-size:clamp(20px,5.5vw,28px); line-height:1.1; } .property-marquee i { font-size:9px; }
  .hero-rail { display:none; }
  .hero-proof { top:18px; left:18px; right:auto; } .hero-proof div { padding:10px; } .hero-proof div:nth-child(2),.hero-proof div:nth-child(3) { display:none; }
  .manifesto { padding:85px 24px; } .manifesto::after { font-size:55vw; } .manifesto-index { display:none; }
  .manifesto p { font-size:44px; line-height:1.12; } .manifesto .manifesto-accent,.manifesto .manifesto-last { margin:10px 0 0; }
  .manifesto-caption { margin:38px 0 0; line-height:1.7; }
  .intro { padding:85px 24px; } .services { grid-template-columns:1fr; padding:0 24px 85px; }
  .services article { min-height:275px; } .services h3 { margin-top:68px; }
  .profile-image { min-height:480px; } .profile-copy { padding:75px 24px; } .profile h2 { font-size:66px; line-height:1; } .credentials { margin-left:0; }
  .guide { padding:85px 24px; } .thumb { height:250px; }
  .assessment { padding:85px 24px; } .assessment form { padding:45px 20px 28px; }
}

/* Responsive layout: keep the editorial composition readable on tablets and phones. */
html,
body {
  max-width:100%;
  overflow-x:hidden;
}

.contact-lines a,
.book-cover-card strong,
.intro-copy,
.guide-heading > p,
.assessment-copy {
  overflow-wrap:anywhere;
}

@media (min-width:681px) and (max-width:1100px) {
  .topbar {
    height:80px;
    padding:0 24px;
  }

  .topbar nav {
    display:none;
  }

  .boutique-logo {
    width:118px;
    height:43px;
  }

  .hero {
    min-height:720px;
    padding:90px 5vw 64px 7vw;
  }

  .hero-content {
    width:59vw;
  }

  .hero h1 {
    max-width:620px;
    font-size:clamp(54px,7.5vw,82px);
    line-height:.97;
    letter-spacing:-.04em;
  }

  .hero-copy {
    max-width:470px;
    margin:26px 0 30px;
    font-size:17px;
  }

  .hero-portrait {
    right:-2vw;
    width:40vw;
    height:62%;
    opacity:.76;
  }

  .hero-signature {
    right:2vw;
    bottom:2.2%;
  }

  .hero-signature span {
    font-size:clamp(38px,5vw,54px);
  }

  .hero-proof {
    top:18px;
    right:22px;
  }

  .hero-proof div {
    padding:11px 13px;
  }

  .manifesto {
    padding:100px 7vw 105px 11vw;
  }

  .manifesto p {
    font-size:clamp(46px,6.4vw,70px);
  }

  .intro,
  .guide {
    padding-top:100px;
    padding-bottom:100px;
  }

  .books-showcase {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .book-cover-card {
    grid-template-columns:minmax(100px,130px) minmax(0,1fr);
    gap:20px;
    padding:18px;
  }

  .book-cover-card strong {
    font-size:21px;
  }

  .assessment {
    gap:54px;
    padding:100px 6vw;
  }
}

@media (max-width:680px) {
  body {
    font-size:16px;
    line-height:1.62;
  }

  .topbar {
    height:68px;
    padding:0 14px;
    gap:10px;
  }

  .topbar .brand {
    min-width:0;
    gap:7px;
  }

  .topbar .boutique-logo {
    width:82px;
    height:36px;
    flex:0 0 auto;
  }

  .topbar .brand-copy {
    min-width:0;
  }

  .topbar .brand-copy strong {
    display:block;
    max-width:145px;
    font-size:9px;
    line-height:1.25;
    letter-spacing:.08em;
    white-space:normal;
  }

  .header-actions {
    flex:0 0 auto;
    gap:8px;
  }

  .lang {
    padding:8px 0;
  }

  .hero {
    display:block;
    min-height:0;
    padding:0 20px 34px;
  }

  .hero-photo {
    background-position:64% center;
  }

  .hero-overlay {
    background:
      linear-gradient(180deg,rgba(8,8,7,.12) 0%,rgba(8,8,7,.42) 25%,rgba(8,8,7,.92) 49%,rgba(8,8,7,.99) 100%),
      linear-gradient(90deg,rgba(8,8,7,.22),rgba(8,8,7,.08));
  }

  .hero-content {
    width:100%;
    padding-top:292px;
  }

  .hero .eyebrow {
    display:block;
    margin:0 0 14px;
    font-size:10px;
    line-height:1.5;
    letter-spacing:.13em;
  }

  .hero .eyebrow::before {
    display:none;
  }

  .hero h1 {
    max-width:100%;
    font-size:clamp(40px,11.5vw,54px);
    line-height:1.01;
    letter-spacing:-.035em;
    text-wrap:balance;
  }

  .hero-copy {
    margin:20px 0 24px;
    font-size:16px;
    line-height:1.5;
  }

  .hero-buttons {
    width:100%;
    gap:16px;
  }

  .hero-buttons .button {
    width:100%;
    min-height:52px;
    padding:0 18px;
  }

  .hero .text-link {
    align-self:center;
    font-size:11px;
  }

  .hero-portrait {
    top:18px;
    right:8px;
    width:176px;
    height:252px;
    opacity:.9;
  }

  .hero-signature {
    top:242px;
    right:12px;
  }

  .hero-signature span {
    font-size:32px;
  }

  .hero-proof {
    position:relative;
    inset:auto;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
    margin:28px 0 0;
  }

  .hero-proof div {
    min-width:0;
    padding:12px 8px;
    text-align:center;
  }

  .hero-proof div:nth-child(2),
  .hero-proof div:nth-child(3) {
    display:block;
  }

  .hero-proof strong {
    font-size:20px;
  }

  .hero-proof span {
    font-size:8px;
    line-height:1.35;
    letter-spacing:.07em;
  }

  .manifesto,
  .intro,
  .guide,
  .assessment {
    padding-left:20px;
    padding-right:20px;
  }

  .manifesto {
    padding-top:72px;
    padding-bottom:76px;
  }

  .manifesto p {
    font-size:clamp(36px,10.5vw,46px);
    line-height:1.12;
    letter-spacing:-.025em;
  }

  .manifesto-caption {
    margin-top:30px;
    font-size:10px;
    line-height:1.65;
    letter-spacing:.14em;
  }

  .intro {
    padding-top:72px;
    padding-bottom:64px;
    gap:24px;
  }

  .intro h2,
  .guide h2,
  .assessment h2 {
    font-size:clamp(36px,10vw,48px);
    line-height:1.08;
    letter-spacing:-.03em;
  }

  .intro-copy {
    padding-top:0;
    font-size:16px;
  }

  .services {
    padding:0 20px 72px;
    gap:14px;
  }

  .services article {
    min-height:0;
    padding:28px 24px;
  }

  .services h3 {
    margin:35px 0 10px;
    font-size:27px;
  }

  .services p {
    font-size:15px;
  }

  .profile-image {
    min-height:420px;
    background-position:center 12%;
  }

  .profile-copy {
    padding:68px 20px;
  }

  .profile h2 {
    font-size:clamp(52px,15vw,68px);
    line-height:.98;
  }

  .profile .lead {
    font-size:19px;
    line-height:1.5;
  }

  .profile .collaboration-line {
    padding-left:16px;
    font-size:17px;
  }

  .credentials {
    grid-template-columns:1fr;
    gap:12px;
    margin:32px 0 0;
  }

  .guide {
    padding-top:72px;
    padding-bottom:72px;
  }

  .guide-heading {
    gap:22px;
  }

  .video-grid {
    gap:18px;
    margin-top:38px;
  }

  .thumb {
    height:210px;
  }

  .video-card {
    padding:14px 14px 24px;
  }

  .video-card h3 {
    font-size:25px;
  }

  .books-heading {
    margin:58px 0 22px;
  }

  .books-heading h3 {
    font-size:34px;
  }

  .books-showcase {
    grid-template-columns:minmax(0,1fr);
    gap:16px;
  }

  .book-cover-card {
    grid-template-columns:96px minmax(0,1fr);
    gap:16px;
    padding:16px;
  }

  .book-cover-card strong {
    font-size:20px;
  }

  .book-cover-card small {
    margin-top:18px;
    line-height:1.45;
  }

  .properties {
    padding:48px 0;
  }

  .property-marquee {
    gap:9px 11px;
    padding:0 20px;
    font-size:clamp(18px,5.5vw,24px);
    line-height:1.25;
  }

  .assessment {
    gap:42px;
    padding-top:72px;
    padding-bottom:72px;
  }

  .assessment-copy > p:not(.eyebrow) {
    font-size:16px;
  }

  .contact-lines a {
    font-size:15px;
  }

  .assessment form {
    padding:46px 16px 24px;
  }

  .assessment form::before {
    left:16px;
    right:auto;
    max-width:calc(100% - 32px);
    font-size:8px;
    letter-spacing:.14em;
  }

  .form-grid {
    gap:18px;
  }

  .assessment label > span {
    font-size:11px;
    line-height:1.45;
  }

  .assessment input,
  .assessment select,
  .assessment textarea {
    min-height:44px;
    font-size:16px;
  }

  .photo-upload {
    margin-top:24px;
    padding:20px 14px;
  }

  .photo-upload-copy h3 {
    font-size:25px;
  }

  .upload-drop {
    min-height:140px;
    padding:20px 12px;
  }

  footer {
    gap:24px;
    padding:42px 20px 88px;
  }

  .footer-links {
    gap:12px 18px;
  }

  .floating-wa {
    right:14px;
    bottom:14px;
  }
}

@media (max-width:420px) {
  .topbar .brand-copy {
    display:none;
  }

  .topbar .boutique-logo {
    width:104px;
  }

  .hero {
    padding-left:16px;
    padding-right:16px;
  }

  .hero-content {
    padding-top:275px;
  }

  .hero h1 {
    font-size:clamp(38px,11.5vw,48px);
  }

  .hero-portrait {
    width:165px;
    height:235px;
  }

  .hero-signature {
    top:228px;
  }

  .manifesto,
  .intro,
  .guide,
  .assessment,
  .profile-copy {
    padding-left:16px;
    padding-right:16px;
  }

  .services {
    padding-left:16px;
    padding-right:16px;
  }

  .book-cover-card {
    grid-template-columns:86px minmax(0,1fr);
    gap:14px;
  }

  .book-cover-card strong {
    font-size:18px;
  }

  .photo-preview {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Responsive reading fix: editorial grids must collapse after all base rules. */
@media (min-width:681px) and (max-width:1100px) {
  .intro,
  .guide-heading,
  .assessment {
    grid-template-columns:minmax(0,1fr);
  }

  .intro-copy,
  .guide-heading > p:last-child {
    grid-column:auto;
    width:100%;
  }

  .assessment-copy,
  .assessment form {
    width:100%;
    max-width:none;
    min-width:0;
  }
}

@media (max-width:680px) {
  .intro,
  .guide-heading,
  .services,
  .assessment {
    grid-template-columns:minmax(0,1fr);
  }

  .intro-copy,
  .guide-heading > p:last-child,
  .assessment-copy,
  .assessment form,
  .photo-upload,
  .upload-drop {
    grid-column:auto;
    width:100%;
    max-width:none;
    min-width:0;
  }

  .intro h2,
  .assessment h2 {
    max-width:100%;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  .assessment form {
    margin:0;
  }

  .consent {
    display:grid !important;
    grid-template-columns:24px minmax(0,1fr);
    align-items:start;
    gap:12px;
  }

  .consent input {
    width:20px;
    height:20px;
    margin-top:2px;
  }

  .consent span {
    min-width:0;
    font-size:14px !important;
    line-height:1.5 !important;
    letter-spacing:0 !important;
    overflow-wrap:normal;
    word-break:normal;
  }

  .assessment .button {
    width:100%;
    padding:14px 16px;
    white-space:normal;
    line-height:1.4;
  }
}
