@font-face {
  font-family: "Mona Sans";
  src: url("../fonts/mona-sans-300.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Mona Sans";
  src: url("../fonts/mona-sans-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Newsreader";
  src: url("../fonts/newsreader-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --brown: #b58c80;
  --green: #28443e;
  --paper: #f2f2f2;
  --white: #ffffff;
  --serif: "Mencken Std", "le-monde-livre-std", "Newsreader", "Iowan Old Style", Georgia, serif;
  --sans: "Mona Sans", "avenir-lt-pro", "Avenir Next", "Avenir", Helvetica, Arial, sans-serif;
  --u: calc(100vw / 1920);
  --fs-display: clamp(2rem, 3.7vw, 3.75rem);
  --fs-title: clamp(1.85rem, 3.4vw, 3.5rem);
  --fs-subtitle: clamp(1.25rem, 2vw, 2.05rem);
  --fs-lead: clamp(1.125rem, 1.75vw, 1.7rem);
  --fs-body: clamp(1rem, 1.45vw, 1.4rem);
  --fs-small: clamp(0.85rem, 1.1vw, 1.125rem);
  --fs-nav: clamp(0.8rem, 1.05vw, 1.1rem);
  --fs-btn: clamp(0.95rem, 1.2vw, 1.2rem);
  --fs-quote: clamp(1.5rem, 2.6vw, 2.75rem);
  --fs-quote-mark: calc(168 * var(--u));
  --fs-badge: clamp(1.7rem, 2.9vw, 3rem);
  --fs-footer: clamp(2rem, 3.5vw, 3.5rem);
  --fs-tiny: clamp(0.7rem, 0.95vw, 1rem);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  background: var(--white);
  overflow-x: hidden;
}

body {
  margin: 0;
  color: var(--green);
  font-family: var(--sans);
  font-size: var(--fs-body);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  background: var(--white);
  overflow-x: hidden;
  max-width: 100%;
}

img { display: block; width: 100%; height: 100%; object-fit: cover; }

a { color: inherit; text-decoration: none; }

button,
input,
textarea { font: inherit; color: inherit; }

h1, h2, h3, p, blockquote, figure, ul, li { margin: 0; padding: 0; }
ul { list-style: none; }

h1, h2, h3, blockquote { font-family: var(--serif); font-weight: 400; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.page {
  width: 100%;
  margin: 0;
  background: var(--white);
}

section,
.footer { position: relative; overflow: hidden; }

.vat,
.quote,
.feature { overflow: visible; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  padding: calc(12 * var(--u)) calc(26 * var(--u));
  min-height: calc(52 * var(--u));
  font-size: var(--fs-btn);
  line-height: 1;
  cursor: pointer;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.btn:hover { transform: translateY(calc(-2 * var(--u))); opacity: 0.92; }
.btn--brown { background: var(--brown); color: var(--white); }
.btn--green { background: var(--green); color: var(--white); }

.usp-list li {
  display: flex;
  align-items: center;
  gap: calc(36 * var(--u));
  font-size: var(--fs-body);
  line-height: 1;
}

.usp-list li::before {
  content: "";
  width: calc(52 * var(--u));
  height: 2px;
  flex: 0 0 calc(52 * var(--u));
  background: currentColor;
  opacity: 0.85;
}

/* HERO */
.hero {
  height: calc(1083 * var(--u));
  background: var(--green);
  color: var(--white);
}

.hero__header {
  height: calc(273 * var(--u));
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 calc(140 * var(--u));
}

.hero__brand {
  width: calc(640 * var(--u));
  height: calc(76 * var(--u));
}

.hero__brand img { object-fit: contain; object-position: left center; }

.hero__tools {
  display: flex;
  align-items: center;
  gap: clamp(20px, 2.4vw, 40px);
}

.hero__nav {
  display: flex;
  gap: calc(56 * var(--u));
  font-family: var(--serif);
  font-size: var(--fs-nav);
  letter-spacing: 0.14em;
  color: var(--brown);
}

.hero__langs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 4px;
  font-family: var(--sans);
  font-size: clamp(0.7rem, 0.85vw, 0.8125rem);
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--brown);
  flex-shrink: 0;
}

.hero__langs a {
  position: relative;
  padding: 6px 3px;
  color: var(--brown);
  opacity: 0.62;
  transition: opacity 0.2s ease, color 0.2s ease;
}

.hero__langs a:hover,
.hero__langs a:focus-visible {
  opacity: 1;
  color: var(--paper);
}

.hero__langs a.is-active {
  opacity: 1;
  color: var(--paper);
  pointer-events: none;
}

.hero__langs a.is-active::after {
  content: "";
  position: absolute;
  left: 3px;
  right: 3px;
  bottom: 1px;
  height: 1px;
  background: var(--brown);
}

.hero__langs-sep {
  width: 1px;
  height: 0.7em;
  background: var(--brown);
  opacity: 0.32;
}

.wpml-ls,
.wpml-ls-statics-footer,
.wpml-ls-legacy-list-horizontal {
  display: none !important;
}

.hero__media {
  position: absolute;
  left: 0;
  top: calc(273 * var(--u));
  width: calc(1090 * var(--u));
  height: calc(810 * var(--u));
  border-radius: 0 calc(430 * var(--u)) 0 0;
  overflow: hidden;
}

.hero__media img { object-position: 28% 58%; }

.hero__badge {
  position: absolute;
  left: calc(848 * var(--u));
  top: calc(268 * var(--u));
  width: calc(220 * var(--u));
  height: calc(220 * var(--u));
  border-radius: 50%;
  background: var(--brown);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-size: clamp(1.2rem, 2.1vw, 2.1rem);
  line-height: 0.95;
  z-index: 2;
  text-align: center;
}

.hero__copy {
  position: absolute;
  left: calc(1188 * var(--u));
  top: calc(273 * var(--u));
  width: calc(620 * var(--u));
  height: calc(810 * var(--u));
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.hero__eyebrow {
  font-size: var(--fs-body);
  color: var(--brown);
  margin-bottom: calc(28 * var(--u));
}

.hero__copy h1 {
  font-size: var(--fs-display);
  line-height: 1.06;
  margin-bottom: calc(32 * var(--u));
}

.hero__lead {
  font-size: var(--fs-lead);
  line-height: 1.28;
  max-width: calc(520 * var(--u));
  margin-bottom: calc(118 * var(--u));
}

.hero__copy .btn { min-width: 0; }

/* INTRO */
.intro {
  height: auto;
  background: var(--paper);
  display: grid;
  grid-template-columns: calc(683 * var(--u)) calc(536 * var(--u));
  justify-content: space-between;
  align-items: start;
  padding: calc(157 * var(--u)) calc(278 * var(--u)) calc(120 * var(--u)) calc(264 * var(--u));
}

.intro__card {
  position: relative;
  width: auto;
  height: auto;
  background: var(--white);
  padding: calc(118 * var(--u)) calc(92 * var(--u)) calc(80 * var(--u));
}

.intro__card h2 {
  font-size: var(--fs-display);
  margin-bottom: calc(48 * var(--u));
}

.intro__card p {
  font-size: var(--fs-body);
  line-height: 1.42;
  max-width: calc(430 * var(--u));
}

.intro__visual {
  position: relative;
  width: auto;
}

.intro__visual img { height: calc(386 * var(--u)); }

.intro__visual p {
  margin-top: calc(42 * var(--u));
  font-size: var(--fs-body);
  line-height: 1.42;
  color: var(--brown);
}

.intro__line {
  position: absolute;
  left: calc(1024 * var(--u));
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--brown);
  opacity: 0.7;
  pointer-events: none;
  z-index: 3;
}

.intro__mark {
  position: absolute;
  left: calc(1024 * var(--u));
  top: calc(168 * var(--u));
  width: calc(88 * var(--u));
  height: calc(132 * var(--u));
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 4;
  color: var(--brown);
  overflow: visible;
}

/* LOCATION */
.location {
  height: calc(1190 * var(--u));
  background: var(--green);
  color: var(--white);
}

.location__deco,
.brochure__deco {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  background: url("../img/grid.png") center / cover no-repeat;
  opacity: 0.4;
}

.location > h2 {
  position: absolute;
  left: calc(140 * var(--u));
  top: calc(168 * var(--u));
  font-size: var(--fs-display);
  color: var(--brown);
  z-index: 1;
}

.location__map {
  position: absolute;
  left: 0;
  top: calc(358 * var(--u));
  width: calc(1090 * var(--u));
  height: calc(832 * var(--u));
  border-radius: 0 calc(320 * var(--u)) 0 0;
  overflow: hidden;
  background: var(--white);
  z-index: 1;
}

.location__map img { object-position: left top; }

.usp-list--location {
  position: absolute;
  left: calc(1288 * var(--u));
  top: calc(380 * var(--u));
  display: grid;
  gap: calc(22 * var(--u));
  color: var(--white);
  z-index: 1;
}

/* PLACES */
.places {
  height: calc(1807 * var(--u));
  padding: calc(108 * var(--u)) 0;
  background: var(--white);
}

.places__item { position: absolute; color: var(--brown); font-size: var(--fs-body); z-index: 2; }
.places__item img { height: auto; }
.places__item figcaption { line-height: 1.3; }
.places__item strong {
  display: block;
  font-family: var(--serif);
  font-size: var(--fs-body);
  font-weight: 400;
  color: var(--green);
  margin-bottom: calc(4 * var(--u));
}

.places__item--1 { left: calc(123 * var(--u)); top: calc(132 * var(--u)); width: calc(686 * var(--u)); }
.places__item--1 img { height: calc(454 * var(--u)); }
.places__item--1 figcaption { padding-top: calc(22 * var(--u)); }

.places__item--2 { left: calc(1088 * var(--u)); top: calc(388 * var(--u)); width: calc(562 * var(--u)); }
.places__item--2 figcaption { padding-bottom: calc(18 * var(--u)); }
.places__item--2 img { height: calc(470 * var(--u)); }

.places__item--3 { left: calc(264 * var(--u)); top: calc(791 * var(--u)); width: calc(701 * var(--u)); }
.places__item--3 img { height: calc(587 * var(--u)); }
.places__item--3 figcaption { padding-top: calc(22 * var(--u)); }

.places__item--4 { left: calc(1088 * var(--u)); top: calc(1104 * var(--u)); width: calc(701 * var(--u)); }
.places__item--4 img { height: calc(467 * var(--u)); }
.places__item--4 figcaption { padding-top: calc(22 * var(--u)); }

.places__deco {
  position: absolute;
  left: 0;
  top: 0;
  width: calc(1920 * var(--u));
  height: calc(1807 * var(--u));
  pointer-events: none;
  z-index: 3;
  color: var(--brown);
  overflow: visible;
  opacity: 0.9;
}

/* QUOTE */
.quote { height: calc(1884 * var(--u)); background: var(--paper); }

.quote__copy {
  position: absolute;
  left: 0;
  top: 0;
  width: calc(948 * var(--u));
  height: calc(1096 * var(--u));
  text-align: center;
  padding: calc(248 * var(--u)) calc(110 * var(--u)) 0;
  z-index: 2;
}

.quote__mark {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(112 * var(--u));
  margin-bottom: calc(56 * var(--u));
}

.quote__mark span {
  display: block;
  width: calc(118 * var(--u));
  height: 2px;
  background: var(--green);
}

.quote__mark b {
  font-family: var(--serif);
  font-size: var(--fs-quote-mark);
  line-height: 0.75;
  color: var(--brown);
  font-weight: 400;
}

.quote__copy blockquote {
  font-size: var(--fs-quote);
  line-height: 1.28;
  max-width: calc(640 * var(--u));
  margin: 0 auto;
  color: var(--green);
}

.quote__circle {
  position: absolute;
  left: calc(264 * var(--u));
  top: calc(936 * var(--u));
  width: calc(420 * var(--u));
  height: calc(420 * var(--u));
  border: 1.5px solid var(--green);
  border-radius: 50%;
  opacity: 0.9;
  z-index: 4;
  pointer-events: none;
}

.quote__image {
  position: absolute;
  right: 0;
  top: 0;
  width: calc(972 * var(--u));
  height: calc(1096 * var(--u));
}

.quote__aerial {
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(949 * var(--u));
  height: calc(788 * var(--u));
  z-index: 1;
}

.quote__side {
  position: absolute;
  right: 0;
  bottom: 0;
  width: calc(971 * var(--u));
  height: calc(788 * var(--u));
  background: var(--white);
  padding: calc(118 * var(--u)) calc(120 * var(--u)) 0 calc(108 * var(--u));
}

.quote__side h2 {
  font-size: var(--fs-display);
  color: var(--brown);
  margin-bottom: calc(42 * var(--u));
}

.quote__side p {
  font-size: var(--fs-body);
  line-height: 1.42;
  color: var(--brown);
  max-width: calc(620 * var(--u));
}

/* PLANS */
.plans {
  height: auto;
  background: var(--paper);
  padding: calc(108 * var(--u)) calc(123 * var(--u));
}

.plans > h2 {
  font-size: var(--fs-display);
  margin-bottom: calc(36 * var(--u));
}

.plans__intro {
  font-size: var(--fs-body);
  line-height: 1.45;
  max-width: 66.666%;
  margin-bottom: calc(72 * var(--u));
}

.plans__grid {
  display: grid;
  grid-template-columns: repeat(3, calc(544 * var(--u)));
  gap: calc(18 * var(--u));
}

.plan-card__thumb {
  height: calc(380 * var(--u));
  background: var(--white);
  margin-bottom: calc(42 * var(--u));
  overflow: hidden;
}

.plan-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.plan-card:nth-child(3) .plan-card__thumb img {
  object-position: center 58%;
}

.plan-card h3 {
  font-size: var(--fs-subtitle);
  color: var(--brown);
  margin-bottom: calc(28 * var(--u));
}

.usp-list--plan {
  display: grid;
  gap: calc(22 * var(--u));
  color: var(--green);
  margin-bottom: calc(48 * var(--u));
  font-size: var(--fs-body);
}

.plan-card .btn { min-width: calc(280 * var(--u)); font-size: var(--fs-btn); min-height: calc(58 * var(--u)); }

/* BROCHURE */
.brochure {
  height: calc(820 * var(--u));
  background: var(--green);
  color: var(--white);
}

.brochure__shot {
  position: absolute;
  left: calc(40 * var(--u));
  top: calc(48 * var(--u));
  width: calc(820 * var(--u));
  height: calc(724 * var(--u));
  object-fit: contain;
  object-position: center;
  z-index: 1;
}

.brochure__copy {
  position: absolute;
  left: calc(900 * var(--u));
  top: calc(168 * var(--u));
  width: calc(860 * var(--u));
  z-index: 1;
}

.brochure__copy h2 {
  font-size: var(--fs-display);
  line-height: 1.08;
  margin-bottom: calc(42 * var(--u));
}

.brochure__copy p {
  font-size: var(--fs-body);
  line-height: 1.45;
  max-width: calc(720 * var(--u));
  margin-bottom: calc(56 * var(--u));
}

/* VAT */
.vat {
  height: calc(386 * var(--u));
  background: var(--brown);
  color: var(--white);
  overflow: visible;
}

.vat__badge {
  position: absolute;
  z-index: 4;
  left: calc(118 * var(--u));
  top: calc(-118 * var(--u));
  width: calc(292 * var(--u));
  height: calc(292 * var(--u));
  border-radius: 50%;
  background: var(--green);
  border: 1.5px dashed rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--serif);
  font-size: var(--fs-subtitle);
  line-height: 1.05;
}

.vat__copy {
  position: absolute;
  left: calc(520 * var(--u));
  top: calc(118 * var(--u));
  width: calc(520 * var(--u));
}

.vat__copy h2 { font-size: var(--fs-display); margin-bottom: calc(16 * var(--u)); }
.vat__copy p { font-size: var(--fs-body); opacity: 0.92; }

.vat__photo {
  position: absolute;
  right: 0;
  top: 0;
  width: calc(676 * var(--u));
  height: calc(386 * var(--u));
}

/* GALLERY */
.gallery {
  height: auto;
  background: var(--white);
  padding: calc(128 * var(--u)) calc(123 * var(--u)) calc(108 * var(--u));
}

.gallery > h2 {
  font-size: var(--fs-display);
  line-height: 1.12;
  margin-bottom: calc(88 * var(--u));
}

.gallery__grid { position: relative; height: calc(1140 * var(--u)); }

.gallery__item { position: absolute; margin: 0; }
.gallery__item figcaption {
  font-size: var(--fs-small);
  color: var(--brown);
  margin-top: calc(16 * var(--u));
}

.gallery__item--1 { left: 0; top: 0; width: calc(546 * var(--u)); }
.gallery__item--1 img { height: calc(411 * var(--u)); }
.gallery__item--2 { left: calc(560 * var(--u)); top: 0; width: calc(267 * var(--u)); }
.gallery__item--2 img { height: calc(277 * var(--u)); }
.gallery__item--3 { left: calc(841 * var(--u)); top: 0; width: calc(406 * var(--u)); }
.gallery__item--3 img { height: calc(411 * var(--u)); }
.gallery__item--4 { left: calc(1261 * var(--u)); top: 0; width: calc(406 * var(--u)); }
.gallery__item--4 img { height: calc(277 * var(--u)); }
.gallery__item--5 { left: 0; top: calc(668 * var(--u)); width: calc(406 * var(--u)); }
.gallery__item--5 img { height: calc(411 * var(--u)); }
.gallery__item--6 { left: calc(420 * var(--u)); top: calc(668 * var(--u)); width: calc(546 * var(--u)); }
.gallery__item--6 img { height: calc(411 * var(--u)); }
.gallery__item--7 { left: calc(980 * var(--u)); top: calc(668 * var(--u)); width: calc(267 * var(--u)); }
.gallery__item--7 img { height: calc(277 * var(--u)); }
.gallery__item--8 { left: calc(1261 * var(--u)); top: calc(668 * var(--u)); width: calc(406 * var(--u)); }
.gallery__item--8 img { height: calc(411 * var(--u)); object-position: center; }

.gallery__nav { display: none; }

/* FEATURE */
.feature {
  height: calc(803 * var(--u));
  background: var(--green);
  color: var(--white);
  z-index: 2;
}

.feature__media {
  position: absolute;
  left: 0;
  top: 0;
  width: calc(949 * var(--u));
  height: calc(803 * var(--u));
}

.feature__copy {
  position: absolute;
  right: 0;
  top: 0;
  width: calc(971 * var(--u));
  height: calc(803 * var(--u));
  padding: calc(100 * var(--u)) calc(140 * var(--u)) calc(80 * var(--u)) calc(108 * var(--u));
}

.feature__copy h2 {
  font-size: var(--fs-display);
  color: var(--brown);
  margin-bottom: calc(36 * var(--u));
}

.feature__copy p {
  font-size: var(--fs-body);
  line-height: 1.4;
  color: var(--brown);
  max-width: calc(560 * var(--u));
  margin-bottom: calc(56 * var(--u));
}

.usp-list--feature {
  display: grid;
  gap: calc(26 * var(--u));
  color: var(--white);
}

.feature__deco {
  position: absolute;
  right: calc(96 * var(--u));
  bottom: calc(-64 * var(--u));
  width: calc(256 * var(--u));
  height: calc(128 * var(--u));
  pointer-events: none;
  z-index: 4;
  color: var(--brown);
  overflow: visible;
}

/* CONTACT */
.contact {
  height: calc(1174 * var(--u));
  background: var(--paper);
  padding: calc(108 * var(--u)) calc(140 * var(--u)) 0;
}

.contact > h2 {
  font-size: var(--fs-display);
  margin-bottom: calc(18 * var(--u));
}

.contact__lead {
  font-size: var(--fs-body);
  margin-bottom: calc(18 * var(--u));
}

.contact__sub {
  font-size: var(--fs-body);
  margin-bottom: calc(48 * var(--u));
  max-width: calc(920 * var(--u));
}

.contact__form {
  display: block;
  width: calc(850 * var(--u));
  max-width: 100%;
}

.contact input,
.contact textarea {
  width: 100%;
  background: transparent;
  border: 1.5px solid var(--green);
  border-radius: 999px;
  height: calc(79 * var(--u));
  padding: 0 calc(28 * var(--u));
  color: var(--brown);
  outline: none;
}

.contact input::placeholder,
.contact textarea::placeholder { color: var(--brown); opacity: 1; }

.contact textarea {
  grid-column: 1 / -1;
  height: calc(273 * var(--u));
  border-radius: calc(36 * var(--u));
  padding: calc(28 * var(--u));
  resize: none;
}

.contact__note {
  grid-column: 1 / -1;
  font-size: var(--fs-small);
  line-height: 1.4;
  max-width: calc(920 * var(--u));
  margin-top: calc(8 * var(--u));
}

.contact__status {
  grid-column: 1 / -1;
  min-height: calc(20 * var(--u));
  font-size: var(--fs-tiny);
}

.contact__side {
  position: absolute;
  right: calc(140 * var(--u));
  top: calc(360 * var(--u));
  width: calc(420 * var(--u));
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(48 * var(--u));
}

.contact__side img {
  width: calc(370 * var(--u));
  height: calc(280 * var(--u));
  object-fit: contain;
}

.contact__side .btn { min-width: calc(240 * var(--u)); }

/* FOOTER */
.footer {
  height: calc(245 * var(--u));
  background: var(--green);
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 calc(140 * var(--u));
  color: var(--white);
}

.footer__brand {
  font-size: var(--fs-footer);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-align: center;
  line-height: 1;
}

.footer__brand span {
  display: block;
  font-size: var(--fs-tiny);
  letter-spacing: 0.38em;
  margin-top: calc(12 * var(--u));
  font-weight: 400;
}

.float-contact {
  position: fixed;
  right: max(18px, calc(32 * var(--u)));
  bottom: max(18px, calc(28 * var(--u)));
  z-index: 80;
  display: flex;
  align-items: stretch;
  background: var(--brown);
  border-radius: 1.2rem 2.8rem 2.8rem 1.2rem;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(40, 68, 62, 0.18);
}

.float-contact__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 50px;
  color: var(--white);
  transition: background 0.2s ease;
}

.float-contact__btn:hover {
  background: rgba(255, 255, 255, 0.12);
}

.float-contact__btn--phone {
  width: 58px;
  border-left: 1px solid rgba(255, 255, 255, 0.28);
}

.float-contact__btn svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn { transition: none; }
}

@media (max-width: 1024px) {
  :root {
    --fs-display: clamp(1.85rem, 6.2vw, 2.55rem);
    --fs-title: clamp(1.7rem, 5.6vw, 2.3rem);
    --fs-subtitle: clamp(1.2rem, 3.8vw, 1.6rem);
    --fs-lead: 1.125rem;
    --fs-body: 1.05rem;
    --fs-small: 0.95rem;
    --fs-nav: 0.78rem;
    --fs-btn: 1rem;
    --fs-quote: clamp(1.35rem, 5vw, 1.85rem);
    --fs-quote-mark: 4.25rem;
    --fs-footer: clamp(1.7rem, 6vw, 2.4rem);
  }

  .btn {
    padding: 12px 22px;
    min-height: 48px;
  }

  .usp-list li {
    gap: 16px;
  }

  .usp-list li::before {
    width: 36px;
    flex-basis: 36px;
  }

  .intro__line,
  .intro__mark,
  .places__deco,
  .quote__circle {
    display: none;
  }

  /* HERO */
  .hero {
    height: auto;
    display: flex;
    flex-direction: column;
  }

  .hero__header {
    height: auto;
    flex-wrap: wrap;
    gap: 16px 24px;
    padding: 22px 20px 18px;
  }

  .hero__brand {
    width: min(220px, 58vw);
    height: auto;
  }

  .hero__brand img {
    height: 36px;
    width: auto;
    max-width: 100%;
  }

  .hero__header {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
  }

  .hero__tools {
    display: contents;
  }

  .hero__langs {
    grid-column: 2;
    grid-row: 1;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 0.14em;
  }

  .hero__langs a {
    padding: 4px 2px;
  }

  .hero__nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
  }

  .hero__media {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: min(52vw, 340px);
    border-radius: 0 72px 0 0;
  }

  .hero__badge {
    left: auto;
    right: 18px;
    top: auto;
    bottom: auto;
    margin-top: -48px;
    align-self: flex-end;
    width: 96px;
    height: 96px;
    font-size: 1.15rem;
    position: relative;
    z-index: 2;
  }

  .hero__copy {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
    padding: 28px 20px 40px;
    justify-content: flex-start;
  }

  .hero__eyebrow { margin-bottom: 14px; }
  .hero__copy h1 { margin-bottom: 16px; }
  .hero__copy h1 br { display: none; }
  .hero__lead {
    max-width: none;
    margin-bottom: 28px;
  }
  .hero__lead br { display: none; }

  /* INTRO */
  .intro {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding: 48px 20px;
  }

  .intro__card {
    padding: 32px 24px;
  }

  .intro__card h2 { margin-bottom: 18px; }
  .intro__card p { max-width: none; }
  .intro__visual img { height: 220px; }
  .intro__visual p { margin-top: 18px; }

  /* LOCATION */
  .location {
    height: auto;
    padding: 48px 20px 40px;
    display: flex;
    flex-direction: column;
    gap: 28px;
  }

  .location > h2,
  .location__map,
  .usp-list--location {
    position: static;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
  }

  .location__map {
    height: 240px;
    border-radius: 0 64px 0 0;
  }

  .usp-list--location {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 20px;
  }

  /* PLACES */
  .places {
    height: auto;
    padding: 48px 20px;
    display: flex;
    flex-direction: column;
    gap: 36px;
  }

  .places__item,
  .places__item--1,
  .places__item--2,
  .places__item--3,
  .places__item--4 {
    position: static;
    left: auto;
    top: auto;
    width: 100%;
  }

  .places__item img,
  .places__item--1 img,
  .places__item--2 img,
  .places__item--3 img,
  .places__item--4 img {
    height: 220px;
  }

  .places__item--2 {
    display: flex;
    flex-direction: column;
  }

  .places__item--2 figcaption { order: 1; padding: 12px 0 0; }
  .places__item--2 img { order: 0; }

  /* QUOTE */
  .quote {
    height: auto;
    display: flex;
    flex-direction: column;
    background: var(--paper);
  }

  .quote__copy,
  .quote__image,
  .quote__aerial,
  .quote__side {
    position: static;
    left: auto;
    top: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    height: auto;
  }

  .quote__copy {
    padding: 48px 20px 32px;
  }

  .quote__mark {
    gap: 24px;
    margin-bottom: 24px;
  }

  .quote__mark span { width: 48px; }

  .quote__copy blockquote { max-width: none; }

  .quote__image,
  .quote__aerial {
    height: 240px;
  }

  .quote__side {
    padding: 36px 20px 48px;
  }

  .quote__side h2 { margin-bottom: 16px; }
  .quote__side p { max-width: none; }

  /* PLANS */
  .plans {
    padding: 48px 20px;
  }

  .plans > h2 { margin-bottom: 16px; }

  .plans__intro {
    max-width: none;
    margin-bottom: 32px;
  }

  .plans__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .plan-card__thumb { height: 220px; margin-bottom: 20px; }
  .plan-card h3 { margin-bottom: 16px; }
  .plan-card .btn {
    min-width: 0;
    width: 100%;
    min-height: 52px;
  }

  /* BROCHURE */
  .brochure {
    height: auto;
    display: flex;
    flex-direction: column;
    padding: 36px 20px 48px;
    gap: 24px;
  }

  .brochure__shot,
  .brochure__copy {
    position: static;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
  }

  .brochure__shot {
    height: 240px;
  }

  .brochure__copy h2 {
    margin-bottom: 16px;
  }

  .brochure__copy h2 br { display: none; }
  .brochure__copy p {
    max-width: none;
    margin-bottom: 24px;
  }

  /* VAT */
  .vat {
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 40px 20px 0;
    overflow: hidden;
  }

  .vat__badge,
  .vat__copy,
  .vat__photo {
    position: static;
    left: auto;
    top: auto;
    right: auto;
  }

  .vat__badge {
    width: 140px;
    height: 140px;
    font-size: 1.15rem;
  }

  .vat__copy {
    width: 100%;
    text-align: center;
    padding-bottom: 8px;
  }

  .vat__photo {
    width: 100%;
    height: 220px;
  }

  /* GALLERY */
  .gallery {
    padding: 48px 20px;
  }

  .gallery > h2 {
    margin-bottom: 28px;
  }

  .gallery__slider {
    overflow: hidden;
  }

  .gallery__grid {
    height: auto;
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .gallery__grid::-webkit-scrollbar { display: none; }

  .gallery__item,
  .gallery__item--1,
  .gallery__item--2,
  .gallery__item--3,
  .gallery__item--4,
  .gallery__item--5,
  .gallery__item--6,
  .gallery__item--7,
  .gallery__item--8 {
    position: static;
    left: auto;
    top: auto;
    flex: 0 0 100%;
    width: 100%;
    scroll-snap-align: start;
  }

  .gallery__item img,
  .gallery__item--1 img,
  .gallery__item--2 img,
  .gallery__item--3 img,
  .gallery__item--4 img,
  .gallery__item--5 img,
  .gallery__item--6 img,
  .gallery__item--7 img,
  .gallery__item--8 img {
    height: 240px;
  }

  .gallery__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 20px;
  }

  .gallery__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: var(--brown);
    color: var(--white);
    cursor: pointer;
    padding: 0;
  }

  .gallery__arrow svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .gallery__dots {
    display: flex;
    gap: 8px;
    align-items: center;
  }

  .gallery__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--dusty, #d2bab3);
    cursor: pointer;
  }

  .gallery__dot.is-active {
    background: var(--green);
    transform: scale(1.25);
  }

  /* FEATURE */
  .feature {
    height: auto;
    display: flex;
    flex-direction: column;
  }

  .feature__media,
  .feature__copy {
    position: static;
    left: auto;
    top: auto;
    right: auto;
    width: 100%;
    height: auto;
  }

  .feature__media { height: 240px; }

  .feature__copy {
    padding: 36px 20px 56px;
  }

  .feature__copy h2 { margin-bottom: 16px; }
  .feature__copy p {
    max-width: none;
    margin-bottom: 24px;
  }

  .feature__deco {
    right: 20px;
    bottom: -40px;
    width: 160px;
    height: 80px;
  }

  /* CONTACT */
  .contact {
    height: auto;
    padding: 64px 20px 48px;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .contact__sub { max-width: none; margin-bottom: 28px; }

  .contact__form {
    width: 100%;
  }

  .contact input,
  .contact textarea {
    height: 56px;
    padding: 0 18px;
  }

  .contact textarea {
    height: 160px;
    border-radius: 24px;
    padding: 16px 18px;
  }

  .contact__note { max-width: none; }

  .contact__side {
    position: static;
    right: auto;
    top: auto;
    width: 100%;
    margin-top: 12px;
    gap: 24px;
  }

  .contact__side img {
    width: min(280px, 100%);
    height: 200px;
  }

  .contact__side .btn {
    min-width: 0;
    width: 100%;
  }

  /* FOOTER */
  .footer {
    height: auto;
    justify-content: center;
    padding: 36px 20px;
  }
}

@media (min-width: 640px) and (max-width: 1024px) {
  .hero__header {
    padding: 28px 32px 20px;
  }

  .hero__copy,
  .intro,
  .location,
  .places,
  .plans,
  .brochure,
  .gallery,
  .contact {
    padding-left: 32px;
    padding-right: 32px;
  }

  .quote__copy,
  .quote__side,
  .feature__copy {
    padding-left: 32px;
    padding-right: 32px;
  }

  .usp-list--location {
    grid-template-columns: 1fr 1fr;
  }

  .plans__grid {
    grid-template-columns: 1fr 1fr;
  }

  .plan-card:last-child {
    grid-column: 1 / -1;
  }
}

[class*="wp-block-acf-moris-"] {
  max-width: none;
  width: 100%;
}

.agency-block-edit-wrap {
  position: relative;
}

.agency-block-edit {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--green);
  box-shadow: 0 2px 8px rgba(40, 68, 62, 0.18);
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.agency-block-edit-wrap:hover .agency-block-edit,
.agency-block-edit:focus-visible {
  opacity: 1;
  transform: translateY(0);
}

.contact__form .contact__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.contact__form.hubspot-form,
.contact__form .hubspot-form {
  display: block;
  min-height: 0;
}

.contact .hbspt-form,
.hubspot-modal .hbspt-form {
  width: 100%;
}

.contact .hs-form-field {
  margin-bottom: 1rem;
}

.contact .hs-form .hs-input,
.contact .hs-form input[type="text"],
.contact .hs-form input[type="email"],
.contact .hs-form input[type="tel"],
.contact .hs-form textarea {
  width: 100%;
  background: transparent;
  border: 1.5px solid var(--green);
  border-radius: 999px;
  min-height: calc(79 * var(--u));
  padding: 0.85rem 1.5rem;
  color: var(--brown);
}

.contact .hs-form textarea {
  border-radius: calc(36 * var(--u));
  min-height: 8rem;
}

.contact .hs-form .hs-button,
.contact .hs-form input[type="submit"],
.hubspot-modal .hs-form .hs-button,
.hubspot-modal .hs-form input[type="submit"] {
  font-family: var(--sans);
  background: var(--brown);
  color: var(--paper);
  border: 0;
  border-radius: 999px;
  padding: 0.9rem 1.6rem;
  cursor: pointer;
}

.hubspot-form__placeholder {
  padding: 1.25rem 0;
  color: var(--brown);
  font-size: var(--fs-small);
}

:root,
.hubspot-form {
  --hubspot-card-bg: var(--paper);
  --hubspot-card-border: rgba(181, 140, 128, 0.28);
  --hubspot-input-bg: var(--white);
  --hubspot-input-border: rgba(40, 68, 62, 0.28);
  --hubspot-label: var(--green);
  --hubspot-asterisk: var(--brown);
  --hubspot-text: var(--green);
  --hubspot-muted: rgba(40, 68, 62, 0.68);
  --hsf-global__font-family: var(--sans);
  --hsf-global__font-size: 0.9375rem;
  --hsf-global__color: var(--hubspot-text);
  --hsf-background__background-color: transparent;
  --hsf-field-input__background-color: var(--hubspot-input-bg);
  --hsf-field-input__border-color: var(--hubspot-input-border);
  --hsf-field-input__color: var(--hubspot-text);
  --hsf-button__font-family: var(--sans);
  --hsf-button__color: var(--paper);
  --hsf-button__background-color: var(--brown);
  --hsf-button--hover__background-color: #a57c71;
  --hsf-button--hover__color: var(--paper);
}

.hubspot-form .hs-form-html,
.hubspot-form .hs-form-frame {
  width: 100%;
}

.hubspot-form .hs-form-html iframe,
.hubspot-form .hs-form-frame iframe {
  display: block;
  width: 100% !important;
  max-width: 100%;
  border: 0;
  background: transparent;
}

.hubspot-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.hubspot-modal[hidden] {
  display: none;
}

.hubspot-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(40, 68, 62, 0.72);
}

.hubspot-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 36rem);
  max-height: calc(100vh - 3rem);
  overflow-y: auto;
  background: var(--paper);
  color: var(--green);
  padding: clamp(1.75rem, 4vw, 2.5rem);
  border-radius: 0;
  box-shadow: 0 24px 64px rgba(40, 68, 62, 0.35);
}

.hubspot-modal__close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  background: transparent;
  color: var(--brown);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
}

.hubspot-modal__close:hover,
.hubspot-modal__close:focus-visible {
  color: var(--green);
}

.hubspot-modal__eyebrow {
  font-family: var(--sans);
  font-size: var(--fs-tiny);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brown);
  margin-bottom: 0.5rem;
}

.hubspot-modal__title {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 1.25rem;
}

body.hubspot-modal-open {
  overflow: hidden;
}
