/* RomeTourz accessibility layer (WCAG 2.2 AA). Loaded last (rt-a11y.php, priority 999). Source: build/live/sb/rt-a11y.css
   RULES
   1. Text colours: orange TEXT uses --rtd-orange-text (>=4.5:1 on white, cool tint and soft orange); the brand orange #ff4d12 stays for fills, borders, icons.
      White text on an orange fill uses --rtd-btn-aa (#d93800, 4.65:1).
   2. Dark surfaces (navy panels, photo tiles, hero, footer) are listed once in the "dark scope" selector below: inside them orange text becomes
      --rtd-orange-on-dark and link hover becomes white. Add a new dark component to that list (or give it class rt-dark).
   3. Photo tiles use ONE scrim: bottom-up navy gradient with >=0.62 opacity under the text (white text >=4.5:1 on even a pure white photo).
   4. Hover/focus on a dark surface or photo NEVER changes the text colour to a mid-tone: text stays white; use scrim, scale, border, underline, chip fill.
   5. Focus ring: 2px solid --rtd-focus-ring (>=3:1 on white, tints and orange-soft), white on dark scopes.
   6. Form field borders use --rtd-field-line (>=3:1 on white and on the cool tint); placeholders --rtd-placeholder (>=4.5:1). */
:root{
  --rtd-orange-text:#c93500;
  --rtd-orange-on-dark:#ff9370;
  --rtd-link-text:#c93500;
  --rtd-link-hover:#a33000;
  --rtd-focus-ring:#c93500;
  --rtd-field-line:#7b8499;
  --rtd-placeholder:#5c6880;
  --rtd-btn-aa:#d93800;
  --rtd-btn-aa-h:#b83000;
  --rtd-green-text:#007a54;
  --rtd-muted:#5c6880;
  --rtd-scrim:linear-gradient(180deg,rgba(14,26,51,0) 0%,rgba(14,26,51,.3) 25%,rgba(14,26,51,.72) 50%,rgba(14,26,51,.86) 70%,rgba(14,26,51,.92) 100%);
}
html body{--focus-color:var(--rtd-focus-ring);--link-color:var(--rtd-orange-text);--link-color-hover:var(--rtd-link-hover)}

/* ---- dark / photo surfaces ("dark scope") ---- */
html body :is(.rt-dark,.rt-util,.rt-footer,.rt-heroslider,.rt-heroslide,.rt-cat,.rt-city,.rt-deals,.rt-season__card,.rt-faqside,.rt-offerbox,.rt-ch,.rt-gl__media,.rt-phead--dark,.rt-lph,.rt-xcard__media,.rt-band,.rt-news,.rt-dmap,.rt-gpitch,.rt-jfeat,.rt-panel--navy,.rt-jnews,.rt-phero,.rt-pln-hero__visual,.rt-op-pitch,.rt-plan--featured,.rt-section--navy,.rt-consent){
  --rtd-orange-text:var(--rtd-orange-on-dark);
  --rtd-link-text:#ffd9cc;
  --rtd-link-hover:#fff;
  --link-color:#ffd9cc;
  --link-color-hover:#fff;
  --rtd-muted:#c9d3e8;
}
/* focus ring colour: white only for CONTAINERS that are dark; photo tiles (rt-cat, rt-city) draw their ring outside, on the page */
html body :is(.rt-dark,.rt-util,.rt-footer,.rt-deals,.rt-season__card,.rt-faqside,.rt-offerbox,.rt-band,.rt-news,.rt-panel--navy,.rt-jnews,.rt-op-pitch,.rt-plan--featured,.rt-section--navy,.rt-consent,.rt-phead--dark,.rt-lph,.rt-gpitch,.rt-dmap){--rtd-focus-ring:#fff;--focus-color:#fff}
html body .rt-heroslider > *{--rtd-focus-ring:#fff;--focus-color:#fff}
/* light cards sitting inside a dark section go back to the light scope */
html body :is(.rt-light,.rt-deal,.rt-card,.rt-voucher,.rt-voucher__amount,.rt-guide,.rt-bcard,.rt-xcard,.rt-news__form,.rt-gpitch__card,.rt-op-card,.rt-plan:not(.rt-plan--featured)){--rtd-orange-text:#c93500;--rtd-link-text:#c93500;--link-color:#c93500;--rtd-link-hover:#a33000;--link-color-hover:#a33000;--rtd-focus-ring:#c93500;--focus-color:#c93500;--rtd-muted:#5c6880}

/* ---- links ---- */
html body a:not([class]){color:var(--rtd-link-text,#c93500);text-underline-offset:3px;text-decoration-thickness:1px}
html body a:not([class]):hover{color:var(--rtd-link-hover,#a33000);text-decoration-thickness:2px}
:where(:focus-visible){outline:2px solid var(--rtd-focus-ring,#c93500);outline-offset:2px}

/* ---- fields ---- */
html body :is(.rt-input,.rt-app .rt-input,.rt-field .rt-input,.rt-sortbar__select,.rt-planteaser__select,.rt-qa__input,.rt-ux-dual__in){border-color:var(--rtd-field-line,#7b8499)}
html body .fluentform .ff-el-form-control{border-color:var(--rtd-field-line,#7b8499)}
html body .fluentform .ff-el-form-control:focus{border-color:var(--rtd-focus-ring,#c93500)}
html body .fluentform .ff-el-form-control:focus-visible,html body .rt-input:focus-visible{outline:2px solid var(--rtd-focus-ring,#c93500);outline-offset:1px}
html body .fluentform .ff-el-form-control::placeholder,html body :is(input,textarea)::placeholder{color:var(--rtd-placeholder,#5c6880);opacity:1}
html body .rt-hsearch__input::placeholder{color:var(--rtd-placeholder,#5c6880);opacity:1}
html body .fluentform .ff-btn-submit{opacity:1!important;background:var(--rtd-btn-aa,#d93800)!important}
html body .fluentform .ff-btn-submit:hover,html body .fluentform .ff-btn-submit:focus-visible,html body .fluentform .ff-btn-submit:active{opacity:1!important;background:var(--rtd-btn-aa-h,#b83000)!important}
html body .fluentform .ff-btn-submit:focus-visible{outline:2px solid var(--rtd-focus-ring,#c93500);outline-offset:2px}
html body .fluentform .ff-el-is-error .ff-el-form-control{border-color:#b3261e}
html body .fluentform .error.text-danger,html body .fluentform .ff-el-is-error .error{color:#b3261e}

html body .rt-ux-dual__track{background:var(--rtd-field-line,#7b8499)}
html body .rt-nav__caret{opacity:1;color:var(--rtd-muted,#5c6880)}
html body .rt-jby__dot{opacity:.8}
html body .rt-bcard__sep{color:var(--rtd-field-line,#7b8499);opacity:1}
html body .fluentform :is(label,.ff_t_c,.ff-el-form-check) a{text-decoration:underline;text-underline-offset:3px}
html body .rt-tgal__all:hover,html body .rt-tgal__all:focus-visible{background:var(--rtd-btn-aa,#d93800);color:#fff}
html body .rt-card__star{color:var(--rtd-orange-text,#c93500)}
html body .rt-wsteps__item.is-active .rt-wsteps__num{background:var(--rtd-btn-aa,#d93800)}
html body .rt-wsteps__item.is-done .rt-wsteps__num{background:var(--rtd-green-text,#007a54)}
html body .rt-heroslider__pause{position:absolute;inset-block-end:14px;inset-inline-end:16px;z-index:5;display:grid;place-items:center;min-inline-size:44px;min-block-size:44px;padding:0;border:0;border-radius:50%;background:rgba(14,26,51,.72);color:#fff;font-size:13px;line-height:1;cursor:pointer}
html body .rt-heroslider__pause:hover{background:rgba(14,26,51,.92)}
html body .rt-heroslider__pause:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px #0e1a33}

/* ---- photo scrims (rule 3): one gradient, >=0.62 navy under the text ---- */
html body a.rt-city::after,html body .rt-phero::after{background:var(--rtd-scrim)}
html body .rt-heroslide::after{background:linear-gradient(90deg,rgba(14,26,51,.93) 0%,rgba(14,26,51,.84) 50%,rgba(14,26,51,.6) 66%,rgba(14,26,51,.2) 100%)}
@media (max-width:760px){html body .rt-heroslide::after{background:linear-gradient(180deg,rgba(14,26,51,.82) 0%,rgba(14,26,51,.88) 100%)}}
html body .rt-faqside__veil{background:linear-gradient(180deg,rgba(12,23,48,.35) 0%,rgba(12,23,48,.84) 38%,rgba(12,23,48,.94) 60%,#0c1730 100%)}
html body .rt-heroslider__dot{background:rgba(255,255,255,.7)}
html body .rt-heroslider__dot[aria-current="true"]{background:var(--rtd-btn-aa,#d93800)}

/* ---- cookie notice ---- */
html body div.rt-consent .rt-consent__btn{background:var(--rtd-btn-aa,#d93800);color:#fff}
html body div.rt-consent .rt-consent__btn:hover{background:var(--rtd-btn-aa-h,#b83000)}
html body div.rt-consent :is(a,button):focus-visible{outline-color:#fff}

/* ---- photo tiles: one scrim, white text on hover ---- */
html body a.rt-cat::after{background:var(--rtd-scrim)}
html body a.rt-cat:hover,html body a.rt-cat:focus-visible{color:#fff}
html body a.rt-cat:hover :is(.rt-cat__label,.rt-cat__count),html body a.rt-cat:focus-visible :is(.rt-cat__label,.rt-cat__count){color:#fff}
html body a.rt-cat:hover::after{background:linear-gradient(180deg,rgba(14,26,51,.1) 0%,rgba(14,26,51,.5) 40%,rgba(14,26,51,.84) 72%,rgba(14,26,51,.94) 100%)}
html body a.rt-cat:hover{outline:2px solid #fff;outline-offset:-6px}
html body a.rt-cat:focus-visible{outline:3px solid var(--rtd-focus-ring,#c93500);outline-offset:2px}
html body a.rt-cat:hover .rt-cat__icon{background:var(--rtd-btn-aa,#d93800)}
html body .rt-cat__icon{background:var(--rtd-btn-aa,#d93800)}
html body .rt-catgrid .rt-cat[aria-pressed="true"] .rt-cat__icon,html body .rt-homecats .rt-cat[aria-pressed="true"] .rt-cat__icon{background:var(--rtd-btn-aa,#d93800)}
html body :is(.rt-cat,.rt-city) .rt-cat__count,html body .rt-cat__count{opacity:1}

@media (forced-colors:active){
  html body a.rt-cat::after{background:none}
  html body a.rt-cat .rt-cat__label,html body a.rt-cat .rt-cat__count{forced-color-adjust:auto;color:CanvasText;background:Canvas}
  html body a.rt-cat:hover,html body a.rt-cat:focus-visible{outline:2px solid Highlight}
}
@media (prefers-contrast:more){
  :root{--rtd-field-line:#4a5470;--rtd-scrim:linear-gradient(180deg,rgba(14,26,51,.2) 0%,rgba(14,26,51,.7) 45%,rgba(14,26,51,.95) 100%)}
  html body a:not([class]){text-decoration:underline}
}

html body .rt-ux-chip{color:var(--rtd-link-hover,#a33000)}
html body .rt-ux-chip__t,html body .rt-ux-chip__x{color:inherit}

/* ---- utilities and sizing ---- */
html body .rt-visually-hidden,html body .rt-sr-h1{position:absolute!important;inline-size:1px;block-size:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
html body .rt-jump__link{display:inline-flex;align-items:center;min-block-size:32px}
@media (pointer:coarse){html body :is(.rt-jump__link,.rt-crumbs__link,.rt-footer__link,.rt-footer__legal-link,.rt-util__link){display:inline-flex;align-items:center;min-block-size:44px}}

/* ---- motion: respect the user setting everywhere (scroll reveals, parallax, hover lifts, smooth scroll) ---- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  html body *,html body *::before,html body *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  html body .rt-dd-rv{opacity:1!important;transform:none!important}
}

/* ---- Windows high contrast (forced-colors): mask-painted icons would be reset to the canvas colour and vanish ---- */
@media (forced-colors:active){
  html body :is(.rt-ico,[class*="__ico"])::before{forced-color-adjust:none;background:CanvasText}
  html body :is(.rt-btn,.rt-hsearch__btn,.rt-consent__btn,.ff-btn-submit,.rt-card__wish,.rt-ux-qv,.rt-ux-cmp){border:1px solid ButtonText}
  html body :is(.rt-input,.rt-sortbar__select,.rt-planteaser__select,.rt-qa__input,.ff-el-form-control){border:1px solid FieldText}
  html body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid Highlight}
  html body .rt-heroslider__pause{border:1px solid ButtonText;background:ButtonFace;color:ButtonText}
}

/* ---- map ---- */
html body .leaflet-container :focus-visible,html body .leaflet-container:focus-visible{outline:3px solid var(--rtd-focus-ring,#c93500);outline-offset:2px}

/* ---- Fluent Forms validation state: error text must stay readable (Fluent tints the consent label light red) ---- */
html body .fluentform .ff-el-is-error :is(.ff-el-form-check-label,.ff_t_c,.ff-el-form-check label,label){color:#b3261e}
html body .fluentform .ff-el-is-error .ff-el-form-check-label a{color:#b3261e;text-decoration:underline}
html body .fluentform .error,html body .fluentform .text-danger{color:#b3261e;font-size:13px}

/* ---- reflow (1.4.10): wide plan table must scroll inside its wrapper, not widen the page ---- */
html body :is(.rt-op-cmp,.rt-op-tablewrap){min-inline-size:0;max-inline-size:100%}
html body .rt-op-tablewrap{overflow-x:auto;position:relative}

/* ---- inline links in form consent lines must not rely on colour alone ---- */
html body :is(.rt-check,.rt-check--block) a{color:var(--rtd-link-text,#c93500);text-decoration:underline;text-underline-offset:3px}
