/*
Theme Name: Turkey Airport VIP Assistance
Theme URI: https://turkeyairport.example
Author: Turkey Airport Assistance
Description: Cinematic WordPress theme for a premium Turkish VIP airport assistance service. Marcellus, Cormorant Garamond and IBM Plex Mono on a navy, gold and cream palette, with a scroll-driven services showcase, horizontal gallery, aurora hero and a three-step enquiry bar.
Version: 3.5.0
Requires at least: 6.2
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: turkey-airport-vip
*/

*{box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:84px;}
  body{margin:0;font-family:'Manrope',sans-serif;background:#F5EEE1;color:#0B1B33;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
  ::selection{background:#E2483D;color:#fff;}
  a{color:#0F2A54;text-decoration:none;}
  a:hover{color:#E2483D;}
  input,select,textarea,button{font-family:'Manrope',sans-serif;}
  @keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @keyframes cue{0%{transform:translateY(0);opacity:0}25%{opacity:1}100%{transform:translateY(14px);opacity:0}}
  @keyframes glow{0%,100%{opacity:.4}50%{opacity:1}}
  @keyframes spin{to{transform:rotate(360deg)}}
  @keyframes sweep{0%{transform:translateY(-100%)}100%{transform:translateY(320%)}}
  @keyframes drift{0%{transform:translate(0,0) scale(1)}33%{transform:translate(6vw,-4vh) scale(1.18)}66%{transform:translate(-4vw,5vh) scale(.92)}100%{transform:translate(0,0) scale(1)}}
  @keyframes shimmer{0%{background-position:0% 50%}100%{background-position:300% 50%}}
  @keyframes marqueeY{from{transform:translateY(0)}to{transform:translateY(-50%)}}
  @keyframes borderGlow{0%,100%{opacity:.35}50%{opacity:1}}
  ::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:#0B1B33}::-webkit-scrollbar-thumb{background:#C9A961}

img{max-width:100%;}
.tav-notice{max-width:1160px;margin:22px auto;padding:15px 22px;border-left:2px solid #1C7A4D;background:#EAF3ED;color:#12563a;font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.04em;}
.tav-mobile-toggle{display:none;}

/* Desktop nav layout lives here, not in a style attribute on the tag.
   An inline style outranks any stylesheet rule, so while display:flex sat on the
   element itself the mobile rule below could never hide it and the menu was stuck
   open on every phone load. */
[data-sitenav]{display:flex;align-items:center;gap:30px;}
[data-sitenav] a:hover{color:#E2483D;}
[data-cta]{transition:filter .3s ease,transform .3s ease;}
[data-cta]:hover{filter:brightness(1.08);color:#fff;}
footer a:hover{color:#E3CE97;}
[data-ap]:hover{background:rgba(15,42,84,.04);}

/* ---------------- responsive ---------------- */
@media (max-width:1200px){
  [data-showcase] > div{grid-template-columns:1fr !important;}
  [data-showcase] > div > div:last-child{display:none !important;}
  [data-showcase]{height:300vh !important;}
  #airports > div{grid-template-columns:1fr !important;}
  #airports > div > div:last-child{display:none !important;}
  [data-screen-label="Hospitality"] > div{grid-template-columns:1fr !important;}
  #track > div,#reserve [style*="grid-template-columns:.85fr"]{grid-template-columns:1fr !important;gap:44px !important;}
  footer > div > div:first-child{grid-template-columns:1fr 1fr !important;gap:38px !important;}
}
@media (max-width:900px){
  [data-rail],[data-ring],[data-disc]{display:none !important;}
  html{scroll-padding-top:64px;}
  section,footer{padding-left:22px !important;padding-right:22px !important;}
  [data-screen-label="Utility bar"]{padding:7px 22px !important;font-size:9.5px !important;}
  [data-screen-label="Utility bar"] > span:first-child{display:none !important;}
  [data-nav-inner]{padding:12px 22px !important;}
  .tav-mobile-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(11,27,51,.2);background:transparent;cursor:pointer;}
  [data-sitenav]{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch !important;gap:0 !important;background:#F5EEE1;padding:6px 22px 20px;box-shadow:0 20px 40px rgba(11,27,51,.16);}
  [data-sitenav] > a{padding:14px 0;border-bottom:1px solid rgba(11,27,51,.08);}
  [data-heroshell]{min-height:auto !important;height:auto !important;padding-bottom:26px;}
  [data-herogrid]{position:relative !important;min-height:74vh;}
  [data-heroshell] > div[data-mouse]{position:relative;padding:32px 22px 26px !important;}
  [data-stub]{position:relative !important;left:auto !important;right:auto !important;bottom:auto !important;margin:18px 22px 0;grid-template-columns:1fr !important;}
  [data-stub] [style*="border-left:1px solid rgba(227,206,151,.24)"]{border-left:none !important;border-top:1px solid rgba(227,206,151,.24) !important;padding:14px 18px !important;}
  [data-estep] > div:last-child{grid-template-columns:1fr 1fr !important;}
  [data-hsec]{height:auto !important;}
  [data-hsec] > div{position:static !important;height:auto !important;padding:70px 0;}
  [data-htrack]{flex-direction:column;width:auto !important;transform:none !important;padding:0 22px !important;gap:34px !important;}
  [data-htrack] figure{width:100% !important;align-self:auto !important;}
  [data-showcase]{height:auto !important;}
  [data-showcase] > div{position:static !important;height:auto !important;}
  [data-showcase] [style*="min-height:clamp(180px"]{position:static !important;min-height:0 !important;}
  [data-show-panel]{position:static !important;opacity:1 !important;transform:none !important;pointer-events:auto !important;padding-bottom:34px;}
  [data-wordmark]{font-size:64px !important;}
  h2{font-size:32px !important;letter-spacing:-.5px !important;}
  #airports > div > div:first-child{padding:70px 22px !important;}
}

/* ---------------- page content ----------------
   Editor content was inheriting browser defaults: headings rendered in the body
   face at default sizes rather than in Marcellus, and lists, quotes and tables
   had no styling at all. Every rule below is scoped to .tav-prose so nothing
   here can reach the hand-built front page. */
.tav-prose{font-size:17px;line-height:1.85;color:#3F4C63;font-weight:300;}
.tav-prose > *:first-child{margin-top:0;}
.tav-prose p{margin:0 0 22px;}
.tav-prose h2{font-family:'Marcellus',serif;font-weight:400;font-size:30px;line-height:1.2;
  letter-spacing:-.5px;color:#0F2A54;margin:52px 0 16px;}
.tav-prose h3{font-family:'Marcellus',serif;font-weight:400;font-size:22px;line-height:1.3;
  color:#0F2A54;margin:34px 0 12px;}
.tav-prose h4{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:#A8823C;margin:30px 0 10px;}
.tav-prose ul,.tav-prose ol{margin:0 0 22px;padding-left:22px;}
.tav-prose li{margin:0 0 10px;}
.tav-prose li::marker{color:#C9A961;}
.tav-prose strong{font-weight:500;color:#0B1B33;}
.tav-prose a{color:#0F2A54;border-bottom:1px solid rgba(201,169,97,.55);}
.tav-prose a:hover{color:#E2483D;border-bottom-color:#E2483D;}
.tav-prose blockquote{margin:26px 0;padding:4px 0 4px 20px;border-left:2px solid #C9A961;
  font-family:'Cormorant Garamond',serif;font-size:21px;font-style:italic;color:#0F2A54;}
.tav-prose table{border-collapse:collapse;width:100%;margin:24px 0;font-size:15px;}
.tav-prose th,.tav-prose td{border:1px solid rgba(11,27,51,.14);padding:9px 12px;text-align:left;}
.tav-prose th{background:rgba(201,169,97,.12);font-weight:500;color:#0B1B33;}
.tav-prose figure{margin:26px 0;}
.tav-prose hr{border:0;border-top:1px solid rgba(11,27,51,.12);margin:40px 0;}

/* The opening paragraph. Answer engines quote it and readers read it first, so
   it is set larger and darker than the body copy that follows. */
.tav-prose .answer-first{font-size:20px;line-height:1.65;color:#0B1B33;font-weight:300;
  padding-left:18px;border-left:2px solid #C9A961;margin-bottom:34px;}

@media (max-width:900px){
  .tav-prose{font-size:16px;}
  .tav-prose h2{font-size:26px;margin-top:42px;}
  .tav-prose h3{font-size:20px;}
  .tav-prose .answer-first{font-size:18px;}
  .tav-prose table{display:block;overflow-x:auto;}
}

/* ---------------- page shell ----------------
   page.php used to carry these as inline styles. The booking page needs a wider
   measure than a page of prose, and an inline style cannot be overridden by a
   media query, so the width now lives here where both cases can be expressed. */
.tav-page{max-width:820px;margin:0 auto;padding:96px 32px 110px;}
.tav-page--wide{max-width:1180px;}

/* ---------------- booking form ----------------
   Four numbered steps on one page with a sticky summary rail beside them. A
   wizard hides how much is left and people abandon what they cannot see the end
   of; numbered sections give the same sense of progress while keeping every
   field reachable and submittable in one go. The rail restates the choices so a
   long form never sends anyone scrolling back up to check what they picked.
   Scoped to .tav-intro, .tav-book, .tav-booking and .tav-result so none of it
   reaches the front page. */

.tav-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}

.tav-result{display:flex;gap:16px;align-items:flex-start;margin:0 0 30px;padding:20px 24px;border-radius:4px;
  font-size:15px;line-height:1.65;}
.tav-result--ok{background:#EAF3ED;border-left:3px solid #1C7A4D;color:#12563a;}
.tav-result--bad{background:#FBEDEB;border-left:3px solid #E2483D;color:#8C2A21;}
.tav-result__mark{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:14px;font-weight:700;color:#fff;}
.tav-result--ok .tav-result__mark{background:#1C7A4D;}
.tav-result--bad .tav-result__mark{background:#E2483D;}
.tav-result strong{display:block;font-size:17px;color:inherit;}
.tav-result p{margin:6px 0 0;font-size:14px;}
.tav-result__ref{display:inline-block;margin-top:6px;padding:3px 10px;background:rgba(0,0,0,.07);
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.08em;border-radius:2px;}

/* The band above the form. It is doing one job: answering "what is about to
   happen to me" before anybody types, because that is the question that decides
   whether a long form gets started at all. */
.tav-intro{position:relative;overflow:hidden;margin:0 0 26px;padding:52px 48px 46px;border-radius:5px;
  background:linear-gradient(135deg,#0B1B33 0%,#0F2A54 55%,#143567 100%);color:#E6ECF6;}
.tav-intro::before{content:"";position:absolute;inset:0;
  background:radial-gradient(680px 300px at 88% -30%,rgba(201,169,97,.38),transparent 62%);pointer-events:none;}
.tav-intro::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,#C9A961,rgba(201,169,97,0));}
.tav-intro__in{position:relative;max-width:620px;}
.tav-intro__eyebrow{margin:0 0 16px;padding-left:44px;position:relative;font-family:'IBM Plex Mono',monospace;
  font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#C9A961;}
.tav-intro__eyebrow::before{content:"";position:absolute;left:0;top:50%;width:32px;height:1px;background:#C9A961;}
.tav-intro__h{margin:0 0 14px;font-family:'Marcellus',serif;font-weight:400;font-size:40px;line-height:1.12;
  letter-spacing:-.8px;color:#fff;}
.tav-intro__p{margin:0;font-size:15.5px;line-height:1.72;color:rgba(230,236,246,.76);}
.tav-marks{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 0;padding:0;list-style:none;}
.tav-marks li{flex:1 1 168px;padding:15px 17px;border:1px solid rgba(201,169,97,.3);border-radius:4px;
  background:rgba(255,255,255,.045);}
.tav-marks strong{display:block;font-family:'Marcellus',serif;font-weight:400;font-size:23px;color:#E3CE97;
  line-height:1.1;}
.tav-marks span{display:block;margin-top:6px;font-size:12.5px;line-height:1.5;color:rgba(230,236,246,.66);}

.tav-book{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;align-items:start;}
.tav-booking{min-width:0;}

.tav-step{position:relative;margin:0 0 16px;padding:34px 36px;background:#fff;border-radius:5px;
  border:1px solid rgba(11,27,51,.09);box-shadow:0 1px 2px rgba(11,27,51,.04),0 14px 34px -24px rgba(11,27,51,.32);}
.tav-step__h{display:flex;align-items:center;gap:15px;margin:0 0 7px;font-family:'Marcellus',serif;
  font-weight:400;font-size:25px;color:#0F2A54;letter-spacing:-.3px;}
.tav-step__n{flex:0 0 auto;width:34px;height:34px;border-radius:50%;
  background:linear-gradient(150deg,#143567,#0B1B33);color:#E3CE97;box-shadow:0 0 0 1px rgba(201,169,97,.45);
  display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:13px;}
.tav-step__hint{margin:0 0 24px;padding-left:49px;font-size:14px;line-height:1.7;color:#6B7689;}
.tav-sub{margin:28px 0 13px;padding-bottom:9px;border-bottom:1px solid rgba(11,27,51,.08);
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#A8823C;}
.tav-note{margin:16px 0 0;padding:13px 16px;background:rgba(201,169,97,.1);border-left:2px solid #C9A961;
  font-size:13px;line-height:1.65;color:#5C4A24;border-radius:0 3px 3px 0;}

/* Service tiles. The native checkbox is hidden rather than removed: it still
   takes focus and still reads as a checkbox, so the keyboard and a screen reader
   get the real control while the eye gets the card. */
.tav-services{display:grid;grid-template-columns:1fr 1fr;gap:13px;}
.tav-services.is-required{outline:2px solid rgba(226,72,61,.5);outline-offset:10px;border-radius:4px;}
.tav-service{position:relative;display:block;padding:19px 48px 18px 21px;cursor:pointer;background:#fff;
  border:1px solid rgba(11,27,51,.12);border-radius:4px;overflow:hidden;
  transition:border-color .22s ease,background .22s ease,box-shadow .22s ease,transform .22s ease;}
.tav-service::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,#E3CE97,#C9A961);transform:scaleY(0);transform-origin:top;
  transition:transform .26s cubic-bezier(.3,.8,.3,1);}
.tav-service:hover{border-color:rgba(201,169,97,.75);transform:translateY(-2px);
  box-shadow:0 16px 30px -22px rgba(11,27,51,.5);}
.tav-service input{position:absolute;opacity:0;width:1px;height:1px;}
.tav-service__n{display:block;margin-bottom:8px;font-family:'IBM Plex Mono',monospace;font-size:10px;
  letter-spacing:.24em;color:#A8823C;}
.tav-service strong{display:block;font-size:16px;font-weight:500;line-height:1.34;color:#0B1B33;}
.tav-service em{display:block;margin-top:6px;font-style:normal;font-size:13px;line-height:1.62;color:#6B7689;}
.tav-service__tick{position:absolute;top:17px;right:17px;width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;
  border:1px solid rgba(11,27,51,.18);transition:background .2s ease,border-color .2s ease,color .2s ease;}
.tav-service:has(input:checked){border-color:rgba(15,42,84,.55);background:#FBFCFE;
  box-shadow:0 14px 30px -24px rgba(11,27,51,.6);}
.tav-service:has(input:checked)::before{transform:scaleY(1);}
.tav-service:has(input:checked) .tav-service__tick{background:#0F2A54;border-color:#0F2A54;color:#fff;}
.tav-service:has(input:focus-visible){outline:2px solid #0F2A54;outline-offset:2px;}

.tav-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px;}
.tav-chip{padding:4px 10px;background:rgba(11,27,51,.05);border:1px solid rgba(11,27,51,.05);border-radius:20px;
  font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  color:#5A6678;white-space:nowrap;}
.tav-service:has(input:checked) .tav-chip{background:rgba(201,169,97,.16);border-color:rgba(201,169,97,.3);
  color:#6B5624;}

.tav-field{margin:0 0 20px;}
.tav-field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.2em;
  text-transform:uppercase;color:#A8823C;margin-bottom:9px;}
.tav-req{color:#E2483D;}
.tav-field input,.tav-field select,.tav-field textarea{width:100%;padding:13px 15px;font-family:inherit;
  font-size:15px;color:#0B1B33;background:#FAFBFD;border:1px solid rgba(11,27,51,.16);border-radius:3px;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;}
.tav-field input:hover,.tav-field select:hover,.tav-field textarea:hover{border-color:rgba(11,27,51,.3);}
.tav-field input:focus,.tav-field select:focus,.tav-field textarea:focus{outline:none;border-color:#0F2A54;
  background:#fff;box-shadow:0 0 0 3px rgba(15,42,84,.1);}
.tav-field textarea{resize:vertical;min-height:104px;line-height:1.6;}

.tav-row{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}

/* A flight block dims until a chosen service actually needs it, so nobody fills
   in a departure flight for an arrival-only booking and then wonders why. */
.tav-block{margin:0 0 8px;padding:18px 20px 2px;border:1px solid transparent;border-radius:4px;
  transition:opacity .25s ease,background .25s ease,border-color .25s ease;}
/* Only dim when scripting is on to undim it again. With scripting off nothing
   would ever clear the dimming and both blocks would read as disabled. */
.tav-booking.is-live .tav-block{opacity:.5;}
.tav-booking.is-live .tav-block.is-required{opacity:1;}
.tav-block.is-required{background:linear-gradient(180deg,rgba(201,169,97,.11),rgba(201,169,97,.03));
  border-color:rgba(201,169,97,.4);}
.tav-block__h{display:flex;align-items:center;gap:11px;margin:0 0 16px;font-family:'IBM Plex Mono',monospace;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#0F2A54;}
.tav-block__flag{padding:3px 9px;border-radius:20px;background:#C9A961;color:#2A2005;font-size:8.5px;
  letter-spacing:.16em;opacity:0;transition:opacity .25s ease;}
.tav-block.is-required .tav-block__flag{opacity:1;}

.tav-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.tav-count label{display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.18em;
  text-transform:uppercase;color:#A8823C;margin-bottom:9px;}
.tav-stepper{display:flex;align-items:center;border:1px solid rgba(11,27,51,.16);border-radius:3px;
  overflow:hidden;background:#FAFBFD;transition:border-color .2s ease;}
.tav-stepper:hover{border-color:rgba(11,27,51,.3);}
.tav-stepper:focus-within{border-color:#0F2A54;box-shadow:0 0 0 3px rgba(15,42,84,.1);background:#fff;}
.tav-stepper__b{flex:0 0 auto;width:40px;height:48px;border:0;background:transparent;color:#0F2A54;
  font-size:18px;line-height:1;cursor:pointer;transition:background .18s ease,color .18s ease;}
.tav-stepper__b:hover{background:#0F2A54;color:#E3CE97;}
.tav-stepper input{flex:1 1 auto;width:100%;min-width:0;height:48px;padding:0;text-align:center;border:0;
  font-family:'Marcellus',serif;font-size:19px;color:#0B1B33;background:transparent;-moz-appearance:textfield;}
.tav-stepper input::-webkit-outer-spin-button,.tav-stepper input::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0;}
.tav-stepper input:focus{outline:none;}

.tav-toggles{display:flex;flex-wrap:wrap;gap:9px;}
.tav-toggle{position:relative;cursor:pointer;}
.tav-toggle input{position:absolute;opacity:0;width:1px;height:1px;}
.tav-toggle span{display:inline-block;padding:10px 18px;border:1px solid rgba(11,27,51,.14);border-radius:30px;
  font-size:13.5px;color:#33415A;background:#fff;transition:all .18s ease;}
.tav-toggle:hover span{border-color:#C9A961;background:rgba(201,169,97,.07);}
.tav-toggle:has(input:checked) span{background:#0F2A54;border-color:#0F2A54;color:#fff;
  box-shadow:0 8px 18px -12px rgba(11,27,51,.9);}
.tav-toggle:has(input:focus-visible) span{outline:2px solid #0F2A54;outline-offset:2px;}

.tav-submit{margin-top:28px;}
.tav-booking button[type=submit]{display:inline-flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,#E2483D,#C93529);color:#fff;
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  padding:18px 42px;border:0;border-radius:3px;cursor:pointer;
  box-shadow:0 14px 30px -18px rgba(226,72,61,.9);
  transition:filter .25s ease,transform .25s ease,box-shadow .25s ease;}
.tav-booking button[type=submit]:hover{filter:brightness(1.07);transform:translateY(-2px);
  box-shadow:0 20px 34px -18px rgba(226,72,61,.95);}
.tav-submit__note{margin:16px 0 0;font-size:13.5px;line-height:1.7;color:#6B7689;}

/* The rail. Dark, so it reads as a receipt rather than another card to fill in,
   and sticky, so the person can see what they have chosen without scrolling. */
.tav-summary__in{position:sticky;top:100px;padding:28px 26px;border-radius:5px;overflow:hidden;
  background:linear-gradient(155deg,#0F2A54,#0B1B33 62%);color:#E6ECF6;
  box-shadow:0 24px 50px -30px rgba(11,27,51,.8);}
.tav-summary__in::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,#C9A961,rgba(201,169,97,0));}
.tav-summary__h{margin:0 0 20px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.26em;
  text-transform:uppercase;color:#C9A961;}
.tav-summary__list{margin:0;}
.tav-summary__list>div{padding:13px 0;border-top:1px solid rgba(255,255,255,.1);}
.tav-summary__list>div:first-child{border-top:0;padding-top:0;}
.tav-summary__list dt{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(230,236,246,.45);margin-bottom:6px;}
.tav-summary__list dd{margin:0;font-size:13.5px;line-height:1.55;color:#fff;overflow-wrap:anywhere;}
.tav-summary__go{width:100%;margin-top:22px;padding:17px 18px;border:0;border-radius:3px;cursor:pointer;
  background:linear-gradient(135deg,#E2483D,#C93529);color:#fff;
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  box-shadow:0 14px 28px -16px rgba(226,72,61,.95);transition:filter .25s ease,transform .2s ease;}
.tav-summary__go:hover{filter:brightness(1.08);transform:translateY(-1px);}
.tav-summary__note{margin:14px 0 0;font-size:12px;line-height:1.6;color:rgba(230,236,246,.55);}

@media (max-width:980px){
  .tav-book{grid-template-columns:1fr;}
  /* Below the fold on a narrow screen the rail is a recap, not a companion, so
     it goes under the form and stops sticking. Two submit buttons one after the
     other would be noise, so the rail's own is the one that survives. */
  .tav-summary__in{position:static;}
  .tav-submit{display:none;}
}
@media (max-width:700px){
  .tav-page{padding:60px 18px 80px;}
  .tav-intro{padding:36px 24px 32px;}
  .tav-intro__h{font-size:29px;}
  .tav-marks li{flex:1 1 100%;}
  .tav-step{padding:26px 20px;}
  .tav-step__h{font-size:21px;gap:12px;}
  .tav-step__hint{padding-left:0;}
  .tav-services{grid-template-columns:1fr;}
  .tav-row{grid-template-columns:1fr;gap:0;}
  .tav-counts{grid-template-columns:1fr 1fr;gap:14px;}
  .tav-block{padding:15px 13px 2px;}
}

/* :has() drives the chosen state on tiles and chips. Where it is missing the
   hidden checkbox would leave no visible selection at all, so the box comes
   back as an ordinary one and the form stays usable. */
@supports not selector(:has(*)){
  .tav-service input,.tav-toggle input{position:static;opacity:1;width:17px;height:17px;
    accent-color:#0F2A54;margin-bottom:8px;}
  .tav-service__tick{display:none;}
  .tav-service{padding-right:21px;}
}

@media (prefers-reduced-motion:reduce){
  .tav-service,.tav-service::before,.tav-block,.tav-toggle span,.tav-booking button[type=submit],
  .tav-summary__go{transition:none;}
  .tav-service:hover{transform:none;}
}

/* ---------------- booking form inside .tav-prose ----------------
   the_content() wraps the shortcode output in .tav-prose, whose typography is
   written for pages of prose and is a descendant selector, so it outranks the
   form's own single-class rules on h2, p, ul and li. Re-asserting the values
   here keeps the specificity war in one place instead of spraying !important
   through the whole booking section. */
.tav-prose .tav-intro,.tav-prose .tav-book,.tav-prose .tav-result{
  font-size:15px;line-height:1.6;font-weight:400;color:#0B1B33;}

.tav-prose .tav-intro__eyebrow{margin:0 0 16px;}
.tav-prose .tav-intro__h{margin:0 0 14px;font-size:40px;line-height:1.12;color:#fff;}
.tav-prose .tav-intro__p{margin:0;font-size:15.5px;line-height:1.72;color:rgba(230,236,246,.76);}
.tav-prose .tav-marks{margin:30px 0 0;padding:0;}
.tav-prose .tav-marks li{margin:0;}
.tav-prose .tav-marks strong{font-weight:400;color:#E3CE97;}

.tav-prose .tav-step__h{margin:0 0 7px;font-size:25px;line-height:1.25;color:#0F2A54;}
.tav-prose .tav-step__hint{margin:0 0 24px;}
.tav-prose .tav-sub{margin:28px 0 13px;}
.tav-prose .tav-note{margin:16px 0 0;}
.tav-prose .tav-block__h{margin:0 0 16px;}
.tav-prose .tav-submit__note{margin:16px 0 0;}
.tav-prose .tav-service strong{font-weight:500;color:#0B1B33;}
.tav-prose .tav-result p{margin:6px 0 0;}

.tav-prose .tav-summary__h{margin:0 0 20px;}
.tav-prose .tav-summary__note{margin:14px 0 0;}
.tav-prose .tav-summary__list dd{color:#fff;}

@media (max-width:900px){
  .tav-prose .tav-intro__h{font-size:34px;}
  .tav-prose .tav-step__h{font-size:23px;}
}
@media (max-width:700px){
  .tav-prose .tav-intro__h{font-size:29px;}
  .tav-prose .tav-step__h{font-size:21px;}
  .tav-prose .tav-step__hint{padding-left:0;}
}

/* The payment line under the rail's button. It is answering the question people
   ask themselves before typing an email address into a form they have not used
   before: who ends up holding my card number. */
.tav-pay{display:flex;gap:9px;align-items:flex-start;margin:16px 0 0;padding-top:15px;
  border-top:1px solid rgba(255,255,255,.1);font-size:11.5px;line-height:1.6;
  color:rgba(230,236,246,.58);}
.tav-pay__lock{flex:0 0 auto;margin-top:5px;width:6px;height:6px;border-radius:50%;background:#4CAF7D;
  box-shadow:0 0 0 3px rgba(76,175,125,.2);}
.tav-prose .tav-pay{margin:16px 0 0;}
