/* Harissh Patel — shared foundations and interactive controls. */
:root{
  --ds-canvas:#130f0d;
  --ds-surface:#241311;
  --ds-ink:#f1e8d8;
  --ds-muted:#c4c1b8;
  --ds-accent:#d7b982;
  --ds-primary:#e6d8bb;
  --ds-primary-hover:#f3e8d1;
  --ds-on-primary:#301415;
  --ds-line:rgba(215,185,130,.34);
  --ds-focus:#f1d49c;
  --ds-space-1:4px; --ds-space-2:8px; --ds-space-3:12px; --ds-space-4:16px;
  --ds-space-6:24px; --ds-space-8:32px; --ds-space-12:48px; --ds-space-16:64px;
  --ds-control:48px;
  --ds-radius-control:999px;
  --ds-icon-sm:16px; --ds-icon-md:20px; --ds-icon-lg:24px;
  --ds-ease:cubic-bezier(.22,1,.36,1);
}
/* Primary: the same booking action in the desktop header and mobile menu. */
body .site-header.royal-nav .royal-book,
body[data-page] .royal-mobile-navigation .royal-mobile-book{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:var(--ds-control);padding:0 22px;border:1px solid var(--ds-primary);
  border-radius:var(--ds-radius-control);background:var(--ds-primary);color:var(--ds-on-primary);
  font:600 13px/1.25 var(--sans);letter-spacing:.015em;text-decoration:none;
  transition:background .22s var(--ds-ease),border-color .22s var(--ds-ease),transform .22s var(--ds-ease),box-shadow .22s var(--ds-ease);
}
body .site-header.royal-nav .royal-book:hover,
body[data-page] .royal-mobile-navigation .royal-mobile-book:hover{
  background:var(--ds-primary-hover);border-color:var(--ds-primary-hover);color:var(--ds-on-primary);
  transform:translateY(-2px);box-shadow:0 8px 22px #0003;
}
body .site-header.royal-nav .royal-book:active,
body[data-page] .royal-mobile-navigation .royal-mobile-book:active{transform:translateY(0);box-shadow:none}
/* Secondary buttons retain a quieter outline. Text links stay light and uncluttered. */
body .button.outline{min-height:var(--ds-control);padding:12px 21px;border:1px solid var(--ds-line);border-radius:var(--ds-radius-control);background:transparent;color:var(--ds-ink);font:500 13px/1.4 var(--sans);transition:background .22s var(--ds-ease),border-color .22s var(--ds-ease),color .22s var(--ds-ease),transform .22s var(--ds-ease)}
body .button.outline:hover{background:#e6d8bb14;border-color:var(--ds-accent);color:var(--ds-ink);transform:translateY(-2px)}
body .text-link{min-height:44px;gap:12px;color:var(--ds-accent);font:500 13px/1.5 var(--sans);border-color:var(--ds-line);transition:color .22s var(--ds-ease),border-color .22s var(--ds-ease),gap .22s var(--ds-ease)}
body .text-link:hover{color:var(--ds-primary-hover);border-color:var(--ds-accent);gap:16px}
/* Icons share dimensions, without affecting illustration or flower SVGs. */
body .royal-book .icon,body .royal-mobile-book .icon,body .button .icon,body .text-link .icon{width:var(--ds-icon-sm);height:var(--ds-icon-sm);flex:none}
body .icon-button{min-width:44px;min-height:44px}
body .icon-button .icon{width:var(--ds-icon-md);height:var(--ds-icon-md)}
body :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--ds-focus);outline-offset:4px}
@media(max-width:580px){body .site-header.royal-nav .royal-book{display:none}body[data-page] .royal-mobile-navigation .royal-mobile-book{display:inline-flex;width:100%;margin-top:12px}}
@media(prefers-reduced-motion:reduce){body .royal-book,body .royal-mobile-book,body .button.outline,body .text-link{transition:none}}

/* Shared navigation and footer typography. */
body .royal-nav .language-switch button{font-family:var(--sans);line-height:1.4}
body .royal-mobile-navigation a:not(.royal-mobile-book){min-height:48px;font-family:var(--serif);line-height:1.3}
body .finale-intro p,body .finale-contacts,body .finale-links,body .finale-bottom,body .finale-book{font-family:var(--sans);line-height:1.6}
body .finale-intro h3{font-family:var(--serif)}
body .finale-book{min-height:44px;font-size:13px;color:var(--ds-ink);border-color:var(--ds-line)}
body .finale-links a{min-height:36px;font-size:13px;line-height:1.5}
body .finale-links .icon{width:var(--ds-icon-sm);height:var(--ds-icon-sm);flex:none}
body .finale-bottom,body .finale-contacts{font-size:12px}
body .finale-bottom a{min-height:44px;display:inline-flex;align-items:center;gap:8px}
@media(max-width:580px){body .finale-links a{min-height:44px;font-size:14px}body .finale-bottom,body .finale-contacts{font-size:13px}}
