/*
Theme Name: Dakhla Website
Description: Custom WordPress theme for RYDEWIND.
Version: 2.1.4
Text Domain: dakhla-website
*/
:root { --ryde-teal: #008c95; --ryde-teal-soft: #eaf7f7; --ryde-ink: #172b30; }
body { margin: 0; background: #fff; color: #000; font-family: "Poppins", Arial, sans-serif; font-size: 16px; line-height: 1.5; }
.ryde-header { position: relative; z-index: 50; box-sizing: border-box; width: 100%; padding: 14px 18px; background: transparent; }
.ryde-header__bar { position: relative; display: flex; align-items: center; box-sizing: border-box; width: 100%; min-height: 70px; padding: 7px 12px 7px 20px; border: 1px solid rgba(0, 140, 149, .13); border-radius: 38px; background: #fff; box-shadow: 0 8px 28px rgba(23, 43, 48, .10); }
.ryde-header__logo { display: flex; flex: 0 0 auto; align-items: center; width: 155px; margin-right: auto; }
.ryde-header__logo img { display: block; width: 100%; height: auto; max-height: 48px; object-fit: contain; }
.ryde-header__nav { display: flex; align-items: center; justify-content: center; gap: 4px; white-space: nowrap; }
.ryde-header__nav > a, .ryde-header__trigger { position: relative; display: flex; align-items: center; min-height: 42px; box-sizing: border-box; padding: 0 14px; border-radius: 24px; color: var(--ryde-ink); font-size: clamp(.76rem, .9vw, .86rem); font-weight: 600; text-decoration: none; cursor: default; white-space: nowrap; transition: color .16s ease, background-color .16s ease; }
.ryde-header__nav > a { cursor: pointer; }
.ryde-header__trigger > span[aria-hidden] { margin-left: 5px; font-size: .85em; transition: transform .16s ease; }
.ryde-header__dropdown:hover .ryde-header__trigger > span[aria-hidden] { transform: rotate(180deg); }
.ryde-header__nav > a::after, .ryde-header__trigger::after { content: ""; position: absolute; right: 13px; bottom: 3px; left: 13px; height: 2px; border-radius: 2px; background: var(--ryde-teal); transform: scaleX(0); transition: transform .18s ease; }
.ryde-header__nav > a:hover, .ryde-header__dropdown:hover > .ryde-header__trigger { color: var(--ryde-teal); background: transparent; }
.ryde-header__nav > a:hover::after, .ryde-header__dropdown:hover > .ryde-header__trigger::after { transform: scaleX(1); }
.ryde-page-home .ryde-nav-home, .ryde-page-about .ryde-nav-about, .ryde-page-contact .ryde-nav-contact, .ryde-page-packages .ryde-nav-packages, .ryde-page-equipment-rentals .ryde-nav-rentals, .ryde-page-downwind .ryde-nav-downwind, .ryde-page-kitesurf .ryde-nav-lessons > .ryde-header__trigger { color: var(--ryde-teal); background: var(--ryde-teal-soft); }
.ryde-page-home .ryde-nav-home::after, .ryde-page-about .ryde-nav-about::after, .ryde-page-contact .ryde-nav-contact::after, .ryde-page-packages .ryde-nav-packages::after, .ryde-page-equipment-rentals .ryde-nav-rentals::after, .ryde-page-downwind .ryde-nav-downwind::after, .ryde-page-kitesurf .ryde-nav-lessons > .ryde-header__trigger::after { display: none; }
.ryde-header__dropdown { position: relative; }
.ryde-header__submenu { position: absolute; top: calc(100% + 12px); left: 50%; display: grid; min-width: 220px; padding: 8px; border: 1px solid #d6eeee; border-radius: 14px; background: #fff; box-shadow: 0 16px 38px rgba(23, 43, 48, .15); transform: translateX(-50%); }
.ryde-header__dropdown > .ryde-header__submenu { display: none; }
.ryde-header__dropdown:hover > .ryde-header__submenu, .ryde-header__dropdown:focus-within > .ryde-header__submenu { display: grid; }
.ryde-header__submenu::before { content: ""; position: absolute; top: -13px; left: 0; width: 100%; height: 13px; }
.ryde-header__submenu a { padding: 10px 12px; border-radius: 9px; color: var(--ryde-ink); font-size: .9rem; font-weight: 700; text-decoration: none; }
.ryde-header__submenu a:hover { color: var(--ryde-teal); background: var(--ryde-teal-soft); }
.ryde-header__dropdown--mega { position: static; }
.ryde-header__dropdown--mega .ryde-header__mega { top: calc(100% + 2px); left: 52px; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(780px, calc(100vw - 104px)); padding: 22px 26px 25px; border-radius: 0 0 22px 22px; transform: none; }
.ryde-header__mega section { min-width: 0; padding: 0 10px; }
.ryde-header__mega h3 { margin: 0 0 12px; padding: 0 2px 10px; border-bottom: 1px solid #d6eeee; color: var(--ryde-teal); font-size: .78rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.ryde-header__menu-card { display: flex; align-items: center; gap: 12px; min-height: 56px; margin: 3px 0; padding: 7px 8px !important; border-radius: 10px; color: var(--ryde-ink) !important; transition: background-color .16s ease, transform .16s ease !important; }
.ryde-header__menu-card:hover { background: var(--ryde-teal-soft) !important; transform: translateX(3px); }
.ryde-header__menu-card > span:last-child { display: grid; min-width: 0; }
.ryde-header__menu-card strong { font-size: .8rem; font-weight: 700; line-height: 1.3; }
.ryde-header__menu-card small { margin-top: 2px; color: #738186; font-size: .66rem; font-weight: 400; line-height: 1.35; white-space: normal; }
.ryde-menu-icon { display: grid; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 10px; background: var(--ryde-teal-soft); color: var(--ryde-teal); font-size: 1.1rem; font-weight: 700; place-items: center; transition: color .16s ease, background-color .16s ease; }
.ryde-header__menu-card:hover .ryde-menu-icon { background: var(--ryde-teal); color: #fff; }
.ryde-header__packages-menu { width: 310px; padding: 18px 20px 20px; }
.ryde-header__packages-menu section { min-width: 0; }
.ryde-header__packages-menu h3 { margin: 0 0 12px; padding: 0 2px 10px; border-bottom: 1px solid #d6eeee; color: var(--ryde-teal); font-size: .78rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.ryde-header__packages-menu .ryde-header__menu-card { display: flex; padding: 7px 8px !important; }
.ryde-header__lessons-menu { width: 330px; padding: 18px 20px 20px; }
.ryde-header__lessons-menu section { min-width: 0; }
.ryde-header__lessons-menu h3 { margin: 0 0 12px; padding: 0 2px 10px; border-bottom: 1px solid #d6eeee; color: var(--ryde-teal); font-size: .78rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.ryde-header__lessons-menu .ryde-header__menu-card { display: flex; padding: 7px 8px !important; }
.ryde-header__actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; margin-left: auto; }
.ryde-language-switcher { position: relative; display: flex; align-items: center; }
.ryde-language-menu { position: relative; }
.ryde-language-menu > summary { display: flex; align-items: center; gap: 7px; min-height: 40px; box-sizing: border-box; padding: 0 12px; border: 1px solid #d6eeee; border-radius: 22px; background: #fff; color: var(--ryde-ink); font-size: .74rem; font-weight: 800; cursor: pointer; list-style: none; }
.ryde-language-menu > summary::-webkit-details-marker { display: none; }
.ryde-language-menu > summary::after { content: "⌄"; margin-left: 1px; color: var(--ryde-teal); transition: transform .16s ease; }
.ryde-language-menu[open] > summary::after { transform: rotate(180deg); }
.ryde-language-menu > summary:hover, .ryde-language-menu > summary:focus-visible { color: var(--ryde-teal); background: var(--ryde-teal-soft); }
.ryde-language-menu img { display: block; width: 23px; height: 16px; border-radius: 2px; object-fit: cover; box-shadow: 0 0 0 1px rgba(23,43,48,.14); }
.ryde-language-options { position: absolute; z-index: 90; top: calc(100% + 9px); right: 0; display: grid; width: 132px; padding: 7px; border: 1px solid #d6eeee; border-radius: 13px; background: #fff; box-shadow: 0 14px 35px rgba(23,43,48,.16); }
.ryde-language-option { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 38px; padding: 0 9px; border: 0; border-radius: 8px; background: transparent; color: var(--ryde-ink); font: inherit; font-size: .75rem; font-weight: 700; text-align: left; cursor: pointer; }
.ryde-language-option:hover { background: var(--ryde-teal-soft); color: var(--ryde-teal); }
.ryde-language-option[aria-current="true"] { background: var(--ryde-teal); color: #fff; }
.ryde-header__social { display: grid; width: 40px; height: 40px; border: 1px solid #d6eeee; border-radius: 50%; color: var(--ryde-teal); place-items: center; transition: background-color .16s ease, transform .16s ease; }
.ryde-header__social:hover { background: var(--ryde-teal-soft); transform: translateY(-1px); }
.ryde-header__social svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ryde-header__social .ryde-whatsapp-mark { fill: #25d366; stroke: none; }
.ryde-whatsapp-float { position: fixed; z-index: 80; right: clamp(18px, 2.6vw, 38px); bottom: clamp(18px, 3vw, 38px); display: grid; width: 58px; height: 58px; border: 3px solid #fff; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 8px 25px rgba(18, 69, 45, .28); place-items: center; transition: background-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.ryde-whatsapp-float:hover { background: #1fbd5a; box-shadow: 0 11px 30px rgba(18, 69, 45, .34); transform: translateY(-3px); }
.ryde-whatsapp-float:focus-visible { outline: 3px solid var(--ryde-ink); outline-offset: 3px; }
.ryde-whatsapp-float svg { width: 31px; height: 31px; fill: currentColor; }
.ryde-page-privacy-policy .ryde-whatsapp-float, .ryde-page-cookie-policy .ryde-whatsapp-float, .ryde-page-terms-and-conditions .ryde-whatsapp-float, .ryde-page-cancellation-policy .ryde-whatsapp-float { display: none; }
.ryde-header__book { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 24px; border-radius: 25px; background: var(--ryde-teal); color: #fff; font-size: .88rem; font-weight: 800; letter-spacing: .02em; text-decoration: none; transition: background-color .16s ease, transform .16s ease; }
.ryde-header__book:hover { background: #006e75; transform: translateY(-1px); }
.ryde-header a:focus-visible, .ryde-header summary:focus-visible { outline: 2px solid var(--ryde-teal); outline-offset: 3px; }
.ryde-header__mobile { display: none; }
.dakhla-empty-page { margin-block-start: 0; min-height: calc(100svh - 98px); background: #fff; }
.dakhla-page-title { box-sizing: border-box; min-height: calc(100svh - 98px); margin-block-start: 0; padding: 72px 120px; }
.dakhla-page-title h1 { margin: 0; color: #000; font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; line-height: 1.2; }
.ryde-hero { position: relative; display: flex; align-items: center; box-sizing: border-box; min-height: clamp(590px, calc(100svh - 98px), 820px); margin-top: 0; padding: 70px clamp(28px, 8vw, 150px) 110px; background: var(--ryde-ink); color: #fff; overflow: hidden; isolation: isolate; }
.ryde-hero__video { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 68%; filter: brightness(1.12); transform: scale(1.08); }
.ryde-hero__overlay { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(8, 27, 31, .68) 0%, rgba(8, 27, 31, .38) 42%, rgba(8, 27, 31, .08) 75%), linear-gradient(0deg, rgba(8, 27, 31, .24), transparent 42%); }
.ryde-hero__content { width: min(680px, 100%); }
.ryde-hero__eyebrow { margin: 0 0 18px; color: #fff; font-size: clamp(.73rem, 1vw, .88rem); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ryde-hero h1 { margin: 0; color: #fff; font-size: clamp(3rem, 6.4vw, 6.5rem); font-weight: 700; letter-spacing: -.055em; line-height: .95; text-wrap: balance; }
.ryde-hero__intro { max-width: 580px; margin: 25px 0 0; color: rgba(255,255,255,.9); font-size: clamp(1rem, 1.5vw, 1.22rem); line-height: 1.65; }
.ryde-hero h1.ryde-hero__intro { color: rgba(255,255,255,.94); font-size: clamp(1.35rem, 2.2vw, 2rem); font-weight: 600; letter-spacing: -.02em; line-height: 1.35; }
.ryde-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.ryde-hero__button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 25px; border: 1px solid rgba(255,255,255,.85); border-radius: 28px; color: #fff; font-size: .88rem; font-weight: 800; text-decoration: none; transition: background-color .18s ease, color .18s ease, transform .18s ease; }
.ryde-hero__button:hover { transform: translateY(-2px); }
.ryde-hero__button--primary { border-color: var(--ryde-teal); background: var(--ryde-teal); }
.ryde-hero__button--primary:hover { border-color: #006e75; background: #006e75; }
.ryde-hero__button--ghost:hover { background: #fff; color: var(--ryde-ink); }
.ryde-hero__scroll { position: absolute; right: clamp(28px, 5vw, 80px); bottom: 38px; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.82); font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.ryde-hero__scroll span { position: relative; display: block; width: 1px; height: 34px; background: rgba(255,255,255,.5); overflow: hidden; }
.ryde-hero__scroll span::after { content: ""; position: absolute; top: -14px; left: 0; width: 1px; height: 14px; background: #fff; animation: ryde-scroll 1.8s ease-in-out infinite; }
@keyframes ryde-scroll { 0% { transform: translateY(0); } 70%, 100% { transform: translateY(48px); } }
.ryde-lessons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); box-sizing: border-box; gap: clamp(20px, 2.5vw, 34px); padding: clamp(44px, 5vw, 70px) clamp(24px, 6vw, 100px) clamp(90px, 9vw, 130px); background: #fff; scroll-margin-top: 20px; }
.ryde-lessons__header { grid-column: 1 / -1; max-width: 680px; margin: 0 auto clamp(28px, 3.5vw, 44px); text-align: center; }
.ryde-lessons__header p { margin: 0 0 12px; color: var(--ryde-teal); font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.ryde-lessons__header h2 { margin: 0; color: var(--ryde-ink); font-size: clamp(1.65rem, 2.7vw, 2.55rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.16; text-wrap: balance; }
.ryde-lesson { display: flex; flex-direction: column; min-width: 0; margin: 0; border: 1px solid #e1eeee; border-radius: 20px; background: #fff; overflow: hidden; box-shadow: 0 10px 30px rgba(23,43,48,.06); }
.ryde-lesson--reverse .ryde-lesson__image, .ryde-lesson--reverse .ryde-lesson__content { order: initial; }
.ryde-lesson__image { position: relative; min-height: clamp(200px, 21vw, 300px); border-radius: 0; background: var(--ryde-teal-soft); overflow: hidden; }
.ryde-lesson__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(8,27,31,.18)); pointer-events: none; }
.ryde-lesson__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ryde-lesson:hover .ryde-lesson__image img { transform: scale(1.025); }
.ryde-lesson--rentals .ryde-lesson__image img { object-position: center 78%; }
.ryde-lesson--kitesurf .ryde-lesson__image img { object-position: center 55%; }
.ryde-lesson--packages .ryde-lesson__image img { object-position: center 64%; }
.ryde-lesson--trips .ryde-lesson__image img { object-position: 70% 58%; }
.ryde-lesson__content { display: flex; flex: 1; flex-direction: column; padding: clamp(22px, 2.5vw, 32px); }
.ryde-lesson h3 { margin: 0 0 13px; color: var(--ryde-ink); font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.15; }
.ryde-lesson__content > p { margin: 0 0 24px; color: #5f7276; font-size: .9rem; line-height: 1.7; }
.ryde-lesson__links { display: grid; align-items: start; gap: 11px; margin-top: auto; }
.ryde-lesson__links a { display: inline-flex; align-items: center; justify-content: space-between; gap: 9px; min-height: 42px; padding: 0 14px; border: 1px solid var(--ryde-teal); border-radius: 22px; color: var(--ryde-ink); font-size: .76rem; font-weight: 800; text-decoration: none; transition: background-color .18s ease, color .18s ease; }
.ryde-lesson__links a:first-child { background: var(--ryde-teal); color: #fff; }
.ryde-lesson__links a:hover { background: var(--ryde-teal-soft); color: var(--ryde-ink); }
.ryde-lesson__links a:first-child:hover { background: #006e75; color: #fff; }
.ryde-lesson__links a span { color: inherit; font-size: 1.05rem; transition: transform .18s ease; }
.ryde-lesson__links a:hover span { transform: translateX(3px); }
.ryde-footer { box-sizing: border-box; width: 100%; padding: 0 clamp(20px, 5vw, 76px); background: var(--ryde-teal-soft); color: var(--ryde-ink); }
.ryde-footer a { color: inherit; text-decoration: none; }
.ryde-footer__cta { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 36px; padding: 42px clamp(24px, 4vw, 58px); border-radius: 24px; background: var(--ryde-teal); color: #fff; overflow: hidden; transform: translateY(-28px); box-shadow: 0 16px 40px rgba(16, 126, 133, .18); }
.ryde-footer__cta::after { content: ""; position: absolute; top: -95px; right: -55px; width: 250px; height: 250px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 0 0 40px rgba(255,255,255,.05), 0 0 0 80px rgba(255,255,255,.035); pointer-events: none; }
.ryde-footer__eyebrow { margin: 0 0 7px !important; font-size: .75rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; opacity: .86; }
.ryde-footer__cta h2 { margin: 0; color: #fff; font-size: clamp(1.55rem, 2.8vw, 2.35rem); line-height: 1.15; }
.ryde-footer__cta p:last-child { max-width: 650px; margin: 10px 0 0; color: rgba(255,255,255,.88); font-size: .93rem; }
.ryde-footer__cta-actions { position: relative; z-index: 1; display: flex; flex: 0 0 auto; gap: 10px; }
.ryde-footer__button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 21px; border: 1px solid #fff; border-radius: 25px; font-size: .84rem; font-weight: 800; transition: transform .16s ease, background-color .16s ease; }
.ryde-footer__button:hover { transform: translateY(-2px); }
.ryde-footer__button--primary { background: #fff; color: var(--ryde-teal) !important; }
.ryde-footer__button--secondary { background: transparent; color: #fff !important; }
.ryde-footer__button--secondary:hover { background: rgba(255,255,255,.12); }
.ryde-footer__main { display: grid; grid-template-columns: minmax(240px, 1.45fr) repeat(3, minmax(150px, 1fr)); gap: clamp(28px, 4vw, 68px); padding: 34px 0 52px; }
.ryde-footer__brand img { display: block; width: 165px; height: auto; margin-bottom: 20px; }
.ryde-footer__brand h3 { margin: 0 0 8px; color: var(--ryde-ink); font-size: .84rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.ryde-footer__brand > p { max-width: 360px; margin: 0 0 18px; color: #5f7276; font-size: .88rem; line-height: 1.75; }
.ryde-footer__location { display: flex; align-items: center; gap: 8px; color: var(--ryde-ink) !important; font-weight: 700; }
.ryde-footer__location span { color: var(--ryde-teal); font-size: 1.1rem; }
.ryde-footer__column { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.ryde-footer__column h3 { margin: 4px 0 10px; color: var(--ryde-ink); font-size: .84rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.ryde-footer__column a { position: relative; color: #5f7276; font-size: .84rem; font-weight: 500; transition: color .16s ease, transform .16s ease; }
.ryde-footer__column a:hover { color: var(--ryde-teal); transform: translateX(3px); }
.ryde-footer__contact p { margin: 0 0 5px; color: #5f7276; font-size: .84rem; line-height: 1.6; }
.ryde-footer__contact .ryde-footer__contact-link { color: var(--ryde-teal); font-weight: 800; }
.ryde-footer__contact .ryde-footer__response { margin-top: 5px; font-size: .72rem; }
.ryde-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 21px 0 25px; border-top: 1px solid #dce8e8; }
.ryde-footer__bottom p { margin: 0; color: #718085; font-size: .72rem; }
.ryde-footer__bottom nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 22px; }
.ryde-footer__bottom a { color: #718085; font-size: .72rem; }
.ryde-footer__bottom a:hover { color: var(--ryde-teal); }
.ryde-cookie-settings { padding: 0; border: 0; background: transparent; color: #718085; font: inherit; font-size: .72rem; cursor: pointer; }
.ryde-cookie-settings:hover { color: var(--ryde-teal); }
.ryde-footer a:focus-visible { outline: 2px solid var(--ryde-teal); outline-offset: 3px; }
.ryde-cookie-banner { position: fixed; z-index: 200; right: 24px; bottom: 24px; left: 24px; display: flex; align-items: center; justify-content: space-between; gap: 35px; box-sizing: border-box; max-width: 1050px; margin: 0 auto; padding: 24px 26px; border: 1px solid #d4e6e7; border-radius: 20px; background: #fff; box-shadow: 0 20px 60px rgba(23,43,48,.22); }
.ryde-cookie-banner[hidden] { display: none; }
.ryde-cookie-banner__copy { max-width: 680px; }
.ryde-cookie-banner__eyebrow { margin: 0 0 5px; color: var(--ryde-teal); font-size: .66rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.ryde-cookie-banner h2 { margin: 0 0 7px; color: var(--ryde-ink); font-size: 1.18rem; }
.ryde-cookie-banner__copy > p:not(.ryde-cookie-banner__eyebrow) { margin: 0; color: #627579; font-size: .76rem; line-height: 1.6; }
.ryde-cookie-banner__copy > a { display: inline-block; margin-top: 8px; color: var(--ryde-teal); font-size: .7rem; font-weight: 700; }
.ryde-cookie-banner__actions { display: flex; flex: 0 0 auto; gap: 9px; }
.ryde-cookie-banner__actions button { min-height: 44px; padding: 0 17px; border: 1px solid var(--ryde-teal); border-radius: 23px; background: #fff; color: var(--ryde-ink); font-family: inherit; font-size: .72rem; font-weight: 800; cursor: pointer; }
.ryde-cookie-banner__actions button:last-child { background: var(--ryde-teal); color: #fff; }
.ryde-cookie-banner__actions button:hover { transform: translateY(-1px); }
.ryde-cookie-banner__actions button:focus-visible, .ryde-cookie-settings:focus-visible { outline: 2px solid var(--ryde-teal); outline-offset: 3px; }
.ryde-course-page { color: var(--ryde-ink); background: #fff; }
.ryde-course-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: center; gap: clamp(42px, 7vw, 110px); box-sizing: border-box; min-height: 660px; padding: clamp(55px, 7vw, 100px) clamp(24px, 7vw, 120px) clamp(75px, 8vw, 115px); }
.ryde-course-hero__copy { max-width: 650px; }
.ryde-course-kicker, .ryde-section-heading > p { margin: 0 0 13px; color: var(--ryde-teal); font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.ryde-course-hero h1 { margin: 0; color: var(--ryde-ink); font-size: clamp(2.7rem, 5vw, 5.4rem); font-weight: 700; letter-spacing: -.055em; line-height: .98; }
.ryde-course-hero__copy > p:not(.ryde-course-kicker) { max-width: 590px; margin: 25px 0 0; color: #5f7276; font-size: clamp(1rem, 1.35vw, 1.16rem); line-height: 1.75; }
.ryde-course-hero__actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 31px; }
.ryde-course-button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 23px; border: 1px solid var(--ryde-teal); border-radius: 26px; font-size: .82rem; font-weight: 800; text-decoration: none; transition: background-color .18s ease, color .18s ease, transform .18s ease; }
.ryde-course-button:hover { transform: translateY(-2px); }
.ryde-course-button--primary { background: var(--ryde-teal); color: #fff; }
.ryde-course-button--primary:hover { background: #006e75; }
.ryde-course-button--outline { color: var(--ryde-ink); }
.ryde-course-button--outline:hover { background: var(--ryde-teal-soft); }
.ryde-course-hero__image { min-height: 500px; border-radius: 26px; overflow: hidden; }
.ryde-course-hero__image img { display: block; width: 100%; height: 100%; min-height: 500px; object-fit: cover; }
.ryde-pricing { padding: clamp(48px, 5vw, 72px) clamp(24px, 7vw, 120px); background: var(--ryde-teal-soft); scroll-margin-top: 30px; }
.ryde-section-heading { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.ryde-section-heading h2 { margin: 0; color: var(--ryde-ink); font-size: clamp(2rem, 3.5vw, 3.35rem); letter-spacing: -.045em; line-height: 1.12; }
.ryde-section-heading h1 { margin: 0; color: var(--ryde-ink); font-size: clamp(2rem, 3.5vw, 3.35rem); letter-spacing: -.045em; line-height: 1.12; }
.ryde-section-heading span { display: block; max-width: 660px; margin: 17px auto 0; color: #627579; font-size: .92rem; line-height: 1.7; }
.ryde-pricing__table-wrap { max-width: 1160px; margin: 0 auto; border: 1px solid #d2e9e9; border-radius: 20px; background: #fff; box-shadow: 0 12px 36px rgba(23,43,48,.06); overflow-x: auto; }
.ryde-pricing__table { width: 100%; min-width: 790px; border-collapse: collapse; }
.ryde-pricing__table th, .ryde-pricing__table td { padding: 20px 18px; border-right: 1px solid #e2eeee; border-bottom: 1px solid #e2eeee; text-align: center; }
.ryde-pricing__table tr:last-child th, .ryde-pricing__table tr:last-child td { border-bottom: 0; }
.ryde-pricing__table th:last-child, .ryde-pricing__table td:last-child { border-right: 0; }
.ryde-pricing__table thead th { background: var(--ryde-ink); color: #fff; font-size: .76rem; letter-spacing: .03em; }
.ryde-pricing__table thead th:first-child { text-align: left; }
.ryde-pricing__table tbody th { min-width: 190px; text-align: left; }
.ryde-pricing__table tbody th strong, .ryde-pricing__table tbody th small { display: block; }
.ryde-pricing__table tbody th strong { font-size: .94rem; }
.ryde-pricing__table tbody th small { margin-top: 5px; color: #718085; font-size: .68rem; font-weight: 500; }
.ryde-pricing__table td a { color: var(--ryde-teal); font-size: .75rem; font-weight: 800; text-decoration: none; }
.ryde-pricing__table tbody tr:hover { background: #f7fbfb; }
.ryde-pricing__note { max-width: 800px; margin: 23px auto 0; color: #627579; font-size: .78rem; text-align: center; }
.ryde-pricing__details { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px; max-width: 980px; margin: 23px auto 0; text-align: center; }
.ryde-pricing__details p { margin: 0; color: #627579; font-size: .78rem; }
.ryde-pricing__details strong { color: var(--ryde-ink); }
.ryde-section-action { display: flex; justify-content: center; margin-top: 29px; }
.ryde-progression { padding: clamp(52px, 6vw, 82px) clamp(24px, 7vw, 120px); }
.ryde-progression__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.5vw, 34px); max-width: 1220px; margin: 0 auto; }
.ryde-progression__grid article { position: relative; padding: clamp(25px, 3vw, 38px); border: 1px solid #dcecec; border-radius: 20px; background: #fff; overflow: hidden; }
.ryde-progression__grid article > span { position: absolute; top: 10px; right: 18px; color: var(--ryde-teal-soft); font-size: 4.8rem; font-weight: 800; line-height: 1; }
.ryde-progression__grid h3 { position: relative; max-width: 280px; margin: 0 0 16px; color: var(--ryde-ink); font-size: clamp(1.25rem, 1.8vw, 1.65rem); line-height: 1.25; }
.ryde-progression__grid p { position: relative; margin: 0 0 19px; color: #627579; font-size: .85rem; line-height: 1.7; }
.ryde-progression__grid ul { margin: 0; padding-left: 18px; color: var(--ryde-ink); font-size: .78rem; line-height: 1.85; }
.ryde-progression__grid li::marker { color: var(--ryde-teal); }
.ryde-course-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin: 0 clamp(24px, 7vw, 120px) clamp(95px, 10vw, 140px); padding: clamp(30px, 4vw, 50px); border-radius: 24px; background: var(--ryde-teal); color: #fff; }
.ryde-course-cta p { margin: 0 0 7px; font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.ryde-course-cta h2 { margin: 0; color: #fff; font-size: clamp(1.55rem, 3vw, 2.6rem); line-height: 1.15; }
.ryde-course-button--light { flex: 0 0 auto; border-color: #fff; background: #fff; color: var(--ryde-teal); }
.ryde-legal-page { background: #fff; color: var(--ryde-ink); }
.ryde-legal-hero { box-sizing: border-box; padding: clamp(56px, 7vw, 92px) clamp(24px, 8vw, 130px) clamp(44px, 5vw, 70px); background: var(--ryde-teal-soft); text-align: center; }
.ryde-legal-hero__eyebrow { margin: 0 0 12px; color: var(--ryde-teal); font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.ryde-legal-hero h1 { margin: 0; color: var(--ryde-ink); font-size: clamp(2.35rem, 5vw, 4.7rem); letter-spacing: -.05em; line-height: 1; }
.ryde-legal-hero__intro { max-width: 720px; margin: 20px auto 0; color: #5f7276; font-size: .95rem; line-height: 1.75; }
.ryde-legal-hero__date { margin: 14px 0 0; color: #718085; font-size: .74rem; font-weight: 600; }
.ryde-legal-layout { display: grid; grid-template-columns: 240px minmax(0, 760px); justify-content: center; gap: clamp(42px, 7vw, 100px); box-sizing: border-box; padding: clamp(48px, 7vw, 90px) clamp(24px, 7vw, 110px) clamp(105px, 10vw, 150px); }
.ryde-legal-nav { position: sticky; top: 28px; align-self: start; padding: 22px; border: 1px solid #dcecec; border-radius: 16px; background: #fff; }
.ryde-legal-nav strong { display: block; margin-bottom: 12px; color: var(--ryde-ink); font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; }
.ryde-legal-nav a { display: block; padding: 7px 0; color: #627579; font-size: .78rem; text-decoration: none; }
.ryde-legal-nav a:hover { color: var(--ryde-teal); }
.ryde-legal-content section { scroll-margin-top: 25px; }
.ryde-legal-content section + section { margin-top: 42px; padding-top: 42px; border-top: 1px solid #e2eeee; }
.ryde-legal-content h2 { margin: 0 0 16px; color: var(--ryde-ink); font-size: clamp(1.35rem, 2vw, 1.8rem); letter-spacing: -.025em; line-height: 1.25; }
.ryde-legal-content h3 { margin: 25px 0 10px; color: var(--ryde-ink); font-size: 1rem; }
.ryde-legal-content p, .ryde-legal-content li { color: #566b70; font-size: .9rem; line-height: 1.8; }
.ryde-legal-content p { margin: 0 0 14px; }
.ryde-legal-content ul { margin: 12px 0 0; padding-left: 21px; }
.ryde-legal-content li + li { margin-top: 7px; }
.ryde-legal-content li::marker { color: var(--ryde-teal); }
.ryde-legal-content a { color: var(--ryde-teal); font-weight: 700; }
.ryde-legal-note { margin: 22px 0; padding: 19px 21px; border-left: 4px solid var(--ryde-teal); border-radius: 0 12px 12px 0; background: var(--ryde-teal-soft); }
.ryde-legal-note p { margin: 0; color: var(--ryde-ink); }
.ryde-policy-table { width: 100%; margin-top: 18px; border: 1px solid #dcecec; border-radius: 14px; border-spacing: 0; overflow: hidden; }
.ryde-policy-table th, .ryde-policy-table td { padding: 14px; border-bottom: 1px solid #e2eeee; text-align: left; vertical-align: top; }
.ryde-policy-table tr:last-child th, .ryde-policy-table tr:last-child td { border-bottom: 0; }
.ryde-policy-table th { width: 26%; background: #f7fbfb; color: var(--ryde-ink); font-size: .78rem; }
.ryde-policy-table td { color: #566b70; font-size: .8rem; line-height: 1.65; }
.ryde-about { background: #fff; color: var(--ryde-ink); }
.ryde-about__eyebrow { margin: 0 0 14px; color: var(--ryde-teal); font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.ryde-about-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: center; gap: clamp(42px, 7vw, 110px); box-sizing: border-box; min-height: 650px; padding: clamp(55px, 7vw, 100px) clamp(24px, 7vw, 120px) clamp(75px, 8vw, 115px); }
.ryde-about-hero__copy { max-width: 630px; }
.ryde-about-hero h1 { margin: 0; color: var(--ryde-ink); font-size: clamp(2.25rem, 4vw, 4.1rem); letter-spacing: -.045em; line-height: 1.05; }
.ryde-about-hero__copy > p:not(.ryde-about__eyebrow) { margin: 24px 0 29px; color: #5f7276; font-size: clamp(1rem, 1.35vw, 1.16rem); line-height: 1.75; }
.ryde-about-photo { display: flex; align-items: center; justify-content: center; flex-direction: column; box-sizing: border-box; min-height: 310px; padding: 28px; border: 1px dashed #8cc8cb; border-radius: 22px; background: linear-gradient(145deg, #f1fafa, #dceff0); color: var(--ryde-ink); text-align: center; }
.ryde-about-photo::before { content: "＋"; display: grid; width: 50px; height: 50px; margin-bottom: 17px; border-radius: 50%; background: #fff; color: var(--ryde-teal); font-size: 1.45rem; place-items: center; }
.ryde-about-photo span { font-size: 1rem; font-weight: 800; }
.ryde-about-photo small { margin-top: 5px; color: #718085; font-size: .72rem; }
.ryde-about-photo--hero { min-height: 500px; }
.ryde-about-photo--filled { display: block; padding: 0; border: 0; background: #eaf7f7; overflow: hidden; }
.ryde-about-photo--filled::before { display: none; }
.ryde-about-photo--filled img { display: block; width: 100%; height: 100%; min-height: 500px; object-fit: cover; object-position: center 58%; }
.ryde-about-photo--gallery img { min-height: 310px; object-position: center; }
.ryde-about-photo--instructor img { object-position: center 58%; }
.ryde-about-photo--vehicle img { object-position: center 54%; }
.ryde-about-story { display: grid; grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 8vw, 130px); padding: clamp(62px, 8vw, 110px) clamp(24px, 8vw, 135px); background: var(--ryde-teal-soft); }
.ryde-about-story h2, .ryde-about-dakhla h2 { margin: 0; color: var(--ryde-ink); font-size: clamp(2rem, 3.7vw, 3.65rem); letter-spacing: -.045em; line-height: 1.1; }
.ryde-about-story > div:last-child p { margin: 0 0 18px; color: #566b70; font-size: .95rem; line-height: 1.85; }
.ryde-about-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 32px); padding: clamp(70px, 8vw, 115px) clamp(24px, 7vw, 120px); }
.ryde-about-gallery .ryde-about-photo:nth-child(2) { transform: translateY(28px); }
.ryde-about-values { padding: clamp(65px, 8vw, 110px) clamp(24px, 7vw, 120px); background: #f8fbfb; }
.ryde-about-values__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; max-width: 1240px; margin: 0 auto; }
.ryde-about-values__grid article { padding: 27px 24px; border: 1px solid #dcecec; border-radius: 18px; background: #fff; }
.ryde-about-values__grid article > span { color: var(--ryde-teal); font-size: .72rem; font-weight: 800; }
.ryde-about-values__grid h3 { margin: 16px 0 11px; font-size: 1.08rem; }
.ryde-about-values__grid p { margin: 0; color: #627579; font-size: .82rem; line-height: 1.7; }
.ryde-about-dakhla { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(40px, 7vw, 100px); padding: clamp(70px, 9vw, 125px) clamp(24px, 7vw, 120px) clamp(105px, 11vw, 160px); }
.ryde-about-dakhla__image { min-height: 440px; border-radius: 24px; overflow: hidden; }
.ryde-about-dakhla__image img { display: block; width: 100%; height: 100%; min-height: 440px; object-fit: cover; }
.ryde-about-dakhla__copy > p:not(.ryde-about__eyebrow) { margin: 21px 0 28px; color: #5f7276; font-size: .94rem; line-height: 1.8; }
.ryde-service-page { background: #fff; color: var(--ryde-ink); }
.ryde-service-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: center; gap: clamp(42px, 7vw, 100px); padding: clamp(55px, 7vw, 95px) clamp(24px, 7vw, 120px) clamp(70px, 8vw, 110px); }
.ryde-service-hero > div { max-width: 620px; }
.ryde-service-hero h1 { margin: 0; font-size: clamp(2.5rem, 4.5vw, 4.7rem); letter-spacing: -.05em; line-height: 1; }
.ryde-service-hero > div > p:not(.ryde-about__eyebrow) { margin: 23px 0 28px; color: #5f7276; line-height: 1.75; }
.ryde-service-hero > img { display: block; width: 100%; height: 500px; border-radius: 25px; object-fit: cover; object-position: center 62%; }
.ryde-tabs { padding: clamp(58px, 7vw, 95px) clamp(24px, 7vw, 120px); background: var(--ryde-teal-soft); }
.ryde-tabs > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.ryde-tabs__labels { display: flex; justify-content: center; gap: 8px; max-width: 850px; margin: 0 auto 24px; padding: 6px; border: 1px solid #d2e9e9; border-radius: 28px; background: #fff; }
.ryde-tabs__labels label { flex: 1; padding: 11px 16px; border-radius: 22px; color: #627579; font-size: .78rem; font-weight: 800; text-align: center; cursor: pointer; transition: color .16s ease, background-color .16s ease; }
.ryde-tab-panel { display: none; box-sizing: border-box; max-width: 920px; margin: 0 auto; padding: clamp(25px, 4vw, 42px); border: 1px solid #d2e9e9; border-radius: 20px; background: #fff; box-shadow: 0 12px 35px rgba(23,43,48,.06); }
#rental-full:checked ~ .ryde-tabs__labels label[for="rental-full"], #rental-kite:checked ~ .ryde-tabs__labels label[for="rental-kite"], #rental-board:checked ~ .ryde-tabs__labels label[for="rental-board"], #rental-insurance:checked ~ .ryde-tabs__labels label[for="rental-insurance"], #trip-dune:checked ~ .ryde-tabs__labels label[for="trip-dune"], #trip-secret:checked ~ .ryde-tabs__labels label[for="trip-secret"], #trip-oyster:checked ~ .ryde-tabs__labels label[for="trip-oyster"] { background: var(--ryde-teal); color: #fff; }
#rental-full:checked ~ .ryde-tabs__panels .ryde-tab-panel--full, #rental-kite:checked ~ .ryde-tabs__panels .ryde-tab-panel--kite, #rental-board:checked ~ .ryde-tabs__panels .ryde-tab-panel--board, #rental-insurance:checked ~ .ryde-tabs__panels .ryde-tab-panel--insurance, #trip-dune:checked ~ .ryde-tabs__panels .ryde-tab-panel--dune, #trip-secret:checked ~ .ryde-tabs__panels .ryde-tab-panel--secret, #trip-oyster:checked ~ .ryde-tabs__panels .ryde-tab-panel--oyster { display: block; }
.ryde-tab-panel > h3, .ryde-tab-panel > div h3 { margin: 0 0 9px; font-size: clamp(1.4rem, 2.4vw, 2rem); }
.ryde-tab-panel > p, .ryde-tab-panel > div p, .ryde-tab-panel li { color: #627579; font-size: .86rem; line-height: 1.75; }
.ryde-rate-grid { width: 100%; margin-top: 23px; border-collapse: collapse; }
.ryde-rate-grid th, .ryde-rate-grid td { padding: 15px 17px; border: 1px solid #e0eeee; text-align: left; }
.ryde-rate-grid th { color: #627579; font-size: .76rem; font-weight: 600; }
.ryde-rate-grid td { color: var(--ryde-ink); font-size: .9rem; font-weight: 800; }
.ryde-service-note { max-width: 820px; margin: 21px auto 0; color: #627579; font-size: .76rem; line-height: 1.65; text-align: center; }
.ryde-service-steps { padding: clamp(62px, 8vw, 105px) clamp(24px, 7vw, 120px) clamp(105px, 10vw, 145px); }
.ryde-service-steps > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1160px; margin: 0 auto; }
.ryde-service-steps article { padding: 28px; border: 1px solid #dcecec; border-radius: 18px; }
.ryde-service-steps article > span { color: var(--ryde-teal); font-size: .72rem; font-weight: 800; }
.ryde-service-steps h3 { margin: 15px 0 10px; }
.ryde-service-steps article p { margin: 0; color: #627579; font-size: .82rem; line-height: 1.7; }
.ryde-package-overview { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(45px, 8vw, 120px); padding: clamp(60px, 8vw, 110px) clamp(24px, 7vw, 120px); background: var(--ryde-teal-soft); }
.ryde-package-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.ryde-package-facts span { padding: 22px; border-radius: 15px; background: #fff; color: #627579; font-size: .72rem; }
.ryde-package-facts strong { display: block; margin-bottom: 4px; color: var(--ryde-ink); font-size: 1.05rem; }
.ryde-package-copy h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.4rem); letter-spacing: -.045em; line-height: 1.1; }
.ryde-package-copy > p:not(.ryde-about__eyebrow), .ryde-package-copy li { color: #566b70; font-size: .88rem; line-height: 1.8; }
.ryde-package-copy ul { padding-left: 20px; }
.ryde-package-pricing { padding: clamp(65px, 8vw, 110px) clamp(24px, 7vw, 120px) clamp(105px, 10vw, 145px); }
.ryde-package-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 1100px; margin: 0 auto; }
.ryde-package-cards article { padding: 30px; border: 1px solid #dcecec; border-radius: 19px; }
.ryde-package-cards article > p { margin: 0 0 8px; color: var(--ryde-teal); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.ryde-package-cards h3 { margin: 0 0 25px; font-size: 1.1rem; }
.ryde-package-cards article > strong { display: block; margin-bottom: 24px; font-size: 2rem; }
.ryde-package-cards a { color: var(--ryde-teal); font-size: .8rem; font-weight: 800; }
.ryde-package-card--featured { background: var(--ryde-ink); color: #fff; }
.ryde-package-card--featured h3, .ryde-package-card--featured strong { color: #fff; }
.ryde-package-exclusions { max-width: 780px; margin: 34px auto 0; padding: 20px 24px; border-radius: 15px; background: #f7fbfb; text-align: center; }
.ryde-package-exclusions h3 { margin: 0 0 6px; font-size: .9rem; }
.ryde-package-exclusions p { margin: 0; color: #627579; font-size: .8rem; }
.ryde-trip-tabs .ryde-tab-panel { grid-template-columns: 1fr 1fr; gap: 35px; max-width: 1080px; align-items: center; }
#trip-dune:checked ~ .ryde-tabs__panels .ryde-tab-panel--dune, #trip-secret:checked ~ .ryde-tabs__panels .ryde-tab-panel--secret, #trip-oyster:checked ~ .ryde-tabs__panels .ryde-tab-panel--oyster { display: grid; }
.ryde-trip-tabs .ryde-tab-panel img { width: 100%; height: 320px; border-radius: 15px; object-fit: cover; }
.ryde-trip-meta { display: flex; justify-content: center; gap: 12px; max-width: 850px; margin: 22px auto 0; }
.ryde-trip-meta span { flex: 1; padding: 16px; border-radius: 13px; background: #fff; color: #627579; font-size: .72rem; text-align: center; }
.ryde-trip-meta strong { display: block; color: var(--ryde-ink); font-size: .9rem; }
.ryde-form-page { background: var(--ryde-teal-soft); color: var(--ryde-ink); }
.ryde-form-intro { display: grid; grid-template-columns: minmax(280px, .78fr) minmax(480px, 1.22fr); gap: clamp(45px, 8vw, 120px); align-items: start; padding: clamp(60px, 8vw, 105px) clamp(24px, 8vw, 135px) clamp(110px, 10vw, 150px); }
.ryde-form-intro > div:first-child { position: sticky; top: 30px; }
.ryde-form-intro h1, .ryde-book-hero h1 { margin: 0; font-size: clamp(2.5rem, 4.8vw, 4.8rem); letter-spacing: -.05em; line-height: 1; }
.ryde-book-hero h1 { font-size: clamp(2.1rem, 4vw, 3.7rem); }
.ryde-form-intro > div:first-child > p:not(.ryde-about__eyebrow), .ryde-book-hero > p:not(.ryde-about__eyebrow) { margin: 22px 0 0; color: #5f7276; line-height: 1.8; }
.ryde-contact-details { display: grid; gap: 11px; margin-top: 30px; }
.ryde-contact-details a, .ryde-contact-details span { display: block; padding: 17px 19px; border-radius: 13px; background: #fff; color: #566b70; font-size: .82rem; text-decoration: none; }
.ryde-contact-details strong { display: block; margin-bottom: 3px; color: var(--ryde-ink); font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; }
.ryde-form-card, .ryde-book-form-wrap { padding: clamp(25px, 4vw, 45px); border-radius: 23px; background: #fff; box-shadow: 0 15px 45px rgba(23,43,48,.08); }
.ryde-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ryde-request-form label { color: var(--ryde-ink); font-size: .78rem; font-weight: 700; }
.ryde-request-form label > span { color: var(--ryde-teal); }
.ryde-request-form input:not([type="radio"]):not([type="checkbox"]), .ryde-request-form select, .ryde-request-form textarea { box-sizing: border-box; width: 100%; margin-top: 7px; padding: 13px 14px; border: 1px solid #cedfe0; border-radius: 10px; background: #fff; color: var(--ryde-ink); font: inherit; font-size: .86rem; outline: 0; }
.ryde-request-form input:focus, .ryde-request-form select:focus, .ryde-request-form textarea:focus { border-color: var(--ryde-teal); box-shadow: 0 0 0 3px rgba(0,140,149,.12); }
.ryde-form-field--wide { grid-column: 1 / -1; }
.ryde-form-consent { display: flex; align-items: flex-start; gap: 9px; margin: 20px 0; color: #627579 !important; font-size: .72rem !important; font-weight: 500 !important; line-height: 1.55; }
.ryde-form-consent input { margin-top: 3px; }
.ryde-form-consent a { color: var(--ryde-teal); }
.ryde-request-form .ryde-form-submit { display: flex !important; align-items: center !important; justify-content: space-between !important; width: 100% !important; min-height: 64px !important; box-sizing: border-box; padding: 8px 9px 8px 25px !important; border: 0 !important; border-bottom: 4px solid #005e64 !important; border-radius: 14px !important; background: #008c95 !important; color: #fff !important; box-shadow: 0 14px 30px rgba(0,110,117,.27) !important; font-family: "Poppins", Arial, sans-serif !important; font-size: .94rem !important; font-weight: 800 !important; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; appearance: none; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.ryde-request-form .ryde-form-submit b { display: grid; width: 46px; height: 46px; border-radius: 9px; background: #fff; color: var(--ryde-teal); font-size: 1.2rem; font-weight: 800; line-height: 1; place-items: center; transition: color .18s ease, transform .18s ease; }
.ryde-request-form .ryde-form-submit:hover { border-bottom-color: #004f54 !important; background: #006e75 !important; box-shadow: 0 17px 34px rgba(0,94,100,.34) !important; transform: translateY(-2px); }
.ryde-request-form .ryde-form-submit:active { border-bottom-width: 1px !important; box-shadow: 0 7px 16px rgba(0,94,100,.24) !important; transform: translateY(2px); }
.ryde-request-form .ryde-form-submit:hover b { color: #006e75; transform: translateX(3px); }
.ryde-request-form .ryde-form-submit:focus-visible { outline: 3px solid rgba(0,140,149,.3) !important; outline-offset: 3px; }
.ryde-honeypot { position: absolute !important; left: -9999px !important; }
.ryde-form-notice { margin-bottom: 22px; padding: 15px 17px; border-radius: 10px; font-size: .8rem; line-height: 1.5; }
.ryde-form-notice--success { background: #e6f7ed; color: #176b3b; }
.ryde-form-notice--error { background: #fff0ee; color: #8a2920; }
.ryde-book-hero { max-width: 820px; margin: 0 auto; padding: clamp(58px, 7vw, 92px) 24px 42px; text-align: center; }
.ryde-book-form-wrap { max-width: 1040px; margin: 0 auto clamp(110px, 11vw, 160px); }
.ryde-booking-steps { display: grid; gap: 24px; }
.ryde-booking-steps fieldset { margin: 0; padding: 0 0 24px; border: 0; border-bottom: 1px solid #e0eeee; }
.ryde-booking-steps fieldset:last-child { padding-bottom: 0; border-bottom: 0; }
.ryde-booking-steps legend { margin-bottom: 19px; color: var(--ryde-ink); font-size: 1rem; font-weight: 800; }
.ryde-booking-steps legend span { display: inline-grid; width: 28px; height: 28px; margin-right: 7px; border-radius: 50%; background: var(--ryde-teal-soft); color: var(--ryde-teal); font-size: .72rem; place-items: center; }
.ryde-service-choice { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; }
.ryde-service-choice label { position: relative; padding: 17px; border: 1px solid #d7e7e8; border-radius: 13px; cursor: pointer; }
.ryde-service-choice label:has(input:checked) { border-color: var(--ryde-teal); background: var(--ryde-teal-soft); }
.ryde-service-choice input { position: absolute; opacity: 0; }
.ryde-service-choice strong, .ryde-service-choice small { display: block; }
.ryde-service-choice strong { margin-bottom: 5px; font-size: .82rem; }
.ryde-service-choice small { color: #718085; font-size: .66rem; font-weight: 500; line-height: 1.45; }
.ryde-booking-summary { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 25px; padding: 21px 23px; border-radius: 15px; background: var(--ryde-ink); color: #fff; }
.ryde-booking-summary p { margin: 0; color: rgba(255,255,255,.72); font-size: .74rem; }
.ryde-booking-summary strong { display: block; color: #fff; font-size: 1.8rem; }
.ryde-booking-summary small { color: rgba(255,255,255,.72); font-size: .68rem; }
.ryde-booking-availability { max-width: 620px; margin: 13px auto 0; color: #718085; font-size: .76rem; line-height: 1.55; text-align: center; }
@media (max-width: 1100px) {
	.ryde-header__bar { padding-left: 16px; }
	.ryde-header__logo { width: 135px; }
	.ryde-header__nav > a, .ryde-header__trigger { padding-inline: 9px; font-size: .78rem; }
	.ryde-header__social { display: none; }
	.ryde-language-menu > summary { padding-inline: 10px; }
	.ryde-header__book { padding-inline: 18px; }
	.ryde-lessons { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-inline: 36px; }
	.ryde-footer__main { grid-template-columns: 1.3fr repeat(2, 1fr); }
	.ryde-footer__contact { grid-column: 2 / 4; }
	.ryde-course-hero { grid-template-columns: 1fr 1fr; gap: 45px; }
	.ryde-progression__grid { gap: 18px; }
}
@media (max-width: 820px) {
	.ryde-header { padding: 10px; }
	.ryde-header__bar { min-height: 62px; padding: 6px 8px 6px 16px; }
	.ryde-header__logo { width: 132px; }
	.ryde-header__nav { display: none; }
	.ryde-header__actions { gap: 0; margin-left: 0; }
	.ryde-header__actions > .ryde-header__book { display: none; }
	.ryde-language-switcher { min-height: 38px; margin-left: 0; }
	.ryde-header__mobile { position: relative; display: block; margin-left: 6px; }
	.ryde-header__mobile > summary { display: grid; width: 42px; height: 42px; border-radius: 50%; background: var(--ryde-teal-soft); cursor: pointer; list-style: none; place-content: center; gap: 4px; }
	.ryde-header__mobile > summary::-webkit-details-marker { display: none; }
	.ryde-header__mobile > summary span { display: block; width: 17px; height: 2px; border-radius: 2px; background: var(--ryde-ink); }
	.ryde-header__mobile nav { position: absolute; top: calc(100% + 10px); right: 0; display: grid; min-width: 250px; max-height: calc(100vh - 100px); padding: 12px; border: 1px solid #d6eeee; border-radius: 16px; background: #fff; box-shadow: 0 18px 42px rgba(23, 43, 48, .18); overflow-y: auto; }
	.ryde-header__mobile nav a, .ryde-header__mobile nav strong { padding: 9px 10px; color: var(--ryde-ink); text-decoration: none; }
	.ryde-header__mobile nav strong { margin-top: 5px; color: var(--ryde-teal); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
	.ryde-header__mobile nav a:last-child { margin-top: 7px; border-radius: 10px; background: var(--ryde-teal); color: #fff; font-weight: 800; text-align: center; }
	.dakhla-empty-page { min-height: calc(100svh - 82px); }
	.dakhla-page-title { min-height: calc(100svh - 82px); padding: 48px 20px; }
	.ryde-hero { min-height: calc(100svh - 82px); padding: 70px 24px 105px; }
	.ryde-hero__video { object-position: 58% 68%; }
	.ryde-hero__overlay { background: linear-gradient(90deg, rgba(8, 27, 31, .7), rgba(8, 27, 31, .22)), linear-gradient(0deg, rgba(8,27,31,.32), transparent 45%); }
	.ryde-hero__scroll { right: 24px; bottom: 32px; }
	.ryde-lessons { grid-template-columns: 1fr; padding: 48px 24px 100px; }
	.ryde-lessons__header { grid-column: auto; margin-bottom: 24px; }
	.ryde-lesson__image { min-height: clamp(250px, 55vw, 390px); }
	.ryde-footer { padding-inline: 18px; }
	.ryde-footer__cta { align-items: flex-start; flex-direction: column; padding: 30px 24px; }
	.ryde-footer__cta-actions { width: 100%; }
	.ryde-footer__button { flex: 1; }
	.ryde-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 24px; padding-top: 22px; }
	.ryde-footer__brand { grid-column: 1 / -1; }
	.ryde-footer__contact { grid-column: 1 / -1; }
	.ryde-footer__bottom { align-items: flex-start; flex-direction: column; }
	.ryde-footer__bottom nav { justify-content: flex-start; }
	.ryde-cookie-banner { align-items: flex-start; flex-direction: column; gap: 18px; }
	.ryde-course-hero { grid-template-columns: 1fr; min-height: 0; padding: 58px 24px 85px; }
	.ryde-course-hero__image { min-height: 390px; }
	.ryde-course-hero__image img { min-height: 390px; }
	.ryde-progression__grid { grid-template-columns: 1fr; }
	.ryde-course-cta { align-items: flex-start; flex-direction: column; }
	.ryde-legal-layout { grid-template-columns: 1fr; gap: 34px; }
	.ryde-legal-nav { position: static; }
	.ryde-about-hero { grid-template-columns: 1fr; }
	.ryde-about-story { grid-template-columns: 1fr; gap: 25px; }
	.ryde-about-values__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ryde-about-dakhla { grid-template-columns: 1fr; }
	.ryde-service-hero, .ryde-package-overview { grid-template-columns: 1fr; }
	.ryde-package-cards { grid-template-columns: 1fr; }
	.ryde-form-intro { grid-template-columns: 1fr; }
	.ryde-form-intro > div:first-child { position: static; }
	.ryde-service-choice { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 430px) {
	.ryde-whatsapp-float { right: 15px; bottom: 15px; width: 53px; height: 53px; }
	.ryde-header__logo { width: 112px; }
	.ryde-language-menu > summary { gap: 5px; padding-inline: 8px; font-size: .7rem; }
	.ryde-hero { align-items: flex-end; padding: 50px 20px 92px; }
	.ryde-hero__content { transform: translateY(-120px); }
	.ryde-hero h1 { font-size: clamp(2.8rem, 14vw, 4.5rem); }
	.ryde-hero__intro { font-size: .96rem; }
	.ryde-hero__actions { display: grid; grid-template-columns: 1fr; width: min(100%, 310px); }
	.ryde-hero__scroll { display: none; }
	.ryde-lessons { padding: 38px 18px 90px; gap: 18px; }
	.ryde-lessons__header { margin-bottom: 18px; text-align: left; }
	.ryde-lesson__image { min-height: 230px; }
	.ryde-footer__cta-actions { flex-direction: column; }
	.ryde-footer__main { grid-template-columns: 1fr; }
	.ryde-footer__brand, .ryde-footer__contact { grid-column: auto; }
	.ryde-course-hero { padding: 42px 18px 75px; }
	.ryde-course-hero h1 { font-size: clamp(2.55rem, 13vw, 4rem); }
	.ryde-course-hero__actions { display: grid; }
	.ryde-course-hero__image, .ryde-course-hero__image img { min-height: 310px; }
	.ryde-pricing, .ryde-progression { padding: 46px 18px; }
	.ryde-section-heading { text-align: left; }
	.ryde-section-heading span { margin-left: 0; }
	.ryde-pricing__note { text-align: left; }
	.ryde-course-cta { margin: 0 18px 95px; padding: 28px 22px; }
	.ryde-legal-hero { padding-inline: 18px; text-align: left; }
	.ryde-legal-hero__intro { margin-left: 0; }
	.ryde-legal-layout { padding: 42px 18px 95px; }
	.ryde-policy-table, .ryde-policy-table tbody, .ryde-policy-table tr, .ryde-policy-table th, .ryde-policy-table td { display: block; width: auto; }
	.ryde-policy-table th { border-bottom: 0; padding-bottom: 4px; }
	.ryde-policy-table td { padding-top: 4px; }
	.ryde-about-hero { padding: 45px 18px 75px; }
	.ryde-about-photo--hero { min-height: 370px; }
	.ryde-about-photo--filled img { min-height: 370px; }
	.ryde-about-story, .ryde-about-gallery, .ryde-about-values, .ryde-about-dakhla { padding-inline: 18px; }
	.ryde-about-gallery, .ryde-about-values__grid { grid-template-columns: 1fr; }
	.ryde-about-gallery .ryde-about-photo:nth-child(2) { transform: none; }
	.ryde-about-dakhla__image, .ryde-about-dakhla__image img { min-height: 320px; }
	.ryde-service-hero { padding: 45px 18px 72px; }
	.ryde-service-hero > img { height: 350px; }
	.ryde-tabs, .ryde-service-steps, .ryde-package-overview, .ryde-package-pricing { padding-inline: 18px; }
	.ryde-tabs__labels { overflow-x: auto; justify-content: flex-start; }
	.ryde-tabs__labels label { flex: 0 0 auto; min-width: 100px; }
	.ryde-rate-grid th, .ryde-rate-grid td { padding: 12px 9px; }
	.ryde-service-steps > div, .ryde-package-facts { grid-template-columns: 1fr; }
	.ryde-trip-tabs .ryde-tab-panel { grid-template-columns: 1fr; }
	.ryde-trip-tabs .ryde-tab-panel img { height: 250px; }
	.ryde-trip-meta { flex-direction: column; }
	.ryde-form-intro { padding: 48px 18px 100px; }
	.ryde-form-card, .ryde-book-form-wrap { padding: 23px 18px; border-radius: 17px; }
	.ryde-book-form-wrap { margin-inline: 18px; }
	.ryde-form-grid, .ryde-service-choice { grid-template-columns: 1fr; }
	.ryde-booking-summary { align-items: flex-start; flex-direction: column; }
	.ryde-cookie-banner { right: 12px; bottom: 12px; left: 12px; padding: 21px 18px; border-radius: 16px; }
	.ryde-cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.ryde-hero__video { display: none; }
	.ryde-hero { background: var(--ryde-ink); }
	.ryde-hero__scroll span::after { animation: none; }
}

