:root { --background:#fffaf5; --foreground:#25131f; --card:#fff; --card-foreground:#25131f; --popover:#fff; --popover-foreground:#25131f; --primary:#8f285b; --primary-foreground:#fffaf5; --secondary:#f7e9e7; --secondary-foreground:#35102c; --muted:#f4e9e3; --muted-foreground:#725d6b; --accent:#d8a85b; --accent-foreground:#25131f; --destructive:#b4233e; --border:#eadbd5; --input:#eadbd5; --ring:#8f285b; --radius:.85rem; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--background); color:var(--foreground); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.65; }
a { color:inherit; text-decoration:none; -webkit-tap-highlight-color:transparent; }
a:focus-visible { outline:3px solid #e9b86a; outline-offset:4px; }
.icon { display:inline-block; font-size:1.05em; line-height:1; }

.site-header { align-items:center; background:#35102c; color:#fff9f1; display:flex; justify-content:space-between; min-height:76px; padding:0 5vw; }
.wordmark { font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.35rem,3vw,1.9rem); font-weight:700; letter-spacing:-.035em; }
.wordmark span { color:#e9b86a; font-style:italic; }
.header-phone { align-items:center; border:1px solid rgba(255,255,255,.32); border-radius:999px; display:inline-flex; font-size:.92rem; font-weight:700; gap:.55rem; padding:.55rem .9rem; }

.hero { background:radial-gradient(circle at 18% 8%,rgba(224,164,122,.14),transparent 32%),linear-gradient(132deg,#35102c 0%,#57163d 62%,#7b2450 100%); color:#fff9f1; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr); min-height:670px; overflow:hidden; padding:5.5rem 5vw 4.5rem; position:relative; }
.hero::before { border:1px solid rgba(233,184,106,.27); border-radius:50%; content:""; height:520px; left:-260px; position:absolute; top:170px; width:520px; }
.hero-copy { align-self:center; max-width:780px; padding:1rem 5vw 2rem 0; position:relative; z-index:1; }
.eyebrow,.section-kicker,.mini-label { color:#b2761f; font-size:.78rem; font-weight:800; letter-spacing:.19em; margin:0 0 1rem; text-transform:uppercase; }
.hero .eyebrow,.hero .mini-label,.international-card .mini-label { color:#e9b86a; }
.hero h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(4rem,8.3vw,8rem); font-weight:400; letter-spacing:-.065em; line-height:.84; margin:0; max-width:920px; }
.hero h1 span { color:#f1c77e; display:block; font-style:italic; margin-left:clamp(1rem,6vw,6rem); margin-top:.18em; white-space:nowrap; }
.hero-intro { color:#f0dfe8; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.1rem,2vw,1.35rem); line-height:1.65; margin:2.5rem 0 2rem; max-width:650px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.85rem; }
.button { align-items:center; border:1px solid transparent; border-radius:999px; display:inline-flex; font-size:.93rem; font-weight:800; gap:.55rem; justify-content:center; letter-spacing:.01em; min-height:52px; padding:.75rem 1.35rem; transition:transform 160ms ease,background-color 160ms ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:#e9b86a; color:#35102c; }
.button-secondary { border-color:rgba(255,255,255,.45); color:#fff; }
.button-secondary:hover { background:rgba(255,255,255,.1); }
.button-light { background:#fffaf5; color:#5a173f; }
.discreet { align-items:center; color:#d9c5cf; display:flex; font-size:.82rem; gap:.45rem; margin:1.3rem 0 0; }
.hero-portrait { align-self:end; justify-self:end; max-width:510px; position:relative; width:100%; }
.portrait-frame { background:#e9b86a; border:1px solid rgba(255,255,255,.28); border-radius:52% 52% 18px 18px; box-shadow:0 35px 80px rgba(20,1,14,.42); overflow:hidden; padding:8px; }
.portrait-frame img { aspect-ratio:.902/1; border-radius:52% 52% 12px 12px; display:block; height:auto; object-fit:cover; width:100%; }
.availability-card { align-items:center; background:rgba(255,250,245,.97); border-radius:12px; bottom:26px; box-shadow:0 18px 48px rgba(20,1,14,.32); color:#35102c; display:flex; font-size:.72rem; font-weight:800; gap:.7rem; left:-34px; letter-spacing:.12em; padding:.75rem 1rem; position:absolute; text-transform:uppercase; }
.availability-card img { max-height:34px; max-width:116px; }

.section-wrap { margin:0 auto; max-width:1240px; padding-left:5vw; padding-right:5vw; }
.welcome { align-items:center; display:grid; gap:clamp(2.5rem,7vw,7rem); grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr); padding-bottom:7rem; padding-top:7rem; }
.small-portrait-wrap { position:relative; }
.small-portrait-wrap::before { border:1px solid #d8a85b; bottom:-20px; content:""; left:-20px; position:absolute; right:20px; top:20px; }
.small-portrait { display:block; height:auto; object-fit:cover; position:relative; width:100%; }
.portrait-caption { background:#35102c; bottom:-24px; color:#f1c77e; font-family:Georgia,"Times New Roman",serif; font-size:1.18rem; font-style:italic; padding:.65rem 1rem; position:absolute; right:-12px; }
.welcome-copy h2,.rates-heading h2,.contact-section h2 { color:#35102c; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.3rem,5vw,4.6rem); font-weight:400; letter-spacing:-.045em; line-height:1.05; margin:0 0 1.5rem; }
.welcome-copy p { color:#58434f; font-size:1.05rem; max-width:760px; }
.boundary-note { border-left:3px solid #d8a85b; color:#725d6b; font-size:.9rem; margin-top:2rem; padding:.4rem 0 .4rem 1rem; }

.rates-section { background:#efe4df; padding:7rem 0; }
.rates-heading { align-items:end; display:grid; gap:2rem; grid-template-columns:1.2fr .8fr; margin-bottom:2.5rem; }
.rates-heading h2 { margin-bottom:0; }
.rates-heading>p { color:#725d6b; margin:0 0 .45rem; max-width:460px; }
.rate-grid { display:grid; gap:1rem; grid-template-columns:1fr 1fr .9fr; }
.rate-card { background:rgba(255,250,245,.88); border:1px solid #e0cdc5; border-radius:14px; padding:clamp(1.4rem,3vw,2.15rem); }
.featured-rate { background:#fffaf5; box-shadow:0 18px 52px rgba(53,16,44,.09); }
.rate-card-heading { align-items:center; color:#8f285b; display:flex; gap:.75rem; margin-bottom:1.1rem; }
.rate-card h3 { color:#35102c; font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; font-weight:400; line-height:1.2; margin:0; }
.rate-row,.international-rate { align-items:center; border-bottom:1px solid #e5d7d1; display:flex; justify-content:space-between; padding:.62rem 0; }
.rate-row strong,.international-rate strong { color:#8f285b; }
.rate-note { color:#725d6b; font-size:.83rem; line-height:1.55; margin:1rem 0 0; }
.international-card { background:#35102c; border-color:#35102c; color:#fffaf5; }
.international-card h3 { color:#fffaf5; font-size:2rem; margin-bottom:1.6rem; }
.international-card .international-rate { border-color:rgba(255,255,255,.15); }
.international-card .international-rate strong,.international-card .rate-note { color:#f1c77e; }
.booking-band { align-items:center; background:#8f285b; border-radius:14px; color:#fff; display:flex; gap:1.5rem; justify-content:space-between; margin-top:1rem; padding:1.35rem 1.5rem 1.35rem 2rem; }
.booking-band span { color:#efc5d9; display:block; font-size:.75rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.booking-band strong { font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; font-weight:400; }

.contact-section { padding-bottom:7rem; padding-top:7rem; text-align:center; }
.contact-section h2 { margin-left:auto; margin-right:auto; max-width:780px; }
.contact-links { display:grid; gap:.8rem; grid-template-columns:repeat(3,1fr); margin-top:2.5rem; }
.contact-links>a { align-items:center; background:#fff; border:1px solid #eadbd5; border-radius:12px; display:flex; gap:1rem; min-width:0; padding:1.2rem; text-align:left; }
.contact-links svg,.contact-links>a>.icon { color:#8f285b; flex:0 0 auto; }
.contact-links span { color:#35102c; font-size:.88rem; font-weight:700; min-width:0; overflow-wrap:anywhere; }
.contact-links small { color:#8a7580; display:block; font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }

footer { background:#25131f; color:#cdbbc4; padding:3rem 5vw 1.5rem; }
.footer-inner { align-items:start; display:flex; gap:3rem; justify-content:space-between; margin:0 auto; max-width:1240px; }
.footer-mark { color:#fffaf5; }
.footer-inner p { font-family:Georgia,"Times New Roman",serif; font-style:italic; margin:.3rem 0 0; }
.footer-inner nav { display:flex; flex-wrap:wrap; gap:.7rem 1.25rem; justify-content:flex-end; max-width:600px; }
.footer-inner nav a { font-size:.8rem; text-decoration:underline; text-decoration-color:rgba(233,184,106,.45); text-underline-offset:4px; }
.copyright { align-items:center; border-top:1px solid rgba(255,255,255,.1); display:flex; font-size:.75rem; gap:.4rem; justify-content:center; margin:2.5rem auto 0; max-width:1240px; padding-top:1.2rem; text-align:center; }

@media (max-width:900px) {
  .hero { gap:3rem; grid-template-columns:1fr; padding-top:4rem; }
  .hero-copy { padding-right:0; }
  .hero h1 span { margin-left:0; white-space:normal; }
  .hero-portrait { justify-self:center; max-width:440px; }
  .welcome { gap:4rem; }
  .rate-grid,.contact-links { grid-template-columns:1fr 1fr; }
  .international-card,.contact-links>a:last-child { grid-column:1/-1; }
}
@media (max-width:640px) {
  .site-header { min-height:66px; }
  .header-phone { font-size:0; gap:0; padding:.65rem; }
  .header-phone svg { height:20px; width:20px; }
  .header-phone .icon { font-size:1.25rem; }
  .hero { min-height:auto; padding-bottom:3.5rem; padding-top:3.5rem; }
  .hero h1 { font-size:clamp(3.15rem,17vw,5rem); }
  .availability-card { bottom:14px; left:10px; }
  .welcome { grid-template-columns:1fr; padding-bottom:5rem; padding-top:5rem; }
  .small-portrait-wrap { justify-self:center; max-width:260px; }
  .rates-section,.contact-section { padding-bottom:5rem; padding-top:5rem; }
  .rates-heading,.rate-grid,.contact-links { grid-template-columns:1fr; }
  .international-card,.contact-links>a:last-child { grid-column:auto; }
  .booking-band,.footer-inner { align-items:stretch; flex-direction:column; }
  .booking-band { padding:1.5rem; }
  .footer-inner nav { justify-content:flex-start; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
