/* ============================================================
   Adani Navbharat — brand tokens

   Single source of truth for the palette, type and geometry shared by all four
   surfaces: the kiosk (/kiosk/), the public registration page (/register/), the
   CMS (/cms/) and the gate scanner (/scan/). Component styles stay in each
   page's own stylesheet — only the tokens live here.

   Every value below is taken from the "Adani Brand Guidelines" document.
   Page references are given so any future change can be checked against it:

     p.70 / p.72  brand gradient stops and background grey
     p.71         "Whitespace is an integral part of our expression"
     p.73 / p.74  the logo may be reversed (white) on the brand colour or black
     p.75         "Adani brand gradient should be used only in Adani brand logo"
     p.77         a gradient logo needs a white or <=6% black background
     p.85         do not recolour, stretch, rotate or add effects to the logo
     p.89 / p.94  the 'Adani' typeface; Arial is the sanctioned system fallback
     p.96         font colour palette

   Load this BEFORE the page's own stylesheet.
   ============================================================ */

/* ---- Poppins, self-hosted ---------------------------------------------
   navbharatmumbai.com sets its type in Poppins, so the booking surfaces match
   the live site. See the --font-brand note below for how this sits against the
   brand book. Served from this origin because the app's CSP is
   `font-src 'self' data:`, which blocks the Google Fonts CDN.
   Poppins is licensed under the SIL Open Font License 1.1. */
@font-face {
	font-family: 'Poppins';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('fonts/poppins-400-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Poppins';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('fonts/poppins-400-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Poppins';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('fonts/poppins-500-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Poppins';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('fonts/poppins-500-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Poppins';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('fonts/poppins-600-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Poppins';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('fonts/poppins-600-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	/* ---- Font colour palette (p.96) -------------------------------------
	   These four are the only colours the guidelines assign to type. */
	--adani-purple: #8E278F;   /* headlines and section headers; brand accent */
	--adani-black:  #231F20;   /* body copy — note: NOT pure #000 */
	--adani-grey:   #6D6E71;   /* page headers and secondary copy */
	--adani-white:  #FFFFFF;   /* any copy or header in reverse */

	/* ---- Surfaces (p.72) ---- */
	--adani-bg-grey: #E6E7E8;  /* the sanctioned grey background */

	/* ---- Brand gradient stops (p.70) ------------------------------------
	   LOGO ONLY. p.75: "Adani brand gradient should be used only in Adani
	   brand logo". These are declared for reference and for the logo artwork;
	   they must never be used as a UI fill, button or accent. Individual
	   colours may be used singly (p.69). */
	--adani-gradient-green:  #00B16B;  /* stop 0  */
	--adani-gradient-blue:   #006DB6;  /* stop 35 */
	--adani-gradient-purple: #8E278F;  /* stop 65 */
	--adani-gradient-orange: #F04C23;  /* stop 90 */
	--adani-gradient-angle:  10deg;

	/* ---- Typography ------------------------------------------------------
	   DEVIATION FROM THE BRAND BOOK, RECORDED DELIBERATELY.

	   p.89 mandates the corporate 'Adani' typeface and states "No other font
	   family should be used under any case whatsoever"; p.94 names Arial as the
	   system fallback whenever 'Adani' is unavailable.

	   The live Navbharat site (navbharatmumbai.com) sets its type in Poppins,
	   so these booking surfaces follow the site rather than the book in order
	   to look like one product to a visitor. 'Adani' is kept next in the stack:
	   if the licensed webfont is ever self-hosted under app/assets/fonts/ it
	   takes over automatically, and Arial remains the final fallback exactly as
	   p.94 prescribes. Raise with the Adani brand custodian team if strict
	   book compliance is required. */
	--font-brand: 'Poppins', 'Adani', Arial, Helvetica, sans-serif;

	/* Weight roles, p.95: headline Semibold, subheadline Medium, body Regular. */
	--weight-headline: 600;
	--weight-subhead:  500;
	--weight-body:     400;

	/* ---- Semantic roles -------------------------------------------------
	   The names below are what the page stylesheets consume. Changing a brand
	   colour should only ever mean editing the block above. */
	--soft:  var(--adani-black);   /* page shell behind the cards */
	--shell: var(--adani-black);   /* header and footer bars */
	--strip: #2C2829;              /* stepper strip — one step up from the shell */
	--white: var(--adani-white);   /* the form surface */
	--ink:   var(--adani-black);   /* body copy */
	--muted: var(--adani-grey);    /* secondary copy on the white surface */

	/* Secondary copy on the dark shell. The brand grey (#6D6E71) is specified
	   for page headers on white and only reaches 3.2:1 on the brand black, so
	   reverse secondary text uses a light tint of it instead — p.96 assigns
	   white to "any copy / header in reverse", and this stays on that axis. */
	--muted-reverse: #B5B2B3;
	--navy:  var(--adani-purple);  /* section headings (p.96 headline colour) */
	--line:  var(--adani-bg-grey); /* hairlines on the white surface */

	/* Accent. Solid brand purple, deliberately NOT a gradient — see p.75. */
	--accent:        var(--adani-purple);
	--accent-strong: #74206F;      /* hover/pressed step of the accent */
	--accent-soft:   #F4E9F4;      /* tint for selected rows and quiet fills */
	--accent-shadow: 0 6px 18px rgba(142, 39, 143, .28);
	--pink: var(--adani-purple);   /* legacy alias */
	--blue: var(--adani-purple);   /* legacy alias */
	--req:  var(--adani-purple);   /* required-field asterisk */

	/* Status colours. The guidelines define no UI status palette, so these are
	   darkened from the brand gradient colours purely so that white text on
	   them clears WCAG AA. Danger has no brand equivalent and is functional. */
	--success:      #00784A;   /* from --adani-gradient-green  */
	--success-soft: #E6F5EF;
	--warning:      #B23A17;   /* from --adani-gradient-orange */
	--warning-soft: #FDEDE7;
	--danger:       #C0271F;
	--danger-soft:  #FBEAE9;

	/* ---- Geometry ---- */
	--shadow: 0 24px 70px rgba(35, 31, 32, .48);
	--radius-card: 10px;
	--radius-input: 5px;
	--radius-button: 4px;

	/* Minimum comfortable touch target — the kiosk is a fixed 1080x1920
	   touchscreen, so this must not shrink. */
	--touch: 48px;

	/* ---- Logo exclusion zone (p.31) -------------------------------------
	   "The exclusion zone for our logo is marked by the height and width of
	   the 'a' on all four sides." Measured on the supplied horizontal artwork
	   the 'a' is 51px against 72px of ink height, i.e. 0.708 of the ink height.
	   The delivered PNGs already carry most of that as built-in margin, so the
	   value below is the extra clearance a container must add around the logo. */
	--logo-clear-space: 0.16em;
}
