:root{
  --ink:#3d3340;
  --muted:#6f6372;
  --plum:#6d4773;
  --plum-dark:#4e3154;
  --paper:rgba(255,255,255,.91);
  --line:rgba(102,77,105,.22);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:#dbc5df url('../images/floral-bg.svg') center top/520px 520px repeat fixed;
  line-height:1.45;
}
a{color:inherit}
.container{width:min(1120px,calc(100% - 34px));margin:0 auto}
.topbar{padding:14px 0 10px;background:rgba(255,255,255,.78)}
.topbar-inner{text-align:right}
.booking{font-size:18px;font-weight:700;color:var(--plum-dark);text-decoration:none}
main{width:min(1180px,calc(100% - 26px));margin:0 auto 28px;background:var(--paper);box-shadow:0 8px 28px rgba(63,42,67,.15)}
.intro{display:grid;grid-template-columns:360px 1fr;gap:38px;padding-top:34px;padding-bottom:26px;align-items:start}
.portrait-wrap{text-align:center}
.portrait{display:block;width:100%;max-width:340px;height:auto;margin:0 auto;object-fit:cover}
.intro-copy h1{margin:4px 0 18px;font-size:34px;line-height:1.08;letter-spacing:.02em;color:var(--plum-dark);font-weight:500}
.intro-copy p{font-size:17px;margin:0 0 16px}
.phone-row{display:grid;grid-template-columns:68px 1fr;gap:18px;align-items:start}
.phone-icon{width:58px;height:58px;object-fit:contain;margin-top:4px}
.prices{padding-top:8px;padding-bottom:36px}
.prices-grid{display:grid;grid-template-columns:1.16fr .84fr;gap:38px;align-items:start}
.price-table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.52);font-size:14px}
.price-table th,.price-table td{padding:6px 7px;vertical-align:top;border-bottom:1px solid var(--line)}
.price-table th{text-align:left;font-size:15px;font-weight:700;color:var(--plum-dark);background:rgba(216,192,220,.32)}
.price-table td:nth-child(n+2),.price-table th:nth-child(n+2){white-space:nowrap;text-align:right}
.price-table .strong td:first-child{font-weight:700}
.price-table .section-row td{font-weight:700;color:var(--plum-dark);padding-top:13px;background:rgba(232,216,235,.24)}
.price-table .spacer td{height:13px;border-bottom:0;background:transparent;padding:0}
.subline{font-size:.92em;color:var(--muted)}
.location{background:rgba(255,255,255,.8);padding-top:5px}
.address{font-size:19px;font-weight:700;color:var(--plum-dark);padding-top:18px;padding-bottom:15px}
.map-wrap{width:100%;height:370px;background:#eee}
.map-wrap iframe{display:block;width:100%;height:100%;border:0}
.footer{width:min(1180px,calc(100% - 26px));margin:0 auto 28px;background:rgba(74,48,79,.91);color:#fff}
.footer-inner{padding:26px 22px 28px}
.footer h2{font-size:20px;margin:0 0 12px}
.footer h3{font-size:15px;line-height:1.55;margin:0 0 12px;font-weight:500}
.footer h4{font-size:13px;line-height:1.5;margin:5px 0;font-weight:500}
@media(max-width:850px){
  body{background-attachment:scroll}
  main,.footer{width:min(100% - 14px,1180px)}
  .container{width:min(100% - 28px,1120px)}
  .intro{grid-template-columns:1fr;gap:22px;padding-top:24px}
  .portrait{max-width:420px}
  .prices-grid{grid-template-columns:1fr;gap:22px}
  .intro-copy h1{font-size:29px}
}
@media(max-width:560px){
  .topbar-inner{text-align:center}
  .booking{font-size:16px}
  .phone-row{grid-template-columns:48px 1fr;gap:10px}
  .phone-icon{width:42px;height:42px}
  .price-table{font-size:12px}
  .price-table th,.price-table td{padding:5px 4px}
  .price-table td:nth-child(n+2),.price-table th:nth-child(n+2){white-space:normal}
  .map-wrap{height:310px}
}
