/* OzGetaways brand system. Served at /styles/brand.css. Tokens + primitives only; pages add layout. */
:root{
  --navy:#0F2A44;--ink:#1E2A3A;--muted:#5B6878;--line:#E6E2DA;
  --paper:#FBF6EE;--paper-deep:#F3ECDF;--white:#FFFFFF;
  --brand:#0B66F7;--brand-deep:#0A56D6;--brand-tint:#EAF0FE;--ring:rgba(11,102,247,.14);
  --sun:#FFC35A;--hull:#516D70;--sail:#AEC4C4;
  --land:#46605B;--land-night:#0C1C2C;--glow:rgba(255,236,200,.55);--star:rgba(255,255,255,.5);
  --on-dark:#FBF6EE;--on-dark-soft:rgba(251,246,238,.78);--on-dark-line:rgba(255,255,255,.18);
  --success:#15803D;--error:#C0392B;
  --font-display:"Plus Jakarta Sans","Plus Jakarta Sans Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-body:"Open Sans","Open Sans Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --fs-xl:clamp(2.375rem,1rem + 3.1vw,3.875rem);--fs-stat:clamp(4rem,2.5rem + 5vw,7rem);
  --fs-h2:clamp(1.875rem,1.2rem + 1.9vw,2.75rem);--fs-h3:1.375rem;--fs-fig:1.75rem;--fs-lead:1.125rem;
  --fs-body:1rem;--fs-small:.875rem;--fs-caption:.8125rem;--fs-eyebrow:.75rem;--fs-btn:.9375rem;
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;
  --gutter:16px;--container:1120px;--measure:680px;--section-y:clamp(56px,9vw,128px);
  --r-pill:100px;--r-input:12px;--r-card:22px;
  --shadow-sm:0 10px 24px -14px rgba(15,42,68,.35);--shadow-md:0 20px 40px -32px rgba(15,42,68,.4);
  --shadow-lg:0 30px 60px -30px rgba(15,42,68,.45);--backdrop:rgba(15,42,68,.45);
  --ease:cubic-bezier(.2,.8,.2,1);--ease-io:cubic-bezier(.65,0,.35,1);
  --fast:150ms;--base:250ms;--slow:700ms;--fade:900ms;--stagger:80ms;
}
@supports (color:color(display-p3 0 0 0)){:root{--brand:color(display-p3 .1765 .3922 .9333);--sun:color(display-p3 .9647 .7725 .4235);--hull:color(display-p3 .3412 .4235 .4353);--sail:color(display-p3 .6980 .7647 .7686)}}
@media (min-width:640px){:root{--gutter:24px}}
@media (max-width:640px){:root{--fs-fig:1.5rem;--fs-lead:1.0625rem}}
@font-face{font-family:"Plus Jakarta Sans Fallback";src:local("Arial"),local("Helvetica Neue");size-adjust:103%;ascent-override:100%;descent-override:26%;line-gap-override:0%}
@font-face{font-family:"Open Sans Fallback";src:local("Arial"),local("Helvetica Neue");size-adjust:105%;ascent-override:102%;descent-override:28%;line-gap-override:0%}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-body)/1.6 var(--font-body);font-synthesis:none;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
h1,h2,h3,p,figure,dl,dd{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
a{color:inherit}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.measure{max-width:var(--measure)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type */
.display-xl{font:800 var(--fs-xl)/1.06 var(--font-display);letter-spacing:-.025em;color:var(--navy)}
.display-xl em{font-style:normal;font-weight:inherit;color:var(--brand)}
.on-dark .display-xl em{color:var(--sun)}
.display-stat{font:800 var(--fs-stat)/1 var(--font-display);letter-spacing:-.03em;font-feature-settings:"tnum"}
.h2{font:700 var(--fs-h2)/1.14 var(--font-display);letter-spacing:-.02em;color:var(--navy);text-wrap:balance}
.h3{font:700 var(--fs-h3)/1.25 var(--font-display);letter-spacing:-.015em;color:var(--navy)}
.figure{font:700 var(--fs-fig)/1.1 var(--font-display);letter-spacing:-.02em;font-feature-settings:"tnum";color:var(--navy)}
.lead{font-size:var(--fs-lead);line-height:1.6;color:var(--muted);max-width:44ch}
.small{font-size:var(--fs-small);line-height:1.5}
.caption{font-size:var(--fs-caption);line-height:1.5;color:var(--muted)}
.eyebrow{font-size:var(--fs-eyebrow);font-weight:600;line-height:1.2;letter-spacing:.1em;text-transform:uppercase;color:var(--hull)}
.eyebrow--dot::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--sun);margin-right:10px;vertical-align:1px}
.tnum{font-feature-settings:"tnum"}
.on-dark{color:var(--on-dark)}.on-dark .lead,.on-dark .caption{color:var(--on-dark-soft)}.on-dark .h2,.on-dark .h3,.on-dark .figure{color:var(--on-dark)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 22px;border-radius:var(--r-pill);font-size:var(--fs-btn);font-weight:600;letter-spacing:0;text-decoration:none;white-space:nowrap;transition:background-color var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--base) var(--ease),box-shadow var(--base) var(--ease)}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-deep);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.btn-primary:active{transform:none;box-shadow:none}
.btn-primary:disabled{background:var(--sail);color:#fff;cursor:not-allowed;transform:none;box-shadow:none}
.btn-ghost{border:1px solid var(--line);color:var(--navy)}
.btn-ghost:hover{background:var(--paper-deep);border-color:var(--hull)}
.btn-ghost:active{background:var(--line)}
.btn-sun{background:var(--sun);color:var(--navy)}
.btn-sun:hover{background:#FFD07A;transform:translateY(-1px);box-shadow:0 14px 28px -14px rgba(255,195,90,.7)}
.btn-sun:active{transform:none;box-shadow:none}
.btn-sm{height:40px;padding:0 16px;font-size:var(--fs-small)}
.btn-lg{height:58px;padding:0 30px;font-size:1.0625rem;font-weight:700}
.btn-primary.btn-lg{background:var(--brand-deep);box-shadow:0 14px 28px -16px rgba(10,86,214,.7)}
.btn-primary.btn-lg:hover{background:var(--navy);box-shadow:0 16px 30px -16px rgba(15,42,68,.6)}
.btn-block{width:100%}

/* links */
.link{color:var(--navy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--line);transition:color var(--fast),text-decoration-color var(--fast)}
.link:hover{color:var(--brand-deep);text-decoration-color:currentColor;text-decoration-thickness:1.5px}
.on-dark .link{color:var(--on-dark);text-decoration-color:var(--on-dark-line)}.on-dark .link:hover{color:var(--sun)}

/* focus */
:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.on-dark :focus-visible{outline-color:var(--on-dark)}
.link:focus-visible{outline-offset:2px}

/* fields */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.label{font-size:var(--fs-small);font-weight:600;color:var(--navy)}
.label .opt{font-weight:400;color:var(--muted)}
.input,.select{width:100%;height:48px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-input);background:var(--white);color:var(--ink);font:400 16px/1 var(--font-body);transition:border-color var(--fast),box-shadow var(--fast)}
.input::placeholder{color:var(--muted);opacity:.8}
.input:hover,.select:hover{border-color:var(--hull)}
.input:focus,.select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--ring)}
.input[aria-invalid="true"]{border-color:var(--error)}
.input[aria-invalid="true"]:focus{box-shadow:0 0 0 4px rgba(192,57,43,.16)}
.select{appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23516D70' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.chip span{display:inline-flex;align-items:center;height:40px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--white);font-size:var(--fs-small);font-weight:600;color:var(--ink);white-space:nowrap;transition:border-color var(--fast),background-color var(--fast),color var(--fast)}
.chip:hover span{border-color:var(--hull)}
.chip input:checked+span{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-deep)}
.chip input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.form-msg{min-height:1.45em;font-size:var(--fs-caption);line-height:1.45;color:var(--muted)}
.form-msg.is-error{color:var(--error)}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* surfaces */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);transition:box-shadow var(--base) var(--ease)}
.card:focus-within{box-shadow:var(--shadow-md)}
.rule{position:relative;border-top:1px solid var(--line)}
.rule::before{content:"";position:absolute;left:var(--gutter);top:-3.5px;width:6px;height:6px;border-radius:50%;background:var(--sun)}
.on-dark .rule{border-color:var(--on-dark-line)}
.hairline{border-top:1px solid var(--line)}
.on-dark .hairline{border-color:var(--on-dark-line)}

/* dialog */
dialog{margin:auto;border:1px solid var(--line);border-radius:var(--r-card);padding:28px;width:min(380px,100% - 32px);background:var(--white);color:var(--ink);box-shadow:var(--shadow-lg)}
dialog:not([open]){display:none}
dialog::backdrop{background:var(--backdrop)}

/* motion */
.reveal{opacity:0;transform:translateY(16px);transition:opacity var(--slow) var(--ease),transform var(--slow) var(--ease);transition-delay:calc(var(--i,0) * var(--stagger))}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}
