/*
Theme Name: ALMIQAT VOYAGE
Theme URI: https://almiqatvoyage.com/
Author: ALMIQAT VOYAGE
Author URI: https://almiqatvoyage.com/
Description: Arabic, right-to-left one-page theme for a Hajj, Umrah and tourism agency. Ships the hero slider, package and destination cards, animated stats, testimonial carousel and AJAX contact form as a single front page, with every string, link and image editable under Appearance - Customize. Self-hosts its fonts and icons, so the front end makes no third-party requests.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: Almiqat-travel
Tags: one-column, custom-logo, featured-images, threaded-comments, translation-ready, rtl-language-support

Almiqat Voyage is distributed under the GPL v2 or later.
Bundled Tajawal font: SIL Open Font License 1.1.
Bundled Font Awesome Free 6.5.0 glyphs: icons CC BY 4.0, fonts SIL OFL 1.1, code MIT.
See readme.txt for the full credit list.
*/

/* -------------------------------------------------------------------------
 * Tajawal — self-hosted copy of the exact woff2 files
 * https://fonts.googleapis.com/css2?family=Tajawal:wght@300;400;500;700;800;900&display=swap
 * serves to Chrome (family version v12), which is what almiqatvoyage.com/ loads.
 *
 * The unicode-range splits and `font-display: swap` are copied from Google's own
 * stylesheet, so the browser downloads exactly the slices the source does — only
 * the four weights this design actually renders (400/700/800/900) are shipped; the
 * CSS asks for 600 in five places and the browser resolves that to 700.
 *
 * SIL Open Font License 1.1 — Boutros International.
 */

@font-face {
  font-family: 'Tajawal';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/tajawal/tajawal-arabic-400.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

@font-face {
  font-family: 'Tajawal';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/tajawal/tajawal-latin-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Tajawal';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/tajawal/tajawal-arabic-700.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

@font-face {
  font-family: 'Tajawal';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/tajawal/tajawal-latin-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Tajawal';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/tajawal/tajawal-arabic-800.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

@font-face {
  font-family: 'Tajawal';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/tajawal/tajawal-latin-800.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Tajawal';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(assets/fonts/tajawal/tajawal-arabic-900.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

@font-face {
  font-family: 'Tajawal';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(assets/fonts/tajawal/tajawal-latin-900.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*!
 * Font Awesome Free 6.5.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free
 *   Icons: CC BY 4.0 · Fonts: SIL OFL 1.1 · Code: MIT
 * Copyright 2023 Fonticons, Inc.
 *
 * Trimmed to the 24 glyphs almiqatvoyage.com's homepage uses. The @font-face, base and
 * ::before rules are copied verbatim from the 6.5.0 `all.min.css` the source loads
 * from cdnjs, and the woff2 files are the same ones, self-hosted under
 * /sites/almiqat/fonts/fontawesome/ — so glyph shapes and metrics match the source
 * exactly instead of being approximated with another icon set.
 */

@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url(assets/fonts/fontawesome/fa-solid-900.woff2) format("woff2");
}
@font-face {
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(assets/fonts/fontawesome/fa-brands-400.woff2) format("woff2");
}

.fab,
.fas {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: var(--fa-display, inline-block);
  font-style: normal;
  font-variant: normal;
  line-height: 1;
  text-rendering: auto;
}
.fas { font-family: "Font Awesome 6 Free"; font-weight: 900; }
.fab { font-family: "Font Awesome 6 Brands"; font-weight: 400; }

/* solid */
.fa-bars:before           { content: "\f0c9"; }
.fa-bus:before            { content: "\f207"; }
.fa-calendar-check:before { content: "\f274"; }
.fa-chevron-left:before   { content: "\f053"; }
.fa-chevron-right:before  { content: "\f054"; }
.fa-chevron-up:before     { content: "\f077"; }
.fa-envelope:before       { content: "\f0e0"; }
.fa-headset:before        { content: "\f590"; }
.fa-kaaba:before          { content: "\f66b"; }
.fa-map-marker-alt:before { content: "\f3c5"; }
.fa-moon:before           { content: "\f186"; }
.fa-paper-plane:before    { content: "\f1d8"; }
.fa-phone:before          { content: "\f095"; }
.fa-quote-right:before    { content: "\f10e"; }
.fa-search:before         { content: "\f002"; }
.fa-shield-alt:before     { content: "\f3ed"; }
.fa-star:before           { content: "\f005"; }
.fa-tags:before           { content: "\f02c"; }
.fa-th-large:before       { content: "\f009"; }
.fa-user-tie:before       { content: "\f508"; }
.fa-utensils:before       { content: "\f2e7"; }

/* brands */
.fa-facebook-f:before     { content: "\f39e"; }
.fa-instagram:before      { content: "\f16d"; }
.fa-whatsapp:before       { content: "\f232"; }

/* ==========================================================
   Almiqat Travel Agency — site stylesheet
   Ported 1:1 from https://almiqatvoyage.com/assets/css/main.css
   Mobile-First | Gold & Navy | Agadir, Morocco

   Rule ORDER is load-bearing and matches the source:
     - `@media(max-width:960px){.nav-reserve-btn{display:none}}` stays BEFORE
       `.btn{display:inline-flex}`, so the reserve pill is never actually hidden.
     - `.fade-in.visible{transform:none}` stays AFTER the card :hover rules, so the
       declared card lift never applies — only shadows and inner image scale.
   Both reproduce the source rendering exactly; do not "tidy" them apart.
   ========================================================== */

/* ─── Variables ─────────────────────────────────────────── */
:root {
  --gold:        #D4AF37;
  --gold-dark:   #B8941F;
  --gold-light:  #F4E4BC;
  --gold-pale:   #FDF8E7;
  --navy:        #0d1642;
  --navy-mid:    #1a237e;
  --navy-light:  #1e2d8a;
  --white:       #ffffff;
  --cream:       #FAFAF7;
  --text:        #2c3e50;
  --text-muted:  #6b7280;
  --border:      #e5e0d0;
  --shadow-sm:   0 2px 8px rgba(13,22,66,.08);
  --shadow-md:   0 8px 30px rgba(13,22,66,.14);
  --shadow-lg:   0 20px 60px rgba(13,22,66,.2);
  --radius:      12px;
  --radius-lg:   20px;
  --radius-xl:   28px;
  --transition:  .3s ease;
  --navbar-h:    70px;
  --font-body:   'Tajawal', sans-serif;
}

/* ─── Reset ─────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-body);
  background:var(--cream);
  color:var(--text);
  line-height:1.7;
  overflow-x:hidden;
  min-height:100vh;
}
img { max-width:100%; height:auto; display:block; }
a  { text-decoration:none; color:inherit; }
button { font-family:var(--font-body); }
input, select, textarea { font-family:var(--font-body); }

/* ─── Normalisation ─────────────────────────────────────── */
/* Four values the source leaves on the browser default. They are written out
   explicitly so a plugin stylesheet, or a browser whose defaults differ from
   Chromium's, cannot shift them. Measured against https://almiqatvoyage.com/:
     - form controls keep `line-height: normal`, which is why a <button class="btn">
       is 47px tall there while an <a class="btn"> with identical padding is 54.38px;
     - the two headings that declare no size of their own rely on the UA sizes
       (1.17em for the form card title, 0.83em for the contact rows);
     - ::placeholder is Chromium's #757575 in both the light and the glass inputs. */
button, input, select, textarea { line-height:normal; }
.form-card-heading { font-size:1.17em; }
.contact-item h4 { font-size:.83em; }
.form-control::placeholder,
.search-field input::placeholder { color:#757575; opacity:1; }

/* ─── Loader ─────────────────────────────────────────────── */
.loader {
  position:fixed; inset:0; background:var(--navy); z-index:9999;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .6s ease, visibility .6s ease;
}
.loader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
/* Safety net: if main.js fails to load or throws, the splash would otherwise leave the
   whole site as a blank navy screen. This retires it on its own after 8s. */
.loader { animation: alzLoaderFailsafe 0s linear 8s forwards; }
@keyframes alzLoaderFailsafe { to { opacity:0; visibility:hidden; pointer-events:none; } }
.loader-inner  { text-align:center; }
.loader-logo   { font-size:2.2rem; font-weight:900; color:var(--gold); margin-bottom:18px; letter-spacing:3px; }
.loader-bar    { width:180px; height:4px; background:rgba(255,255,255,.15); border-radius:2px; overflow:hidden; margin:0 auto; }
.loader-progress { height:100%; width:0; background:var(--gold); animation:loadProg 1.4s ease forwards; }
@keyframes loadProg { to { width:100%; } }

/* ─── Navbar ─────────────────────────────────────────────── */
.navbar {
  position:fixed; top:0; width:100%; z-index:1000;
  padding:0; height:var(--navbar-h);
  transition:background var(--transition), box-shadow var(--transition);
  background:transparent;
}
.navbar.scrolled {
  background:rgba(13,22,66,.97);
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-md);
}
.nav-container {
  max-width:1400px; margin:0 auto; padding:0 20px;
  height:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.logo {
  display:flex; align-items:center; gap:10px;
  color:var(--white); font-weight:900; font-size:1.25rem; flex-shrink:0;
}
.logo-icon {
  width:40px; height:40px; flex-shrink:0;
  background:linear-gradient(135deg, var(--gold), var(--gold-dark));
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; box-shadow:0 4px 15px rgba(212,175,55,.4);
}
.nav-links {
  display:flex; list-style:none; gap:28px; align-items:center;
}
.nav-links a {
  color:var(--white); font-weight:600; font-size:.97rem;
  position:relative; padding:4px 0; transition:color var(--transition);
  white-space:nowrap;
}
.nav-links a::after {
  content:''; position:absolute; bottom:0; right:0;
  width:0; height:2px; background:var(--gold); transition:width var(--transition);
}
.nav-links a:hover, .nav-links a.active { color:var(--gold); }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.nav-reserve-btn { white-space:nowrap; }
.mobile-menu-btn {
  display:none; background:none; border:none;
  color:var(--white); font-size:1.6rem; cursor:pointer; padding:8px 10px;
  line-height:1; border-radius:8px;
  transition:background .2s;
}
.mobile-menu-btn:hover,
.mobile-menu-btn:focus { background:rgba(255,255,255,.12); outline:none; }

/* Mobile Nav */
.nav-overlay {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:998;
}
.nav-overlay.active { display:block; }

@media(max-width:960px) {
  .mobile-menu-btn { display:block; }

  /* On mobile the navbar is never transparent — always has a dark backdrop
     so the hamburger icon is clearly visible on hero pages (page-hero is
     navy, hero slider is an image). */
  .navbar {
    background: rgba(13,22,66,.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .nav-links {
    position:fixed; top:0; right:-100%; width:82%; max-width:300px;
    height:100vh; background:var(--navy); z-index:999;
    flex-direction:column; justify-content:center; gap:6px;
    padding:80px 24px 40px;
    /* `visibility` takes the six off-screen links out of the tab order while the drawer
       is closed; delaying it by the slide duration keeps the animation intact. */
    visibility:hidden;
    transition:right var(--transition), visibility 0s linear .3s;
    overflow-y:auto;
  }
  .nav-links.open { right:0; visibility:visible; transition:right var(--transition), visibility 0s; }
  .nav-links li { width:100%; }
  .nav-links a {
    font-size:1.1rem; padding:12px 0; display:block;
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  .nav-reserve-btn { display:none; }
}

/* ─── Buttons ─────────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 26px; border-radius:50px;
  font-weight:700; font-size:.97rem; cursor:pointer;
  border:2px solid transparent; transition:all var(--transition);
  white-space:nowrap; text-align:center; justify-content:center;
}
.btn-gold {
  background:linear-gradient(135deg, var(--gold), var(--gold-dark));
  color:var(--navy);
}
.btn-gold:hover { transform:translateY(-2px); box-shadow:0 8px 25px rgba(212,175,55,.5); }
.btn-outline { background:transparent; border-color:var(--white); color:var(--white); }
.btn-outline:hover { background:var(--white); color:var(--navy); }
.btn-navy { background:var(--navy); color:var(--white); }
.btn-navy:hover { background:var(--navy-mid); transform:translateY(-2px); }
.btn-whatsapp { background:#25D366; color:var(--white); }
.btn-whatsapp:hover { background:#1ebe5d; }
.btn-facebook { background:#1877F2; color:var(--white); }
.btn-facebook:hover { background:#166fe5; }
.btn-sm { padding:8px 18px; font-size:.87rem; }
.btn-lg { padding:15px 36px; font-size:1.05rem; }
.btn-block { width:100%; }

/* On a phone the logo + booking pill + hamburger do not fit the 70px bar, and the
   hamburger ends up clipped off the left edge (x = -31px at 390px wide). The source's own
   stylesheet tries to hide the pill below 960px but the rule is overridden by `.btn`
   above; this restores that intent only where the overflow actually happens, so 441px
   and wider still matches the source exactly. */
@media(max-width:440px) {
  .nav-reserve-btn { display:none; }
}

/* ─── Flash Messages ─────────────────────────────────────── */
.site-flash {
  position:fixed; top:calc(var(--navbar-h) + 12px); right:16px; left:16px;
  z-index:2000; padding:13px 18px; border-radius:var(--radius);
  font-weight:600; display:flex; align-items:center; justify-content:space-between; gap:10px;
  box-shadow:var(--shadow-md); animation:flashIn .35s ease;
  max-width:480px; margin:0 auto;
}
.site-flash button { background:none; border:none; cursor:pointer; font-size:1.2rem; flex-shrink:0; }
.alert-success { background:#d4edda; color:#155724; border-right:4px solid #28a745; }
.alert-error   { background:#f8d7da; color:#721c24; border-right:4px solid #dc3545; }
@keyframes flashIn { from { opacity:0; transform:translateY(-12px); } to { opacity:1; transform:none; } }

/* ─── Hero ─────────────────────────────────────────────────── */
.hero {
  min-height:100vh; position:relative;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.hero-slider { position:absolute; inset:0; z-index:0; }
.slide {
  position:absolute; inset:0; opacity:0;
  background-size:cover; background-position:center;
  transition:opacity 1.5s ease;
}
.slide.active { opacity:1; }
.slide::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(13,22,66,.3) 0%, rgba(13,22,66,.75) 100%);
}
.hero-content {
  position:relative; z-index:1; text-align:center;
  color:var(--white); padding:calc(var(--navbar-h) + 20px) 20px 80px;
  max-width:820px; animation:heroIn 1.2s ease; width:100%;
}
@keyframes heroIn { from { opacity:0; transform:translateY(30px); } to { opacity:1; transform:none; } }
.hero-badge {
  display:inline-block; background:rgba(212,175,55,.2); border:1px solid var(--gold);
  color:var(--gold); padding:5px 18px; border-radius:50px; font-size:.88rem;
  font-weight:600; letter-spacing:1px; margin-bottom:18px;
}
.hero-title {
  font-size:clamp(1.9rem, 5.5vw, 4rem); font-weight:900;
  margin-bottom:18px; line-height:1.2; text-shadow:0 2px 20px rgba(0,0,0,.3);
}
.hero-title span { color:var(--gold); }
.hero-desc { font-size:clamp(.97rem, 2.5vw, 1.2rem); margin-bottom:28px; opacity:.9; }
.hero-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.hero-dots {
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  display:flex; gap:8px; z-index:1;
}
.dot { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.5); cursor:pointer; transition:all var(--transition); border:none; padding:0; }
.dot.active { background:var(--gold); width:28px; border-radius:5px; }

/* Hero Search */
.hero-search {
  background:rgba(255,255,255,.13); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.25); border-radius:var(--radius-lg);
  padding:18px 20px; margin-top:30px;
  display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:10px; align-items:end;
}
.search-field label { color:rgba(255,255,255,.85); font-size:.83rem; font-weight:600; display:block; margin-bottom:5px; }
.search-field select, .search-field input {
  width:100%; padding:10px 12px; border-radius:var(--radius);
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3);
  color:var(--white); font-size:.93rem; outline:none;
}
.search-field select option { color:var(--navy); background:var(--white); }
.search-field select:focus, .search-field input:focus { border-color:var(--gold); }

/* ─── Layout Helpers ─────────────────────────────────────── */
.section    { padding:75px 0; }
.container  { max-width:1400px; margin:0 auto; padding:0 20px; }
.section-header { text-align:center; margin-bottom:50px; }
.section-badge {
  display:inline-block; color:var(--gold); font-weight:700;
  font-size:.87rem; letter-spacing:3px; text-transform:uppercase; margin-bottom:10px;
}
.section-title { font-size:clamp(1.7rem, 3.5vw, 2.6rem); font-weight:900; color:var(--navy); margin-bottom:14px; line-height:1.3; }
.section-title span { color:var(--gold); }
.section-desc { color:var(--text-muted); font-size:1.05rem; max-width:580px; margin:0 auto; }
.divider { width:56px; height:4px; background:linear-gradient(to left, var(--gold), var(--gold-dark)); border-radius:2px; margin:14px auto 0; }

/* ─── Stats Strip ─────────────────────────────────────────── */
.stats-strip { background:linear-gradient(135deg, var(--navy), var(--navy-mid)); padding:38px 0; }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:24px; text-align:center; }
.stat-item { color:var(--white); }
.stat-number { font-size:2.2rem; font-weight:900; color:var(--gold); line-height:1; }
.stat-label { font-size:.88rem; opacity:.8; margin-top:5px; }

/* ─── Package Cards ──────────────────────────────────────── */
.packages-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:24px; }
.package-card {
  background:var(--white); border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-sm); transition:all var(--transition); display:flex; flex-direction:column;
}
.package-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.card-image { position:relative; height:210px; overflow:hidden; }
.card-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.package-card:hover .card-image img { transform:scale(1.07); }
.card-badge {
  position:absolute; top:12px; right:12px;
  background:var(--gold); color:var(--navy); padding:3px 12px;
  border-radius:50px; font-size:.78rem; font-weight:800;
}
.card-badge.vip { background:var(--navy); color:var(--gold); }
.card-body { padding:20px; flex:1; display:flex; flex-direction:column; }
.card-type { font-size:.78rem; color:var(--gold); font-weight:700; text-transform:uppercase; letter-spacing:2px; }
.card-title { font-size:1.15rem; font-weight:800; color:var(--navy); margin:7px 0 9px; }
.card-desc { color:var(--text-muted); font-size:.9rem; flex:1; margin-bottom:13px; }
.card-features { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.feature-tag { background:var(--gold-pale); color:var(--navy); padding:3px 10px; border-radius:20px; font-size:.78rem; font-weight:600; }
.card-footer { display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px solid var(--border); gap:8px; flex-wrap:wrap; }
.card-price { font-size:1.2rem; font-weight:900; color:var(--gold-dark); line-height:1.3; }
.card-price-unit { font-size:.75rem; color:var(--text-muted); font-weight:400; }

/* Share buttons on cards */
.card-share { display:flex; gap:6px; margin-top:10px; }
.card-share a {
  display:inline-flex; align-items:center; gap:5px; padding:5px 12px;
  border-radius:50px; font-size:.78rem; font-weight:700; transition:all var(--transition);
}

/* ─── Destinations Grid ──────────────────────────────────── */
.destinations-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:20px; }
.dest-card { position:relative; height:280px; border-radius:var(--radius-lg); overflow:hidden; cursor:pointer; box-shadow:var(--shadow-sm); transition:all var(--transition); }
.dest-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.dest-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.dest-card:hover img { transform:scale(1.09); }
.dest-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(13,22,66,.85) 40%, transparent);
  display:flex; flex-direction:column; justify-content:flex-end; padding:20px;
}
.dest-badge { position:absolute; top:12px; left:12px; background:var(--gold); color:var(--navy); padding:3px 10px; border-radius:50px; font-size:.75rem; font-weight:800; }
.dest-name { font-size:1.25rem; font-weight:800; color:var(--white); margin-bottom:3px; }
.dest-price { color:var(--gold); font-weight:700; font-size:.9rem; }

/* ─── Features / Services ────────────────────────────────── */
.features-section { background:var(--navy); }
.features-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:24px; }
.feature-card {
  background:rgba(255,255,255,.05); border:1px solid rgba(212,175,55,.2);
  border-radius:var(--radius-lg); padding:28px 22px; text-align:center;
  transition:all var(--transition); color:var(--white);
}
.feature-card:hover { background:rgba(212,175,55,.1); border-color:var(--gold); transform:translateY(-4px); }
.feature-icon {
  width:62px; height:62px; border-radius:50%; margin:0 auto 16px;
  background:linear-gradient(135deg, var(--gold), var(--gold-dark));
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; color:var(--navy);
}
.feature-title { font-size:1.05rem; font-weight:800; margin-bottom:9px; }
.feature-desc  { font-size:.88rem; opacity:.75; }

/* ─── Testimonials ───────────────────────────────────────── */
.testimonials-section { background:var(--navy-mid); }
.testimonial-slider { position:relative; max-width:720px; margin:0 auto; }
.testimonial-card {
  background:rgba(255,255,255,.07); border:1px solid rgba(212,175,55,.25);
  border-radius:var(--radius-lg); padding:36px; color:var(--white);
}
.quote-icon { font-size:2.5rem; color:var(--gold); opacity:.4; }
.testimonial-text { font-size:1rem; line-height:1.9; margin:14px 0 20px; opacity:.9; }
.testimonial-author { display:flex; align-items:center; gap:14px; }
.author-avatar {
  width:48px; height:48px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg, var(--gold), var(--gold-dark));
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem; font-weight:800; color:var(--navy);
}
.author-info h3 { font-size:1em; font-weight:800; margin-bottom:3px; }
.author-info span { font-size:.83rem; opacity:.7; color:var(--gold); }
.testimonial-nav { display:flex; gap:10px; justify-content:center; margin-top:20px; }
.t-btn {
  width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.1);
  border:1px solid rgba(212,175,55,.3); color:var(--white); cursor:pointer;
  font-size:.97rem; transition:all var(--transition);
}
.t-btn:hover { background:var(--gold); color:var(--navy); border-color:var(--gold); }

/* ─── Contact Section ────────────────────────────────────── */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.contact-info-card {
  background:var(--navy); color:var(--white);
  border-radius:var(--radius-lg); padding:36px;
}
.contact-info-card h3 { font-size:1.5rem; font-weight:900; margin-bottom:7px; }
.contact-info-card > p { opacity:.8; margin-bottom:26px; }
.contact-item { display:flex; gap:14px; align-items:flex-start; margin-bottom:20px; }
.contact-icon {
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background:rgba(212,175,55,.18); border:1px solid rgba(212,175,55,.4);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:.97rem;
}
.contact-item h4 { font-weight:700; margin-bottom:3px; }
.contact-item span, .contact-item a { font-size:.9rem; opacity:.8; color:inherit; }
.contact-item a:hover { color:var(--gold); opacity:1; }

/* ─── Forms ──────────────────────────────────────────────── */
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-weight:700; margin-bottom:6px; color:var(--navy); font-size:.93rem; }
.form-group label .req { color:#dc3545; margin-right:2px; }
.form-control {
  width:100%; padding:11px 14px; border:2px solid var(--border);
  border-radius:var(--radius); font-size:.97rem; color:var(--text);
  background:var(--white); transition:border-color var(--transition); outline:none;
  -webkit-appearance:none;
  min-width: 0;
}
.form-control:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55,.13); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
textarea.form-control { resize:vertical; min-height:110px; }

/* ─── Footer ─────────────────────────────────────────────── */
.footer { background:var(--navy); color:var(--white); }
.footer-top { padding:55px 0 36px; }
.footer-grid { display:grid; grid-template-columns:1.8fr repeat(3, 1fr); gap:36px; }
.footer-logo { display:flex; align-items:center; gap:10px; font-size:1.3rem; font-weight:900; margin-bottom:14px; }
.footer-brand p { font-size:.88rem; opacity:.75; line-height:1.7; max-width:280px; }
.social-links { display:flex; gap:8px; margin-top:18px; }
.social-links a {
  width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  display:flex; align-items:center; justify-content:center;
  color:var(--white); transition:all var(--transition); font-size:.9rem;
}
.social-links a:hover { background:var(--gold); border-color:var(--gold); color:var(--navy); }
.footer-col h4 { font-size:.97rem; font-weight:800; color:var(--gold); margin-bottom:14px; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:9px; }
.footer-col ul a { color:rgba(255,255,255,.7); font-size:.88rem; display:flex; align-items:center; gap:7px; transition:color var(--transition); }
.footer-col ul a:hover { color:var(--gold); }
.contact-list { list-style:none; }
.contact-list li { display:flex; align-items:center; gap:9px; margin-bottom:9px; font-size:.88rem; opacity:.8; }
.contact-list i { color:var(--gold); width:16px; flex-shrink:0; }
.contact-list a { color:inherit; transition:color var(--transition); }
.contact-list a:hover { color:var(--gold); opacity:1; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:18px 0; }
.footer-bottom-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:.83rem; opacity:.65; }
.footer-location i { color:var(--gold); margin-left:4px; }

/* ─── WhatsApp FAB ───────────────────────────────────────── */
/* Positioned bottom-LEFT so it does NOT overlap back-to-top (bottom-right) */
.whatsapp-fab {
  position:fixed; bottom:24px; left:16px; z-index:900;
  display:flex; align-items:center; gap:8px;
  background:#25D366; color:var(--white);
  border-radius:50px; padding:10px 16px 10px 14px;
  font-weight:700; font-size:.88rem;
  box-shadow:0 4px 20px rgba(37,211,102,.45);
  transition:all var(--transition);
}
.whatsapp-fab:hover { background:#1ebe5d; transform:translateY(-2px); }
.whatsapp-fab i { font-size:1.3rem; }
/* On very small screens hide label */
@media(max-width:380px) { .whatsapp-fab-label { display:none; } }

/* ─── Back to Top ────────────────────────────────────────── */
.back-to-top {
  position:fixed; bottom:24px; right:16px; z-index:900;
  width:42px; height:42px; border-radius:50%; background:var(--navy);
  border:2px solid var(--gold); color:var(--gold); font-size:.97rem;
  cursor:pointer; opacity:0; visibility:hidden; transition:all var(--transition);
}
.back-to-top.visible { opacity:1; visibility:visible; }
.back-to-top:hover { background:var(--gold); color:var(--navy); }

/* ─── Animations ─────────────────────────────────────────── */
.fade-in { opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.fade-in.visible { opacity:1; transform:none; }

/* ─── Utility ────────────────────────────────────────────── */
.text-center { text-align:center; }
.mt-2 { margin-top:8px; }  .mt-4 { margin-top:16px; } .mt-6 { margin-top:24px; }
.hidden { display:none !important; }
.loading-spinner {
  display:inline-block; width:20px; height:20px;
  border:2px solid rgba(255,255,255,.3); border-top-color:var(--white);
  border-radius:50%; animation:spin .7s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ─── Price Display (MAD — Moroccan Dirham) ──────────────── */
.price-mad { font-size:1.15rem; font-weight:900; color:var(--gold-dark); }

/* ─── Responsive ─────────────────────────────────────────── */
@media(max-width:1024px) {
  .footer-grid { grid-template-columns:1fr 1fr; }
  .contact-grid { grid-template-columns:1fr; }
}
@media(max-width:768px) {
  .section { padding:50px 0; }
  .hero-search { grid-template-columns:1fr 1fr; }
  .packages-grid { grid-template-columns:1fr; }
  .destinations-grid { grid-template-columns:1fr 1fr; }
  .features-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px) {
  .destinations-grid, .features-grid, .hero-search { grid-template-columns:1fr; }
  .hero-btns { flex-direction:column; align-items:center; }
  .footer-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .btn { font-size:.93rem; padding:11px 20px; }
  .card-footer { flex-direction:column; align-items:flex-start; gap:10px; }
}

/* ── Form Card (defined later in the source sheet, under the reservation block) ── */
.form-card {
  background: var(--white);
  border-radius: 18px;
  padding: 28px 24px;
  box-shadow: 0 4px 24px rgba(13,22,66,.08);
}
@media (max-width: 560px) {
  .form-card { padding: 20px 16px; }
}

/* ── Replacements for the style="" attributes the source emits in markup ── */
.section-on-white { background:#fff; }
.section-title-on-dark { color:#fff; }
.form-card-heading { color:var(--navy); font-weight:800; margin-bottom:20px; }
.site-flash-js { top:80px; z-index:9999; }

/* ══════════════════════════════════════════════════════════════════════════
   WordPress layer
   Everything above this line is the source site's own stylesheet. Everything
   below exists only because the design now runs inside WordPress.
   ══════════════════════════════════════════════════════════════════════════ */

/* ─── Admin bar ──────────────────────────────────────────── */
/* WordPress pushes the document down with `html { margin-top: 32px !important }`
   for logged-in users. Fixed/viewport-sized layers have to be offset by the same
   amount or they sit underneath the bar. Logged-out visitors never match these
   selectors, so the public page is untouched. */
.admin-bar .navbar { top:32px; }
.admin-bar .loader { top:32px; }
.admin-bar .hero   { min-height:calc(100vh - 32px); }
.admin-bar .nav-links { top:32px; height:calc(100vh - 32px); }
@media screen and (max-width:782px) {
  .admin-bar .navbar { top:46px; }
  .admin-bar .loader { top:46px; }
  .admin-bar .hero   { min-height:calc(100vh - 46px); }
  .admin-bar .nav-links { top:46px; height:calc(100vh - 46px); }
}
@media screen and (max-width:600px) {
  /* Below 600px WordPress makes the admin bar `position:absolute`, so it scrolls away.
     While the page is still at the top it would cover the navbar and the owner could not
     reach the menu button, so the navbar stays offset until main.js reports the bar has
     scrolled out of view (`.alz-bar-gone`). */
  .admin-bar .navbar { top:46px; }
  .admin-bar .loader { top:46px; }
  .admin-bar .hero   { min-height:calc(100vh - 46px); }
  .admin-bar .nav-links { top:46px; height:calc(100vh - 46px); }
  .admin-bar.alz-bar-gone .navbar { top:0; }
  .admin-bar.alz-bar-gone .loader { top:0; }
  .admin-bar.alz-bar-gone .nav-links { top:0; height:100vh; }
}

/* ─── Custom logo (Appearance - Customize - Site Identity) ─ */
.logo .custom-logo { height:40px; width:auto; max-width:200px; display:block; }
.footer-logo .custom-logo { height:40px; width:auto; max-width:200px; display:block; }

/* ─── Keyboard focus ─────────────────────────────────────── */
/* The ported rules set `outline:none` on the form controls and the hamburger, which left
   keyboard users with only a 1.4-2.1:1 border change to go on. :focus-visible restores a
   real ring for keyboard interaction only, so mouse and touch rendering is unchanged and
   the pixel comparison with the source still holds. */
.form-control:focus-visible,
.comment-form input:focus-visible,
.comment-form textarea:focus-visible {
  outline:3px solid var(--navy); outline-offset:2px;
}
.search-field select:focus-visible,
.search-field input:focus-visible,
.mobile-menu-btn:focus-visible,
.dot:focus-visible,
.t-btn:focus-visible,
.back-to-top:focus-visible {
  outline:3px solid var(--white); outline-offset:2px;
}
.btn:focus-visible,
.nav-links a:focus-visible,
.dest-card:focus-visible,
.card-share a:focus-visible,
.social-links a:focus-visible,
.footer-col ul a:focus-visible {
  outline:3px solid var(--gold); outline-offset:3px;
}
/* The skip-link target is only focusable so the skip works; it must not paint a ring. */
#content:focus { outline:none; }

/* ─── Spam honeypot ──────────────────────────────────────── */
/* Clipped to a 1px box rather than pushed off-canvas with a negative offset: in a
   right-to-left document the scrollable overflow region grows to the LEFT, so
   `left:-9999px` would add ~10,000px of horizontal scroll to every page. */
.alz-hp {
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap; margin:-1px; padding:0; border:0;
}

/* ─── Accessibility ──────────────────────────────────────── */
.screen-reader-text {
  border:0; clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden;
  padding:0; position:absolute; width:1px; white-space:nowrap; word-wrap:normal;
}
.screen-reader-text:focus {
  background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow-md);
  clip-path:none; color:var(--navy); display:block; font-size:1rem; font-weight:700;
  height:auto; right:16px; top:16px; line-height:normal; padding:14px 22px;
  text-decoration:none; width:auto; z-index:100000;
}
.skip-link:focus { outline:2px solid var(--gold); }

/* ─── Inner pages (page.php, single.php, search, archive, 404) ─────────────
   `.page-hero`, `.pagination`, `.badge*` and `.empty-state` are the source
   stylesheet's own inner-page rules, carried over unchanged. */
.page-hero {
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%);
  padding:calc(var(--navbar-h) + 40px) 0 50px; text-align:center; color:var(--white);
}
.page-hero h1 { font-size:clamp(1.7rem, 4vw, 2.8rem); font-weight:900; margin-bottom:10px; }
.page-hero p { opacity:.8; font-size:1.05rem; }
.breadcrumb { display:flex; gap:8px; justify-content:center; margin-top:12px; font-size:.88rem; opacity:.7; flex-wrap:wrap; }
.breadcrumb a { color:var(--gold); }

.pagination-nav { display:flex; justify-content:center; margin-top:44px; }
.pagination { display:flex; list-style:none; gap:7px; flex-wrap:wrap; justify-content:center; }
.pagination li a, .pagination li span {
  display:flex; align-items:center; justify-content:center;
  min-width:38px; height:38px; padding:0 8px; border-radius:var(--radius);
  background:var(--white); color:var(--navy); font-weight:700;
  border:1px solid var(--border); transition:all var(--transition); font-size:.9rem;
}
.pagination li.active a, .pagination li.active span, .pagination li a:hover { background:var(--gold); color:var(--navy); border-color:var(--gold); }

.badge { display:inline-block; padding:3px 10px; border-radius:50px; font-size:.75rem; font-weight:700; }
.badge-gold { background:var(--gold-pale); color:var(--gold-dark); }

.empty-state { text-align:center; padding:55px 20px; color:var(--text-muted); }
.empty-state i { font-size:2.8rem; margin-bottom:14px; color:var(--gold); opacity:.5; }
.empty-state h2 { font-size:1.25rem; color:var(--navy); margin-bottom:7px; }

/* ─── Post and page content ──────────────────────────────── */
.entry-card {
  background:var(--white); border-radius:var(--radius-lg); padding:36px 32px;
  box-shadow:var(--shadow-sm); max-width:860px; margin:0 auto;
}
.entry-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:24px; }
.entry-summary-card {
  background:var(--white); border-radius:var(--radius-lg); padding:24px;
  box-shadow:var(--shadow-sm); transition:box-shadow var(--transition);
  display:flex; flex-direction:column;
}
.entry-summary-card:hover { box-shadow:var(--shadow-lg); }
.entry-summary-card h2 { font-size:1.15rem; font-weight:800; color:var(--navy); margin-bottom:8px; }
.entry-summary-card h2 a:hover { color:var(--gold-dark); }
.entry-summary-card .entry-meta { font-size:.8rem; color:var(--text-muted); margin-bottom:10px; }
.entry-summary-card p { font-size:.9rem; color:var(--text-muted); flex:1; margin-bottom:14px; }
.entry-thumb { border-radius:var(--radius); overflow:hidden; margin-bottom:14px; }
.entry-thumb img { width:100%; height:180px; object-fit:cover; }
.entry-meta { font-size:.85rem; color:var(--text-muted); margin-bottom:18px; }
.entry-meta a:hover { color:var(--gold-dark); }

.entry-content { font-size:1rem; line-height:1.9; }
.entry-content > * + * { margin-top:18px; }
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
  color:var(--navy); font-weight:800; line-height:1.35; margin-top:32px;
}
.entry-content h1 { font-size:1.9rem; }
.entry-content h2 { font-size:1.6rem; }
.entry-content h3 { font-size:1.3rem; }
.entry-content h4 { font-size:1.1rem; }
.entry-content a { color:var(--gold-dark); text-decoration:underline; }
.entry-content a:hover { color:var(--navy); }
.entry-content ul, .entry-content ol { padding-right:22px; }
.entry-content li + li { margin-top:6px; }
.entry-content blockquote {
  border-right:4px solid var(--gold); background:var(--gold-pale);
  padding:16px 20px; border-radius:var(--radius); color:var(--navy);
}
.entry-content blockquote p + p { margin-top:12px; }
.entry-content code, .entry-content kbd, .entry-content pre {
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.9em;
}
.entry-content pre {
  background:var(--navy); color:var(--white); padding:18px 20px;
  border-radius:var(--radius); overflow:auto; direction:ltr; text-align:left;
}
.entry-content :where(img, iframe, video) { max-width:100%; height:auto; border-radius:var(--radius); }
.entry-content table { width:100%; border-collapse:collapse; }
.entry-content th, .entry-content td { border:1px solid var(--border); padding:9px 12px; text-align:inherit; }
.entry-content th { background:var(--gold-pale); color:var(--navy); font-weight:800; }
.entry-content hr { border:0; border-top:1px solid var(--border); }

/* WordPress editor alignment and caption classes */
.alignleft  { float:right; margin:0 0 18px 22px; }
.alignright { float:left;  margin:0 22px 18px 0; }
.aligncenter { display:block; margin-inline:auto; }
.alignwide, .alignfull { margin-inline:auto; max-width:100%; }
.wp-caption { max-width:100%; }
.wp-caption img { width:100%; height:auto; }
.wp-caption-text, .gallery-caption {
  font-size:.83rem; color:var(--text-muted); margin-top:7px; text-align:center;
}
.sticky .entry-summary-card { border:2px solid var(--gold); }
.bypostauthor > .comment-body { border-right:3px solid var(--gold); padding-right:14px; }
.wp-block-image figcaption { font-size:.83rem; color:var(--text-muted); }

/* ─── Comments ───────────────────────────────────────────── */
.comments-area { max-width:860px; margin:40px auto 0; }
.comments-title, .comment-reply-title { font-size:1.25rem; font-weight:800; color:var(--navy); margin-bottom:18px; }
.comment-list { list-style:none; }
.comment-list li { margin-bottom:18px; }
.comment-list .children { list-style:none; padding-right:24px; margin-top:18px; }
.comment-body {
  background:var(--white); border-radius:var(--radius); padding:18px 20px;
  box-shadow:var(--shadow-sm);
}
.comment-meta { font-size:.83rem; color:var(--text-muted); margin-bottom:9px; }
.comment-meta .fn { color:var(--navy); font-weight:800; font-style:normal; }
.comment-form p { margin-bottom:14px; }
.comment-form label { display:block; font-weight:700; color:var(--navy); margin-bottom:6px; font-size:.93rem; }
.comment-form input[type=text],
.comment-form input[type=email],
.comment-form input[type=url],
.comment-form textarea {
  width:100%; padding:11px 14px; border:2px solid var(--border);
  border-radius:var(--radius); font-size:.97rem; color:var(--text);
  background:var(--white); outline:none; transition:border-color var(--transition);
}
.comment-form input:focus, .comment-form textarea:focus {
  border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55,.13);
}
.comment-form .submit {
  display:inline-flex; align-items:center; gap:8px; padding:12px 26px;
  border-radius:50px; font-weight:700; font-size:.97rem; cursor:pointer;
  border:2px solid transparent; line-height:normal;
  background:linear-gradient(135deg, var(--gold), var(--gold-dark)); color:var(--navy);
}
.comment-form .submit:hover { transform:translateY(-2px); box-shadow:0 8px 25px rgba(212,175,55,.5); }

/* ─── Reduced motion ─────────────────────────────────────── */
/* Visitors who ask their OS for less motion get the same layout with the movement
   removed. main.js additionally stops the hero slider from auto-advancing. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  html { scroll-behavior: auto; }
  .fade-in { opacity:1; transform:none; }
  .loader { animation: alzLoaderFailsafe 0s linear 2s forwards; }
}
