/* ============================================================
   PROKAT RKS — v2 (photo-driven, architectural/editorial)
   Paste into Flatsome → Customize → Custom CSS
   Palette: Cream #EEE9DF | Olive #6E7150 | Light green #D1D2C8
            Terracotta #BE6A4A | Charcoal #3E3A33
   Fonts:   Geologica (headings) | Comfortaa (body/menu/buttons)
   ============================================================ */

/* ---------- Base ---------- */
/* All sections share the hero's width: 1500px grid aligned with the floating header */
.container {
  max-width: 1500px; width: 100%;
  margin-left: auto; margin-right: auto;
  padding-left: 60px; padding-right: 60px;
}
/* Flatsome caps .row at 1080px — let rows fill our wider container */
.container .row, .container-fluid .row { max-width: none; }
/* The last row of a section must not add Flatsome's 30px col padding to the section breathing */
.section .row:last-child > .col { padding-bottom: 0; }
/* One-column gap used in the intro/story layouts (Flatsome has no large-offset-1) */
@media (min-width: 850px) {
  .col.large-offset-1 { margin-left: 8.3333%; }
}
body {
  font-family: 'Comfortaa', sans-serif;
  background: #EEE9DF;
  color: #3E3A33;
  font-size: 16px;
  line-height: 1.75;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Geologica', sans-serif;
  color: #3E3A33;
  font-weight: 600;
  line-height: 1.12;
}
h1 { font-size: 3.6em; letter-spacing: -0.02em; font-weight: 500; }
h4, .h4 { font-size: 18px; }
h2, .h2 { font-size: 2.4em; letter-spacing: -0.015em; margin-bottom: 20px; }
/* SEO: headings demoted to p.hX keep the exact heading metrics */
p.h2, p.h3, p.h4, p.h5 { margin-top: 0; margin-bottom: .5em; width: 100%; }
p.h2 { margin-bottom: 20px; }

.button, button, input, select, textarea { font-family: 'Comfortaa', sans-serif; }
.button, .button.is-large, .button.is-small {
  border-radius: 0; text-transform: uppercase; letter-spacing: 0.1em;
  font-size: 15px; font-weight: 700;
  padding: 10px 30px 7px 30px; line-height: 1.2; height: auto;
}
/* Curtain-reveal hover: the fill rises from the bottom + subtle lift */
.button, .rks2-cta {
  position: relative; overflow: hidden; z-index: 0;
  transition: color 0.35s ease, border-color 0.35s ease, transform 0.3s ease;
}
.button::before, .rks2-cta::before {
  /* 1px overshoot so the rising fill fully covers the edges — no hairlines above/below */
  content: ""; position: absolute; top: -1px; right: -1px; bottom: -1px; left: -1px; z-index: -1;
  transform: scaleY(0); transform-origin: bottom center;
  transition: transform 0.35s cubic-bezier(0.65, 0, 0.35, 1);
}
.button:hover, .rks2-cta:hover {
  /* The bg snaps to the fill color only AFTER the curtain finishes — kills the edge hairlines without changing the effect */
  transition: color 0.35s ease, border-color 0.35s ease, transform 0.3s ease, background-color 0s linear 0.35s;
}
.button:hover::before, .rks2-cta:hover::before { transform: scaleY(1); }
.button.primary { background-color: #BE6A4A; border: 1px solid transparent; }
.button.primary::before { background: #3E3A33; }
.button.primary:hover { background-color: #3E3A33; border-color: #3E3A33; }
.v2-btn-dark { border: 1px solid #3E3A33; color: #3E3A33; }
.v2-btn-dark::before { background: #3E3A33; }
.v2-btn-dark:hover { background-color: #3E3A33; color: #EEE9DF; border-color: #3E3A33; }
.v2-btn-green { background-color: #D1D2C8; color: #3E3A33; border: 1px solid transparent; }
.v2-btn-green::before { background: #3E3A33; }
.v2-btn-green:hover { background-color: #3E3A33; color: #EEE9DF; border-color: #3E3A33; }
/* Inside the olive band the green button fills charcoal on hover (olive would vanish into the bg) */
.v2-cat-olive .v2-btn-green::before { background: #3E3A33; }
.v2-cat-olive .v2-btn-green:hover { border-color: #3E3A33; }
.v2-btn-olive { background-color: #6E7150; color: #EEE9DF; border: 1px solid transparent; }
.v2-btn-olive::before { background: #3E3A33; }
.v2-btn-olive:hover { background-color: #3E3A33; color: #EEE9DF; border-color: #3E3A33; }

/* Animated divider: opens from the center outwards when it scrolls into view */
.v2-divider { margin-top: 50px; }
.v2-divider span {
  display: block; height: 1px; width: 100%;
  background: #BE6A4A;
  transform: scaleX(0); transform-origin: center;
  transition: transform 1s ease;
  /* Stays on its own GPU layer so the 1px line renders identically during and after the animation */
  will-change: transform;
}
.v2-divider.in-view span { transform: scaleX(1); }

/* Section number labels */
.v2-num-label {
  font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
  color: #BE6A4A; margin-bottom: 16px;
  display: flex; align-items: center; gap: 14px;
}
/* Both label lines are the same CSS element — identical thickness by definition */
.v2-num-label .v2-dash { display: block; width: 16px; height: 1.5px; background: currentColor; }
.v2-num-label::after { content: ""; height: 1.5px; width: 56px; background: currentColor; }
.v2-num-label-light { color: #D1D2C8; }
.v2-num-label-center { justify-content: center; }
.v2-row-center { justify-content: center; }
.v2-eyebrow {
  font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
  color: #EEE9DF; opacity: 0.85; margin-bottom: 16px;
}
.rks-todo { background: #fff3cd; color: #3E3A33; padding: 0 6px; font-size: 0.9em; }

/* ---------- Floating actions (call + back to top, bottom-right) ---------- */
.v2-fabs {
  position: fixed; right: 14px; bottom: 30px; z-index: 90;
  display: flex; flex-direction: column; gap: 10px;
}
.v2-fab {
  width: 38px; height: 38px; margin: 0; padding: 0; border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; -webkit-appearance: none; appearance: none;
  transition: background-color 0.25s ease, color 0.25s ease, opacity 0.3s ease, transform 0.3s ease;
}
.v2-fab svg { width: 17px; height: 17px; }
/* Back to top sits on top, phone below */
.v2-fab-top { order: -1; }
.v2-fab-phone { background: #6E7150; color: #EEE9DF; border: 1px solid #6E7150; }
.v2-fab-phone:hover { background: transparent; color: #6E7150; }
.v2-fab-top { background: #BE6A4A; color: #EEE9DF; border: 1px solid #BE6A4A; }
.v2-fab-top:hover { background: transparent; color: #BE6A4A; }
/* Back-to-top only shows after some scrolling */
.v2-fab-top { opacity: 0; visibility: hidden; transform: translateY(8px); }
.v2-fab-top.show { opacity: 1; visibility: visible; transform: none; }
@media (max-width: 1024px) { .v2-fabs { right: 10px; bottom: 20px; } }
@media (max-width: 549px) { .v2-fabs { right: 6px; bottom: 10px; } }

/* ---------- Scroll-reveal (homepage) ---------- */
/* Titles/labels/text fade up when scrolled into view; stagger is set per column via JS */
.v2-reveal { opacity: 0; transform: translateY(24px); }
.v2-reveal.in-view {
  opacity: 1; transform: none;
  transition: opacity 0.9s ease, transform 0.9s ease;
  transition-delay: var(--rv-delay, 0s);
}
/* Craft photos settle from a slight zoom when they appear */
@keyframes v2-img-settle { from { transform: scale(1.08); } to { transform: scale(1); } }
.page-home-v2 .v2-craft-media img { transform: scale(1.08); }
.page-home-v2 .v2-craft-media.in-view img { transform: none; animation: v2-img-settle 1.4s ease; }
@media (prefers-reduced-motion: reduce) {
  .v2-reveal, .v2-reveal.in-view { opacity: 1; transform: none; transition: none; }
  .page-home-v2 .v2-craft-media img { transform: none; animation: none; }
}

/* ---------- Soft scroll-reveal (inner pages — gentler twin of the homepage version) ---------- */
.v2-reveal-soft { opacity: 0; transform: translateY(14px); }
.v2-reveal-soft.in-view {
  opacity: 1; transform: none;
  transition: opacity 0.7s ease, transform 0.7s ease;
  transition-delay: var(--rv-delay, 0s);
}
@keyframes v2-img-settle-soft { from { transform: scale(1.04); } to { transform: scale(1); } }
.v2-zoom-soft { overflow: hidden; }
.v2-zoom-soft img { transform: scale(1.04); }
.v2-zoom-soft.in-view img { transform: none; animation: v2-img-settle-soft 1.2s ease; }
@media (prefers-reduced-motion: reduce) {
  .v2-reveal-soft, .v2-reveal-soft.in-view { opacity: 1; transform: none; transition: none; }
  .v2-zoom-soft img { transform: none; animation: none; }
}

/* ---------- Page-load curtain ---------- */
/* Dark curtain with the logo mark: the mark fades in, then the whole veil lifts upwards */
.v2-loader {
  position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 999;
  background: #23201B;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
  animation: v2-loader-up 0.55s 0.55s cubic-bezier(0.76, 0, 0.24, 1) both;
}
.v2-loader img { height: 150px; width: auto; max-width: 80vw; animation: v2-loader-logo 0.4s ease both; }
@keyframes v2-loader-logo {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
@keyframes v2-loader-up { to { transform: translateY(-101%); } }
@media (prefers-reduced-motion: reduce) { .v2-loader { display: none; } }

/* ---------- Page-load entrance animations ---------- */
@keyframes v2-fade-down {
  from { opacity: 0; transform: translateY(-26px); }
  to { opacity: 1; transform: none; }
}
@keyframes v2-fade-up {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: none; }
}
@keyframes v2-fade-left {
  from { opacity: 0; transform: translateX(-48px); }
  to { opacity: 1; transform: none; }
}
/* Entrances wait for the curtain (lifts at 0.55s + 0.55s) */
.rks2-header { animation: v2-fade-down 0.7s 0.7s ease both; }
.v2-hero h1,
.v2-pagehero h1 { animation: v2-fade-left 0.9s 0.85s ease both; }
.v2-hero-social { animation: v2-fade-up 0.8s 1.3s ease both; }
@media (prefers-reduced-motion: reduce) {
  .rks2-header, .v2-hero h1, .v2-pagehero h1, .v2-hero-social { animation: none; }
}

/* ---------- Header ---------- */
.rks2-header {
  position: absolute; top: 30px; left: 30px; z-index: 100;
  width: calc(100% - 60px);
  background: rgba(0,0,0,0.45); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-radius: 0;
  transition: background-color 0.3s ease;
}
/* Sticky state (added via scroll script): same floating box, pinned while scrolling */
.rks2-header.is-stuck {
  position: fixed; top: 30px; left: 30px; width: calc(100% - 60px);
  background: #23201B; -webkit-backdrop-filter: none; backdrop-filter: none;
}
.rks2-header.is-stuck ul.rks2-dropdown { background: #23201B; -webkit-backdrop-filter: none; backdrop-filter: none; }
/* Compact sticky sizes: smaller logo, menu and button (button matches menu size) */
.rks2-header-inner { transition: height 0.3s ease; }
.rks2-logo-img { transition: height 0.3s ease; }
.rks2-header.is-stuck .rks2-header-inner { height: 88px; }
.rks2-header.is-stuck .rks2-logo-img { height: 84px; }
.rks2-header.is-stuck .rks2-nav .nav > li > a { font-size: 15px; }
.rks2-header.is-stuck .rks2-cta { font-size: 15px; padding: 10px 26px 7px; }
.rks2-header-inner {
  display: flex; align-items: center; gap: 34px;
  height: 112px; padding: 0 30px; max-width: 1440px; margin: 0 auto;
}
.rks2-logo { display: block; }
.rks2-logo-img { height: 108px; width: auto; display: block; }
.v2-footer .rks2-logo-img { height: 96px; }
.v2-footer .rks2-logo, .v2-footer .rks2-logo:hover { color: #EEE9DF; }
.rks2-logo span { color: #BE6A4A; margin-left: 2px; }
.rks2-nav { margin-left: auto; }
.rks2-nav .nav > li > a {
  font-size: 15px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  line-height: 1.2;
  color: #EEE9DF; padding: 10px 16px;
  position: relative;
}
/* Straight overline above the word on hover/active
   (right side compensates the trailing letter-spacing so the line sits centered) */
.rks2-nav .nav > li > a::before,
.rks2-dropdown li a::before {
  content: ""; position: absolute; top: 2px; left: 16px; right: 18px; height: 1px;
  background: #BE6A4A; opacity: 0; transform: translateY(4px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.rks2-dropdown li a::before { top: 2px; left: 22px; right: 24px; }
.rks2-nav .nav > li > a:hover::before,
.rks2-nav .nav > li.active > a::before,
.rks2-dropdown li a:hover::before {
  opacity: 1; transform: translateY(0);
}
.rks2-nav .nav > li > a:hover, .rks2-nav .nav > li.active > a { color: #BE6A4A; }
/* Readable chevron (replaces the tiny ▾ glyph) */
.rks2-caret { font-size: 0; }
.rks2-caret::after {
  content: ""; display: inline-block;
  width: 7px; height: 7px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 6px; vertical-align: 3px;
  transition: transform 0.2s ease;
}
.rks2-nav .has-dropdown:hover .rks2-caret::after { transform: rotate(225deg); vertical-align: 0; }
.rks2-cta {
  border: 1px solid rgba(238,233,223,0.5); color: #EEE9DF;
  padding: 10px 30px 7px 30px; font-size: 15px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; line-height: 1.2;
}
.rks2-cta::before { background: #BE6A4A; }
.rks2-cta:hover { background-color: #BE6A4A; border-color: #BE6A4A; color: #EEE9DF; }

/* Dropdown */
.rks2-nav .has-dropdown { position: relative; }
.rks2-nav .has-dropdown > ul.rks2-dropdown { padding: 18px 0 12px; }
ul.rks2-dropdown {
  position: absolute; top: 100%; left: 0; min-width: 260px;
  background: rgba(0,0,0,0.6); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  padding: 18px 0 12px; margin: 0; list-style: none;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: all 0.2s ease;
}
.rks2-nav .has-dropdown:hover .rks2-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.rks2-dropdown li a {
  display: inline-block; padding: 10px 22px;
  font-family: 'Geologica', sans-serif;
  font-size: 15px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  line-height: 1.2;
  color: #EEE9DF; transition: color 0.2s ease;
  position: relative;
}
.rks2-dropdown li a:hover { background: transparent; color: #BE6A4A; }

/* Mobile menu */
.rks2-burger {
  margin: 0 0 0 auto; background: none; border: 0; padding: 10px; cursor: pointer;
  display: flex; flex-direction: column; justify-content: center; gap: 6px;
  align-self: center;
}
.rks2-burger span {
  width: 26px; height: 2px; background: #EEE9DF; display: block;
  transition: transform 0.3s ease, opacity 0.2s ease;
}
/* Burger turns into an X while the menu is open */
body.rks2-menu-open .rks2-burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
body.rks2-menu-open .rks2-burger span:nth-child(2) { opacity: 0; }
body.rks2-menu-open .rks2-burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
/* Transparent: inherits the header's own background so bar & panel are one surface
   (and turn #23201B together when sticky) */
.rks2-mobile-menu { display: none; background: transparent; }
body.rks2-menu-open .rks2-mobile-menu { display: block; }
.rks2-mobile-menu ul { list-style: none; margin: 0; padding: 20px 28px; }
.rks2-mobile-menu ul ul { display: none; padding: 4px 0 0px 20px; }
.rks2-mm-parent.open > ul { display: block; }
.rks2-mobile-menu a, .rks2-mm-toggle {
  display: inline-block; position: relative; padding: 10px 0;
  font-family: 'Comfortaa', sans-serif;
  font-size: 15px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  line-height: 1.2; color: #EEE9DF; transition: color 0.2s ease;
}
.rks2-mm-toggle { background: none; border: 0; margin: 0; cursor: pointer; }
.rks2-mm-toggle:hover { color: #BE6A4A; }
.rks2-mm-parent.open .rks2-caret::after { transform: rotate(225deg); vertical-align: 0; }
/* Quote button at the bottom of the burger menu — mobile only.
   High-specificity overrides so the generic .rks2-mobile-menu a rules don't strip its padding/hover */
.rks2-mm-cta, .rks2-mobile-menu a.rks2-mm-cta { display: none; }
.rks2-mobile-menu a.rks2-mm-cta { padding: 10px 30px 7px; letter-spacing: 0.1em; }
.rks2-mobile-menu a.rks2-mm-cta::before {
  top: 0; left: 0; right: 0; height: 100%;
  background: #BE6A4A; opacity: 1;
  transform: scaleY(0); transform-origin: bottom center;
  transition: transform 0.35s cubic-bezier(0.65, 0, 0.35, 1);
}
.rks2-mobile-menu a.rks2-mm-cta:hover { color: #EEE9DF; }
.rks2-mobile-menu a.rks2-mm-cta:hover::before { transform: scaleY(1); }
@media (max-width: 549px) {
  .rks2-mm-cta { display: inline-block !important; margin: 4px 28px 26px; }
}

/* Sub-items: same font & weight as the rest of the burger menu */
.rks2-mobile-menu ul ul a { font-family: 'Comfortaa', sans-serif; font-weight: 700; }
/* Terracotta divider under the bar whenever the burger menu is open */
body.rks2-menu-open .rks2-header .rks2-header-inner { border-bottom: 1px solid #BE6A4A; }
.rks2-mobile-menu a::before {
  content: ""; position: absolute; top: 2px; left: 0; right: 2px; height: 1px;
  background: #BE6A4A; opacity: 0; transform: translateY(4px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.rks2-mobile-menu a:hover { color: #BE6A4A; }
.rks2-mobile-menu a:hover::before { opacity: 1; transform: translateY(0); }
@media (min-width: 1025px) { .rks2-burger, .rks2-mobile-menu { display: none !important; } }
/* Tablets up to 1024px (iPad Pro, Surface Pro 7, Zenbook): burger navigation */
@media (max-width: 1024px) {
  .rks2-nav { display: none !important; }
  .rks2-burger { display: flex !important; }
  body.rks2-menu-open .rks2-mobile-menu { display: block !important; }
}
@media (min-width: 550px) and (max-width: 1024px) {
  .rks2-header-inner .rks2-cta { display: inline-flex !important; align-items: center; margin-left: auto; align-self: center; }
  .rks2-burger { margin: 0; }
  .rks2-header-inner { gap: 14px; }
}

/* ---------- Hero ---------- */
.v2-hero { position: relative; padding: 0; background: #3E3A33; }
.v2-hero-video {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  width: 100%; height: 100%; object-fit: cover; object-position: center 60%;
}
.v2-hero-overlay {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(100deg, rgba(35,32,27,0.82) 15%, rgba(35,32,27,0.35) 60%, rgba(35,32,27,0.15) 100%);
}
.v2-hero .section-content {
  /* header bottom = 30px offset + 112px header height = 142px (+20px breathing room) */
  padding: 162px 0 0;
  min-height: 100vh; min-height: 100svh;
  display: flex; align-items: center;
}
.v2-hero .container { width: 100%; }
/* Vertical social bar, far right, opposite the hero text */
.v2-hero-social {
  position: absolute; right: 60px; top: 50%;
  transform: translateY(calc(-50% + 66px)); /* centered in the space below the header, like the content */
  display: flex; flex-direction: column; align-items: center; gap: 16px;
  z-index: 5;
}
.v2-social-label {
  /* same style as the hero eyebrow, rotated vertically */
  writing-mode: vertical-rl; text-orientation: mixed;
  font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
  color: #EEE9DF; opacity: 0.85;
}
.v2-social-line { width: 1px; height: 48px; background: rgba(238,233,223,0.4); }
.v2-hero-social a {
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,0.45); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-radius: 0;
  color: #EEE9DF; transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
.v2-hero-social a svg { width: 20px; height: 20px; }
.v2-hero-social a:hover { color: #EEE9DF; background: #BE6A4A; transform: translateY(-2px); }
@media (max-width: 1024px) { .v2-hero-social { display: none; } }
.v2-hero h1 { color: #EEE9DF; margin-bottom: 20px; }
.v2-hero-lead { color: rgba(238,233,223,0.88); font-size: 16px; max-width: 640px; }
.v2-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 28px; margin-top: 30px; }
.v2-hero-actions .button { margin: 0; }
.v2-link-arrow {
  color: #EEE9DF; font-weight: 600; font-size: 14px; letter-spacing: 0.04em;
  border-bottom: 1px solid rgba(238,233,223,0.4); padding-bottom: 4px;
}
.v2-link-arrow:hover { color: #BE6A4A; border-color: #BE6A4A; }
/* ---------- Inner page hero ---------- */
.v2-pagehero { position: relative; padding: 0; background: #3E3A33; }
.v2-pagehero-bg {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background-size: cover; background-position: center;
}
.v2-pagehero .section-content { padding: 170px 0 70px; }
.v2-pagehero h1 { color: #EEE9DF; font-size: 2.8em; margin-bottom: 18px; }
.v2-breadcrumb {
  font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(238,233,223,0.65); margin-bottom: 20px;
}
.v2-breadcrumb a { color: rgba(238,233,223,0.65); }
.v2-breadcrumb a:hover { color: #BE6A4A; }

/* ---------- Catalog (filters + grid) ---------- */
.v2-catalog { padding: 80px 0; }
.v2-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 50px; }
.v2-filter-btn {
  font-family: 'Comfortaa', sans-serif; font-size: 15px; font-weight: 700;
  color: #3E3A33; background: transparent; border: 1px solid #3E3A33;
  padding: 10px 30px 7px 30px; cursor: pointer; letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: all 0.2s ease;
}
.v2-filter-btn:hover { background: #D1D2C8; }
.v2-filter-btn.is-active { background: #3E3A33; color: #EEE9DF; }
.v2-catalog-grid .col { margin-bottom: 14px; }
.v2-price-quote { color: #6E7150; font-size: 1em; }
.v2-catalog-note {
  color: #6b665c; font-size: 0.93em; border-top: 1px solid #D8D2C2;
  padding-top: 22px; margin: 16px 0 0;
}

/* ---------- CTA band ---------- */
/* ---------- Catalog pages (xylina/metallika): solid black header + light split hero ---------- */
.page-xylina .rks2-header, .page-metallika .rks2-header, .page-product .rks2-header {
  background: #23201B; -webkit-backdrop-filter: none; backdrop-filter: none;
}
.v2-pagehero-light { background: #EEE9DF; padding: 0; }
.v2-pagehero-light .section-content { padding: 222px 0 0; width: 100%; }
.v2-pagehero-light .row:first-child > .col { padding-bottom: 0; }
.v2-pagehero-light .v2-breadcrumb, .v2-pagehero-light .v2-breadcrumb a { color: #8a857a; }
.v2-pagehero-light h1 { color: #3E3A33; font-size: 2.8em; margin-bottom: 18px; }
.v2-pagehero-light .v2-hero-lead { color: #55524a; margin-bottom: 0; max-width: 520px; }
.v2-pagehero-light .v2-hero-lead + .v2-hero-lead { margin-top: 16px; }
/* Collage keeps the homepage proportions; no extra top offset inside the hero */
.v2-pagehero-light .v2-collage { margin-top: 0; }
.v2-pagehero-light .v2-divider { margin-top: 80px; }

/* ---------- Dark split hero: charcoal text half + full-height photo half ---------- */
.v2-pagehero-split { position: relative; display: block; background: #6E7150; padding: 0; overflow: hidden; }
.v2-pagehero-split .section-content { padding: 222px 0 80px; width: 100%; }
.v2-pagehero-split .row > .col { padding-bottom: 0; }
.v2-pagehero-split h1 { color: #EEE9DF; font-size: 2.8em; margin-bottom: 18px; }
.v2-pagehero-split .v2-hero-lead { color: rgba(238,233,223,0.85); margin-bottom: 0; max-width: 640px; }
.v2-pagehero-split .v2-hero-lead + .v2-hero-lead { margin-top: 16px; }
.v2-split-media { position: absolute; top: 0; right: 0; bottom: 0; width: 44%; }
.v2-split-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Desktop: true flex split — text pane with exactly 30px breathing left & right, photo pane 44% */
@media (min-width: 1025px) {
  .v2-pagehero-split { display: flex; align-items: stretch; }
  .v2-pagehero-split .section-content { flex: 0 0 56%; padding: 222px 80px 80px; }
  .v2-pagehero-split .container { max-width: none; padding: 0; margin: 0; }
  .v2-pagehero-split .row { margin: 0 !important; }
  .v2-pagehero-split .row > .col { flex: 0 0 100%; max-width: 100%; padding: 0; }
  .v2-pagehero-split .v2-hero-lead { max-width: none; }
  .v2-split-media { position: static; width: 44%; flex: 0 0 44%; }
}
@media (max-width: 1024px) {
  .v2-pagehero-split .section-content { padding: 172px 0 40px; }
  /* Text column spans the full width (the large-7 cap is desktop-only) */
  .v2-pagehero-split .row > .col { flex-basis: 100%; max-width: 100%; }
  .v2-pagehero-split .v2-hero-lead { max-width: none; }
  /* The photo keeps the same side padding as the sections below */
  .v2-split-media { position: static; width: auto; height: 340px; margin: 0 40px 60px; }
  /* Cards carry the tablet 40px col padding — pull the grid up so the first row sits 30 below the filters */
  .v2-catalog .v2-catalog-grid { margin-top: -4px; }
}
@media (max-width: 549px) {
  .v2-pagehero-split .section-content { padding: 152px 0 30px; }
  /* Stacked filters: full 36px before the first card (cancels the tablet -4 pull) */
  .v2-catalog .v2-catalog-grid { margin-top: 36px; }
  .v2-split-media { height: 260px; margin: 0 23px 50px; }
}

/* ---------- Product page: gallery + info hero, interior section ---------- */
.v2-product-hero { background: #EEE9DF; padding: 0; }
.v2-product-hero .section-content { padding: 190px 0 80px; width: 100%; }
.v2-product-hero .row:first-child > .col { padding-bottom: 0; }
.v2-product-hero .v2-breadcrumb, .v2-product-hero .v2-breadcrumb a { color: #8a857a; }
.v2-product-hero .v2-breadcrumb { margin-bottom: 30px; }
.v2-pg-main { position: relative; }
.v2-pg-main img { display: block; width: 100%; height: 430px; object-fit: cover; }
.v2-pg-thumbs { display: flex; gap: 10px; margin-top: 10px; }
.v2-pg-thumbs button {
  flex: 1 1 0; min-width: 0; margin: 0; padding: 0;
  border: 2px solid transparent; background: none; cursor: pointer;
  opacity: 0.75; transition: opacity 0.2s ease, border-color 0.2s ease;
}
.v2-pg-thumbs button img { display: block; width: 100%; height: 82px; object-fit: cover; }
.v2-pg-thumbs button:hover, .v2-pg-thumbs button.is-active { opacity: 1; border-color: #BE6A4A; }
.v2-pinfo h1 { font-size: 2.4em; margin-bottom: 14px; }
.v2-pinfo-price {
  font-family: 'Geologica', sans-serif; font-size: 26px; font-weight: 600;
  color: #BE6A4A; margin-bottom: 20px;
}
.v2-pinfo-price span { font-family: 'Comfortaa', sans-serif; font-size: 13px; font-weight: 400; color: #8a857a; }
.v2-pinfo-text { color: #55524a; margin-bottom: 24px; }
.v2-pinfo-specs { list-style: none; margin: 0 0 30px; padding: 0; }
.v2-pinfo-specs li {
  display: flex; justify-content: space-between; gap: 20px;
  padding: 10px 0; margin-left: 0; font-size: 15px;
  border-bottom: 1px solid #D8D2C2;
}
.v2-pinfo-specs li:first-child { border-top: 1px solid #D8D2C2; }
.v2-pinfo-specs span { color: #8a857a; flex: 0 0 auto; }
.v2-pinfo-specs strong { color: #3E3A33; font-weight: 600; text-align: right; }
.v2-pinfo-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.v2-pinfo-actions .button { margin: 0; }
/* Full-width variant (12/12): tall gallery on top, then title/text | specs+actions side by side */
/* Renders are 16:9 — keep the native ratio so nothing is cropped on desktop/laptop */
.v2-pg-wide .v2-pg-main > img { height: auto; aspect-ratio: 16 / 9; }
/* Bar under the photo: small thumbnails left, prev/next arrows right */
.v2-pg-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 10px; }
.v2-pg-wide .v2-pg-thumbs { margin: 0; gap: 8px; }
.v2-pg-wide .v2-pg-thumbs button { flex: 0 0 auto; width: 96px; }
.v2-pg-wide .v2-pg-thumbs button img { height: 64px; width: 100%; }
.v2-pg-nav { display: flex; gap: 8px; flex: 0 0 auto; }
.v2-pg-nav button {
  width: 44px; height: 44px; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center;
  border: 1px solid #3E3A33; background: transparent; color: #3E3A33; cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.v2-pg-nav button:hover { background: #BE6A4A; border-color: #BE6A4A; color: #fff; }
.v2-pinfo-row > .col { padding-top: 10px; } /* + the gallery col's 30px Flatsome padding-bottom = 40px */
.v2-pinfo-wide { display: block; }
.v2-pinfo-wide .v2-pinfo-head { max-width: none; }
/* Specs as a glass card over the photo (bottom-right), like the Prokat page hero card —
   darker tint than that one so the rows stay readable on bright renders */
.v2-specs-card {
  position: absolute; right: 24px; bottom: 24px; z-index: 3; width: 400px; padding: 6px 22px 10px;
  background: rgba(35,32,27,0.62);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid rgba(238,233,223,0.3);
}
.v2-specs-card .v2-pinfo-specs { margin: 0; }
.v2-specs-card .v2-pinfo-specs li { font-size: 14px; padding: 11px 0; border-color: rgba(238,233,223,0.22); }
.v2-specs-card .v2-pinfo-specs li:first-child { border-top: 0; }
.v2-specs-card .v2-pinfo-specs span { color: rgba(238,233,223,0.72); }
.v2-specs-card .v2-pinfo-specs strong { color: #EEE9DF; }
.v2-pinfo-wide .v2-pinfo-text { margin-bottom: 30px; }
.v2-pinfo-wide .v2-pinfo-specs { margin-bottom: 0; }
/* Interior section (same cream as the hero — one breathing is enough) */
.v2-pinterior { padding: 80px 0; }
.v2-product-hero + .v2-pinterior { padding-top: 0; }
.v2-pinterior .row:first-child > .col { padding-bottom: 0; }
.v2-pinterior-head { text-align: center; }
.v2-pinterior-head .v2-num-label { justify-content: center; }
.v2-pinterior-head h2 { margin-bottom: 0; }
.v2-pinterior .row:last-child { margin-top: 30px; }
.v2-pint-photo { margin: 0; }
.v2-pint-photo img { display: block; width: 100%; height: 380px; object-fit: cover; }
.v2-pint-photo figcaption { font-size: 13px; color: #8a857a; margin-top: 10px; }
.v2-pint-text { margin-top: 20px; color: #55524a; margin-bottom: 0; }
@media (max-width: 1024px) {
  .v2-product-hero .section-content { padding: 150px 0 60px; }
  .v2-pinfo { margin-top: 10px; }
  .v2-pg-wide .v2-pg-main > img { height: auto; aspect-ratio: 16 / 9; }
  .v2-pg-wide .v2-pg-thumbs button { width: 80px; }
  .v2-pg-wide .v2-pg-thumbs button img { height: 54px; }
  .v2-pinfo-wide { display: block; margin-top: 0; }
  .v2-pinfo-wide .v2-pinfo-head { max-width: none; }
  /* Tablets (incl. iPad Pro / Surface) & phones: the card would hide the photo — it goes below
     the thumbnails as a dark block: photo → thumbs/arrows → specs card */
  .v2-pg-wide { display: flex; flex-direction: column; }
  .v2-pg-wide .v2-pg-main { display: contents; }
  .v2-pg-wide .v2-pg-main > img { order: 1; }
  .v2-pg-wide .v2-pg-bar { order: 2; }
  .v2-specs-card { order: 3; position: static; width: auto; margin-top: 20px; padding: 4px 20px 8px; }
  .v2-pinfo-row > .col { padding-top: 40px; } /* tablet cols have no padding-bottom, so 40 is the whole gap */
  .v2-pinterior .row:last-child > .col { padding-top: 0; }
  .v2-pinterior .row:last-child > .col + .col { padding-top: 40px; }
}
@media (max-width: 549px) {
  .v2-product-hero .section-content { padding: 130px 0 50px; }
  .v2-pg-main img { height: 300px; }
  .v2-pg-wide .v2-pg-main > img { height: auto; aspect-ratio: 16 / 9; }
  .v2-pg-thumbs button img { height: 64px; }
  .v2-specs-card { margin-top: 16px; padding: 4px 16px 8px; }
  /* Phones: thumbs stretch across the width; arrows are redundant there (tap thumbs) */
  .v2-pg-wide .v2-pg-thumbs { flex: 1 1 100%; gap: 6px; }
  .v2-pg-wide .v2-pg-thumbs button { flex: 1 1 0; width: auto; }
  .v2-pg-wide .v2-pg-thumbs button img { height: 56px; }
  .v2-pg-nav { display: none; }
  .v2-pinfo-row > .col { padding-top: 0; } /* mobile cols already carry 30px padding-bottom */
  .v2-pint-photo img { height: 260px; }
  .v2-pinterior .row:last-child > .col + .col { padding-top: 30px; }
}

/* Catalog filters (dropdowns) */
.v2-catalog .row:first-child > .col { padding-bottom: 0; }
.v2-filterbar { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 30px; }
.v2-filterbar .v2-select { width: 250px; margin-bottom: 0; }
/* Boxed filter style (the underline look read too much like form fields) */
.v2-filterbar .v2-select-btn {
  border: 1px solid #3E3A33; border-radius: 0;
  padding: 0 14px; height: 46px;
  font-size: 14px; color: #3E3A33;
}
.v2-filterbar .v2-select-btn span { color: #3E3A33; }
.v2-filterbar .v2-select.open .v2-select-btn { border-color: #BE6A4A; }
.v2-filterbar .v2-select-list { border: 1px solid #3E3A33; margin-top: 6px; }
.v2-catalog-grid { margin-top: 36px; }

/* Below the grid: the cards' own 30px column padding is the gap — same rhythm as the homepage block */
.v2-catalog .v2-products-more { margin-top: 0; }
/* When the divider closes the section, the section padding provides the gap */
.v2-catalog .v2-products-more .v2-divider:last-child { margin-bottom: 0; }
/* Flatsome adds 14px margin under grid cols — the 30px col padding is the whole gap */
.v2-catalog-grid > .col { margin-bottom: 0; }
/* Equal-height cards per row (a wrapped title must not leave uneven gaps below the row) */
.v2-catalog-grid .col-inner { height: 100%; }
.v2-catalog-grid .v2-product { height: 100%; display: flex; flex-direction: column; align-items: flex-start; }
.v2-catalog-grid .v2-product .v2-product-img { width: 100%; }
.v2-catalog-grid .v2-product .v2-product-link { margin-top: auto; }

/* Pagination — +6px optical compensation: the neighbours' gaps include the text's line-height air */
.v2-pagination { display: flex; justify-content: center; gap: 10px; margin-top: 36px; }
.v2-page-btn {
  width: 42px; height: 42px; margin: 0; padding: 0;
  border: 1px solid #3E3A33; background: transparent; color: #3E3A33;
  font-family: 'Comfortaa', sans-serif; font-size: 15px; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.v2-page-btn:hover, .v2-page-btn.is-active { background: #3E3A33; color: #EEE9DF; }
.v2-page-btn.is-active { cursor: default; }
.v2-catalog-empty { color: #6b665c; margin: 0 0 20px; }
@media (max-width: 1024px) {
  .v2-pagehero-light .section-content { padding: 172px 0 0; }
  .v2-pagehero-light .v2-divider { margin-top: 60px; }
}
@media (max-width: 549px) {
  .v2-pagehero-light .section-content { padding: 152px 0 0; }
  .v2-pagehero-light .v2-divider { margin-top: 50px; }
  .v2-filterbar { gap: 14px; }
  .v2-filterbar .v2-select { width: 100%; }
}

/* ---------- Taller hero, content anchored at the bottom (Prokat + Εταιρεία + Επικοινωνία) ---------- */
.page-prokat .v2-pagehero .section-content,
.page-etairia .v2-pagehero .section-content,
.page-epikoinonia .v2-pagehero .section-content {
  display: flex; align-items: flex-end;
  min-height: 560px; padding: 160px 0 60px;
}
.page-prokat .v2-pagehero .container,
.page-etairia .v2-pagehero .container,
.page-epikoinonia .v2-pagehero .container { width: 100%; }
.page-prokat .v2-pagehero .v2-hero-lead,
.page-etairia .v2-pagehero .v2-hero-lead,
.page-epikoinonia .v2-pagehero .v2-hero-lead { margin-bottom: 0; }
/* The social bar is positioned for the homepage's 100vh hero (centred, nudged +66px under
   the header). This hero is a fixed 560px band, so that nudge pushed the bar past its bottom
   edge and into the olive section. Anchor it to the same 60px corner inset the Prokat hero
   card uses — it now ends level with the hero text. */
@media (min-width: 1025px) {
  .page-etairia .v2-hero-social,
  .page-epikoinonia .v2-hero-social { top: auto; bottom: 60px; transform: none; }
}
.v2-pagehero-btn { margin: 30px 0 0; }
/* Glass card bottom-right: the best-selling model, linking to its category */
html { scroll-behavior: smooth; }
.v2-hero-pop {
  position: absolute; right: 60px; bottom: 60px; z-index: 5;
  display: block; width: 400px; padding: 20px 22px;
  background: rgba(238,233,223,0.12);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid rgba(238,233,223,0.28);
  color: #EEE9DF;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
.v2-hero-pop:hover { background: rgba(238,233,223,0.2); border-color: rgba(238,233,223,0.45); transform: translateY(-2px); color: #EEE9DF; }
.v2-hero-pop-tag {
  display: flex; align-items: center; gap: 10px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: #EEE9DF; opacity: 0.9; margin-bottom: 12px;
}
.v2-hero-pop-tag .v2-dash { background: #BE6A4A; }
.v2-hero-pop-body { display: flex; align-items: center; gap: 14px; }
.v2-hero-pop-body img { width: 78px; height: 78px; object-fit: cover; flex: 0 0 auto; }
.v2-hero-pop-info { flex: 1 1 auto; min-width: 0; }
.v2-hero-pop-info strong {
  display: block; font-family: 'Geologica', sans-serif; font-weight: 600;
  font-size: 19px; line-height: 1.25; color: #EEE9DF;
}
.v2-hero-pop-price { display: block; font-size: 16px; margin-top: 4px; color: #EEE9DF; }
.v2-hero-pop-price em { font-style: normal; font-size: 12px; opacity: 0.7; }
.v2-hero-pop-arrow { flex: 0 0 auto; transition: transform 0.3s ease; }
.v2-hero-pop:hover .v2-hero-pop-arrow { transform: translateX(4px); }
/* Tablet: the text column is full-width, so the card drops below the content, aligned right
   (Flatsome's .section is a flex row — block restores normal stacking so the card sits underneath) */
@media (max-width: 1024px) {
  /* CTA band stacked: text → 30px → buttons (kill the legacy 20px inner margin and the 40px col padding) */
  .v2-ctaband .row > .col + .col { padding-top: 30px; }
  .v2-ctaband .v2-ctaband-btn { margin-top: 0; }
  .page-prokat .v2-pagehero .section-content,
  .page-etairia .v2-pagehero .section-content,
  .page-epikoinonia .v2-pagehero .section-content { min-height: 0; padding: 150px 0 50px; }
  /* Card pinned top-right, tucked under the floating header */
  .v2-hero-pop { top: 132px; right: 30px; bottom: auto; width: 290px; padding: 12px 14px; }
  .v2-hero-pop-body img { width: 54px; height: 54px; }
  .v2-hero-pop-info strong { font-size: 15px; }
  .v2-hero-pop-price { font-size: 13px; }
  .v2-hero-pop-tag { font-size: 10px; margin-bottom: 8px; }
}
@media (max-width: 1024px) {
  .page-prokat .v2-pagehero .section-content,
  .page-etairia .v2-pagehero .section-content,
  .page-epikoinonia .v2-pagehero .section-content { min-height: 520px; padding: 150px 0 50px; }
}
@media (max-width: 549px) {
  /* Taller photo + the card sits below the button, full width */
  .page-prokat .v2-pagehero,
  .page-etairia .v2-pagehero,
  .page-epikoinonia .v2-pagehero { display: block; padding-bottom: 40px; }
  .page-prokat .v2-pagehero .section-content,
  .page-etairia .v2-pagehero .section-content,
  .page-epikoinonia .v2-pagehero .section-content { min-height: 540px; padding: 150px 0 40px; }
  .v2-hero-pop { position: static; width: auto; margin: 0 23px; }
}

/* ---------- Prokat page: category banners + why-us ---------- */
.v2-choice { padding: 80px 0; }
.v2-choice .row:first-child > .col { padding-bottom: 0; }
.v2-choice .v2-num-label { margin-bottom: 30px; }
.v2-banner { position: relative; display: block; overflow: hidden; }
.v2-banner img { display: block; width: 100%; height: 460px; object-fit: cover; transition: transform 0.7s ease; }
.v2-banner-overlay {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(to top, rgba(35,32,27,0.92), rgba(35,32,27,0) 78%);
}
.v2-banner-body { position: absolute; left: 30px; right: 30px; bottom: 30px; display: block; }
.v2-banner h2, .v2-banner .h2 { color: #EEE9DF; margin-bottom: 10px; }
.v2-banner p:not(.h2) { color: rgba(238,233,223,0.85); margin-bottom: 20px; max-width: 460px; }
.v2-banner .button { margin: 0; }
/* Hovering anywhere on the banner zooms the photo and fills the button */
.v2-banner:hover img { transform: scale(1.05); }
/* Same trick as .button:hover — the bg snaps to the fill color only after the curtain finishes */
.v2-banner:hover .button {
  transition: color 0.35s ease, border-color 0.35s ease, transform 0.3s ease, background-color 0s linear 0.35s;
}
.v2-banner:hover .button::before { transform: scaleY(1); }
.v2-banner:hover .button.primary { background-color: #3E3A33; border-color: #3E3A33; }
.v2-banner:hover .button.v2-btn-green { background-color: #3E3A33; color: #EEE9DF; border-color: #3E3A33; }
/* Why-us: icon cards on a soft olive tint (distinct from the homepage's numbered steps) */
.v2-perks { padding: 80px 0; }
/* Same cream bg as the banners above / the boxed FAQ below — one section's breathing is enough */
.v2-choice + .v2-perks { padding-top: 0; }
.v2-perks + .v2-faq-boxed { padding-top: 0; }
.v2-catalog + .v2-faq-boxed { padding-top: 0; }
.v2-perks .row:first-child > .col { padding-bottom: 0; }
.v2-perks .row:first-child .col-inner { text-align: center; }
.v2-perks .row:first-child .v2-num-label { justify-content: center; }
.v2-perks .row:first-child h2 { margin-bottom: 0; }
.v2-perks-row { margin-top: 30px; }
.v2-perk {
  display: flex; gap: 18px; align-items: flex-start;
  background: rgba(110,113,80,0.09);
  padding: 26px; height: 100%;
}
.v2-perk-icon {
  flex: 0 0 auto; width: 46px; height: 46px;
  background: #6E7150; color: #EEE9DF;
  display: flex; align-items: center; justify-content: center;
}
.v2-perk .h4 { margin-bottom: 6px; }
.v2-perk p:not(.h4) { margin-bottom: 0; font-size: 0.95em; color: #55524a; }
/* Contact hero (consultation with model & samples): keep faces and the table in the band */
.page-epikoinonia .v2-pagehero-bg { background-position: center 60%; }
/* Hero photo (worker on timber frame): focus top-centre of the frame */
.page-prokat .v2-pagehero-bg { background-position: center top; }
/* 2×2 grid: the first pair keeps its 30px bottom gap (the global last-row rule would kill it) */
.section.v2-perks .v2-perks-row > .col { padding-bottom: 30px; }
/* Only the grid's last pair drops it — on mobile the cards stack, so just the very last one */
@media (min-width: 550px) {
  .section.v2-perks .v2-perks-row > .col:nth-last-child(-n+2) { padding-bottom: 0; }
}

/* FAQ variant for the Prokat page: no photo backdrop, outlined accordion cards + photo column */
.v2-faq.v2-faq-boxed { background: none; }
.v2-faq.v2-faq-boxed::before { display: none; }
.v2-faq-boxed .v2-faq-head { text-align: center; }
.v2-faq-boxed .v2-faq-head .v2-num-label { justify-content: center; }
.v2-faq-boxed .v2-faq-head .h2 { margin-bottom: 0; }
.v2-faq-boxed .row:first-child > .col { padding-bottom: 0; }
.v2-faq-boxed .row:last-child { margin-top: 30px; }
.v2-faq-media { height: 100%; }
.v2-faq-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Desktop: the photo is absolutely positioned so the questions column dictates the row height */
@media (min-width: 1025px) {
  .v2-faq-media { position: relative; }
  .v2-faq-media img { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
}
@media (max-width: 1024px) {
  .v2-faq-media { height: auto; margin-top: 30px; }
  .v2-faq-media img { height: 300px; }
}
.v2-faq-boxed .v2-faq-item,
.v2-faq-boxed .v2-faq-item:first-of-type {
  border: 1px solid #D8D2C2; background: #FFFDF8;
  padding: 20px 24px; margin-bottom: 14px;
}
.v2-faq-boxed .v2-faq-item:last-child { margin-bottom: 0; }
.v2-faq-boxed .v2-faq-item summary { padding-right: 40px; }
.v2-faq-boxed .v2-faq-item summary::after { right: 0; }

.v2-ctaband { background: #6E7150; padding: 80px 0; }
/* CTA band extras (Prokat page): two buttons + overlapping logo-style squares */
.v2-ctaband-btn { display: flex; justify-content: flex-end; gap: 14px; flex-wrap: wrap; }
.v2-ctaband-btn .button { margin: 0; }
/* Cream-outline button that fills terracotta — for dark/olive backgrounds */
.v2-btn-light { border: 1px solid rgba(238,233,223,0.5); color: #EEE9DF; background: transparent; }
.v2-btn-light::before { background: #BE6A4A; }
.v2-btn-light:hover { background-color: #BE6A4A; color: #EEE9DF; border-color: #BE6A4A; }
@media (max-width: 1024px) { .v2-ctaband-btn { justify-content: flex-start; } }
.v2-ctaband h2, .v2-ctaband .h2 { color: #EEE9DF; margin-bottom: 20px; }
.v2-ctaband p:not(.h2) { color: rgba(238,233,223,0.85); margin-bottom: 0; }
.v2-ctaband-btn { text-align: right; }
.v2-ctaband-btn .button { margin-bottom: 0; }
@media (max-width: 1024px) { .v2-ctaband-btn { text-align: left; margin-top: 20px; } }

/* ---------- Alternating image / text rows (Εταιρεία only) ----------
   A shape the homepage does not use, so the About page stops mirroring it. */
.v2-story { padding: 80px 0; }
.v2-story + .v2-story { padding-top: 0; }
.v2-story .row { align-items: center; }
.v2-story .row > .col { padding-bottom: 0; }
/* Reversed row: media moves to the right */
.v2-story-rev .row { flex-direction: row-reverse; }
.v2-story-media img { display: block; width: 100%; height: 440px; object-fit: cover; }
/* Line drawings (κατόψεις) must not be cropped — show them whole on a cream card */
.v2-story-media.is-drawing { background: #E4DFD3; }
.v2-story-media.is-drawing img { object-fit: contain; padding: 30px; }
.v2-story-body { max-width: 520px; }
.v2-story-rev .v2-story-body { margin-left: auto; }
.v2-story-body p { color: #55524a; margin-bottom: 20px; }
.v2-story-body p:last-child { margin-bottom: 0; }
.v2-story-body .button { margin: 30px 0 0; }
@media (max-width: 849px) {
  .v2-story { padding: 60px 0; }
  /* Stacked: media first on both rows, text under it */
  .v2-story-rev .row { flex-direction: row; }
  .v2-story .row > .col + .col { padding-top: 30px; }
  .v2-story-body, .v2-story-rev .v2-story-body { max-width: none; margin-left: 0; }
  .v2-story-media img { height: 320px; }
}
@media (max-width: 549px) {
  .v2-story { padding: 50px 0; }
  .v2-story-media img { height: 240px; }
  .v2-story-media.is-drawing img { padding: 16px; }
}

/* ---------- Photo CTA (Εταιρεία): full-bleed shot, centred content, two buttons ---------- */
.v2-cta-photo { position: relative; background: #23201B; padding: 0; overflow: hidden; }
/* Reuses .v2-pagehero-bg for the image layer; this is its own veil so the hero gradient
   (which is directional) does not fight the centred text */
.v2-cta-photo-veil {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(35,32,27,0.72);
}
.v2-cta-photo .section-content { padding: 100px 0; width: 100%; }
.v2-cta-photo .row > .col { padding-bottom: 0; }
.v2-cta-photo-inner { text-align: center; }
.v2-cta-photo h2, .v2-cta-photo .h2 { color: #EEE9DF; margin-bottom: 20px; }
.v2-cta-photo p:not(.h2):not(.v2-num-label) {
  color: rgba(238,233,223,0.85); max-width: 620px; margin: 0 auto;
}
/* Text → buttons: the 30px of the scale */
.v2-cta-photo-btn {
  display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; margin-top: 30px;
}
.v2-cta-photo-btn .button { margin-bottom: 0; }
@media (max-width: 1024px) { .v2-cta-photo .section-content { padding: 80px 0; } }
@media (max-width: 549px)  { .v2-cta-photo .section-content { padding: 60px 0; } }

/* ---------- Intro ---------- */
.v2-intro { padding: 80px 0; }
/* Homepage company section: photo background behind a soft cream veil */
.page-home-v2 .v2-intro {
  position: relative;
  background: url('./img/bg-section-company.webp') center / cover no-repeat;
}
.page-home-v2 .v2-intro::before {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(255,255,255,0.5);
}
.page-home-v2 .v2-intro .section-content { position: relative; z-index: 1; }
.v2-intro h2 { margin-bottom: 20px; }
.v2-intro-text { font-size: 1.05em; color: #55524a; margin-bottom: 20px; }
.v2-intro .v2-btn-olive { margin-top: 10px; margin-bottom: 0; }

/* ---------- Marquee ---------- */
.v2-marquee { background: #BE6A4A; overflow: hidden; padding: 13px 0; }
.v2-marquee-track { display: flex; white-space: nowrap; animation: v2-scroll 30s linear infinite; }
.v2-marquee-track span {
  /* same style as the hero eyebrow */
  font-family: 'Comfortaa', sans-serif; font-weight: 700; font-size: 12px;
  letter-spacing: 0.22em; text-transform: uppercase; color: #EEE9DF;
}
@keyframes v2-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Category sections with collage ---------- */
.v2-cat { padding: 80px 0; }
.v2-collage { position: relative; padding: 0 40px 56px 0; margin-top: 26px; }
.v2-collage-main {
  display: block; width: 100%; position: relative; z-index: 2;
  height: 440px; object-fit: cover;
}
.v2-collage-small {
  position: absolute; right: 0; bottom: 0; width: 46%; z-index: 3;
  border: 6px solid #EEE9DF;
}
.v2-collage-shape {
  position: absolute; left: -26px; top: -26px; width: 42%; height: 55%;
  background: #BE6A4A; z-index: 1;
}
.v2-collage-right { padding: 0 0 56px 40px; }
.v2-collage-right .v2-collage-small { right: auto; left: 0; }
.v2-collage-right .v2-collage-shape { left: auto; right: -26px; }
.v2-shape-charcoal { background: #3E3A33; }
.v2-cat-text p:not(.h2) { color: #55524a; max-width: none; }
.v2-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 30px; }
.v2-chips span {
  font-size: 13px; font-weight: 600; color: #3E3A33;
  background: #D1D2C8; padding: 8px 16px;
}
.v2-cat-text .button { margin-bottom: 0; }

/* Olive band (metal) — full-width, square corners */
.v2-cat-olive { background: #6E7150; padding: 80px 0; }
.v2-cat-olive h2, .v2-cat-olive .h2, .v2-cat-olive .v2-cat-text p { color: #EEE9DF; }
.v2-cat-olive .v2-collage-small { border-color: #6E7150; }
.v2-chips-dark span { background: rgba(238,233,223,0.14); color: #EEE9DF; }
.v2-btn-light { border: 1px solid #EEE9DF; color: #EEE9DF; }
.v2-btn-light::before { background: #EEE9DF; }
.v2-btn-light:hover { color: #6E7150; border-color: #EEE9DF; }

/* ---------- Featured products ---------- */
.v2-products { padding: 80px 0; }
/* Heading with slider arrows top-right */
.v2-products .row:first-child > .col { padding-bottom: 0; }
.v2-products-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 20px; flex-wrap: wrap;
}
.v2-products-head h2, .v2-products-head .h2 { margin-bottom: 0; }
.v2-slider-nav { display: flex; gap: 10px; }
.v2-slider-btn {
  width: 42px; height: 42px; min-width: 42px; margin: 0; padding: 0;
  border: 1px solid #3E3A33; background: transparent; color: #3E3A33;
  font-size: 17px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.v2-slider-btn:hover { background: #3E3A33; color: #EEE9DF; }

/* Products slider: 4 visible, scrolls by card */
.v2-products-slider {
  display: flex; gap: 24px; overflow-x: auto;
  scroll-snap-type: x mandatory; margin-top: 30px;
  scrollbar-width: none;
}
.v2-products-slider::-webkit-scrollbar { display: none; }
.v2-slide { flex: 0 0 calc((100% - 72px) / 4); scroll-snap-align: start; display: flex; }
.v2-slide .v2-product { width: 100%; }
.v2-product {
  height: 100%; display: flex; flex-direction: column;
  background: #fffdf8; border: 1px solid #E2DDD0;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.v2-product:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(62,58,51,0.12); }
.v2-product-img { position: relative; overflow: hidden; margin-bottom: 18px; }
.v2-product-img img {
  display: block; width: 100%; height: 260px; object-fit: cover;
  transition: transform 0.4s ease;
}
.v2-product:hover .v2-product-img img { transform: scale(1.04); }
/* Card photo is a link to the model page (same target as the button) */
.v2-product-img-link { display: block; color: inherit; }
.v2-product-img-link:hover { color: inherit; }
.v2-product h4, .v2-product .h4, .v2-product .v2-product-price { padding-left: 20px; padding-right: 20px; }
.v2-product .v2-product-link { margin: auto 20px 20px; align-self: flex-start; }
/* Card CTA is a real terracotta button (overrides the old underlined-link styles) */
.button.v2-product-link {
  font-size: 15px; color: #fff; letter-spacing: 0.1em;
  border: 1px solid transparent; border-bottom-width: 1px;
  padding: 10px 30px 7px;
}
.button.v2-product-link:hover { color: #fff; border-color: #3E3A33; }
.v2-product-badge {
  position: absolute; top: 12px; left: 12px;
  background: #3E3A33; color: #EEE9DF;
  font-size: 11px; font-weight: 700; letter-spacing: 0.1em; padding: 5px 10px;
  text-transform: uppercase;
}
.v2-badge-price, .v2-badge-popular { background: #3E3A33; color: #fff; }
.v2-product h4, .v2-product .h4 { font-size: 18px; margin-bottom: 6px; }
.v2-product-price {
  font-family: 'Geologica', sans-serif; font-weight: 700; font-size: 1.15em;
  color: #BE6A4A; margin-bottom: 10px;
}
.v2-product-price span { font-size: 0.65em; font-weight: 400; color: #6b665c; }
.v2-product-link {
  font-size: 13px; font-weight: 600; color: #3E3A33; letter-spacing: 0.03em;
  border-bottom: 1px solid #3E3A33; padding-bottom: 3px;
}
.v2-product-link:hover { color: #BE6A4A; border-color: #BE6A4A; }
.v2-products-more { text-align: center; margin-top: 30px; }
.v2-products-more p { color: #6b665c; font-size: 0.95em; margin-bottom: 0; }
.v2-products-more .v2-divider { margin: 30px 0; }
.v2-products-more .button { margin: 6px 0 0; }

/* ---------- Craft (dark band) ---------- */
.v2-craft { background: #3E3A33; padding: 80px 0; }
.v2-craft h2, .v2-craft .h2 { color: #EEE9DF; }
.v2-craft .row:first-child > .col { padding-bottom: 0; }
.v2-craft-lead { color: rgba(238,233,223,0.75); font-size: 1.1em; max-width: none; margin-bottom: 0; }
.v2-craft-row { margin-top: 30px; }
.v2-craft-row img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
/* Older Safari (<15) has no aspect-ratio — fixed height keeps the same look */
@supports not (aspect-ratio: 3 / 2) {
  .v2-craft-row img { height: 241px; }
}
/* Numbered watermark on each craft image */
.v2-craft-media { position: relative; margin-bottom: 22px; }
/* Soft dark fade at the bottom so the number always reads */
.v2-craft-media::before {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(to top, rgba(35,32,27,0.55), rgba(35,32,27,0) 45%);
  pointer-events: none;
}
.v2-craft-media::after {
  content: attr(data-num);
  position: absolute; right: 16px; bottom: 8px;
  font-family: 'Geologica', sans-serif; font-weight: 600; font-size: 56px; line-height: 1;
  color: rgba(238,233,223,0.95);
  text-shadow: 0 2px 24px rgba(0,0,0,0.55), 0 1px 4px rgba(0,0,0,0.35);
  pointer-events: none;
}
.v2-craft-row h4, .v2-craft-row .h4 { color: #EEE9DF; font-size: 18px; margin-bottom: 8px; }
.v2-craft-row p:not(.h4) { color: rgba(238,233,223,0.65); font-size: 0.9em; margin-bottom: 0; }
.v2-craft-row .v2-divider { margin-top: 30px; }

/* ---------- Gallery (horizontal scroller) ---------- */
.v2-gallery { padding: 80px 0; }
/* 26 + the scroller's 4px top padding = a true 30px gap to the images */
.v2-gallery-head { margin-bottom: 26px; }
.v2-scroll-hint { color: #BE6A4A; font-weight: 400; font-size: 1.1em; margin: 10px 0 0; display: flex; align-items: center; gap: 8px; }
.v2-scroll-hint svg { display: block; }
.v2-scroller {
  display: flex; gap: 16px; overflow-x: auto; padding: 4px 40px 22px;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
}
.v2-scroller::-webkit-scrollbar { height: 6px; }
.v2-scroller::-webkit-scrollbar-track { background: #D8D2C2; }
.v2-scroller::-webkit-scrollbar-thumb { background: #6E7150; }
/* Firefox equivalent of the olive scrollbar above */
.v2-scroller { scrollbar-width: thin; scrollbar-color: #6E7150 #D8D2C2; }
.v2-scroller figure {
  flex: 0 0 340px; margin: 0; scroll-snap-align: start; position: relative; overflow: hidden;
}
.v2-scroller img {
  display: block; width: 100%; height: 420px; object-fit: cover;
  transition: transform 0.4s ease;
}
.v2-scroller figure:hover img { transform: scale(1.04); }
.v2-scroller figcaption {
  position: absolute; left: 14px; bottom: 14px;
  background: #EEE9DF; color: #3E3A33;
  font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; padding: 7px 14px;
}

/* ---------- Process ---------- */
/* The gallery above shares the same cream bg — its 80px bottom padding provides the whole gap */
.v2-process { padding: 80px 0; }
.v2-gallery + .v2-process { padding-top: 0; }
/* Head: no extra col padding, title margin off — the row itself carries the 30px gap */
.v2-process .row:first-child > .col { padding-bottom: 0; }
.v2-process .row:first-child .h2 { margin-bottom: 0; }
.v2-process-row { margin-top: 30px; }
/* Step lines draw in slowly, left to right, when scrolled into view (staggered per step) */
.v2-step { position: relative; padding-top: 24px; height: 100%; }
.v2-step::before {
  content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 2px;
  background: #3E3A33;
  transform: scaleX(0); transform-origin: left center;
  transition: transform 1.6s ease;
  will-change: transform;
}
.v2-step.in-view::before { transform: scaleX(1); }
.v2-process-row > .col:nth-child(2) .v2-step::before { transition-delay: 0.2s; }
.v2-process-row > .col:nth-child(3) .v2-step::before { transition-delay: 0.4s; }
.v2-process-row > .col:nth-child(4) .v2-step::before { transition-delay: 0.6s; }
.v2-step span {
  font-family: 'Geologica', sans-serif; font-weight: 300; font-size: 40px;
  color: #BE6A4A; display: block; margin-bottom: 14px; line-height: 1;
}
.v2-step h4, .v2-step .h4 { font-size: 18px; margin-bottom: 8px; }
.v2-step p:not(.h4) { font-size: 0.9em; color: #6b665c; margin-bottom: 0; }

/* ---------- FAQ ---------- */
.v2-faq {
  padding: 80px 0;
  position: relative;
  background: url('./img/bg-section-faqs.webp') center / cover no-repeat;
}
/* Soft cream veil so the questions stay readable, same treatment as the company section */
.v2-faq::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(255,255,255,0.5); }
.v2-faq .section-content { position: relative; z-index: 1; }
.v2-faq-item { border-bottom: 1px solid #D8D2C2; padding: 22px 4px; }
.v2-faq-item:first-of-type { border-top: 1px solid #D8D2C2; }
.v2-faq-item summary {
  font-family: 'Comfortaa', sans-serif; font-weight: 400; font-size: 1.1em;
  cursor: pointer; list-style: none; position: relative; padding-right: 34px;
}
.v2-faq-item summary::-webkit-details-marker { display: none; }
.v2-faq-item summary::after {
  content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  font-size: 24px; font-weight: 300; color: #BE6A4A;
}
.v2-faq-item[open] summary::after { content: "\2013"; }
.v2-faq-item p { margin: 14px 0 0; font-size: 0.93em; color: #6b665c; max-width: 640px; }

/* ---------- Contact ---------- */
.v2-contact { background: #6E7150; padding: 80px 0; }
.v2-contact h2, .v2-contact .h2, .v2-contact .v2-contact-lead { color: #EEE9DF; }
.v2-contact-lead { opacity: 0.85; }
/* Lead → list: the 30px of the text→element pair */
.v2-contact-list { list-style: none; margin: 30px 0 0; padding: 0; }
ul.v2-contact-list li {
  display: flex; flex-direction: column; gap: 2px;
  /* Flatsome's .col-inner ul li adds 1.3em margin-left — the rows stay flush with the text */
  margin-left: 0;
  padding: 14px 0; border-bottom: 1px solid rgba(238,233,223,0.2);
  color: #EEE9DF; font-size: 16px;
}
/* Same label token as .v2-form label */
.v2-contact-list strong { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.7; }
/* Charcoal hover instead of the site's terracotta: on the olive band terracotta reads at
   ~1.2:1 and the text almost disappears — charcoal holds up (~2.2:1) and is still brand. */
.v2-contact-list a { color: #EEE9DF; transition: color 0.25s ease; }
.v2-contact-list a:hover { color: #3E3A33; }
/* Stacked up to 1024: `.section .row:last-child > .col { padding-bottom: 0 }` removes the gap,
   so the form ends up glued under the contact details. Same 30px fix as the CTA band. */
@media (max-width: 1024px) {
  .v2-contact .row > .col + .col { padding-top: 30px; }
}
.v2-form { background: #EEE9DF; padding: 40px 38px 30px; }
.v2-form label {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em;
  color: #6E7150; margin-bottom: 6px; display: block;
}
.v2-form input, .v2-form select, .v2-form textarea {
  width: 100%; border: 0; border-bottom: 2px solid #C9C4B6; border-radius: 0;
  background: transparent; padding: 10px 2px; font-size: 14px; color: #3E3A33;
  box-shadow: none; margin-bottom: 22px;
}
.v2-form input:focus, .v2-form select:focus, .v2-form textarea:focus {
  border-color: #BE6A4A; background: transparent; box-shadow: none;
}
.v2-form .button { margin-bottom: 0; }

/* ---------- Map (Google embed, full-bleed band) ---------- */
.v2-map { padding: 0; }
.v2-map-embed {
  display: block; width: 100%; height: 420px; border: 0;
  border-top: 1px solid #C4C6B8; border-bottom: 1px solid #C4C6B8;
  /* Slight desaturation so the map sits inside the cream/olive palette */
  filter: grayscale(0.25);
}
@media (max-width: 1024px) { .v2-map-embed { height: 340px; } }
@media (max-width: 549px)  { .v2-map-embed { height: 280px; } }

/* ---------- Quote popup ---------- */
.v2-modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 300; display: none; }
.v2-modal.open { display: flex; align-items: center; justify-content: center; padding: 20px; }
.v2-modal-backdrop {
  /* Tap έξω από το popup = κλείσιμο. Σε iOS Safari χρειάζεται cursor:pointer για να
     παραδοθεί το click σε <div>. */
  cursor: pointer;
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(20,18,15,0.72); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.v2-modal-panel {
  position: relative; background: #EEE9DF;
  width: 100%; max-width: 680px; max-height: 90vh; overflow-y: auto;
  padding: 40px;
  animation: v2-fade-up 0.35s ease both;
}
.v2-modal-panel h3, .v2-modal-panel .h3 { font-size: 2em; letter-spacing: -0.015em; margin-bottom: 28px; }
/* Pre-selected product line (filled automatically from the card the user clicked) */
.v2-modal-product {
  display: inline-block; margin: -14px 0 24px;
  background: #D1D2C8; color: #3E3A33;
  font-size: 13px; font-weight: 600; padding: 8px 16px 6px;
}
.v2-modal-intro { color: #55524a; margin: -6px 0 20px; }
.v2-modal-product strong { color: #6E7150; }
.v2-modal .v2-form { background: transparent; padding: 0; box-shadow: none; }
.v2-form { margin-bottom: 0; }
/* Everything aligns to the same left edge as the titles */
.v2-modal .v2-form .row { display: flex; flex-wrap: wrap; margin: 0 -9px; }
.v2-modal .v2-form .col { padding: 0 9px 6px; }
/* Equal breathing all around: no extra space under the submit button */
.v2-modal .v2-form .row .col:last-child { padding-bottom: 0; }
.v2-modal .v2-form .button { margin-bottom: 0; }
.v2-modal-close {
  position: absolute; top: 0; right: 40px; margin: 0; padding: 0;
  width: 46px; height: 46px;
  min-width: 46px; max-width: 46px; min-height: 46px; max-height: 46px;
  box-sizing: border-box; transform-origin: center center;
  background: #3E3A33; border: 0; cursor: pointer;
  font-size: 22px; line-height: 1; color: #EEE9DF;
  display: flex; align-items: center; justify-content: center;
  transition: background-color 0.25s ease, transform 0.25s ease;
}
/* Rotates 90° and lands terracotta — same spot (square spins around its own center) */
.v2-modal-close:hover { background: #BE6A4A; color: #EEE9DF; transform: rotate(90deg); }

/* Custom dropdown */
.v2-select { position: relative; margin-bottom: 22px; }
.v2-select-btn {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  background: transparent; border: 0; border-bottom: 2px solid #C9C4B6; border-radius: 0;
  padding: 0 2px; margin: 0; min-height: 0; height: 35px;
  font-family: 'Comfortaa', sans-serif; font-size: 14px; font-weight: 400;
  line-height: 1.5; letter-spacing: 0; text-transform: none;
  color: #3E3A33; text-align: left; cursor: pointer;
  transition: border-color 0.2s ease;
}
.v2-select.open .v2-select-btn { border-color: #BE6A4A; }
/* Placeholder look until a value is chosen — same grey as the input placeholders */
.v2-form ::placeholder { color: #8f8b80; opacity: 1; }
.v2-select-btn span { color: #8f8b80; }
.v2-select.has-value .v2-select-btn span { color: #3E3A33; }
.v2-select-btn .rks2-caret { color: #6E7150; }
.v2-select.open .rks2-caret::after { transform: rotate(225deg); vertical-align: 0; }
.v2-select-list {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 10;
  background: #FFFDF8; border: 1px solid #3E3A33;
  list-style: none; margin: 2px 0 0; padding: 6px 0;
  display: none; max-height: 240px; overflow-y: auto;
}
.v2-select.open .v2-select-list { display: block; }
ul.v2-select-list li {
  /* cursor:pointer — σωστός δείκτης παντού· σε iOS Safari είναι και προϋπόθεση ώστε το
     click να παραδοθεί σε στοιχείο που δεν είναι button/link. */
  cursor: pointer;
  /* Flatsome .col-inner ul li adds 1.3em margin-left — the options must sit flush */
  margin-left: 0;
  padding: 10px 16px; font-size: 14px; cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.v2-select-list li:hover { background: #BE6A4A; color: #EEE9DF; }
.v2-select-list li.is-selected { font-weight: 700; }
@media (max-width: 549px) {
  .v2-modal-panel { padding: 34px 20px 22px; }
  .v2-modal-close { right: 10px; }
}
/* Very small phones (iPhone 5/SE): smaller popup title, label & menu button fit one line */
@media (max-width: 379px) {
  .v2-modal-panel h3, .v2-modal-panel .h3 { font-size: 1.4em; }
  /* Section labels stay on one line on tiny phones */
  .v2-num-label { font-size: 11px; letter-spacing: 0.12em; white-space: nowrap; gap: 10px; }
  .v2-num-label::after { width: 28px; }
  .rks2-mobile-menu a.rks2-mm-cta {
    font-size: 13px; letter-spacing: 0.06em;
    padding: 10px 18px 7px; white-space: nowrap;
  }
  /* Category banners: taller frame so title/text/button fit inside the photo */
  .v2-banner img { height: 470px; }
  .v2-banner-body { left: 16px; right: 16px; bottom: 16px; }
  .v2-banner .button { font-size: 13px; letter-spacing: 0.06em; padding: 10px 16px 7px; white-space: nowrap; }
}

/* ---------- Footer ---------- */
.v2-footer { background: #23201b; color: #b8b4a8; padding: 0; }
/* Column 1: logo above the description, social icons below it */
.v2-footer .rks2-logo { display: block; margin-bottom: 16px; }
.v2-footer-social { display: flex; gap: 10px; margin-top: 20px; }
/* Quote CTA under the social icons — same look as the header button.
   The footer's generic link colors must not bleed in (they made the hover text vanish). */
.v2-footer-cta { display: block; width: fit-content; margin-top: 0; }
.v2-footer .v2-footer-cta { color: #EEE9DF; }
.v2-footer .v2-footer-cta:hover { background-color: #BE6A4A; color: #EEE9DF; border-color: #BE6A4A; }
.v2-footer-social a {
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(238,233,223,0.25); color: #EEE9DF;
  transition: border-color 0.25s ease, color 0.25s ease;
}
.v2-footer-social a:hover { border-color: #BE6A4A; color: #BE6A4A; }
.v2-footer .row { padding-top: 80px; }
/* Column titles carry the site's terracotta dash */
.v2-footer h5, .v2-footer .h5 {
  color: #EEE9DF; font-size: 16px; letter-spacing: 0.18em; text-transform: uppercase;
  margin-bottom: 18px;
  display: flex; align-items: center; gap: 10px;
}
.v2-footer .h5::before { content: ""; width: 16px; height: 1.5px; background: #BE6A4A; }
.v2-footer p:not(.h5) { font-size: 16px; color: #8f8b80; max-width: none; margin-top: 0; }
.v2-footer-menu { list-style: none; margin: 0; padding: 0; }
/* Quick contact form in the footer */
.v2-footer-form input, .v2-footer-form textarea {
  width: 100%; height: auto;
  background: rgba(238,233,223,0.07); border: 1px solid rgba(238,233,223,0.18);
  color: #EEE9DF; font-size: 0.9em; padding: 13px 14px; margin-bottom: 10px;
  border-radius: 0; box-shadow: none;
}
/* Ο Firefox εφαρμόζει από default opacity .54 στα placeholder — χωρίς αυτό φαίνονται
   ξεθωριασμένα στο σκούρο footer σε σχέση με Chrome/Safari. */
.v2-footer-form input::placeholder, .v2-footer-form textarea::placeholder { color: #8f8b80; opacity: 1; }
.v2-footer-form input, .v2-footer-form textarea { transition: border-color 0.25s ease, background-color 0.25s ease; }
.v2-footer-form input:hover, .v2-footer-form textarea:hover {
  border-color: rgba(238,233,223,0.65); background: rgba(238,233,223,0.13);
}
.v2-footer-form input:focus, .v2-footer-form textarea:focus {
  border-color: rgba(238,233,223,0.7); outline: none; background: rgba(238,233,223,0.1); color: #EEE9DF;
}
.v2-footer-form textarea { resize: vertical; }
.v2-footer-form .button { margin: 4px 0 0; }
/* Footer send button: identical to the header ΖΗΤΗΣΤΕ ΠΡΟΣΦΟΡΑ CTA (outline, terracotta curtain hover) */
.v2-footer-form .button.primary {
  background: transparent; border: 1px solid rgba(238,233,223,0.5); color: #EEE9DF;
  font-weight: 600; letter-spacing: 0.06em;
}
.v2-footer-form .button.primary::before { background: #BE6A4A; }
.v2-footer-form .button.primary:hover { background-color: #BE6A4A; border-color: #BE6A4A; color: #EEE9DF; }
.v2-footer a { color: #b8b4a8; }
.v2-footer a:hover { color: #BE6A4A; }
/* Flatsome's .col-inner ul li adds 1.3em margin-left — footer lists align flush with their titles */
.v2-footer .v2-footer-menu li { margin-left: 0; margin-bottom: 10px; font-size: 16px; }
/* Small terracotta square before each link (contact rows have their own icons) */
.v2-footer .v2-footer-menu li:not(.v2-footer-contact) { display: flex; align-items: center; gap: 10px; }
.v2-footer .v2-footer-menu li:not(.v2-footer-contact)::before {
  content: ""; width: 7px; height: 7px; background: #BE6A4A; flex: 0 0 auto;
}
/* Contact rows: terracotta icon beside each detail */
.v2-footer-contact { display: flex; align-items: flex-start; gap: 10px; }
.v2-footer-contact svg { flex: 0 0 auto; margin-top: 4px; color: #BE6A4A; }
.v2-footer-menu a { color: #b8b4a8; }
.v2-footer-menu a:hover { color: #BE6A4A; }
/* Desktop: the row's own col padding is enough — keep the bottom bar close */
@media (min-width: 1025px) {
  .v2-footer .row > .col { padding-bottom: 0; padding-left: 20px; padding-right: 20px; }
  /* The wordmark SVG carries ~15px of internal air above the icon — pull the column up
     so the logo visually starts level with the other columns' titles */
  .v2-footer .row > .col:first-child .rks2-logo { margin-top: -15px; }
  .v2-footer .row > .col:nth-child(1) { flex-basis: 28%; max-width: 28%; }
  .v2-footer .row > .col:nth-child(2) { flex-basis: 16%; max-width: 16%; }
  .v2-footer .row > .col:nth-child(3) { flex-basis: 24%; max-width: 24%; }
  .v2-footer .row > .col:nth-child(4) { flex-basis: 32%; max-width: 32%; }
}
.v2-footer-bottom {
  border-top: 1px solid rgba(238,233,223,0.1);
  margin-top: 30px; padding: 22px 0;
  display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
}
.v2-footer .v2-footer-bottom p { margin: 0; font-size: 14px; max-width: none; }
.v2-footer-legal { list-style: none; display: flex; gap: 26px; margin: 0; padding: 0; font-size: 14px; }
.v2-footer-legal a { color: #8f8b80; }
.v2-footer-legal a:hover { color: #BE6A4A; }
.v2-lithos { display: inline-block; margin-top: 0; }
@media (max-width: 549px) {
  .v2-footer-top { padding: 34px 0 24px; }
  .v2-footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
}
.v2-lithos img { height: 26px; width: auto; opacity: 0.8; transition: opacity 0.2s ease; }
.v2-lithos:hover img { opacity: 1; }

/* ---------- Responsive ---------- */
/* Tablets: keep the desktop column padding (cancels Flatsome's ≤849px .col { padding-bottom: 30px }) */
@media (min-width: 550px) and (max-width: 1024px) {
  .col, .columns, .gallery-item { padding: 40px 15px 0px; }
  /* The first column of a section must not add its 40px on top of the section breathing */
  .section .row:first-child > .col:first-child { padding-top: 0; }
  /* Compensate the collage shape's 26px overhang so visual gaps stay true */
  .v2-collage { margin-top: 26px; }
  /* The note row after the products slider: its 40px col padding-top is not needed (30px margin handles it) */
  .v2-products .row:last-child > .col { padding-top: 0; }
  /* Craft cards: stacked full-width on tablet; the 30px row margin handles the first gap */
  .v2-craft-row > .col { flex-basis: 100%; max-width: 100%; padding-top: 0; }
  .v2-craft-row > .col + .col { padding-top: 40px; }
  /* Filters stay on one line: equal thirds */
  .v2-filterbar { flex-wrap: nowrap; }
  .v2-filterbar .v2-select { flex: 1 1 0; width: auto; min-width: 0; }
  /* FAQ: the 30px row margin is the whole gap below the head */
  .v2-faq-boxed .row:last-child > .col { padding-top: 0; }
  /* Perks 2×2 on tablet: the second row's 40px col padding is the gap — no extra 30px below the first row */
  .section.v2-perks .v2-perks-row > .col { padding-bottom: 0; }
  /* Process steps sit 2×2 on tablet: the first pair needs no 40px col padding (30px row margin handles it) */
  .v2-process-row > .col:nth-child(-n+2) { padding-top: 0; }
  .v2-craft-media::after { font-size: 36px; }
  /* Full-width stacked images would get ~480px tall at 3:2 — cap them much lower */
  .v2-craft-row img { aspect-ratio: auto; height: 260px; }
}
@media (max-width: 1024px) {
  h1 { font-size: 2.5em; }
  h2, .h2 { font-size: 1.9em; }
  /* Keep the illustration (bottom-left of the image) visible when cover-cropping on narrow screens */
  .v2-faq { background-position: left bottom; }
  /* 20px frame around the floating menu */
  .rks2-header, .rks2-header.is-stuck { top: 20px; left: 20px; width: calc(100% - 40px); }
  .rks2-header-inner { height: 100px; padding: 0 20px; }
  .rks2-logo-img { height: 94px; }
  /* Sticky keeps the SAME sizes on tablet/mobile (no shrinking like desktop) */
  .rks2-header.is-stuck .rks2-header-inner { height: 100px; }
  .rks2-header.is-stuck .rks2-logo-img { height: 94px; }
  .rks2-header.is-stuck .rks2-cta { font-size: 15px; padding: 10px 30px 7px 30px; }
  /* Terracotta divider under the bar when sticky */
  .rks2-header.is-stuck .rks2-header-inner { border-bottom: 1px solid #BE6A4A; }
  .container { padding-left: 40px; padding-right: 40px; }
  .v2-hero .section-content { min-height: 550px; padding: 132px 0 70px; }
  /* Social bar: horizontal, bottom-right of the hero */
  .v2-hero-social {
    display: flex !important; flex-direction: row; align-items: center;
    left: auto; right: 9px; top: auto; bottom: 16px;
    transform: none; gap: 12px;
  }
  .v2-social-label { writing-mode: horizontal-tb; }
  .v2-social-line { width: 34px; height: 1px; }
  .v2-hero-social a { width: 42px; height: 42px; }
  .v2-collage { margin-bottom: 36px; }
  .v2-cat-olive { padding: 60px 0; }
  .v2-cat-olive .v2-collage { margin-bottom: 0; }
  .v2-product-img img { height: 220px; }
  .v2-slide { flex-basis: calc((100% - 24px) / 2); }
  .v2-scroller { padding: 4px 22px 20px; }
  .v2-scroller figure { flex-basis: 280px; }
  .v2-scroller img { height: 340px; }
  /* Section breathing on tablet: 60px */
  .v2-intro, .v2-cat, .v2-cat-olive, .v2-products, .v2-craft, .v2-gallery,
  .v2-process, .v2-faq, .v2-contact, .v2-catalog, .v2-ctaband, .v2-choice, .v2-perks {
    padding-top: 60px; padding-bottom: 60px;
  }
  /* Footer is not a .section: its cols keep their 40px padding-top, so 20 + 40 = 60px breathing */
  .v2-banner img { height: 380px; }
  .v2-banner-body { left: 20px; right: 20px; bottom: 20px; }
  /* The label's 30px margin is the whole gap — no extra 40px col padding on the banners row */
  .v2-choice .row:last-child > .col { padding-top: 0; }
  .v2-perks .v2-perks-row > .col:nth-child(-n+2) { padding-top: 0; }
  .v2-footer .row { padding-top: 20px; }
  /* The quick-contact form spans the full width on tablet */
  .v2-footer .row > .col:last-child { flex-basis: 100%; max-width: 100%; }
  /* Lithos badge centers on its own wrapped line */
  .v2-lithos { margin-left: auto; margin-right: auto; }
}
/* Footer columns breathe 20px per side on tablets too (matches the desktop 40px gutter) */
@media (min-width: 550px) and (max-width: 1024px) {
  .v2-footer .row > .col { padding-left: 20px; padding-right: 20px; }
}
/* Large tablets (iPad Pro, Surface Pro): same stacked footer layout as smaller tablets
   (description full, links + contact 50/50, form full — overrides the desktop large-3 25% grid) */
@media (min-width: 850px) and (max-width: 1024px) {
  .v2-footer .row > .col { flex-basis: 50%; max-width: 50%; }
  .v2-footer .row > .col:first-child,
  .v2-footer .row > .col:last-child { flex-basis: 100%; max-width: 100%; }
  /* Process steps in a 2×2 grid, like smaller tablets */
  .v2-process-row > .col { flex-basis: 50%; max-width: 50%; }
  /* Catalog: two cards per row, like smaller tablets */
  .v2-catalog-grid > .col { flex-basis: 50%; max-width: 50%; }
  /* Prokat page: FAQ list/photo and CTA text/buttons stack like on smaller tablets */
  .v2-faq-boxed .row:last-child > .col { flex-basis: 100%; max-width: 100%; }
  .v2-ctaband .row > .col { flex-basis: 100%; max-width: 100%; }
  /* Contact: the 5/7 split leaves the form too narrow here (Zenbook Fold 853, Surface 912,
     iPad Pro 1024) — stack details above form, like on the iPad Air width */
  .v2-contact .row > .col { flex-basis: 100%; max-width: 100%; }
}
@media (max-width: 549px) {
  h1 { font-size: 2em; }
  .col, .columns, .gallery-item { padding: 0 0px 30px; }
  /* Cols have no side padding on mobile — cancel the row's -15px margins so everything aligns to the container */
  .container .row { margin-left: 0 !important; margin-right: 0 !important; }
  /* Section breathing on mobile: 50px */
  .v2-intro, .v2-cat, .v2-cat-olive, .v2-products, .v2-craft, .v2-gallery,
  .v2-process, .v2-faq, .v2-contact, .v2-catalog, .v2-ctaband, .v2-choice, .v2-perks {
    padding-top: 50px; padding-bottom: 50px;
  }
  .v2-footer .row { padding-top: 50px; }
  /* Same cream bg as the gallery above it — the gallery's bottom padding is the whole gap */
  .v2-gallery + .v2-process { padding-top: 0; }
  /* 10px frame around the floating menu */
  .rks2-header, .rks2-header.is-stuck { top: 10px; left: 10px; width: calc(100% - 20px); }
  /* The wide wordmark fills the room left by the burger — width-driven so it never distorts */
  .rks2-logo-img, .rks2-header.is-stuck .rks2-logo-img {
    height: auto; width: calc(100vw - 104px); max-width: 320px;
  }
  .rks2-header-inner { padding: 0 14px; gap: 10px; }
  .container { padding-left: 23px; padding-right: 23px; }
  .v2-hero .section-content { padding: 122px 0 70px; }
  .v2-collage { padding: 0 20px 40px 0; margin-top: 12px; }
  /* Metal section stacks text→collage: 40px visual gap like the wood section (52 - 12 shape overhang) */
  .v2-cat-olive .v2-collage { margin-top: 52px; }
  .v2-collage-main { height: 300px; }
  .v2-collage-right { padding: 0 0 40px 20px; }
  .v2-collage-shape { left: -12px; top: -12px; }
  .v2-collage-right .v2-collage-shape { left: auto; right: -12px; }
  .v2-scroller figure { flex-basis: 84vw; }
  .v2-slide { flex-basis: 100%; }
  .v2-form { padding: 28px 20px 20px; }
  /* Craft cards & process steps stack: 30px between them (their rows are the section's last, so col padding-bottom is 0) */
  .v2-craft-row > .col + .col { padding-top: 30px; }
  .v2-process-row > .col + .col { padding-top: 30px; }
  .v2-banner img { height: 320px; }
  .v2-choice .row:last-child > .col + .col { padding-top: 30px; }
  .section.v2-perks .v2-perks-row > .col { padding-bottom: 30px; }
  .section.v2-perks .v2-perks-row > .col:last-child { padding-bottom: 0; }
  .v2-ctaband .row > .col + .col { padding-top: 30px; }
  .v2-craft-media::after { font-size: 36px; }
}

/* ============================================================
   Product page — Κατοικία 30 τ.μ. (k30-*): premium sections
   ============================================================ */
/* Shared head pattern: label → title, the row gap below is the 30px */
.k30-head .h2 { margin-bottom: 0; }
.k30-head-center { text-align: center; }
.k30-head-center .v2-num-label { justify-content: center; }
.k30-media { margin: 0; }
.k30-media img { display: block; width: 100%; height: 460px; object-fit: cover; }

/* 01 Intro — same cream as the hero: one breathing is enough */
.k30-intro { padding: 80px 0; }
.v2-product-hero + .k30-intro { padding-top: 0; }
/* Model text merged into the hero (under the description): h2 as a sub-heading */
.v2-pinfo-model { margin-top: 16px; }
.v2-pinfo-model p { color: #55524a; margin-bottom: 16px; }
.v2-pinfo-model p:last-child { margin-bottom: 0; }
.v2-pinfo-wide .v2-pinfo-model + .v2-pinfo-actions { margin-top: 30px; }
.v2-pinfo-wide .v2-pinfo-text { margin-bottom: 0; }
/* Cream hero → cream floor plan: the hero's bottom padding is the whole gap */
.v2-product-hero + .k50-plan { padding-top: 0; }
.k30-intro p:not(.h2) { color: #55524a; }
/* Stacked tablet/mobile: the column gap alone separates text from the photo */
.k30-intro .col-inner > p:last-child { margin-bottom: 0; }

/* Key stats band (dark) */
.k30-stats { background: #3E3A33; padding: 80px 0; }
.k30-stat { border-left: 1px solid rgba(238,233,223,0.28); padding-left: 22px; }
.k30-stat strong {
  display: block; font-family: 'Geologica', sans-serif; font-weight: 500;
  font-size: 30px; line-height: 1.15; letter-spacing: -0.01em;
  color: #EEE9DF; margin-bottom: 8px;
}
.k30-stat span { display: block; color: rgba(238,233,223,0.65); font-size: 14px; }

/* 02 Exterior architecture */
.k30-ext { padding: 80px 0; }
.k30-ext .row:first-child > .col { padding-bottom: 0; }
.k30-ext-row { margin-top: 30px; }
.k30-ext-photo { margin: 0; }
.k30-ext-photo img { display: block; width: 100%; object-fit: cover; }
.k30-ext-main img { height: 560px; }
.k30-ext-side img { height: 300px; }
.k30-ext-photo figcaption { font-size: 13px; color: #8a857a; margin-top: 10px; }
.k30-ext-text { color: #55524a; margin: 20px 0 0; }

/* 03 Interior & layout (olive band) */
.k30-interior { background: #6E7150; padding: 80px 0; }
.k30-interior .h2 { color: #EEE9DF; }
.k30-interior .row:first-child > .col { padding-bottom: 0; }
.k30-interior .k30-grid { margin-top: 30px; }
.k30-int-photo { margin: 0; position: relative; }
.k30-int-photo img { display: block; width: 100%; height: 340px; object-fit: cover; }
.k30-int-photo figcaption {
  position: absolute; left: 16px; bottom: 16px; max-width: calc(100% - 32px);
  padding: 8px 14px; font-size: 16px; color: #EEE9DF;
  background: rgba(35,32,27,0.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
/* Desktop 2×2: the first pair keeps its 30px gap (the global last-row rule strips it) */
@media (min-width: 1025px) {
  .section.k30-interior .k30-grid > .col { padding-bottom: 30px; }
  .section.k30-interior .k30-grid > .col:nth-last-child(-n+2) { padding-bottom: 0; }
}

/* 04 Gallery mosaic */
.k30-gallery { padding: 80px 0; }
.k30-gallery .row:first-child > .col { padding-bottom: 0; }
.k30-mosaic {
  margin-top: 30px;
  display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 250px; gap: 16px;
}
.k30-mosaic figure { margin: 0; position: relative; overflow: hidden; }
.k30-mosaic .k30-mz-tall { grid-row: span 2; }
.k30-mosaic img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.k30-mosaic figure:hover img { transform: scale(1.04); }
.k30-mosaic figcaption {
  position: absolute; left: 14px; bottom: 14px;
  background: #EEE9DF; color: #3E3A33;
  font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; padding: 7px 14px;
}

/* 05 Materials & finishes (deep dark band) */
.k30-materials { background: #23201B; padding: 80px 0; }
.k30-materials .h2 { color: #EEE9DF; }
.k30-materials .row:first-child > .col { padding-bottom: 0; }
.k30-mat-row { margin-top: 30px; }
.k30-mat { margin: 0; }
.k30-mat img { display: block; width: 100%; height: 260px; object-fit: cover; margin-bottom: 18px; }
.k30-mat .h4 { color: #EEE9DF; margin-bottom: 6px; }
.k30-mat p:not(.h4) { color: rgba(238,233,223,0.6); font-size: 0.9em; margin-bottom: 0; }

/* 06 Customization (light green band) */
.k30-custom { background: #D1D2C8; padding: 80px 0; }
.k30-custom .col-inner > p:not(.h2):not(.v2-num-label) { color: #4a473f; }
.k30-custom .k30-custom-list { list-style: none; margin: 0; padding: 0; }
.k30-custom .k30-custom-list li { margin: 0 0 10px; padding-left: 28px; position: relative; }
.k30-custom .k30-custom-list li:last-child { margin-bottom: 0; }
.k30-custom .k30-custom-list li::before {
  content: ""; position: absolute; left: 0; top: 9px;
  width: 8px; height: 8px; background: #6E7150;
}
.k30-custom .button { margin: 30px 0 0; }
.k30-custom .k30-media img { height: 480px; }
/* 50 τ.μ. customization: hotspot photo (7/12) linked to the option list (5/12) */
.k50-hot-row { align-items: center; }
.k50-hot-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(62,58,51,0.18); }
.k30-custom .col-inner .k50-hot-list li { margin-left: 0; }
.k50-hot-list li { display: flex; gap: 14px; align-items: flex-start; margin: 0; padding: 14px 12px; border-bottom: 1px solid rgba(62,58,51,0.18); cursor: pointer; transition: background-color 0.6s cubic-bezier(0.22, 0.61, 0.36, 1); }
.k50-hot-list { margin-left: -12px; margin-right: -12px; } /* padded rows, text stays flush with the copy above */
.k50-hot-list li.is-on { background: rgba(238,233,223,0.75); }
.k50-hot-num { font-family: 'Geologica', sans-serif; font-weight: 600; font-size: 13px; letter-spacing: 0.08em; color: #BE6A4A; padding-top: 3px; flex: 0 0 24px; }
.k50-hot-list strong { display: block; font-size: 16px; font-weight: 700; color: #3E3A33; line-height: 1.4; }
.k50-hot-list div > span { display: block; font-size: 14px; color: #55524a; margin-top: 2px; }
.k30-custom .k50-hot-list + .button { margin-top: 30px; }
.k50-hot { position: relative; }
.k50-hot img { display: block; width: 100%; height: auto; }
@media (min-width: 1025px) {
  /* Photo matches the text column height (cover, centered on the house) */
  .k50-hot-row { display: flex; align-items: stretch; }
  .k50-hot-row > .col > .col-inner { height: 100%; }
  .k50-hot { height: 100%; }
  .k50-hot img { height: 100%; object-fit: cover; object-position: 50% 45%; }
}
.k50-hot-dot {
  position: absolute; transform: translate(-50%, -50%); width: 34px; height: 34px; margin: 0; padding: 0;
  border: 2px solid #EEE9DF; background: rgba(35,32,27,0.55); color: #EEE9DF; cursor: pointer;
  display: flex; align-items: center; justify-content: center; z-index: 2;
  font-family: 'Geologica', sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.06em;
  transition: background-color 0.5s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.k50-hot-dot::before { content: ""; position: absolute; inset: -8px; border: 1px solid rgba(238,233,223,0.7); opacity: 0; transition: opacity 0.5s ease, inset 0.5s ease; }
.k50-hot-dot:hover, .k50-hot-dot.is-on { background: #BE6A4A; border-color: #BE6A4A; }
.k50-hot-dot.is-on::before { opacity: 1; inset: -7px; animation: k50-pulse 1.8s ease-out infinite; }
@keyframes k50-pulse { 0% { inset: -4px; opacity: 0.9; } 100% { inset: -14px; opacity: 0; } }
.k50-hot-tip {
  position: absolute; left: 20px; bottom: 20px; z-index: 3; padding: 10px 16px;
  background: rgba(35,32,27,0.72); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  color: #EEE9DF; font-family: 'Geologica', sans-serif; font-weight: 600; font-size: 15px;
  opacity: 0; transform: translateY(6px); pointer-events: none; transition: opacity 0.5s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.k50-hot-tip.is-on { opacity: 1; transform: none; }
@media (max-width: 549px) { .k50-hot-dot { width: 28px; height: 28px; font-size: 10px; } .k50-hot-tip { left: 12px; bottom: 12px; font-size: 14px; } }

/* 07 Suitable uses */
.k30-uses { padding: 80px 0; }
.k30-uses .row:first-child > .col { padding-bottom: 0; }
.k30-uses-row { margin-top: 30px; }
.k30-use img { display: block; width: 100%; height: 260px; object-fit: cover; margin-bottom: 18px; }
.k30-use .h4 { margin-bottom: 6px; }
.k30-use p:not(.h4) { color: #6b665c; font-size: 0.95em; margin-bottom: 0; }

/* 08 FAQ (plain two-column: intro left, questions right) — uses above shares the cream bg */
.k30-faq { padding: 80px 0; }
.k30-uses + .k30-faq { padding-top: 0; }
.k30-faq .col-inner > p:not(.h2):not(.v2-num-label) { color: #55524a; margin-bottom: 0; }
.k30-faq .button { margin: 30px 0 0; }
.k30-faq .v2-faq-item p { max-width: none; }
/* Single-column FAQ: head → 30px → list (the head col's Flatsome 30px bottom padding is the gap) */
.k30-faq .row:first-child > .col { padding-bottom: 0; }
.k50-faq-row { margin-top: 30px; }
@media (max-width: 1024px) { .k30-faq .k50-faq-row > .col { padding-top: 0; } }

/* Floor-plan section (product pages): text + framed plan placeholder */
.k50-plan { padding: 80px 0; }
/* Head: centered label + h2 + one line of text (max 720px) */
.k50-plan-head { text-align: center; }
.k50-plan-head .v2-num-label { justify-content: center; }
.k50-plan-head h2 { margin-bottom: 20px; }
.k50-plan-head > p:not(.h2):not(.v2-num-label) { color: #55524a; max-width: 720px; margin: 0 auto; }
.k50-plan .row:first-child > .col { padding-bottom: 0; }
.k50-plan-row { margin-top: 30px; }
/* Plan drawing in a white frame (7/12) — on desktop it matches the room list's height:
   the col-inner is positioned and the figure fills it, the drawing fits inside without cropping */
.k50-plan-media { margin: 0; border: 1px solid #D8D2C2; background: #fff; padding: 15px; }
.k50-plan-media img { display: block; width: 100%; height: auto; }
/* Models offered in two layout variants: the plans become a small slider.
   The white frame moves onto the stage so the drawing sits inside it exactly like the
   single-plan version — the slides themselves carry no frame. */
.k50-plan-stage {
  position: relative;
  border: 1px solid #D8D2C2; background: #fff; padding: 15px;
}
.k50-plan-stage .k50-plan-media {
  display: none; margin: 0; padding: 0; border: 0; background: none;
}
.k50-plan-stage .k50-plan-media.is-on { display: block; }
.k50-plan-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 38px; height: 38px; margin: 0; padding: 0; border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(238,233,223,0.92); border: 1px solid #D8D2C2; color: #3E3A33; cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.k50-plan-arrow:hover { background: #BE6A4A; border-color: #BE6A4A; color: #EEE9DF; }
/* Inside the frame, clear of the drawing's dimension lines */
.k50-plan-prev { left: 24px; }
.k50-plan-next { right: 24px; }
/* Named controls — with only two variants, labels read better than dots */
.k50-plan-tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.k50-plan-tabs button {
  flex: 1 1 0; min-width: 150px; margin: 0; border-radius: 0; cursor: pointer;
  font-family: 'Comfortaa', sans-serif;
  font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 11px 14px 9px;
  background: transparent; border: 1px solid #D8D2C2; color: #55524a;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.k50-plan-tabs button:hover { border-color: #3E3A33; color: #3E3A33; }
.k50-plan-tabs button.is-on { background: #3E3A33; border-color: #3E3A33; color: #EEE9DF; }
@media (max-width: 549px) {
  .k50-plan-arrow { width: 32px; height: 32px; }
  .k50-plan-tabs button { min-width: 0; font-size: 11px; letter-spacing: 0.04em; }
}
@media (min-width: 1025px) {
  /* The plan fills its column at full width (no crop) and sets the row height; the room list
     stretches to the same height with the note pinned to the bottom */
  .k50-plan-row { display: flex; align-items: stretch; }
  .k50-plan-row > .col > .col-inner { height: 100%; }
  /* The slider wrapper must not break the height chain, or the drawing renders smaller
     than on the single-plan pages */
  .k50-plan-slider { display: flex; flex-direction: column; height: 100%; }
  .k50-plan-stage { flex: 1 1 auto; display: flex; align-items: center; }
  .k50-plan-stage .k50-plan-media.is-on { width: 100%; }
  .k50-plan-rooms { display: flex; flex-direction: column; height: 100%; }
  /* The room rows share the column height evenly (no dead gap above the note) */
  .k50-plan-rooms .k50-rooms { flex: 1 1 auto; display: flex; flex-direction: column; }
  .k50-plan-rooms .k50-rooms li { flex: 1 1 0; align-items: center; }
  .k50-plan-rooms .k50-plan-note { padding-top: 20px; }
}
/* Room list (5/12): numbered rows, bordered like the spec list */
.k50-plan-rooms .h5 { font-family: 'Comfortaa', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #8a857a; margin-bottom: 16px; }
.k50-rooms { list-style: none; margin: 0; padding: 0; border-top: 1px solid #D8D2C2; }
.k50-rooms li { display: flex; gap: 16px; align-items: flex-start; margin: 0; padding: 14px 0; border-bottom: 1px solid #D8D2C2; }
.k50-room-n { font-family: 'Geologica', sans-serif; font-weight: 600; font-size: 13px; color: #BE6A4A; letter-spacing: 0.08em; padding-top: 3px; flex: 0 0 26px; }
.k50-rooms strong { display: block; font-family: 'Comfortaa', sans-serif; font-weight: 700; font-size: 16px; color: #3E3A33; line-height: 1.5; }
.k50-rooms div > span { display: block; font-size: 16px; color: #8a857a; margin-top: 2px; }
.k50-plan-note { font-size: 16px; color: #55524a; margin: 20px 0 0; }
.k50-plan .button { margin: 30px 0 0; }

/* ---------- k30 responsive: tablets (all ≤1024, incl. iPad Pro/Surface) ---------- */
@media (max-width: 1024px) {
  .k30-intro, .k30-stats, .k30-ext, .k30-interior, .k30-gallery,
  .k30-materials, .k30-custom, .k30-uses, .k30-faq, .k50-plan { padding-top: 60px; padding-bottom: 60px; }
  .v2-product-hero + .k30-intro, .v2-product-hero + .k50-plan { padding-top: 0; }
  .k30-uses + .k30-faq { padding-top: 0; }
  .k30-media img { height: 340px; }
  .k30-ext-main img { height: 380px; }
  .k30-custom .k30-media img { height: 340px; }
  .k30-int-photo img { height: 300px; }
  .k30-mosaic { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
  /* 2 columns can't absorb the tall tiles — even grid, last tile spans the full row */
  .k30-mosaic .k30-mz-tall { grid-row: span 1; }
  .k30-mosaic figure:last-child { grid-column: span 2; }
  .k30-stat strong { font-size: 24px; }
  .k30-use img { height: 220px; }
  .k30-mat img { height: 220px; }
}
/* Tablet padding-top scheme (550–1024): stacked cols keep a 40px gap, first one none */
@media (min-width: 550px) and (max-width: 1024px) {
  .k30-interior .k30-grid > .col:nth-child(-n+2) { padding-top: 0; }
  .k30-mat-row > .col:nth-child(-n+2) { padding-top: 0; }
  .k30-uses-row > .col:nth-child(-n+2) { padding-top: 0; }
  .k30-stats-row > .col:nth-child(-n+2) { padding-top: 0; }
  .k30-intro .row > .col, .k30-custom .row > .col, .k30-faq .row > .col,
  .k30-ext-row > .col, .k50-plan .k50-plan-row > .col { padding-top: 0; }
  .k30-intro .row > .col + .col, .k30-custom .row > .col + .col, .k30-faq .row > .col + .col,
  .k30-ext-row > .col + .col, .k50-plan .k50-plan-row > .col + .col { padding-top: 40px; }
}
/* iPad Pro / Surface Pro 7 / Zenbook (850–1024): mimic the small-tablet stacking */
@media (min-width: 850px) and (max-width: 1024px) {
  .k30-intro .row > .col, .k30-custom .row > .col, .k30-faq .row > .col,
  .k30-ext-row > .col, .k50-plan .k50-plan-row > .col { flex-basis: 100%; max-width: 100%; }
  .k30-stats-row > .col, .k30-mat-row > .col, .k30-uses-row > .col { flex-basis: 50%; max-width: 50%; }
}
/* ---------- k30 responsive: mobile ---------- */
@media (max-width: 549px) {
  .k30-intro, .k30-stats, .k30-ext, .k30-interior, .k30-gallery,
  .k30-materials, .k30-custom, .k30-uses, .k30-faq, .k50-plan { padding-top: 50px; padding-bottom: 50px; }
  .v2-product-hero + .k30-intro, .v2-product-hero + .k50-plan { padding-top: 0; }
  .k30-uses + .k30-faq { padding-top: 0; }
  /* Stacked 2-col rows: restore the 30px gap the last-row rule strips */
  .k30-intro .row > .col + .col, .k30-ext-row > .col + .col,
  .k30-custom .row > .col + .col, .k30-faq .row > .col + .col,
  .k50-plan .k50-plan-row > .col + .col { padding-top: 30px; }
  .k50-plan-media { padding: 15px; }
  .k50-plan-stage { padding: 15px; }
  .k50-plan-stage .k50-plan-media { padding: 0; }
  .k50-plan-prev { left: 14px; }
  .k50-plan-next { right: 14px; }
  /* Interior photos stack singly */
  .section.k30-interior .k30-grid > .col { padding-bottom: 30px; }
  .section.k30-interior .k30-grid > .col:last-child { padding-bottom: 0; }
  /* Stats & materials stay 2×2: small gutters + row gap for the first pair */
  .k30-stats-row > .col:nth-child(odd), .k30-mat-row > .col:nth-child(odd) { padding-right: 8px; }
  .k30-stats-row > .col:nth-child(even), .k30-mat-row > .col:nth-child(even) { padding-left: 8px; }
  .section.k30-stats .k30-stats-row > .col:nth-child(-n+2) { padding-bottom: 30px; }
  .section.k30-materials .k30-mat-row > .col:nth-child(-n+2) { padding-bottom: 30px; }
  /* Uses cards stack */
  .section.k30-uses .k30-uses-row > .col { padding-bottom: 30px; }
  .section.k30-uses .k30-uses-row > .col:last-child { padding-bottom: 0; }
  .k30-media img { height: 260px; }
  .k30-ext-main img { height: 280px; }
  .k30-ext-side img { height: 240px; }
  .k30-int-photo img { height: 240px; }
  .k30-custom .k30-media img { height: 260px; }
  .k30-mosaic { grid-template-columns: 1fr; grid-auto-rows: 240px; gap: 12px; }
  .k30-mosaic figure:last-child { grid-column: auto; }
  .k30-stat { padding-left: 14px; }
  .k30-stat strong { font-size: 19px; }
  .k30-stat span { font-size: 12.5px; }
  .k30-mat img { height: 150px; margin-bottom: 12px; }
  .k30-mat .h4 { font-size: 15px; }
  .k30-mat p:not(.h4) { font-size: 0.85em; }
  .k30-use img { height: 220px; }
}



/* ============================================================
   LEGAL PAGES — Πολιτική Απορρήτου / Όροι Χρήσης
   Plain single-column document: no sidebar, no boxes, no tables.
   (politiki-aporritou.html · oroi-kai-proypotheseis.html)
   ============================================================ */

/* Cream page, so the floating header needs its solid box from the start */
.page-legal .rks2-header {
  background: #23201B; -webkit-backdrop-filter: none; backdrop-filter: none;
}

.v2-doc { background: #EEE9DF; padding: 0; }
.v2-doc .section-content { padding: 190px 0 80px; }
.v2-doc .row > .col { padding-bottom: 0; }

/* Tag → title 16 · title → text 20 · text → meta 30 */
.v2-doc .v2-breadcrumb { margin-bottom: 16px; }
.v2-doc .v2-breadcrumb, .v2-doc .v2-breadcrumb a { color: #8a857a; }
.v2-doc .v2-breadcrumb a:hover { color: #BE6A4A; }
.v2-doc h1 { font-size: 2.8em; margin-bottom: 20px; }
.v2-doc-lead { color: #55524a; font-size: 16px; margin-bottom: 0; }
.v2-doc-updated {
  margin: 30px 0 0;
  font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: #8a857a;
}
/* Intro → document: the largest intermediate gap, with the line optically centred in it.
   Flatsome ships hr at opacity .1, which made the divider invisible on cream. */
.v2-doc-rule {
  border: 0; border-top: 1px solid #D8D2C2; opacity: 1;
  margin: 40px 0;
}

/* ---------- Document body ---------- */
.v2-doc-body { font-size: 16px; line-height: 1.75; color: #55524a; }
/* Section titles: one real h2, the rest demoted to p.h2 for a clean SEO outline —
   both render identically. */
.v2-doc-body h2, .v2-doc-body p.h2 { font-size: 18px; color: #3E3A33; letter-spacing: 0; margin: 50px 0 20px; }
.v2-doc-body h2:first-child, .v2-doc-body p.h2:first-child { margin-top: 0; }
.v2-doc-body h3 {
  font-family: 'Comfortaa', sans-serif;
  font-size: 15px; font-weight: 700; color: #3E3A33;
  margin: 30px 0 12px;
}
.v2-doc-body p { margin: 0 0 20px; }
.v2-doc-body > *:last-child { margin-bottom: 0; }
.v2-doc-body strong { color: #3E3A33; }
.v2-doc-body a { color: #6E7150; text-decoration: underline; text-underline-offset: 3px; }
.v2-doc-body a:hover { color: #BE6A4A; }

/* Flatsome's `.col-inner ul li` adds 1.3em margin-left — lists align flush with the text */
.v2-doc-body ul { list-style: none; margin: 0 0 20px; padding: 0; }
.v2-doc-body ul li {
  position: relative; margin-left: 0; padding-left: 20px; margin-bottom: 8px;
}
.v2-doc-body ul li:last-child { margin-bottom: 0; }
.v2-doc-body ul li::before {
  content: ""; position: absolute; left: 0; top: 0.8em;
  width: 7px; height: 1.5px; background: #BE6A4A;
}

/* Company / authority details: plain lines, no dash, flush with the paragraphs */
.v2-doc-body .v2-doc-facts li { padding-left: 0; margin-bottom: 6px; }
.v2-doc-body .v2-doc-facts li::before { display: none; }

/* ---------- Responsive (page rhythm 80 / 60 / 50) ---------- */
@media (max-width: 1024px) {
  .v2-doc .section-content { padding: 165px 0 60px; }
}
@media (max-width: 549px) {
  .v2-doc .section-content { padding: 145px 0 50px; }
  .v2-doc-rule { margin: 34px 0; }
  .v2-doc-body h2, .v2-doc-body p.h2 { margin-top: 40px; }
}

/* ============================================================
   TERMS-ACCEPTANCE CHECKBOX — sits above the submit button of
   every form (contact page, quote popups, footer form)
   ============================================================ */

/* Scoped to .v2-form / .v2-footer-form so it beats `.v2-form label`,
   which is the uppercase olive field label style */
.v2-form .v2-consent, .v2-footer-form .v2-consent {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 0 0 22px;
  font-family: 'Comfortaa', sans-serif;
  font-size: 12.5px; font-weight: 400; line-height: 1.55;
  letter-spacing: 0; text-transform: none;
  color: #55524a; cursor: pointer;
}
/* Square box — resets the underline-field styling the inputs inherit */
.v2-consent input[type="checkbox"] {
  -webkit-appearance: none; appearance: none;
  position: relative; flex: 0 0 auto;
  width: 16px; height: 16px; margin: 2px 0 0; padding: 0;
  border: 1px solid #6E7150; border-radius: 0;
  background: transparent; box-shadow: none; cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.v2-consent input[type="checkbox"]:checked { background: #6E7150; border-color: #6E7150; }
/* Tick built from two borders so it stays crisp at any zoom */
.v2-consent input[type="checkbox"]:checked::after {
  content: ""; position: absolute; left: 4.5px; top: 1px;
  width: 4px; height: 8px;
  border: solid #EEE9DF; border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.v2-consent input[type="checkbox"]:focus-visible { outline: 2px solid #BE6A4A; outline-offset: 2px; }
.v2-consent span { flex: 1 1 auto; }
.v2-consent a { color: #6E7150; text-decoration: underline; text-underline-offset: 2px; }
.v2-consent a:hover { color: #BE6A4A; }

/* Footer band is dark: same 14px gap to the button as between the fields */
.v2-footer-form .v2-consent-dark { color: #b8b4a8; font-size: 12px; margin-bottom: 10px; }
.v2-consent-dark input[type="checkbox"] {
  border-color: rgba(238,233,223,0.5); background: rgba(238,233,223,0.07);
}
.v2-consent-dark input[type="checkbox"]:checked { background: #BE6A4A; border-color: #BE6A4A; }
.v2-consent-dark a { color: #EEE9DF; }
.v2-consent-dark a:hover { color: #BE6A4A; }

/* ==================== ETAIRIA — redesigned sections (02-04 + CTA) ==================== */
/* Body copy on this page is uniformly 16px (the homepage intro keeps its larger 1.05em) */
.page-etairia .v2-intro-text { font-size: 16px; }
/* 02 How we work: ledger rows — big numeral | text | small photo, hairlines between */
.et-how { padding: 80px 0; }
.v2-intro + .et-how { padding-top: 0; } /* cream on cream: the intro bottom padding is the gap */
.et-how .row:first-child > .col { padding-bottom: 0; }
.et-how .h2 { margin-bottom: 0; }
.et-how-list { margin-top: 30px; border-top: 1px solid #D8D2C2; }
.et-how-row {
  display: flex; align-items: center; gap: 40px;
  padding: 34px 0; border-bottom: 1px solid #D8D2C2;
}
.et-how-num {
  flex: 0 0 110px; font-family: 'Geologica', sans-serif; font-weight: 800;
  font-size: 64px; line-height: 1; color: rgba(190,106,74,0.4);
}
.et-how-body { flex: 1 1 auto; min-width: 0; }
.et-how-body .h4 { margin-bottom: 10px; }
.et-how-body p:not(.h4) { margin-bottom: 0; color: #55524a; max-width: 640px; }
.et-how-media { flex: 0 0 300px; margin: 0; }
.et-how-media img { display: block; width: 100%; height: 190px; object-fit: cover; }
/* A floor plan must never be cover-cropped — same white frame + 20px breathing as the
   plans on the product pages */
.et-how-media.is-plan { flex: 0 0 300px; border: 1px solid #D8D2C2; background: #fff; }
.et-how-media.is-plan img { object-fit: cover; }

/* 03 Visit: olive band, checklist + photo with offset terracotta frame */
.et-visit { background: #6E7150; padding: 80px 0; }
.et-visit .h2, .et-visit p, .et-visit li { color: #EEE9DF; }
.et-visit .col-inner > p:not(.h2):not(.v2-num-label) { color: rgba(238,233,223,0.88); }
.et-visit-list { list-style: none; margin: 30px 0 0; padding: 0; }
.et-visit .col-inner .et-visit-list li { margin-left: 0; } /* beats Flatsome's 1.3em li indent */
.et-visit-list li {
  position: relative; margin: 0 0 12px; padding-left: 24px; color: rgba(238,233,223,0.92);
}
.et-visit-list li:last-child { margin-bottom: 0; }
.et-visit-list li::before {
  content: ""; position: absolute; left: 0; top: 0.52em; width: 8px; height: 8px; background: #EEE9DF;
}
.et-visit .button { margin: 30px 0 0; }
.et-visit-media { margin: 0 14px 14px 0; position: relative; }
.et-visit-media::after {
  content: ""; position: absolute; inset: 14px -14px -14px 14px;
  border: 2px solid #EEE9DF; pointer-events: none;
}
.et-visit-media img { display: block; width: 100%; height: 440px; object-fit: cover; position: relative; z-index: 1; }

/* 04 Who does what: two contrasting panels */
.et-split { padding: 80px 0; }
.et-split-head { text-align: center; }
.et-split-head .v2-num-label { justify-content: center; }
.et-split-head > p:not(.h2):not(.v2-num-label) { color: #55524a; max-width: 720px; margin: 0 auto; }
.et-split .row:first-child > .col { padding-bottom: 0; }
.et-split-row { margin-top: 30px; }
@media (min-width: 1025px) {
  .et-split-row { display: flex; align-items: stretch; }
  .et-split-row > .col > .col-inner { height: 100%; }
}
.et-panel { padding: 34px 34px 30px; height: 100%; }
.et-panel-dark { background: #3E3A33; }
.et-panel-dark .h4 { color: #EEE9DF; }
.et-panel-light { background: #FFFDF8; border: 1px solid #D8D2C2; }
.et-panel .h4 { margin-bottom: 20px; }
.et-panel ul { list-style: none; margin: 0; padding: 0; }
.et-panel li { position: relative; margin: 0 0 14px; padding-left: 32px; }
.et-panel li:last-child { margin-bottom: 0; }
.et-panel-dark li { color: rgba(238,233,223,0.9); }
.et-panel-light li { color: #55524a; }
.et-panel li::before {
  position: absolute; left: 0; top: 0.1em;
  font-family: 'Geologica', sans-serif; font-weight: 700; font-size: 15px;
}
.et-panel-dark li::before { content: "\2713"; color: #BE6A4A; }
.et-panel-light li::before { content: "\2192"; color: #6E7150; }
.et-split .et-split-row > .col { padding-bottom: 0; }
.et-split-note { text-align: center; }
.et-split-note p { margin: 30px 0 0; color: #8a857a; font-size: 16px; }
.et-split .row:last-child > .col { padding-bottom: 0; }

/* CTA: terracotta band (unique to this page) */
.et-cta { position: relative; background: #BE6A4A; padding: 80px 0; overflow: hidden; }
.et-cta .v2-pagehero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.et-cta-veil { position: absolute; inset: 0; background: rgba(35,32,27,0.72); }
.et-cta-inner { text-align: center; }
.et-cta .h2 { color: #fff; }
.et-cta .col-inner > p:not(.h2) { color: rgba(255,255,255,0.92); max-width: 640px; margin: 0 auto; }
.et-cta-btn { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 30px; }
.et-cta-btn .button { margin: 0; }

/* ---------- responsive (tablets incl. iPad Pro/Surface, then phones) ---------- */
@media (max-width: 1024px) {
  .et-how, .et-visit, .et-split, .et-cta { padding-top: 60px; padding-bottom: 60px; }
  .v2-intro + .et-how { padding-top: 0; }
  .et-how .row > .col, .et-visit .row > .col, .et-split .row > .col { padding-top: 0; }
  .et-how-row { flex-wrap: wrap; gap: 20px; padding: 30px 0; }
  .et-how-num { flex: 0 0 70px; font-size: 48px; }
  .et-how-body { flex: 1 1 calc(100% - 90px); }
  .et-how-media { flex: 1 1 100%; }
  .et-how-media img { height: 350px; }
  .et-how-media.is-plan { flex: 1 1 100%; }
  .et-how-media.is-plan img { height: 350px; }
  /* 01→02: the paragraph's 20px margin counts toward the 60px optical gap */
  .page-etairia .v2-intro { padding-bottom: 40px; }
  .page-etairia .v2-intro .row > .col + .col { padding-top: 0; }
  .et-visit .row > .col { flex-basis: 100%; max-width: 100%; }
  .et-visit .row > .col + .col { padding-top: 40px; }
  .et-visit-media img { height: 360px; }
  .et-split .et-split-row > .col { flex-basis: 100%; max-width: 100%; }
  .et-split .et-split-row > .col + .col { padding-top: 20px; }
}
@media (min-width: 850px) and (max-width: 1024px) {
  .et-visit .row > .col { flex-basis: 100%; max-width: 100%; }
  .page-etairia .v2-intro .row > .col { flex-basis: 100%; max-width: 100%; margin-left: 0; }
  .et-split .et-split-row > .col { flex-basis: 100%; max-width: 100%; }
}
@media (max-width: 549px) {
  .et-how, .et-visit, .et-split, .et-cta { padding-top: 50px; padding-bottom: 50px; }
  .v2-intro + .et-how { padding-top: 0; }
  .et-how-row { gap: 14px; padding: 26px 0; }
  .et-how-num { flex: 0 0 54px; font-size: 38px; }
  .et-how-body { flex: 1 1 calc(100% - 68px); }
  .et-how-media img { height: 200px; }
  .et-visit .row > .col + .col { padding-top: 30px; }
  .et-visit-media img { height: 260px; }
  .et-visit-media { margin-right: 10px; margin-bottom: 10px; }
  .et-visit-media::after { inset: 10px -10px -10px 10px; }
  .et-panel { padding: 24px 22px 22px; }
  .et-split .et-split-row > .col + .col { padding-top: 16px; }
}

/* ---------- 04 Η κατασκευή από μέσα (Εταιρεία) ----------
   Λεζάντα μέσα στη φωτογραφία, σε glass panel — ίδια τεχνική με την κάρτα του hero
   στο Prokat (.v2-hero-pop): ημιδιάφανο σκούρο + backdrop blur. */
.et-grid { padding: 80px 0; }
/* Ίδιο cream με το επόμενο section — μία φορά το κενό, όχι δύο */
.et-grid + .et-split { padding-top: 0; }
.et-grid .row:first-child > .col { padding-bottom: 0; }
.et-grid .row:first-child .h2 { margin-bottom: 0; }
.et-grid-row { margin-top: 24px; margin-bottom: -20px; }
/* Σφιχτά κενά: 20px ανάμεσα σε στήλες και σε σειρές (default Flatsome: 30).
   Ο γενικός .section .row:last-child > .col { padding-bottom: 0 } μηδένιζε το κενό των
   σειρών — χρειάζεται ίδιο specificity (0,4,0) και μεταγενέστερη θέση για να υπερισχύσει. */
.et-grid-row { margin-left: -10px; margin-right: -10px; }
.section.et-grid .et-grid-row > .col { padding: 0 10px 20px; }

.et-grid-media { position: relative; margin: 0; overflow: hidden; }
.et-grid-media img {
  display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; margin: 0;
}
@supports not (aspect-ratio: 1 / 1) { .et-grid-media img { height: 340px; } }
.et-grid-media figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 18px 20px 20px;
  background: rgba(35,32,27,0.42);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-top: 1px solid rgba(238,233,223,0.22);
}
/* Χωρίς backdrop-filter (παλιοί browsers) το πάνελ πρέπει να μείνει αναγνώσιμο */
@supports not ((backdrop-filter: blur(14px)) or (-webkit-backdrop-filter: blur(14px))) {
  .et-grid-media figcaption { background: rgba(35,32,27,0.72); }
}
.et-grid-media .h4 { color: #EEE9DF; font-size: 17px; margin-bottom: 6px; }
.et-grid-media p:not(.h4) { color: rgba(238,233,223,0.85); font-size: 0.9em; margin: 0; }

/* Tablet (iPad Air/Pro, Surface Pro 7, Zenbook Fold): 2 κάρτες ανά σειρά.
   Η Flatsome δίνει large-4 (3 στήλες) μέχρι τα 849 — στη ζώνη 850–1024 χρειάζεται override. */
@media (min-width: 550px) and (max-width: 1024px) {
  .et-grid { padding: 60px 0; }
  .section.et-grid .et-grid-row > .col { flex-basis: 50%; max-width: 50%; }
}
@media (max-width: 549px)  {
  .et-grid { padding: 50px 0; }
  .et-grid-media figcaption { padding: 14px 16px 16px; }
  .et-grid-media .h4 { font-size: 16px; }
}

/* Φωτό ομάδας κάτω από τον τίτλο του «Ποιοι είμαστε» — γεμίζει τη μισή στήλη που έμενε κενή */
/* Κάτω από τα 1025 οι δύο στήλες του «Ποιοι είμαστε» στοιβάζονται: χωρίς αυτό το κενό,
   το κείμενο κολλάει στη φωτογραφία (μετρημένο κενό 0 σε iPad Pro / Surface / Zenbook). */




/* ---------- Εταιρεία 01 «Ποιοι είμαστε»: terracotta μπάντα με λευκά γράμματα ----------
   Με χρώμα, το section παύει να είναι cream-on-cream με το επόμενο: το όριο γίνεται ορατή
   γραμμή, οπότε (α) το .et-how ξαναπαίρνει το δικό του padding-top και (β) τα κρεμαστά
   margins του τελευταίου στοιχείου κάθε στήλης φεύγουν, αλλιώς η μπάντα δείχνει άνισο
   κενό πάνω/κάτω. */
.page-etairia .v2-intro { background: #BE6A4A; }
.page-etairia .v2-intro h2,
.page-etairia .v2-intro .v2-intro-text,
.page-etairia .v2-intro .v2-num-label { color: #fff; }
.page-etairia .v2-intro .v2-num-label .v2-dash,
.page-etairia .v2-intro .v2-num-label::after { background: #fff; }
.page-etairia .v2-intro + .et-how { padding-top: 80px; }
.page-etairia .v2-intro .col-inner > h2:last-child,
.page-etairia .v2-intro .col-inner > .v2-intro-text:last-child { margin-bottom: 0; }
@media (max-width: 1024px) {
  /* ακυρώνει το οπτικό padding-bottom: 40px που ίσχυε όσο ήταν cream-on-cream */
  .page-etairia .v2-intro { padding-bottom: 60px; }
  .page-etairia .v2-intro + .et-how { padding-top: 60px; }
}
@media (max-width: 549px) {
  .page-etairia .v2-intro { padding-bottom: 50px; }
  .page-etairia .v2-intro + .et-how { padding-top: 50px; }
}



/* Hero αρχικής: οι αλλαγές γραμμής είναι μέρος του design (3 σειρές). Σε στενές οθόνες
   τις ακυρώνουμε ώστε το κείμενο να ρέει κανονικά αντί να ξεχειλίζει. */
@media (max-width: 849px) { .v2-hero h1 br { display: none; } }

/* ============================================================
   CROSS-BROWSER — iOS Safari
   Ο Safari σε iPhone/iPad κάνει αυτόματο zoom στη σελίδα μόλις ο χρήστης πατήσει
   πεδίο φόρμας με font-size κάτω από 16px, και ΔΕΝ επανέρχεται. Τα πεδία μας είναι
   14px / 0.9em, οπότε σε συσκευές αφής τα ανεβάζουμε στα 16px. Το (pointer: coarse)
   πιάνει μόνο αφή — το desktop design μένει ακριβώς ως έχει.
   ============================================================ */
@media (pointer: coarse) {
  .v2-form input, .v2-form select, .v2-form textarea,
  .v2-footer-form input, .v2-footer-form textarea,
  .v2-select-btn { font-size: 16px; }
}

/* Κλείσιμο πάνελ. Αριστερά («Αναλαμβάνουμε εμείς») το μήνυμα είναι πλέον κανονικό
   στοιχείο της λίστας με ✓· δεξιά μένει ως πρόταση, γιατί δεν είναι κάτι που ζητάμε από
   τον πελάτη αλλά διευκρίνιση. Λεπτή γραμμή ώστε να μη διαβάζεται ως στοιχείο λίστας.
   Η σκούρα παραλλαγή κρατιέται για συμμετρία αν χρειαστεί ξανά στο αριστερό πάνελ. */
.et-panel-note {
  margin: 20px 0 0; padding-top: 16px;
  font-size: 14px; line-height: 1.65;
}
.et-panel-dark .et-panel-note {
  border-top: 1px solid rgba(238,233,223,0.18);
  color: rgba(238,233,223,0.78);
}
.et-panel-light .et-panel-note { border-top: 1px solid #D8D2C2; color: #6b665c; }
@media (max-width: 549px) { .et-panel-note { font-size: 13px; } }

/* ==================== Τεχνικές προδιαγραφές (tabs — όλα τα προϊόντα) ==================== */
.k80-specs { padding: 80px 0; }
.k80-specs-head { text-align: center; }
.k80-specs-head .v2-num-label { justify-content: center; }
.k80-specs-head .h2 { margin-bottom: 20px; }
.k80-specs-head > p:not(.h2):not(.v2-num-label) { color: #55524a; max-width: 720px; margin: 0 auto; }
.k80-specs .row > .col { padding-bottom: 0; }
/* Tabs: same visual language as the plan-variant switches */
.k80-tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 30px; }
.k80-tabs button {
  flex: 1 1 0; min-width: 140px; margin: 0; border-radius: 0; cursor: pointer;
  font-family: 'Comfortaa', sans-serif;
  font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 11px 14px 9px;
  background: transparent; border: 1px solid #D8D2C2; color: #55524a;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.k80-tabs button:hover { border-color: #3E3A33; color: #3E3A33; }
.k80-tabs button.is-on { background: #3E3A33; border-color: #3E3A33; color: #EEE9DF; }
.k80-panel { display: none; background: #FFFDF8; border: 1px solid #D8D2C2; padding: 10px 30px 12px; margin-top: 20px; }
.k80-panel.is-on { display: block; }
.k80-panel-meta {
  font-family: 'Comfortaa', sans-serif; font-size: 13px; color: #8a857a;
  margin: 0; padding: 14px 0 2px;
}
.k80-spec-list { list-style: none; margin: 0; padding: 0; column-count: 2; column-gap: 60px; }
.k80-specs .col-inner .k80-spec-list li {
  margin: 0; padding: 12px 0; font-size: 15px; color: #55524a;
  border-bottom: 1px solid #E4DFD3; break-inside: avoid; margin-left: 0;
}
.k80-specs-note { text-align: center; }
.k80-specs-note p { margin: 30px 0 0; font-size: 15px; color: #8a857a; }
@media (max-width: 1024px) {
  .k80-specs { padding-top: 60px; padding-bottom: 60px; }
  .k80-specs .row > .col { padding-top: 0; }
  .k80-tabs button { min-width: calc(33% - 10px); }
}
@media (max-width: 549px) {
  .k80-specs { padding-top: 50px; padding-bottom: 50px; }
  .k80-tabs { gap: 8px; }
  .k80-tabs button { min-width: calc(50% - 8px); font-size: 11px; letter-spacing: 0.04em; }
  .k80-panel { padding: 6px 18px 8px; }
  .k80-spec-list { column-count: 1; }
}

/* ---------- Plan zoom: επιτόπια μεγέθυνση κατόψεων (κλικ πάνω στην κάτοψη) ---------- */
.k50-plan-media.has-zoom { cursor: zoom-in; position: relative; overflow: hidden; }
.k50-plan-media.has-zoom img { transition: transform 0.3s ease; will-change: transform; }
.k50-plan-media.is-zoomed { cursor: zoom-out; }
.k50-plan-media.has-zoom::after {
  content: '+'; position: absolute; right: 12px; bottom: 12px; z-index: 2;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(35,32,27,0.78); color: #EEE9DF;
  font: 400 22px/34px 'Geologica', sans-serif; text-align: center;
  pointer-events: none;
}
.k50-plan-media.is-zoomed::after { content: '\2212'; }
