@font-face{
  font-family:'Passions Conflict RUS';
  src:url("../fonts/PassionsConflictRUS-Regular.3934f165bd5f.otf") format('opentype');
  font-weight:400 700;
  font-style:normal;
  font-display:swap;
}

:root{
  --font-accent:'Passions Conflict RUS', Georgia, 'Times New Roman', serif;
  --font-body:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --bg:#0a121c;
  --bg-alt:#050a11;
  --card:#101d2c;
  --teal:#3fe0d0;
  --teal-soft:rgba(63,224,208,.14);
  --ink:#eef4f6;
  --muted:#9fb2bf;
  --line:rgba(63,224,208,.25);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; font-family:var(--font-body); background:var(--bg); color:var(--ink); }
a{ color:inherit; text-decoration:none; }
.container{ max-width:1240px; margin:0 auto; padding:0 32px; }

/* ---------- site header ---------- */
.site-header{
  position:absolute;
  top:0; left:0; right:0;
  z-index:20;
  padding:30px 0;
}
.site-header .container{ padding:0 64px; }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:32px; }
.header-nav{ display:flex; gap:40px; flex:1; justify-content:center; }
.header-nav a{
  color:#eef4f6;
  font-size:15px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  opacity:.82;
  text-shadow:0 1px 6px rgba(0,0,0,.5);
  transition:color .2s ease, opacity .2s ease;
}
.header-nav a:hover, .header-nav a.active{ color:var(--teal); opacity:1; }
.header-account{
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px;
  border-radius:50%;
  border:1.5px solid rgba(255,255,255,.5);
  color:#fff;
  flex:none;
  cursor:pointer;
  transition:border-color .2s ease, color .2s ease;
}
.header-account svg{ width:23px; height:23px; }
.header-account:hover{ border-color:var(--teal); color:var(--teal); }

@media (max-width:820px){
  .header-nav{ display:none; }
  .site-header{ padding:22px 0; }
  .site-header .container{ padding:0 6vw; }
  .header-account{ width:40px; height:40px; }
  .header-account svg{ width:20px; height:20px; }
}

/* ---------- hero ---------- */
.hero{ background:var(--bg-alt); }
.hero-media{
  position:relative;
  width:100%;
  max-width:1180px;
  margin:0 auto;
  aspect-ratio:1280/720;
  overflow:hidden;
  background:#0a121c;
}
.hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}
.hero-overlay{
  position:absolute; inset:0;
  z-index:2;
  background:linear-gradient(100deg, rgba(4,8,12,.82) 0%, rgba(4,8,12,.55) 32%, rgba(4,8,12,.15) 60%, rgba(4,8,12,.05) 100%),
             linear-gradient(180deg, rgba(4,8,12,.3) 0%, rgba(4,8,12,.1) 30%, rgba(4,8,12,.35) 62%, rgba(4,8,12,.92) 100%);
}
.hero-content{
  position:relative;
  z-index:3;
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:9% 32px 0 11%;
}
.hero-content-inner{ max-width:640px; }
.hero-title{
  margin:0;
  font-family:var(--font-accent);
  font-weight:700;
  font-size:150px;
  line-height:.85;
  color:#fff;
  text-shadow:0 4px 30px rgba(0,0,0,.55);
}
.hero-subtitle{
  margin:10px 0 0;
  font-family:var(--font-body);
  font-weight:700;
  font-size:45px;
  line-height:1.15;
  color:var(--teal);
  text-transform:lowercase;
  letter-spacing:.01em;
  text-shadow:0 2px 18px rgba(0,0,0,.4);
}
.hero-tagline{
  margin:22px 0 0;
  font-size:17px;
  font-weight:400;
  color:#f2f6f7;
  max-width:420px;
  line-height:1.5;
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}
.intro-tiles{
  position:relative;
  padding:90px 0;
  background:var(--bg-alt);
}
.hero-tiles{
  position:relative;
  z-index:1;
}
.hero-tiles .tile-row{ margin-top:0; }

/* ---------- sections ---------- */
.section{ padding:96px 0; background:var(--bg); }
.section-alt{ background:var(--bg-alt); }

.section-title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  text-align:center;
  font-family:var(--font-body);
  font-weight:700;
  font-size:26px;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:#fff;
  margin:0 0 14px;
}
.bracket{ flex:1 1 auto; height:1px; background:var(--teal); }

.section-lead{
  max-width:640px;
  margin:0 auto 52px;
  text-align:center;
  color:var(--muted);
  font-size:16px;
  line-height:1.6;
}
.section-title + .tile-row{ margin-top:52px; }

/* ---------- tiles ---------- */
.tile-row{
  display:grid;
  gap:26px;
}
.tile-row-3{ grid-template-columns:repeat(3, 1fr); }
.tile-row-4{ grid-template-columns:repeat(4, 1fr); }

.glass-tile{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:32px 28px;
  border-radius:24px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(18px) saturate(150%);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  box-shadow:0 10px 30px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .25s ease, background .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.glass-tile:hover{
  transform:translateY(-6px);
  background:rgba(255,255,255,.09);
  border-color:var(--teal);
  box-shadow:0 16px 40px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.28);
}

.tile-row-3 .glass-tile{
  aspect-ratio:1 / 1;
}

.photo-tile{
  padding:0;
  overflow:hidden;
  align-items:stretch;
  justify-content:flex-end;
  background:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.tile-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  filter:saturate(.75) brightness(.9);
  transition:transform .4s ease, filter .4s ease;
}
.photo-tile:hover .tile-photo{ transform:scale(1.06); filter:saturate(1) brightness(1); }
.tile-photo-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg, rgba(5,10,17,0) 38%, rgba(5,10,17,.6) 72%, rgba(5,10,17,.92) 100%);
}
.tile-photo-content{
  position:relative;
  z-index:2;
  padding:24px;
  text-align:left;
}
.tile-photo-content .tile-title{ margin-bottom:8px; }

.tile-icon{
  width:74px; height:74px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--teal);
  background:var(--teal-soft);
  color:var(--teal);
  margin-bottom:22px;
}
.tile-icon svg{ width:36px; height:36px; }

.tile-title{
  font-size:18px;
  font-weight:700;
  color:var(--teal);
  letter-spacing:.01em;
  margin-bottom:10px;
  text-shadow:0 2px 10px rgba(0,0,0,.5);
}
.tile-desc{
  font-size:14px;
  color:#dce6ea;
  text-shadow:0 1px 8px rgba(0,0,0,.5);
  line-height:1.55;
}

.glass-tile-sm{ padding:34px 18px; }
.glass-tile-sm .tile-icon{ width:60px; height:60px; margin-bottom:16px; }
.glass-tile-sm .tile-icon svg{ width:28px; height:28px; }
.glass-tile-sm .tile-title{ margin-bottom:0; font-size:16px; }

/* ---------- capsule tiles (Дары Карелии) ---------- */
.capsule-row{ align-items:end; gap:20px; }
.capsule-tile{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.capsule-img-wrap{
  width:100%;
  max-width:310px;
  aspect-ratio:2/3;
  margin:0 auto 20px;
  overflow:hidden;
  border-radius:28px;
  filter:drop-shadow(0 14px 26px rgba(0,0,0,.4));
  transition:transform .3s ease;
}
.capsule-img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.capsule-tile:hover .capsule-img-wrap{ transform:translateY(-8px); }
.capsule-title{ font-size:17px; font-weight:700; color:#fff; letter-spacing:.02em; }

/* ---------- inner page hero ---------- */
.page-hero{ background:var(--bg-alt); }
.page-hero-media{
  position:relative;
  aspect-ratio:1280/720;
  border-radius:20px;
  overflow:hidden;
  display:flex;
  align-items:center;
}
.page-hero-photo{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.page-hero-overlay{
  position:absolute; inset:0;
  z-index:1;
  background:linear-gradient(100deg, rgba(4,8,12,.88) 0%, rgba(4,8,12,.6) 38%, rgba(4,8,12,.2) 68%, rgba(4,8,12,.05) 100%),
             linear-gradient(0deg, rgba(4,8,12,.55) 0%, rgba(4,8,12,.1) 40%);
}
.page-hero-content{ position:relative; z-index:2; width:100%; padding:0 32px; }
.page-hero-eyebrow{
  display:inline-block;
  color:var(--teal);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  margin-bottom:18px;
}
.page-hero-title{
  margin:0;
  font-family:var(--font-body);
  font-weight:700;
  font-size:52px;
  line-height:1.12;
  color:#fff;
  text-shadow:0 4px 24px rgba(0,0,0,.5);
}
.page-hero-title .accent-teal{ color:var(--teal); }
.page-hero-lead{
  margin:24px 0 32px;
  font-size:17px;
  line-height:1.6;
  color:#dde6ea;
  max-width:460px;
  text-shadow:0 2px 10px rgba(0,0,0,.4);
}
.btn-outline-teal{
  display:inline-block;
  padding:15px 34px;
  border:1.5px solid var(--teal);
  border-radius:999px;
  color:var(--teal);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  transition:background .2s ease, color .2s ease;
}
.btn-outline-teal:hover{ background:var(--teal); color:#04120f; }

/* ---------- house catalogue ---------- */
.house-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:28px;
}
.house-card{
  background:var(--card);
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  overflow:hidden;
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.house-card:hover{
  transform:translateY(-5px);
  border-color:var(--line);
  box-shadow:0 16px 34px rgba(0,0,0,.35);
}
.house-card-photo-link{ display:block; }
.house-card-photo{ position:relative; aspect-ratio:1/1; overflow:hidden; }
.house-card-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.house-card-photo-link:hover .house-card-photo img{ transform:scale(1.05); }
.house-card-price{
  position:absolute; right:12px; bottom:12px;
  background:rgba(5,10,17,.78);
  color:var(--teal);
  font-size:12px;
  font-weight:700;
  padding:6px 12px;
  border-radius:999px;
  backdrop-filter:blur(6px);
}
.house-card-body{ padding:20px; }
.house-card-title{ margin:0 0 8px; font-size:17px; font-weight:700; color:#fff; }
.house-card-title a{ color:inherit; text-decoration:none; }
.house-card-title a:hover{ color:var(--teal); }
.house-card-location{
  display:flex; align-items:center; gap:6px;
  font-size:12.5px; color:var(--teal);
  margin-bottom:12px;
}
.house-card-location svg{ width:14px; height:14px; flex:none; }
.house-card-location:hover{ text-decoration:underline; }
.house-card-desc{ font-size:13.5px; color:var(--muted); line-height:1.55; margin:0 0 14px; }
.house-card-services{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.service-tag{
  font-size:11.5px;
  color:#dce6ea;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  padding:5px 10px;
  border-radius:999px;
}
.house-card-owner{
  display:flex; flex-direction:column; gap:4px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.08);
  font-size:13px;
  color:var(--muted);
}
.house-card-owner a{ color:var(--teal); font-weight:600; }
.house-card-owner a:hover{ text-decoration:underline; }
.results-empty{
  margin-top:28px;
  font-size:14px;
  color:var(--muted);
  text-align:center;
}

/* ---------- booking bar ---------- */
.booking-bar-section{ padding:0 0 96px; }
.booking-bar{
  display:flex;
  align-items:stretch;
  gap:0;
  background:var(--card);
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  padding:10px;
  flex-wrap:wrap;
}
.booking-field{
  position:relative;
  flex:1 1 180px;
  padding:10px 20px;
  border-right:1px solid rgba(255,255,255,.08);
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:160px;
}
.booking-field label{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  margin-bottom:4px;
}
.booking-field input[type="date"]{
  background:none;
  border:none;
  color:#fff;
  font-size:15px;
  font-family:inherit;
  padding:0;
  outline:none;
  color-scheme:dark;
}
.guests-toggle{
  background:none; border:none;
  color:#fff; font-size:15px; font-family:inherit;
  text-align:left; padding:0; cursor:pointer;
}
.guests-popover{
  display:none;
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  width:280px;
  background:var(--card);
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  padding:18px;
  box-shadow:0 20px 44px rgba(0,0,0,.45);
  z-index:30;
}
.guests-popover.open{ display:block; }
.guests-row{ display:flex; align-items:center; justify-content:space-between; padding:10px 0; }
.guests-row-title{ font-size:14px; color:#fff; font-weight:600; }
.guests-row-sub{ font-size:12px; color:var(--muted); }
.guests-stepper{ display:flex; align-items:center; gap:12px; }
.guests-stepper button{
  width:28px; height:28px;
  border-radius:50%;
  border:1px solid var(--teal);
  background:none;
  color:var(--teal);
  font-size:16px;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.guests-stepper button:hover{ background:var(--teal); color:#04120f; }
.guests-stepper span{ min-width:16px; text-align:center; color:#fff; font-weight:600; }
.guests-done{
  width:100%;
  margin-top:10px;
  padding:10px;
  border-radius:10px;
  border:none;
  background:var(--teal);
  color:#04120f;
  font-weight:700;
  font-size:13px;
  cursor:pointer;
}
.btn-search{
  flex:0 0 auto;
  margin:6px;
  padding:0 40px;
  border:none;
  border-radius:12px;
  background:var(--teal);
  color:#04120f;
  font-weight:700;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.04em;
  cursor:pointer;
  transition:filter .2s ease;
}
.btn-search:hover{ filter:brightness(1.08); }
.btn-reset-filter{
  flex:0 0 auto;
  margin:6px 6px 6px 0;
  padding:0 24px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:12px;
  background:none;
  color:var(--muted);
  font-weight:600;
  font-size:13px;
  cursor:pointer;
  transition:border-color .2s ease, color .2s ease;
}
.btn-reset-filter:hover{ border-color:var(--teal); color:var(--teal); }

/* ---------- footer ---------- */
.site-footer{ background:#060b11; border-top:1px solid var(--line); padding-top:64px; }
.footer-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr;
  gap:56px;
  padding-bottom:56px;
}
.footer-brand .footer-logo{
  font-family:var(--font-accent);
  font-weight:700;
  font-size:70px;
  color:#fff;
  margin-bottom:14px;
  line-height:1;
}
.footer-brand p{ color:var(--muted); font-size:16px; line-height:1.65; max-width:340px; }
.footer-col h4{
  color:var(--teal);
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:0 0 20px;
}
.footer-col{ display:flex; flex-direction:column; gap:14px; }
.footer-col a, .footer-col span{ color:var(--muted); font-size:16px; }
.footer-col a:hover{ color:var(--teal); }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.06);
  padding:22px 0;
  color:var(--muted);
  font-size:13px;
  text-align:center;
}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .hero-title{ font-size:110px; }
  .hero-subtitle{ font-size:34px; }
  .tile-row-3{ grid-template-columns:repeat(2,1fr); }
  .tile-row-4{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .house-grid{ grid-template-columns:repeat(2,1fr); }
  .page-hero-title{ font-size:44px; }
}

@media (max-width:720px){
  .hero-content{ padding:9% 6vw 0 11%; max-width:100%; }
  .hero-title{ font-size:78px; }
  .hero-subtitle{ font-size:26px; }
  .hero-tagline{ font-size:15px; }
  .section{ padding:64px 0; }
  .section-title{ font-size:19px; gap:10px; }
  .tile-row-3{ grid-template-columns:1fr; }
  .tile-row-4{ grid-template-columns:1fr 1fr; gap:16px; }
  .footer-grid{ grid-template-columns:1fr; gap:32px; }

  .page-hero-media{ aspect-ratio:3/4; border-radius:14px; align-items:flex-end; }
  .page-hero-content{ padding:0 20px 30px; }
  .page-hero-title{ font-size:34px; }
  .page-hero-lead{ font-size:15px; }
  .house-grid{ grid-template-columns:1fr; gap:20px; }
  .booking-bar{ flex-direction:column; }
  .booking-field{ border-right:none; border-bottom:1px solid rgba(255,255,255,.08); }
  .btn-search{ margin:6px 0 0; padding:14px; width:100%; }
  .btn-reset-filter{ margin:6px 0 0; padding:14px; width:100%; }
  .house-detail-grid{ grid-template-columns:1fr; }
  .house-detail-sidebar{ position:static; }
}

/* ---------- house detail page ---------- */
.house-detail-hero-section{ background:var(--bg-alt); }
.house-detail-hero{
  position:relative;
  height:52vh;
  min-height:340px;
  border-radius:20px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.house-detail-hero-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 20%; z-index:0; }
.house-detail-hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(4,8,12,.35) 0%, rgba(4,8,12,.35) 40%, rgba(4,8,12,.92) 100%);
}
.house-detail-hero-content{ position:relative; z-index:2; padding:0 40px 36px; }
.back-link{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--teal); font-size:13px; font-weight:600;
  margin-bottom:18px;
}
.back-link:hover{ text-decoration:underline; }
.house-detail-title{ margin:0 0 10px; font-size:40px; font-weight:700; color:#fff; text-shadow:0 4px 20px rgba(0,0,0,.5); }
.house-detail-location{
  display:inline-flex; align-items:center; gap:6px;
  color:var(--teal); font-size:14px;
}
.house-detail-location svg{ width:16px; height:16px; }
.house-detail-location:hover{ text-decoration:underline; }

.house-detail{ padding:64px 0 100px; }
.house-detail-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:48px; align-items:start; }
.dish-detail-content{ max-width:760px; }
.dish-card:hover .house-card-photo img{ transform:scale(1.05); }
.house-detail-block{ margin-bottom:40px; }
.house-detail-block h2{ font-size:20px; color:#fff; margin:0 0 14px; }
.house-detail-desc{ font-size:15px; line-height:1.7; color:var(--muted); }
.house-detail-map-wrap{ border-radius:16px; overflow:hidden; border:1px solid rgba(255,255,255,.1); }
.house-detail-map-wrap iframe{ width:100%; height:320px; border:0; display:block; }
.house-detail-map-link{ display:inline-block; margin-top:12px; font-size:13px; color:var(--teal); }
.house-detail-map-link:hover{ text-decoration:underline; }
.service-price-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0; border-bottom:1px solid rgba(255,255,255,.08);
}
.service-price-row:last-child{ border-bottom:none; }
.service-price-name{ font-size:14.5px; color:#eef4f6; }
.service-price-value{ font-size:14px; color:var(--teal); font-weight:600; white-space:nowrap; }

.house-detail-sidebar{
  position:sticky; top:120px;
  background:var(--card);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  padding:26px;
}
.house-detail-price{ font-size:30px; font-weight:700; color:var(--teal); }
.house-detail-price span{ font-size:14px; font-weight:500; color:var(--muted); }
.house-detail-capacity{ font-size:13px; color:var(--muted); margin:6px 0 22px; }
.house-detail-owner{
  padding:18px 0; margin-bottom:18px;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.house-detail-owner-label{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:6px; }
.house-detail-owner-name{ font-size:15px; color:#fff; font-weight:600; margin-bottom:4px; }
.house-detail-owner a{ color:var(--teal); font-weight:600; font-size:14px; }
.house-detail-owner a:hover{ text-decoration:underline; }
.house-detail-form .booking-field{ flex:none; width:100%; padding:12px 0; border-right:none; border-bottom:1px solid rgba(255,255,255,.08); }
.house-detail-form .guests-popover{ left:auto; right:0; }
.house-detail-book-btn{
  width:100%; margin-top:16px; padding:15px;
  border:none; border-radius:12px;
  background:var(--teal); color:#04120f;
  font-weight:700; font-size:14px; text-transform:uppercase; letter-spacing:.04em;
  cursor:pointer; transition:filter .2s ease;
}
.house-detail-book-btn:hover{ filter:brightness(1.08); }
.book-feedback{ margin-top:14px; font-size:13.5px; line-height:1.5; padding:12px 14px; border-radius:10px; display:none; }
.book-feedback.ok{ display:block; background:rgba(63,224,208,.12); color:var(--teal); border:1px solid rgba(63,224,208,.3); }
.book-feedback.err{ display:block; background:rgba(224,90,63,.12); color:#e58a76; border:1px solid rgba(224,90,63,.3); }
.highlight-list{ list-style:none; margin:0; padding:0; }
.highlight-list li{ display:flex; align-items:flex-start; gap:10px; font-size:14.5px; color:var(--muted); line-height:1.6; margin-bottom:12px; }
.highlight-list li svg{ flex:none; width:18px; height:18px; color:var(--teal); margin-top:2px; }
.warning-list{ list-style:none; margin:0; padding:0; }
.warning-list li{ display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--muted); line-height:1.6; margin-bottom:12px; }
.warning-list li svg{ flex:none; width:18px; height:18px; color:#e0995a; margin-top:2px; }
.gift-guide-note{ font-size:13px; color:var(--muted); margin-top:14px; line-height:1.5; }

@media (max-width:720px){
  .house-detail-hero{ height:auto; aspect-ratio:4/3; min-height:0; border-radius:14px; }
  .house-detail-hero-content{ padding:0 20px 24px; }
  .house-detail-title{ font-size:28px; }
  .house-detail{ padding:44px 0 64px; }
}

/* ---------- header cart icon ---------- */
.header-cart{
  position:relative;
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px;
  border-radius:50%;
  border:1.5px solid rgba(255,255,255,.5);
  color:#fff;
  flex:none;
  margin-left:auto;
  transition:border-color .2s ease, color .2s ease;
}
.header-cart svg{ width:21px; height:21px; }
.header-cart:hover{ border-color:var(--teal); color:var(--teal); }
.header-cart-badge{
  display:none;
  position:absolute; top:-4px; right:-4px;
  min-width:19px; height:19px; padding:0 4px;
  align-items:center; justify-content:center;
  border-radius:999px;
  background:var(--teal);
  color:#04120f;
  font-size:11px; font-weight:700;
}
.header-account.logged-in{ border-color:var(--teal); color:var(--teal); }

@media (max-width:820px){
  .header-cart{ width:40px; height:40px; margin-right:10px; }
  .header-cart svg{ width:18px; height:18px; }
}

/* ---------- account modal ---------- */
.account-modal-backdrop{
  display:none;
  position:fixed; inset:0; z-index:100;
  background:rgba(4,8,12,.72);
  align-items:center; justify-content:center;
  padding:20px;
}
.account-modal-backdrop.open{ display:flex; }
.account-modal{
  position:relative;
  width:100%; max-width:400px;
  max-height:86vh; overflow-y:auto;
  background:var(--card);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  padding:32px 28px;
}
.account-modal-close{
  position:absolute; top:16px; right:16px;
  width:30px; height:30px;
  border:none; background:none;
  color:var(--muted); font-size:22px; line-height:1;
  cursor:pointer;
}
.account-modal-close:hover{ color:#fff; }
.account-modal-title{ margin:0 0 18px; font-size:19px; color:#fff; }
.account-modal-hello{ font-size:14px; color:var(--muted); line-height:1.6; margin-bottom:22px; }
.account-btn-wide{ width:100%; margin-top:4px; padding-top:15px; padding-bottom:15px; }
.account-form{ display:flex; flex-direction:column; gap:14px; }
.account-form > label{ font-size:12px; color:var(--muted); display:flex; flex-direction:column; gap:6px; }
.account-form input[type="email"],
.account-form input[type="password"],
.account-form input[type="text"]{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  padding:11px 13px;
  color:#fff; font-size:14px; font-family:inherit;
  outline:none;
  width:100%;
}
.account-form input:focus{ border-color:var(--teal); }
.account-pw-wrap{ position:relative; display:flex; }
.account-pw-wrap input{ padding-right:42px !important; }
.account-pw-toggle{
  position:absolute; top:50%; right:10px; transform:translateY(-50%);
  background:none; border:none; padding:4px;
  color:var(--muted); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.account-pw-toggle svg{ width:18px; height:18px; }
.account-pw-toggle:hover{ color:var(--teal); }
.account-links{ display:flex; justify-content:space-between; gap:14px; margin-top:16px; font-size:12.5px; }
.account-links a{ color:var(--teal); }
.account-links a:hover{ text-decoration:underline; }
.account-checkbox-row{ flex-direction:row !important; align-items:flex-start; gap:9px !important; font-size:12.5px; line-height:1.5; color:var(--muted); }
.account-checkbox-row input{ margin-top:2px; width:15px; height:15px; flex:none; accent-color:var(--teal); }
.account-checkbox-row a{ color:var(--teal); }
.account-checkbox-row a:hover{ text-decoration:underline; }
.account-form-success{
  margin-top:18px; padding:12px 14px; border-radius:10px;
  background:rgba(63,224,208,.12); color:var(--teal);
  border:1px solid rgba(63,224,208,.3); font-size:13.5px;
}

/* ---------- email preview ---------- */
.email-preview{ margin-top:20px; }
.email-preview-meta{ font-size:11.5px; color:var(--muted); margin-bottom:8px; }
.email-preview-card{
  background:#0a121c;
  border:1px solid rgba(63,224,208,.25);
  border-radius:14px;
  padding:24px;
}
.email-preview-logo{
  font-family:var(--font-accent);
  font-weight:700; font-size:26px; color:var(--teal);
  margin-bottom:16px;
}
.email-preview-body p{ font-size:13.5px; line-height:1.7; color:#dde6ea; margin:0 0 12px; }
.email-preview-footer{
  margin-top:14px; padding-top:14px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:12px; color:var(--muted);
}

/* ---------- cart page ---------- */
.cart-section{ padding:140px 0 100px; min-height:60vh; }
.cart-title{ font-size:28px; color:#fff; margin:0 0 32px; }
.cart-layout{ display:grid; grid-template-columns:1.7fr 1fr; gap:40px; align-items:start; }
.cart-item{
  display:grid; grid-template-columns:120px 1fr auto; gap:18px;
  background:var(--card); border:1px solid rgba(255,255,255,.08);
  border-radius:16px; padding:16px; margin-bottom:16px;
}
.cart-item img{ width:120px; height:90px; object-fit:cover; border-radius:10px; }
.cart-item-name{ font-size:16px; font-weight:700; color:#fff; margin:0 0 6px; }
.cart-item-tag{
  display:inline-block; vertical-align:middle;
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:var(--teal); background:rgba(63,224,208,.12);
  border:1px solid rgba(63,224,208,.3);
  padding:2px 8px; border-radius:999px; margin-left:6px;
}
.cart-item-meta{ font-size:13px; color:var(--muted); line-height:1.6; }
.cart-item-price{ font-size:15px; color:var(--teal); font-weight:700; white-space:nowrap; }
.cart-item-remove{
  background:none; border:none; color:var(--muted);
  font-size:13px; cursor:pointer; margin-top:8px;
}
.cart-item-remove:hover{ color:#e58a76; }
.cart-empty{ font-size:15px; color:var(--muted); padding:40px 0; }
.cart-summary{
  background:var(--card); border:1px solid rgba(255,255,255,.1);
  border-radius:18px; padding:26px; position:sticky; top:120px;
}
.cart-summary-row{ display:flex; justify-content:space-between; font-size:14px; color:var(--muted); padding:8px 0; }
.cart-summary-total{ display:flex; justify-content:space-between; font-size:19px; font-weight:700; color:#fff; padding:14px 0; border-top:1px solid rgba(255,255,255,.1); margin-top:6px; }
.cart-checkout-btn{
  width:100%; margin-top:16px; padding:15px; border:none; border-radius:12px;
  background:var(--teal); color:#04120f; font-weight:700; font-size:14px;
  text-transform:uppercase; letter-spacing:.04em; cursor:pointer; text-align:center; display:block; text-decoration:none;
  transition:filter .2s ease;
}
.cart-checkout-btn:hover{ filter:brightness(1.08); }
.cart-checkout-btn[disabled], .cart-checkout-btn.disabled{ opacity:.4; pointer-events:none; }

/* ---------- checkout page ---------- */
.checkout-section{ padding:140px 0 100px; min-height:60vh; }
.checkout-layout{ display:grid; grid-template-columns:1.5fr 1fr; gap:40px; align-items:start; }
.checkout-form{ background:var(--card); border:1px solid rgba(255,255,255,.1); border-radius:18px; padding:30px; }
.checkout-form h2{ font-size:17px; color:#fff; margin:0 0 18px; }
.checkout-form .form-row{ display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.checkout-form label{ font-size:12px; color:var(--muted); }
.checkout-form input{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14);
  border-radius:10px; padding:12px 14px; color:#fff; font-size:14px; font-family:inherit; outline:none;
}
.checkout-form input:focus{ border-color:var(--teal); }
.form-row-pair{ display:flex; gap:14px; }
.form-row-pair .form-row{ flex:1; }
.checkout-pay-btn{
  width:100%; margin-top:8px; padding:16px; border:none; border-radius:12px;
  background:var(--teal); color:#04120f; font-weight:700; font-size:14px;
  text-transform:uppercase; letter-spacing:.04em; cursor:pointer; transition:filter .2s ease;
}
.checkout-pay-btn:hover{ filter:brightness(1.08); }
.checkout-error{ font-size:13px; color:#e58a76; margin-top:10px; display:none; }
.checkout-summary{ background:var(--card); border:1px solid rgba(255,255,255,.1); border-radius:18px; padding:26px; position:sticky; top:120px; }
.checkout-summary-item{ display:flex; justify-content:space-between; font-size:13.5px; color:var(--muted); padding:8px 0; border-bottom:1px solid rgba(255,255,255,.06); }
.checkout-success{ text-align:center; padding:40px 0; }
.checkout-success-icon{
  width:64px; height:64px; margin:0 auto 20px; border-radius:50%;
  background:rgba(63,224,208,.14); color:var(--teal);
  display:flex; align-items:center; justify-content:center;
}
.checkout-success h2{ color:#fff; font-size:24px; margin:0 0 10px; }
.checkout-success p{ color:var(--muted); font-size:14.5px; margin:0 0 24px; }

@media (max-width:820px){
  .cart-layout, .checkout-layout{ grid-template-columns:1fr; }
  .cart-summary, .checkout-summary{ position:static; }
  .cart-item{ grid-template-columns:90px 1fr; }
  .cart-item-price{ grid-column:2; }
  .form-row-pair{ flex-direction:column; gap:16px; }
}
