:root{
  --ds-ivory:#F9F5EF; --ds-sand:#EFE4D5; --ds-ink:#2E2721;
  --ds-body:#5B5147; --ds-accent:#B0704A; --ds-accent-dark:#8E5637;
  --ds-line:#E4D8C7; --ds-dark:#2B2521;
}

/* --- perusta ------------------------------------------------------------- */
body{ background:var(--ds-ivory); color:var(--ds-body);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body img{ height:auto; }

/* hello-elementorin reset piirtää solureunat jokaiseen taulukkoon */
.elementor table, .elementor th, .elementor td{ border:0; }
.elementor tbody tr:nth-child(odd){ background:transparent; }

/* --- rytmi --------------------------------------------------------------- */
.ds-sec{ overflow-x:clip; }
.ds-mw-720{ max-width:720px; margin-inline:auto; }
.ds-mw-620{ max-width:620px; }
.ds-headblk{ margin-bottom:14px; }

.ds-eyebrow{ display:block; }
.ds-eyebrow .elementor-heading-title{ position:relative; display:inline-block; }
.ds-eyebrow.ds-rule .elementor-heading-title::after{
  content:""; display:block; width:44px; height:1px; margin:14px auto 0;
  background:var(--ds-accent); }

/* --- sarakkeet ----------------------------------------------------------- */
.ds-row{ align-items:stretch; }
/* boxed-container piirtää .e-con-inner -kerroksen väliin, joten molemmat polut */
.ds-row > .e-con, .ds-row > .e-con-inner > .e-con{ flex:1 1 0; min-width:0; }
.ds-c2 > .e-con, .ds-c2 > .e-con-inner > .e-con{ flex:1 1 calc(50% - 13px); }
.ds-c3 > .e-con, .ds-c3 > .e-con-inner > .e-con{ flex:1 1 calc(33.333% - 18px); }
.ds-c4 > .e-con, .ds-c4 > .e-con-inner > .e-con{ flex:1 1 calc(25% - 20px); }
.ds-split > .e-con, .ds-split > .e-con-inner > .e-con{ flex:1 1 calc(50% - 24px); }
.ds-split-wide > .e-con:first-child,
.ds-split-wide > .e-con-inner > .e-con:first-child{ flex:1 1 calc(56% - 24px); }
.ds-split-wide > .e-con:last-child,
.ds-split-wide > .e-con-inner > .e-con:last-child{ flex:1 1 calc(44% - 24px); }
@media(max-width:1024px){
  .ds-c3 > .e-con, .ds-c3 > .e-con-inner > .e-con,
  .ds-c4 > .e-con, .ds-c4 > .e-con-inner > .e-con{ flex:1 1 calc(50% - 13px); }
}
@media(max-width:767px){
  .ds-row > .e-con, .ds-c2 > .e-con, .ds-c3 > .e-con, .ds-c4 > .e-con,
  .ds-split > .e-con, .ds-split-wide > .e-con,
  .ds-row > .e-con-inner > .e-con, .ds-c2 > .e-con-inner > .e-con,
  .ds-c3 > .e-con-inner > .e-con, .ds-c4 > .e-con-inner > .e-con,
  .ds-split > .e-con-inner > .e-con,
  .ds-split-wide > .e-con-inner > .e-con{ flex:1 1 100%; width:100%; }
}

/* --- kortit -------------------------------------------------------------- */
.ds-card{ transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  box-shadow:0 1px 2px rgba(42,38,34,.04); }
.ds-card:hover{ transform:translateY(-4px);
  box-shadow:0 18px 40px -22px rgba(42,38,34,.35); border-color:var(--ds-accent); }
.ds-card .elementor-widget:last-child{ margin-bottom:0; }
.ds-card-flat{ box-shadow:none; }
.ds-card-flat:hover{ transform:none; box-shadow:none; }

.ds-num .elementor-heading-title{
  font-variant-numeric:tabular-nums; color:var(--ds-accent); }

/* --- hinnastorivit ------------------------------------------------------- */
.ds-price ul{ list-style:none; margin:0; padding:0; }
.ds-price li{ display:flex; align-items:baseline; gap:10px;
  padding:11px 0; border-bottom:1px solid var(--ds-line); }
.ds-price li:last-child{ border-bottom:0; }
.ds-price li > span:first-child{ flex:0 1 auto; }
.ds-price li .ds-dots{ flex:1 1 auto; border-bottom:1px dotted var(--ds-line);
  transform:translateY(-4px); }
.ds-price li .ds-eur{ flex:0 0 auto; font-weight:600; color:var(--ds-ink);
  font-variant-numeric:tabular-nums; white-space:nowrap; }
.ds-price p{ margin:0 0 6px; }
.ds-price .ds-note{ font-size:14px; color:var(--ds-body); opacity:.85; }

/* --- kuvat --------------------------------------------------------------- */
.ds-img-fill img{ width:100%; height:100%; object-fit:cover; display:block; }
.ds-img-fill{ height:100%; }
.ds-img-fill .elementor-widget-container,
.ds-img-fill .elementor-image{ height:100%; }
.ds-ratio-4x5 img{ aspect-ratio:4/5; object-fit:cover; width:100%; max-height:620px; }
.ds-ratio-3x4 img{ aspect-ratio:3/4; object-fit:cover; width:100%; max-height:560px; }
.ds-ratio-3x2 img{ aspect-ratio:3/2; object-fit:cover; width:100%; }
.ds-ratio-1x1 img{ aspect-ratio:1/1; object-fit:cover; width:100%; }
.ds-soft img{ border-radius:4px; }

/* --- painikkeet ---------------------------------------------------------- */
.ds-btn .elementor-button{ transition:background-color .25s ease, color .25s ease,
  border-color .25s ease, transform .25s ease; }
.ds-btn .elementor-button:hover{ transform:translateY(-1px); }
.ds-btn .elementor-button:focus-visible{ outline:2px solid var(--ds-accent);
  outline-offset:3px; }

/* --- listat -------------------------------------------------------------- */
.ds-check .elementor-icon-list-icon svg{ fill:var(--ds-accent); }
.ds-check .elementor-icon-list-item{ align-items:flex-start; }
.ds-check .elementor-icon-list-icon{ padding-top:4px; }

/* --- haitari ------------------------------------------------------------- */
.ds-acc .e-n-accordion-item{ border-bottom:1px solid var(--ds-line); }
.ds-acc summary{ padding:20px 4px; }
.ds-acc .e-n-accordion-item-title-text{ font-weight:600; }

/* --- yhteystietorivi ----------------------------------------------------- */
.ds-contact a{ color:inherit; text-decoration:none;
  border-bottom:1px solid var(--ds-line); }
.ds-contact a:hover{ color:var(--ds-accent); border-color:var(--ds-accent); }

/* --- ylätunniste --------------------------------------------------------- */
.ds-header{ backdrop-filter:saturate(1.1) blur(6px); }
.ds-nav .elementor-item{ font-weight:600; letter-spacing:.3px; }

/* --- alatunniste --------------------------------------------------------- */
.ds-footer a{ text-decoration:none; }
.ds-footer a:hover{ color:var(--ds-accent); }
.ds-footer .elementor-icon-list-item a{ opacity:.85; }
.ds-footer .elementor-icon-list-item a:hover{ opacity:1; }

/* --- Google-arvostelut ---------------------------------------------------- */
/* Tekstittömässä arviossa Trustindexin loader kirjoittaa korttiin sanan "null".
   Kaikki tämän sivuston arviot ovat pelkkiä tähtiä, joten piilotetaan tekstilohko. */
.ti-review-item[data-empty="1"] .ti-review-text-container{ display:none !important; }
.ti-review-item[data-empty="1"] .ti-inner{ padding-bottom:14px; }

/* --- kartta -------------------------------------------------------------- */
.ds-map iframe{ filter:grayscale(.25) contrast(1.02); border-radius:4px; }

/* --- liikkeen vähennys --------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .ds-card, .ds-btn .elementor-button{ transition:none; }
  .ds-card:hover, .ds-btn .elementor-button:hover{ transform:none; }
}

/* --- ylätunniste --------------------------------------------------------- */
.ds-header{ box-shadow:0 1px 0 rgba(255,255,255,.06); }
.ds-headbar{ min-height:64px; }
.ds-headlogo{ flex:0 0 auto; width:auto !important; }
.ds-headright{ flex:0 0 auto; width:auto !important; }
.ds-lockup .elementor-heading-title{ display:block; padding-left:2px; }
.ds-logo img{ display:block; }
@media(max-width:1199px) and (min-width:1025px){
  .ds-nav .elementor-item{ font-size:14px; padding-inline:9px; }
  .ds-headright{ gap:12px; }
}
@media(max-width:1024px){
  .ds-headerbtn .elementor-button{ padding:10px 14px; font-size:13px; }
}
@media(max-width:600px){
  .ds-headerbtn .elementor-button-text{ display:none; }
  .ds-headerbtn .elementor-button-icon{ margin:0; }
  .ds-lockup{ display:none; }
}
.ds-nav .elementor-nav-menu--dropdown{ box-sizing:border-box; }

/* --- osiokohtaista ------------------------------------------------------- */
.ds-center{ margin-inline:auto; }
.ds-tekicon .elementor-icon{ line-height:1; }
.ds-lampo{ border:1px solid #E4D8C7; }
.ds-reviews .ti-widget{ margin:0 auto; }

/* --- alatunniste --------------------------------------------------------- */
.ds-footer{ color:#EDE4D8; }
.ds-footcols > .e-con, .ds-footcols > .e-con-inner > .e-con{ flex:1 1 calc(25% - 30px); }
@media(max-width:1024px){
  .ds-footcols > .e-con, .ds-footcols > .e-con-inner > .e-con{ flex:1 1 calc(50% - 20px); }
}
@media(max-width:767px){
  .ds-footcols > .e-con, .ds-footcols > .e-con-inner > .e-con{ flex:1 1 100%; }
  .ds-footbottom .elementor-widget-text-editor{ text-align:center !important; }
}
.ds-footlist .elementor-icon-list-icon{ padding-top:6px; }
.ds-footlist .elementor-icon-list-icon svg{ width:5px; height:5px; }
.ds-footlist a{ color:#EDE4D8; text-decoration:none; border:0; }
.ds-footlist a:hover{ color:#B0704A; }
.ds-footlogo img{ max-width:180px; }
.ds-footer .ds-map iframe{ filter:grayscale(.35) contrast(1.05) brightness(.95); }
