
:root { --bg:#f7f4ec; --ink:#1b1a17; --muted:#6f6a5e; --line:#dcd6c8; --ocre:#a86f22; }
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--ink); font-family:'Jost',sans-serif; font-weight:300; -webkit-font-smoothing:antialiased; }
img, video { display:block; max-width:100%; }
a { color:inherit; }
.goudy { font-family:'Sorts Mill Goudy',serif; }
.sun-hl { color:var(--ocre); font-style:italic; }
.label { font-size:11px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted); }

header { position:fixed; top:0; left:0; right:0; z-index:40; display:flex; justify-content:space-between; align-items:center; padding:24px 52px; transition:background .35s ease, padding .35s ease, box-shadow .35s ease; }
header .brand { text-decoration:none; }
header .brand img { height:34px; width:auto; display:block; transition:height .35s ease; }
header.on-page .brand img { filter:brightness(0); }
header.scrolled { background:rgba(247,244,236,.97); padding:14px 52px; box-shadow:0 1px 0 rgba(27,26,23,.08); }
header.scrolled .brand img { height:26px; filter:brightness(0); }
header.on-media.scrolled, header.on-media.scrolled .brand { color:var(--ink); }
header nav { display:flex; gap:34px; align-items:center; }
header nav a { text-decoration:none; font-size:13.5px; letter-spacing:.2em; text-transform:uppercase; opacity:.92; }
header nav a { position:relative; }
header nav a::after { content:''; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
header nav a:hover::after { transform:scaleX(1); }
header.on-media, header.on-media .brand { color:#f3efe6; }
header.on-page, header.on-page .brand { color:var(--ink); }
#burger { display:none; background:none; border:none; font-size:24px; color:inherit; cursor:pointer; }

.hero-media { position:relative; height:100vh; overflow:hidden; background:#12100c; }
.hero-media video, .hero-media > img { width:100%; height:100%; object-fit:cover; opacity:.9; }
.hero-media .veil { position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,16,12,.35) 0%, rgba(18,16,12,0) 35%, rgba(18,16,12,.55) 100%); }
.hero-media .low { position:absolute; left:24px; right:24px; bottom:56px; text-align:center; color:#f3efe6; }
.hero-media .low .label { color:#d8d2c4; display:block; margin-bottom:20px; }
.hero-media h1 { font-family:'Sorts Mill Goudy',serif; font-weight:400; font-size:clamp(36px,5vw,68px); line-height:1.1; }
.hero-media h1 em { font-style:italic; }
.hero-media .scroll { margin-top:30px; font-size:10px; letter-spacing:.3em; text-transform:uppercase; opacity:.65; }

.hero-page { padding:150px 24px 70px; text-align:center; }
.hero-page h1 { font-family:'Sorts Mill Goudy',serif; font-weight:400; font-size:clamp(34px,4.6vw,60px); line-height:1.12; }
.hero-page h1.film-title { font-size:clamp(46px,7.5vw,104px); line-height:1.05; }
.hero-page h1 em { font-style:italic; }
.hero-page .label { display:block; margin-bottom:22px; }
.hero-page .sub { max-width:46em; margin:26px auto 0; font-size:15.5px; line-height:1.8; color:#4c4738; }

.wrap { max-width:1100px; margin-left:auto; margin-right:auto; padding-left:24px; padding-right:24px; }
.narrow { max-width:760px; margin-left:auto; margin-right:auto; padding-left:24px; padding-right:24px; }
section { padding-top:85px; padding-bottom:85px; }
h2.t { font-family:'Sorts Mill Goudy',serif; font-weight:400; font-size:clamp(26px,3.4vw,42px); line-height:1.2; }
h2.t em { font-style:italic; }
.lede { font-family:'Sorts Mill Goudy',serif; font-size:clamp(24px,2.8vw,34px); line-height:1.5; text-align:center; }
.lede em { font-style:italic; }
p.body { font-size:15.5px; line-height:1.85; color:#3c372b; }
p.body + p.body { margin-top:1.2em; }
p.body strong { font-weight:400; }

.rv { opacity:0; transform:translateY(26px); transition:opacity 1s ease, transform 1s ease; }
.rv.on { opacity:1; transform:none; }

.quote-full { min-height:96vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:130px 24px; }
.quote-full p { font-family:'Sorts Mill Goudy',serif; font-style:italic; font-size:clamp(34px,5.6vw,72px); line-height:1.4; max-width:17em; }
.quote-full .qw { display:inline-block; opacity:0; transform:translateY(30px); filter:blur(5px); transition:opacity 1.3s ease, transform 1.3s ease, filter 1.3s ease; }
.quote-full.on .qw { opacity:1; transform:none; filter:none; }
.quote-full cite { margin-top:44px; font-style:normal; font-size:11px; letter-spacing:.34em; text-transform:uppercase; color:var(--muted); opacity:0; transition:opacity 1.6s ease 3.4s; }
.quote-full.on cite { opacity:1; }
.quote-full .sun-word { position:relative; font-style:italic; transition:color 1.6s ease 2.8s; z-index:1; }
.quote-full.on .sun-word { color:var(--ocre); }
.quote-full .sun-word::after { content:''; position:absolute; left:50%; top:50%; width:2.6em; height:2.6em; transform:translate(-50%,-50%) scale(.4); border-radius:50%; background:radial-gradient(circle, rgba(200,150,70,.30), rgba(200,150,70,0) 70%); opacity:0; transition:opacity 2s ease 3s, transform 2s ease 3s; z-index:-1; }
.quote-full.on .sun-word::after { opacity:1; transform:translate(-50%,-50%) scale(1); }
.zoomable { display:block; overflow:hidden; }
.zoomable img { transition:transform 1.2s ease; }
.zoomable:hover img { transform:scale(1.04); }
.full-img { height:92vh; overflow:hidden; }
.full-img img, .full-img video { width:100%; height:100%; object-fit:cover; }

.films-grid { display:grid; grid-template-columns:1fr 1fr; gap:52px 44px; }
.film-card { text-decoration:none; }
.film-card .ph { overflow:hidden; aspect-ratio:16/10; background:#e8e2d2; position:relative; }
.film-card .ph img { width:100%; height:100%; object-fit:cover; transition:transform 1.3s ease; }
.film-card:hover .ph img { transform:scale(1.04); }
.film-card .ph .soon { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); }
.film-card h3 { font-family:'Sorts Mill Goudy',serif; font-weight:400; font-size:28px; margin-top:18px; transition:font-style .2s; }
.film-card:hover h3 { font-style:italic; }
.film-card .m { font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:4px; }

.avis { text-align:center; }
.avis .stars { letter-spacing:.4em; margin-bottom:36px; font-size:13px; }
.avis blockquote { font-family:'Sorts Mill Goudy',serif; font-size:clamp(21px,2.5vw,30px); line-height:1.55; font-style:italic; max-width:30em; margin:0 auto; }
.avis cite { display:block; margin-top:26px; font-style:normal; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); }
.avis-slider { position:relative; }
.avis-slider blockquote { min-height:6.2em; transition:opacity .45s ease; }
.avis-arrows { display:flex; justify-content:center; gap:18px; margin-top:34px; align-items:center; }
.avis-arrows button { width:46px; height:46px; border-radius:50%; border:1px solid var(--ink); background:transparent; cursor:pointer; font-size:16px; color:var(--ink); transition:all .3s; font-family:'Jost'; }
.avis-arrows button:hover { background:var(--ink); color:var(--bg); }
.avis-dots { display:flex; gap:10px; justify-content:center; margin-top:22px; }
.avis-dots span { width:7px; height:7px; border-radius:50%; border:1px solid var(--ink); display:block; }
.avis-dots span.act { background:var(--ink); }
.avis .gnote { margin-top:28px; font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); }

.btn { display:inline-block; padding:16px 46px; border:1px solid var(--ink); color:var(--ink); text-decoration:none; font-size:11px; letter-spacing:.28em; text-transform:uppercase; transition:all .35s; background:transparent; cursor:pointer; font-family:'Jost',sans-serif; }
.btn:hover { background:var(--ink); color:var(--bg); }
.center { text-align:center; }

.wrap-wide { max-width:1560px; margin-left:auto; margin-right:auto; padding-left:20px; padding-right:20px; }
.embed { position:relative; aspect-ratio:2.35/1; background:#12100c; overflow:hidden; }
.embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.embed .waiting { position:absolute; inset:0; display:flex; flex-direction:column; gap:14px; align-items:center; justify-content:center; color:#b5ad9c; font-size:11px; letter-spacing:.3em; text-transform:uppercase; }

.meta-table { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:26px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:30px 0; }
.meta-table .k { font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.meta-table .v { font-family:'Sorts Mill Goudy',serif; font-size:18px; }

.duo { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.duo .ph { overflow:hidden; }
.duo .ph img, .duo .ph video { width:100%; height:100%; object-fit:cover; }

details { border-bottom:1px solid var(--line); padding:20px 4px; }
summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; font-family:'Sorts Mill Goudy',serif; font-size:19px; gap:16px; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'+'; font-family:'Jost'; font-size:17px; color:var(--muted); flex-shrink:0; }
details[open] summary::after { content:'\2013'; }
details p { margin-top:12px; font-size:14px; line-height:1.75; color:#4c4738; }

.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:40px; }
.step .n { font-family:'Sorts Mill Goudy',serif; font-size:21px; font-style:italic; color:var(--ocre); }
.step h4 { font-family:'Sorts Mill Goudy',serif; font-weight:400; font-size:19px; margin:8px 0 8px; }
.step p { font-size:13.5px; line-height:1.7; color:#4c4738; }

.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.form-grid .wide { grid-column:1/-1; }
.f label { display:block; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.f input, .f textarea, .f select { width:100%; padding:13px 14px; border:1px solid var(--line); background:#fffdf8; font-family:'Jost'; font-size:14px; color:var(--ink); }
.f input:focus, .f textarea:focus, .f select:focus { outline:none; border-color:var(--ink); }
.f select { appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231b1a17' stroke-width='1.2'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; cursor:pointer; }
.f select.empty { color:#9a937f; }
.f input[type=date] { font-family:'Jost'; color:var(--ink); }
.switch { display:flex; justify-content:center; gap:0; margin:0 auto 46px; border:1px solid var(--ink); width:fit-content; }
.switch button { padding:13px 34px; background:transparent; border:none; font-family:'Jost'; font-size:11px; letter-spacing:.24em; text-transform:uppercase; cursor:pointer; color:var(--ink); }
.switch button.act { background:var(--ink); color:var(--bg); }

.philo { text-align:center; padding-top:85px; padding-bottom:85px; }
.philo h2 { margin-top:14px; }
.philo .txt { max-width:44em; margin:28px auto 0; font-size:16px; line-height:1.85; color:#3c372b; padding:0 24px; }
.philo .media { width:min(84vw,1300px); margin:52px auto 0; position:relative; }
.philo .media img, .philo .media video { width:100%; display:block; }
.sound-btn { position:absolute; right:18px; bottom:18px; padding:11px 22px; border:1px solid #f3efe6; background:rgba(18,16,12,.55); color:#f3efe6; font-family:'Jost'; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; cursor:pointer; transition:all .3s; }
.sound-btn:hover { background:#f3efe6; color:#12100c; }
.hero-media.short { height:78vh; }
.cta-final { border-top:1px solid var(--line); text-align:center; padding:100px 24px; }
.cta-final h2 { font-family:'Sorts Mill Goudy',serif; font-weight:400; font-size:clamp(30px,4vw,52px); line-height:1.15; }
.cta-final h2 em { font-style:italic; }
.cta-final .btn { margin-top:38px; }

footer { background:#12100c; color:#e9e2d2; padding:90px 24px 34px; text-align:center; overflow:hidden; }
footer .quote { font-family:'Sorts Mill Goudy',serif; font-style:italic; font-size:clamp(19px,2.2vw,26px); line-height:1.5; color:#cfc6b0; }
footer .quote .sun-hl { color:#d8b271; }
footer .quote cite { display:block; margin-top:14px; font-style:normal; font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:#8d8571; }
footer .biglogo { margin:74px auto 0; }
footer .biglogo img { width:min(880px,88vw); height:auto; margin:0 auto; }
footer .filiale { margin:30px 0 64px; font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:#8d8571; }
footer .filiale a { color:#cfc6b0; text-decoration:none; }
footer .filiale a:hover { color:#fff; }
footer .cols { display:flex; justify-content:center; gap:44px; flex-wrap:wrap; margin-bottom:44px; }
footer .cols a { color:#cfc6b0; text-decoration:none; font-size:11px; letter-spacing:.22em; text-transform:uppercase; }
footer .cols a:hover { color:#fff; }
footer .zones { max-width:700px; margin:0 auto 40px; font-size:11px; letter-spacing:.14em; line-height:2.2; color:#8d8571; text-transform:uppercase; }
footer .zones a { color:#8d8571; text-decoration:none; }
footer .zones a:hover { color:#cfc6b0; }
footer .legal { border-top:1px solid #2a271f; padding-top:26px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#6d6654; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; }
footer .legal a { color:#6d6654; text-decoration:none; }

@media (max-width:840px) {
  .embed { aspect-ratio:16/9; }
  .philo .media { width:100%; }
  header { padding:18px 22px; }
  header .brand img { height:22px; }
  header.scrolled { padding:12px 22px; }
  header nav { position:fixed; inset:0; background:var(--bg); color:var(--ink); flex-direction:column; justify-content:center; gap:30px; display:none; z-index:50; }
  header nav.open { display:flex; }
  header nav a { color:var(--ink); font-size:16px; }
  #burger { display:block; z-index:60; position:relative; }
  .films-grid, .duo, .form-grid { grid-template-columns:1fr; }
  .duo { gap:34px; }
  .hero-page { padding:120px 20px 50px; }
  footer .biglogo { white-space:normal; }
}
