/* EMIT Maroc V0.5.5 — typographic + commercial polish.
   Non-destructive presentation layer: no reliance on JS, no alteration of media records. */
.emit-v03 {
  --emit-v055-text: #263f35;
  --emit-v055-muted: #4f6257;
  --emit-v055-border: #d5d9ce;
  font-size: 16px;
  line-height: 1.7;
  color: var(--emit-v055-text);
  overflow-wrap: break-word;
}
.emit-v03 .emit-shell { max-width: 1280px; }
.emit-v03 :where(a, button, select, input, textarea):focus-visible { outline: 3px solid #a96c3c; outline-offset: 3px; }
.emit-v03 :where(.emit-section-v03 h2, .emit-single-section h2) { text-wrap: balance; }
.emit-v03 .emit-desktop-nav-v03 { font-size: 15px; }
.emit-v03 .emit-app-brand strong { font-size: 19px; }
.emit-v03 .emit-app-brand small { font-size: 11px; letter-spacing: 1.1px; }
.emit-v03 .emit-kicker { font-size: 12px; letter-spacing: 1.3px; line-height: 1.45; }
.emit-v03 .emit-hero-v03 h1 { font-size: clamp(62px, 6.1vw, 88px); line-height: 1.04; letter-spacing: -.035em; }
.emit-v03 .emit-hero-v03 p { font-size: 17px; line-height: 1.7; max-width: 540px; }
.emit-v03 .emit-hero-feature strong { font-size: clamp(24px, 2.1vw, 30px); }
.emit-v03 .emit-feature-link, .emit-v03 .emit-wow-pills span { font-size: 12px; }
.emit-v03 .emit-btn { min-height: 50px; font-size: 14px; line-height: 1.4; gap: 14px; padding: 13px 20px; }
.emit-v03 .emit-text-link { font-size: 14px; }
.emit-v03 .emit-wow-heading h2 { font-size: clamp(42px, 4.5vw, 64px); }
.emit-v03 .emit-wow-heading p { font-size: 16px; }
.emit-v03 .emit-section-intro { font-size: 16px; color: var(--emit-v055-muted); line-height: 1.75; }
.emit-v03 .emit-results-count { font-size: 13px; }
/* Filters: label size was 9px, unsuitable on most screens. */
.emit-v03 .emit-filter-field { gap: 8px; }
.emit-v03 .emit-filter-field span { font-size: 12px; font-weight: 650; letter-spacing: .4px; color: #3f5749; }
.emit-v03 .emit-filter-field :where(input,select) { font-size: 15px; line-height: 1.45; min-height: 34px; }
.emit-v03 .emit-filter-reset { font-size: 13px; }
/* Cards: consistent rhythm; readable summary and price. Preserve existing two-column layout at tablet. */
.emit-v03 .emit-circuit-grid { gap: 32px 22px; }
.emit-v03 .emit-circuit-card { min-width: 0; height: 100%; }
.emit-v03 .emit-circuit-media { overflow: hidden; aspect-ratio: 4/3; }
.emit-v03 .emit-circuit-media img { width: 100%; height: 100%; object-fit: cover; }
.emit-v03 .emit-circuit-type, .emit-v03 .emit-draft-badge { font-size: 11px; letter-spacing: .25px; padding: 8px 11px; }
.emit-v03 .emit-circuit-body { padding-top: 23px; min-width: 0; }
.emit-v03 .emit-card-meta { font-size: 12px; letter-spacing: .5px; }
.emit-v03 .emit-circuit-body h3 { font-size: clamp(25px, 2.05vw, 29px); line-height: 1.23; letter-spacing: -.5px; margin: 11px 0 14px; }
.emit-v03 .emit-route-line { font-size: 14px; line-height: 1.6; margin-bottom: 16px; color: #445d50; }
.emit-v03 .emit-card-summary { font-size: 15px; line-height: 1.64; color: #53665a; margin: 0 0 17px; }
.emit-v03 .emit-card-bottom { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--emit-v055-border); min-height: 78px; }
.emit-v03 .emit-card-bottom small { font-size: 12px; letter-spacing: .35px; color: #526356; }
.emit-v03 .emit-card-bottom strong { font-size: 17px; font-weight: 650; letter-spacing: 0; line-height: 1.4; }
.emit-v03 .emit-card-availability { display: inline-block; margin-top: 7px; padding: 2px 9px; font-size: 12px; line-height: 1.5; border: 1px solid #9dae9f; border-radius: 50px; color: #244a3a; background: #eff4ea; }
.emit-v03 .emit-card-link { min-width: 46px; min-height: 46px; }
.emit-v03 .emit-departure-info h3 { font-size: 22px; line-height: 1.35; }
.emit-v03 .emit-departure-details { font-size: 13px; line-height: 1.5; }
.emit-v03 .emit-status { font-size: 12px; }
/* Single page — manageable title and readable travel facts. */
.emit-v03 .emit-single-copy h1 { font-size: clamp(38px, 4vw, 58px); line-height: 1.13; letter-spacing: -.03em; }
.emit-v03 .emit-single-route { font-size: 14px; line-height: 1.6; }
.emit-v03 .emit-single-intro { font-size: 16px; line-height: 1.72; color: #425d4f; }
.emit-v03 .emit-facts strong { font-size: 30px; }
.emit-v03 .emit-facts span { font-size: 12px; letter-spacing: .1px; line-height: 1.45; }
.emit-v03 .emit-single-on-request { display: inline-block; margin: 15px 0 0; padding: 8px 13px; border-radius: 99px; border: 1px solid #b7c5b6; color: #294d3e; font-size: 13px; line-height: 1.4; background: #eaf0e7; }
.emit-v03 .emit-breadcrumb { font-size: 12px; flex-wrap: wrap; }
.emit-v03 .emit-trip-nav a { font-size: 13px; }
.emit-v03 .emit-prose { font-size: 17px; line-height: 1.8; color: #45584c; }
.emit-v03 .emit-day-heading strong { font-size: 23px; }
.emit-v03 .emit-day-heading small { font-size: 13px; }
.emit-v03 .emit-day-content { font-size: 16px; line-height: 1.75; }
.emit-v03.emit-single-app .emit-day-number { font-size: 13px; }
.emit-v03 .emit-info-card h3 { font-size: 28px; margin-bottom: 12px; }
.emit-v03 .emit-info-card div { font-size: 16px; line-height: 1.75; color: #495d50; }
.emit-v03 .emit-info-card { opacity: 1; transform: none; }
.emit-v03 .emit-empty { font-size: 15px; line-height: 1.75; }
.emit-v03 .emit-single-departure-right { font-size: 14px; }
.emit-v03 .emit-departure-select { font-size: 13px; min-height: 46px; }
/* Form conversion clarity. */
.emit-v03 .emit-form-field>span, .emit-v03 .emit-request-context>span { font-size: 12px; letter-spacing: .3px; line-height: 1.4; }
.emit-v03 .emit-form-field :where(input, select, textarea) { font-size: 16px; min-height: 48px; }
.emit-v03 .emit-request-submit { font-size: 14px; font-weight: 650; min-height: 51px; }
.emit-v03 .emit-request-layout .emit-request-note { font-size: 14px; line-height: 1.7; }
.emit-v03 .emit-form-consent { font-size: 13px; line-height: 1.55; }
.emit-v03 .emit-app-footer nav { font-size: 13px; }
.emit-v03 .emit-footer-signature { font-size: 11px; }
/* Keep the footer/request backdrop calm: no oversized decorative word behind content. */
.emit-v03 .emit-request-section::before { content: none !important; }
/* WCAG-friendly underlines when visible text links appear in reading material. */
.emit-v03 .emit-prose a:not(.emit-btn), .emit-v03 .emit-info-card a { text-decoration: underline; text-underline-offset: 3px; }
/* Animations are progressive enhancement, never visibility requirements. */
.emit-v03 :where(.emit-wow-tile,.emit-circuit-card,.emit-departure-card,.emit-info-card) { opacity: 1; }
@media (min-width: 1101px) {
  .emit-v03 .emit-card-summary { min-height: 4.9em; }
  .emit-v03 .emit-circuit-body h3 { min-height: 2.45em; }
}
@media (min-width: 641px) and (max-width: 1100px) {
  .emit-v03 .emit-shell { width: calc(100% - 48px); }
  .emit-v03 .emit-hero-v03 h1 { font-size: clamp(54px,7.5vw,77px); }
  .emit-v03 .emit-circuit-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .emit-v03 .emit-circuit-body h3 { font-size: 27px; }
  .emit-v03 .emit-card-summary { min-height: 4.5em; }
  .emit-v03 .emit-filter-field span { font-size: 12px; }
  .emit-v03 .emit-single-copy h1 { font-size: clamp(42px,5.2vw,54px); }
  .emit-v03 .emit-info-card div { font-size: 16px; }
  .emit-v03 .emit-trip-nav>.emit-shell { overflow-x: auto; scrollbar-width: thin; }
}
@media (max-width: 640px) {
  .emit-v03 .emit-shell { width: calc(100% - 32px); }
  .emit-v03 .emit-app-header-inner { min-height: 66px; }
  .emit-v03 .emit-hero-inner { padding: 102px 0 68px; }
  .emit-v03 .emit-hero-v03 h1 { font-size: clamp(41px, 12.8vw, 54px); letter-spacing: -.034em; line-height: 1.06; }
  .emit-v03 .emit-hero-v03 p { font-size: 16px; line-height: 1.6; }
  .emit-v03 .emit-hero-v03, .emit-v03 .emit-hero-inner { min-height: min(780px, 100svh); }
  .emit-v03 .emit-kicker { font-size: 11px; }
  .emit-v03 .emit-hero-signature { font-size: 10px; }
  .emit-v03 .emit-wow-pills span { font-size: 11px; }
  .emit-v03 .emit-btn { font-size: 14px; min-height: 48px; }
  .emit-v03 .emit-search-panel>.emit-shell { padding: 20px 13px; }
  .emit-v03 .emit-filter-field span { font-size: 12px; letter-spacing: .15px; }
  .emit-v03 .emit-filter-field :where(input,select) { font-size: 16px; }
  .emit-v03 .emit-filter-reset { font-size: 14px; }
  .emit-v03 .emit-wow-heading h2 { font-size: clamp(37px,10vw,48px); }
  .emit-v03 .emit-wow-heading p, .emit-v03 .emit-section-intro { font-size: 15px; }
  .emit-v03 :where(.emit-section-v03 h2,.emit-single-section h2) { font-size: clamp(31px,8.8vw,39px); }
  .emit-v03 .emit-circuit-grid { grid-template-columns: 1fr; gap: 26px; }
  .emit-v03 .emit-circuit-media { aspect-ratio: 1.33; }
  .emit-v03 .emit-circuit-body { padding: 21px 18px 19px; }
  .emit-v03 .emit-circuit-body h3 { font-size: 26px; min-height: 0; }
  .emit-v03 .emit-route-line { font-size: 14px; }
  .emit-v03 .emit-card-summary { font-size: 15px; line-height: 1.6; }
  .emit-v03 .emit-card-bottom strong { font-size: 17px; }
  .emit-v03 .emit-single-hero { padding-top: 19px; }
  .emit-v03 .emit-single-copy h1 { font-size: clamp(36px, 9.5vw, 46px); }
  .emit-v03 .emit-single-route { font-size: 14px; }
  .emit-v03 .emit-single-intro { font-size: 16px; }
  .emit-v03 .emit-facts { flex-wrap: wrap; overflow: visible; }
  .emit-v03 .emit-facts div { min-width: 84px; padding: 0 12px; }
  .emit-v03 .emit-facts strong { font-size: 27px; }
  .emit-v03 .emit-facts span { font-size: 11px; }
  .emit-v03 .emit-single-cover { height: clamp(280px, 86vw, 360px); }
  .emit-v03 .emit-trip-nav a { font-size: 13px; }
  .emit-v03 .emit-prose { font-size: 16px; line-height: 1.78; }
  .emit-v03 .emit-day-heading strong { font-size: 21px; }
  .emit-v03 .emit-day-content { font-size: 15px; }
  .emit-v03 .emit-info-card h3 { font-size: 25px; }
  .emit-v03 .emit-info-card div { font-size: 15.5px; }
  .emit-v03 .emit-request-form { padding: 22px 16px; }
  .emit-v03 .emit-request-layout .emit-request-note { font-size: 14px; }
  .emit-v03 .emit-mobile-nav-v03 small { font-size: 11px; }
  .emit-v03 .emit-mobile-nav-v03 a { min-height: 50px; }
  .emit-v03 .emit-app-footer nav { font-size: 14px; }
}
@media (max-width: 365px) {
  .emit-v03 .emit-shell { width: calc(100% - 24px); }
  .emit-v03 .emit-hero-v03 h1 { font-size: 40px; }
  .emit-v03 .emit-facts div { min-width: 78px; padding: 0 8px; }
  .emit-v03 .emit-wow-tile-content strong { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  .emit-v03 .emit-hero-photo img { animation: none !important; }
  .emit-v03 :where(.emit-circuit-card,.emit-wow-tile,.emit-departure-card,.emit-info-card) { transition: none !important; transform: none !important; }
}
