/* ETS v3 CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700&display=swap');
:root {
--white:#FFF;
--black:#000;
--gold:#BAA88D;
--red:#D8292F;
--red-hot:#FF333A;	
--gray:#EFF0F2;
--gray-light:#F9F9F9;
--gray-dark:#D6D7D9;	
--cool-light:#F1F7FB;
--cool-dark:#DDECF5;
--warm-light:#F6F4F0;
--warm-dark:#EEE9E1;	
--blue-dark:#002345;
--blue-medium:#003D78;
--blue-light:#1460AA;	
--blue-lighter:#4F8FD8;	
--ac-blue:#1460AA;
--ac-blue-hover:#002345;
--ac-blue-pressed:#002345;
--card-radius: 1rem;	
--btn-radius: 2rem;
--btn-border-width: 1px;
--box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);	
}

/* BASE */

/* =============== 
 * Accessibility *
================ */

/* High-visibility focus ring for keyboard users */
:focus {
/*outline: 1px solid #FF6B6B; /* Bootstrap primary */
outline-offset: 2px;
}

/* Skip link: visible on focus, positioned for easy access */
.skip-link {position: absolute;top: -40px;left: 0;background: #0d6efd;color: #fff;padding: 8px 12px;z-index: 1000;border-radius: .25rem;}
.skip-link:focus {top: 8px;}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
	* {
	  animation-duration: 0.001ms !important;
	  animation-iteration-count: 1 !important;
	  transition-duration: 0.001ms !important;
	  scroll-behavior: auto !important;
	}
}


/* ============= 
 * Brand Rules *
============== */

body {font-family: 'Noto Sans', sans-serif;}

a {color:var(--ac-blue); text-decoration: none; font-weight:500;}
a:hover,
a:focus,
a:active {color:var(--ac-blue-hover); text-decoration: underline;}

a[role=button] {color:var(--white); text-decoration: none;}
a[role=button]:hover,
a[role=button]:focus,
a[role=button]:active {color:var(-ac-blue-hover);}

/* Header + Footer: black bg, white text; links white, no decoration except hover/active */
.app-header,
.app-footer {background-color: #000;color: #fff;}
.app-header a,
.app-footer a {color: #fff;text-decoration: none;}
.app-header a:hover,
.app-header a:active,
.app-footer a:hover,
.app-footer a:active {text-decoration: underline;}

/* Breadcrumb: full-width bar with container inside */
.app-breadcrumb-bar {background-color: #f8f9fa; /* full-width background */}
.app-breadcrumb .breadcrumb {margin-bottom: 0;}
.app-breadcrumb .breadcrumb-item {color: #000; /* regular text in breadcrumb is black */}
.app-breadcrumb .breadcrumb-item a {
color: #1460aa;          /* link color per spec */
text-decoration: none;   /* no decoration, except hover/active */
}
.app-breadcrumb .breadcrumb-item a:hover,
.app-breadcrumb .breadcrumb-item a:active {text-decoration: underline;}

/* ===== Header logo and mobile layout ===== */
.brand-logo {width: 300px;height: 28px;max-width: 100%;object-fit: contain;display: block;}
/* Remove default button focus ring conflict on dark header, keep visible for accessibility */
.btn-header-toggle:focus { box-shadow: 0 0 0 .25rem rgba(255,255,255,.35) !important; }

/* Keep mobile toggle icon only (no text) */
.btn-header-toggle .label { display: none; }


/* ===== Hero Section and Banner ===== */

/* Hero Banner overlay utilities */
.hero-bar{position:relative;width:100%;background-color:#f8f9fa}
.hero-img{width:100%;height:250px;max-height:250px;object-fit:cover;display:block}
.hero-caption-wrap{position:absolute;left:0;right:0;bottom:1rem}
.hero-caption{background:rgba(0,0,0,.6);color:#fff;padding:.75rem 1rem;border-radius:.25rem;display:inline-block}
		

/* Hero Section */
.hero-section {background-color: #B1CBDA;background-image: url("../images/hero-tail-plane-lg.png"), linear-gradient(to bottom, #91bce9, #e0edfc);background-position:right center,center;background-size:90%,cover;background-repeat:no-repeat,no-repeat;color: #000;padding:3rem 0; /*height: 250px;*/}
.hero-section .hero-intro { max-width:65%; }

.page-hero{background: linear-gradient(95.14deg, #F8ECEA 17.43%, #DBE6F1 50.75%, #BCCEE4 82.77%);background:linear-gradient(to bottom,#91bce9,#cadde8,#e0edfc); }

.nav-anchors {padding: 0;height: auto;position: absolute;left: 0;bottom: -4rem;}
.nav-anchors ul {list-style: none;margin-bottom: 0;padding-left: 0;}
.nav-anchors ul li {display: inline-block;margin-bottom: 0;padding: 5px;}


@media (max-width: 576px) {
	.hero-section {background-image: none, linear-gradient(to bottom, #91bce9, #e0edfc); height: auto; padding: 1rem 0;}
	.nav-anchors {display: none;}
}

@media (prefers-reduced-motion: reduce) {
  .hero-section * { transition: none !important; animation: none !important; }
}
		

/* Helpers */
.card:hover	{box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.15); transition:ease 0.3s; border-color: var(--blue-medium);}

.badge { border-radius: 1rem;}
abbr[title]{text-decoration:none;border-bottom:1px dotted #6c757d;cursor:help}
.data-module {border: 1px solid #e9ecef; border-radius: .75rem; padding: 1rem;background: #fff}
.table-wrapper td {text-align: center;}

.truncate-50 {max-width: 50%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis; display: inline-flex;}
.truncate-75 {max-width: 75%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis; display: inline-flex;}
.truncate-90 {max-width: 90%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis; display: inline-flex;}

.text-gold {color: var(--gold);}
.text-blue-light {color:var(--blue-light)}
.ac-shadow {box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.15)}

.ac-list {padding-left: 0;}
.ac-list .ac-list-item {list-style: none; padding-bottom: 0.3rem;}

.ac-bg-red {background-color:var(--red);}
.ac-bg-red-hot {background-color:var(--red-hot);}
.ac-bg-black {background-color:var(--black);}
.ac-bg-gray {background-color:var(--gray);}
.ac-bg-gray-light {background-color:var(--gray-light);}
.ac-bg-cool-light {background-color:var(--cool-light);}
.ac-bg-cool-dark {background-color:var(--cool-dark);}
.ac-bg-warm-light {background-color:var(--warm-light);}
.ac-bg-warm-dark {background-color:var(--warm-dark);}
.ac-bg-blue-dark { background-color:var(--blue-dark);}
.ac-bg-blue-medium { background-color:var(--blue-medium);}
.ac-bg-blue-light { background-color:var(--blue-light);}
.ac-bg-blue-lighter { background-color:var(--blue-lighter);}
.ac-bg-world {background-image: url("../images/3d_globe_desktop.svg");background-position:left bottom;background-size:70%;background-repeat:no-repeat; background-color: rgba(255, 255, 255, 0.7); background-blend-mode: lighten;}
.ac-bg-aeroplan {background: linear-gradient(360deg, #F3E7DE 0%, #ECE2E7 51%, #C7CBDF 100%)}
.ac-bg-semi-transparent {padding: 24px;border-radius: 16px;background: rgba(255, 255, 255, 0.30);backdrop-filter: blur(8px);}

.ac-gradient-white-gray {
background: #FFF;  /* fallback for old browsers */
background: -webkit-linear-gradient(to bottom, #FFF, #F9F9F9);  /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to bottom, #FFF, #F9F9F9); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */	
}

.ac-alert { padding-left:2.8rem; position: relative; border-radius: var(--card-radius);}
.ac-alert:before {content:''; position: absolute;width: 2rem; height: 2rem; top:1.2rem; left:0.8rem;}
.ac-alert-principal{background-color: #f1f7fb;color:var(--black);border-color: #78a1b4;}
.ac-alert-principal:before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="%2378a1b4" d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2"/></svg>');background-size: contain;background-repeat: no-repeat;}
.ac-alert-success{background-color: #EDF5EE;color:var(--black);border-color: #20842F;}
.ac-alert-success:before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="%2320842F" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4m.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2"/></svg>');background-size: contain;background-repeat: no-repeat;}
.ac-alert-warning{background-color: #fff9dd;color:var(--black);border-color: #ffc247;}
.ac-alert-warning:before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="%23eb9c00" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4m.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2"/></svg>');background-size: contain;background-repeat: no-repeat;}
.ac-alert-danger{background-color: #fff1f0;color:var(--black);border-color: #b83a32;}
.ac-alert-danger:before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="%23b83a32" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4m.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2"/></svg>');background-size: contain;background-repeat: no-repeat;}

.ac-active { background-color: #20842F; border-radius: 1rem;}
.ac-retired { background-color: #D8292F; border-radius: 1rem;}
.ac-former { background-color: #C9CACC; border-radius: 1rem;}
.ac-survivor { background-color: #AACEA6; border-radius: 1rem;}
.ac-onleave { background-color: #FFF; color:#20842F; border:1px solid #20842F;  border-radius: 1rem;}
.ac-other { background-color: #FFCF4D; border-radius: 1rem;}

/*News Badges*/
.ac-update { background-color: #20842F; color: #FFF; border-radius: 1rem;}
.ac-important { background-color: #D8292F; color: #FFF; border-radius: 1rem;}
.ac-new { background-color: #1460AA; color: #FFF; border-radius: 1rem;}

.ac-spouse,
.ac-partner,
.ac-companion{ background-color:var(--blue-dark); border-radius: 1rem;}
.ac-parent{ background-color:var(--blue-medium); border-radius: 1rem;}
.ac-child{ background-color:var(--blue-light); border-radius: 1rem;}

.ac-rotate-45:before{transform: rotate(45deg);}
.ac-rotate-45:before{transform: rotate(45deg);}

.filter-card{border:1px solid rgba(0,0,0,0.3);box-shadow:var(--box-shadow)}	

/* ========= Font Size ========= */
#main-content{font-size:1rem;transition: font-size 0.2s ease-in-out;}
#main-content.text-size-small{font-size:0.875rem}
#main-content.text-size-medium{font-size:1rem}
#main-content.text-size-large{font-size:1.25rem}
.js-text-size-btn.active{color:#fff;background-color:#000;border-color:#000}

/* ========= Air Canada-style Buttons ========= */
.ac-btn{display:inline-block;min-width:120px;font-weight:600;border-radius:var(--btn-radius);border:var(--btn-border-width) solid transparent;cursor:pointer;align-items:center;justify-content:center;text-decoration:none;width:fit-content; text-align: center; text-decoration: none !important;}
/* Primary */
.ac-btn-primary{background-color:var(--ac-blue);color:var(--white);border-color:var(--ac-blue)}
.ac-btn-primary:hover{background-color:var(--ac-blue-hover);color:var(--white);border-color:var(--ac-blue-hover)}
.ac-btn-primary:active{background-color:var(--ac-blue-pressed);color:var(--white);border-color:var(--ac-blue-pressed)}
/* Secondary (outline) */
.ac-btn-secondary{background-color:var(--white);color:var(--ac-blue);border-color:var(--ac-blue)}
.ac-btn-secondary:hover{background-color:#f8f8f8;color:var(--ac-blue-hover);border-color:var(--ac-blue-hover)}
.ac-btn-secondary:active{background-color:#f8f8f8;color:var(--ac-blue-pressed);border-color:var(--ac-blue-pressed)}

/* Size variants */
.ac-btn { font-size: 1rem; padding: 0.5rem 1rem; line-height: 1;}
.ac-btn-sm { font-size: 0.875rem; padding: 0.375rem 0.75rem;}
.ac-btn-lg { font-size: 1.125rem; padding: 0.75rem 1.25rem; line-height: 1.125;}

.ac-btn:disabled,
.ac-btn[aria-disabled="true"] {cursor: not-allowed;opacity: 0.65;}

.ac-btn-primary:disabled,
.ac-btn-primary[aria-disabled="true"] {color:#333;background-color:#999;border-color: #999;}

.ac-btn-secondary:disabled,
.ac-btn-secondary[aria-disabled="true"] {color:#333;border-color: #333;}

/*Tab Menu*/
.ac-nav-link { font-size: 1rem; padding: 0.5rem 1rem; line-height: 1; font-weight:600;border-radius:var(--btn-radius);color:var(--ac-blue);border:var(--btn-border-width) solid transparent;}
.ac-nav-link:hover,
.ac-nav-link:focus,
.ac-nav-link:active {background-color:var(--ac-blue-hover);color:var(--white);border-color:var(--ac-blue-hover);border-radius:var(--btn-radius);cursor:pointer;align-items:center;justify-content:center;text-decoration:none;width:fit-content; text-align: center; text-decoration: none !important;}

.ac-nav-link.active { font-size: 1rem; padding: 0.5rem 1rem; line-height: 1; font-weight:600;border-radius:var(--btn-radius);border:var(--btn-border-width) solid transparent;background-color:var(--ac-blue);color:var(--white);border-color:var(--ac-blue)}
.ac-nav-link.active:hover,
.ac-nav-link.active:focus,
.ac-nav-link.active:active {background-color:var(--ac-blue-hover);color:var(--white);border-color:var(--ac-blue-hover);border-radius:var(--btn-radius);cursor:pointer;align-items:center;justify-content:center;text-decoration:none;width:fit-content; text-align: center; text-decoration: none !important;}

	
@media (max-width: 576px) {
	.tab-pane .nav-item .ac-btn {font-size: 1.5rem;padding: 0.5rem 0rem;width: 4.3rem;height: 4rem;border-radius: 1rem;}
}

/* ========= Policy Pages ========= */
.policy-hero{padding:4rem 0;
background: #91bce9;  /* fallback for old browsers */
background: -webkit-linear-gradient(to bottom, #91bce9, #e0edfc);  /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to bottom, #91bce9, #e0edfc); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}

/*.policy-hero {background-color: #B1CBDA;background-image: url("../images/hero-b737max8.png"), linear-gradient(to bottom, #91bce9, #e0edfc);background-position:right center,center;background-size:90%,cover;background-repeat:no-repeat,no-repeat;color: #000;padding:3rem 0; height: 250px;}*/

.policy-hero {background-color: #B1CBDA;background-image: linear-gradient(to bottom, #91bce9, #e0edfc);color: #000;padding:3rem 0; min-height: 250px;}

.policy-toc {bottom:-4.5rem;}
@media (max-width: 576px) {
	.policy-hero{padding-top:0;}
}

/* ========= Pass Pages ========= */
.pass-hero{
background: #02233b;  /* fallback for old browsers */
background: -webkit-linear-gradient(to bottom, #02233b, #03496f);  /* Chrome 10-25, Safari 5.1-6 */
background:linear-gradient(135deg,#02233b 0,#03496f 100%);color:#fff;padding:4rem 0}
.pass-hero-icon{font-size:3.5rem}
.pass-fact{background:rgba(255,255,255,0.1);border-radius:.5rem;padding:.6rem .9rem;font-size:.9rem}
.feature-card{border-radius:.75rem;border:1px solid #e5e5e5;padding:1.5rem;transition:box-shadow .2s}
.feature-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.06)}


.policy-disclaimer {padding: 0.3rem 1rem; display: inline-block; border-radius: 16px;background-color:#000; color:#FFF; font-size: 0.9rem; margin-top:1rem;}
.policy-disclaimer-reverse {padding: 0.3rem 1rem; display: inline-block; border-radius: 16px;background-color:#FFF; color:#000; font-size: 0.9rem; margin-top:1rem;}
.policy main section,
.pass main section{padding-top:3rem;padding-bottom:2.5rem}


/* ========= Accordions ========= */

.ac-accordion button .bi {font-size:1.5rem; margin-right:0.5rem;}

/* Focus styles for keyboard users (accessible) */
.accordion-button:focus,
.accordion-button:focus-visible,
.accordion-button:focus-within{outline:#0d6efd solid 3px;outline-offset:2px;box-shadow:none}

/* Improve hit area on toggles */
.accordion-button{padding-top:1rem;padding-bottom:1rem}

/* Subtle separation between panels */
.accordion-item:first-of-type,
.accordion-item:last-of-type{border-radius:16px}
.accordion-item{border:1px solid #e5e7eb;border-radius:16px;margin-bottom:2rem;overflow:hidden;background-color:#fff;box-shadow:0 0 10px 0 rgba(0,0,0,.1)}

/* Chevron rotation consistency */
.accordion-button:not(.collapsed)::after{transform:rotate(-180deg)}
.accordion-button:not(.collapsed){--bs-accordion-active-bg:#F9F9F9;--bs-accordion-active-color:#000}

/* Compact Accordion */
.accordion-compact .accordion-item:first-of-type{border-radius:initial; border-top-left-radius: 16px; border-top-right-radius: 16px;}
.accordion-compact .accordion-item:last-of-type{border-radius:initial; border-bottom-left-radius: 16px; border-bottom-right-radius: 16px;}
.accordion-compact .accordion-item{border:1px solid #e5e7eb;border-radius:initial;margin-bottom:initial;overflow:hidden;background-color:initial;box-shadow:initial;} 
.accordion-compact .accordion-button:not(.collapsed){--bs-accordion-active-bg:#D6D7D9;--bs-accordion-active-color:#000}

/*
.accordion-button:not(.collapsed){background-color:var(--ac-blue-hover);color:var(--white)}
.accordion-button:not(.collapsed),
.accordion-button:not(.collapsed) *{color:var(--white)}
.accordion-button:not(.collapsed)::after{filter:brightness(0) invert(1)}
.accordion-button:hover,.accordion-button:focus{background-color:var(--ac-blue-hover);color:var(--white)}
.accordion-button:hover::after,
.accordion-button:focus::after{filter:brightness(0) invert(1)}
*/

/* ========= Cards ========= */
.card {border-radius: var(--card-radius)}

/* COLUMNS */
.column-layout {
  column-count: 3;
  column-gap: 1.5rem;
}

/* Prevent awkward breaks */
.column-layout > * {
  break-inside: avoid;
  margin-bottom: 1rem;
}

/* Responsive adjustments */
@media (max-width: 900px) {
  .column-layout {
    column-count: 2;
  }
}

@media (max-width: 600px) {
  .column-layout {
    column-count: 1;
  }
}


/* =========================
   Responsive Table → Cards
   (Desktop = normal table)
   (Mobile <= md = each row becomes a card)
   ========================= */	
@media (max-width:767.98px){
.responsive-table thead{display:none}
.responsive-table tbody,.responsive-table tr,.responsive-table td,.responsive-table th{display:block;width:100%}
.responsive-table tr{border:1px solid #dee2e6;border-radius:.75rem;margin-bottom:1rem;padding:.75rem .9rem;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.responsive-table th[scope="row"]{font-weight:700;font-size:1.05rem;margin:0 0 .5rem 0}
.responsive-table td{display:flex;justify-content:space-between;align-items:start;gap:1rem;padding:.35rem 0;border:0 !important;text-align:right}
.responsive-table td::before{content:attr(data-label);font-weight:600;text-align:left;flex:1;color:#212529}
}
@media (min-width:768px){
.responsive-table thead th{text-align:center}
.responsive-table tbody th[scope="row"]{text-align:left}
.responsive-table tbody td{vertical-align:middle}
}


@media (max-width: 576px) {
/*Helpers*/
.truncate-sm-50 {max-width: 50%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis; display: inline-flex;}
.truncate-sm-75 {max-width: 75%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis; display: inline-flex;}
.truncate-sm-90 {max-width: 90%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis; display: inline-flex;}
	
.brand-logo {width: 242px;   /* mobile width cap */height: auto;   /* keep aspect ratio */}
	
.hero-img {display: none; /* image hidden on mobile */}	
.hero-caption-wrap { display: none; }	
.hero-caption {position: static;background: transparent;color: inherit;padding: 0;}
/* Mobile caption container band */
.hero-caption-container {background-color: #f8f9fa; /* match hero fallback */}	
}