/* Roya Majlis: shared design tokens. Deep Hospitality palette. */
:root {
  --navy: #1B2A4A;
  --navy-2: #24365C;
  --sand: #C9A27E;
  --sand-deep: #8A6A47;   /* sand darkened for text on ivory (AA contrast) */
  --sand-pale: #EFE4D6;
  --slate: #6D7683;
  --slate-text: #5A626E;  /* slate darkened slightly for small text */
  --ivory: #FBF9F3;
  --anchor: #3C3C3C;
  --line: #E4DCCF;
  --white: #FFFFFF;
  --ok: #2F6B4F;
  --warn: #8A4B2F;
  --radius: 14px;
  --font: 'Segoe UI', 'Segoe UI Variable', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --tap: 52px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  color: var(--anchor);
  background: var(--ivory);
  line-height: 1.5;
  font-size: 17px;
}
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--navy); }
:focus-visible { outline: 3px solid var(--sand); outline-offset: 2px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Fine geometric motif: interlaced sand lines, very low contrast. */
.motif {
  background-color: var(--navy);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23C9A27E' stroke-opacity='0.16' stroke-width='1'%3E%3Cpath d='M24 2 L46 24 L24 46 L2 24 Z'/%3E%3Cpath d='M24 12 L36 24 L24 36 L12 24 Z'/%3E%3Cpath d='M0 0 L12 12 M48 0 L36 12 M0 48 L12 36 M48 48 L36 36'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 48px 48px;
}
.rule { height: 3px; background: linear-gradient(90deg, var(--sand) 0 40%, transparent 40% 44%, var(--sand) 44% 46%, transparent 46% 50%, var(--sand) 50% 52%, transparent 52%); opacity: .85; }

.brand-bar { color: var(--ivory); }
.brand-bar .inner { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 14px 16px; max-width: 760px; margin: 0 auto; }
.brand-title { font-size: 22px; font-weight: 600; letter-spacing: .02em; margin: 0; }
.brand-small { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--sand); white-space: nowrap; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--tap); padding: 0 22px; border-radius: 999px; border: 1.5px solid var(--navy);
  background: var(--navy); color: var(--ivory); font-weight: 600; font-size: 17px; cursor: pointer;
  text-decoration: none; touch-action: manipulation;
}
.btn:hover { background: var(--navy-2); }
.btn[disabled] { opacity: .45; cursor: not-allowed; }
.btn.secondary { background: transparent; color: var(--navy); }
.btn.secondary:hover { background: var(--sand-pale); }
.btn.sand { background: var(--sand); border-color: var(--sand); color: var(--navy); }
.btn.danger { background: transparent; color: var(--warn); border-color: var(--warn); }
.btn.small { min-height: 42px; padding: 0 16px; font-size: 15px; }
.btn.block { width: 100%; }

label.field { display: block; font-weight: 600; color: var(--navy); margin: 18px 0 8px; font-size: 16px; }
.input, select.input, textarea.input {
  width: 100%; min-height: var(--tap); padding: 12px 14px; border-radius: 10px;
  border: 1.5px solid #CFC6B8; background: var(--white); font-size: 17px;
}
textarea.input { min-height: 140px; resize: vertical; line-height: 1.45; }
.input:focus { border-color: var(--navy); outline: none; box-shadow: 0 0 0 3px rgba(201,162,126,.45); }
.hint { font-size: 14px; color: var(--slate-text); margin-top: 6px; }
.count { font-size: 13px; color: var(--slate-text); text-align: right; margin-top: 4px; }
.error { color: var(--warn); font-weight: 600; margin-top: 10px; min-height: 1.2em; }
.eyebrow { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--sand-deep); font-weight: 700; }
