/* DiVine Tours — brand stylesheet */

:root{
  --dv-maroon:#7B1435;
  --dv-maroon-2:#8f1a3d;
  --dv-maroon-dark:#3A0A18;
  --dv-maroon-darker:#2b0712;
  --dv-cream:#F8F4EC;
  --dv-cream-2:#F1EAE0;
  --dv-ink:#241C1E;
  --dv-gray:#6B6460;
  --dv-line:#E7DFD3;
  --dv-radius:10px;
  --dv-script-font:"Dancing Script",cursive;
  --dv-heading-font:"PlayfairDisplay",Georgia,serif;
}

body{ color:var(--dv-ink); }

/* ---------- Header ---------- */
.dv-header{ border-bottom:1px solid var(--dv-line); }
.dv-logo{ display:flex; align-items:center; gap:10px; text-decoration:none !important; }
.dv-logo-mark{ font-family:var(--dv-heading-font); font-size:26px; line-height:1; color:var(--dv-ink); letter-spacing:.5px; }
.dv-logo-mark .dv-heart{ color:var(--dv-maroon); }
.dv-logo-sub{ display:block; font-family:var(--dv-script-font); font-size:19px; color:var(--dv-maroon); margin-top:-4px; margin-left:2px; }

.dv-site-navigation{ gap:28px !important; }
.dv-site-navigation a{ font-size:15px; font-weight:500; text-decoration:none; }
.dv-site-navigation .wp-block-navigation-item__content{ padding:6px 0 !important; }
.dv-site-navigation .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.dv-site-navigation .current-menu-item > .wp-block-navigation-item__content{ color:var(--dv-maroon) !important; box-shadow: inset 0 -2px 0 var(--dv-maroon); }

.dv-btn-enquire{ background:var(--dv-maroon) !important; color:#fff !important; border-radius:6px !important; padding:12px 22px !important; font-weight:600 !important; font-size:14px !important; letter-spacing:.3px; border:2px solid var(--dv-maroon) !important; }
.dv-btn-enquire:hover{ background:var(--dv-maroon-dark) !important; border-color:var(--dv-maroon-dark) !important; }

/* ---------- Generic building blocks ---------- */
.dv-kicker{ font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--dv-maroon); margin-bottom:6px; }
.dv-heading{ font-family:var(--dv-heading-font); font-weight:400; color:var(--dv-ink); }
.dv-script{ font-family:var(--dv-script-font); }
.dv-muted{ color:var(--dv-gray); }
.dv-divider{ width:64px; height:2px; background:var(--dv-maroon); margin:14px auto; }
.dv-divider.is-left{ margin:14px 0; }

.dv-btn{ display:inline-flex; align-items:center; gap:10px; background:var(--dv-maroon); color:#fff !important; padding:14px 26px; border-radius:6px; font-weight:600; font-size:14px; letter-spacing:.4px; text-decoration:none !important; text-transform:uppercase; border:2px solid var(--dv-maroon); transition:all .2s ease; }
.dv-btn:hover{ background:var(--dv-maroon-dark); border-color:var(--dv-maroon-dark); color:#fff !important; }
.dv-btn.is-outline{ background:transparent; color:var(--dv-maroon) !important; }
.dv-btn.is-outline:hover{ background:var(--dv-maroon); color:#fff !important; }
.dv-btn.is-white-outline{ background:transparent; color:#fff !important; border-color:#fff; }
.dv-btn.is-white-outline:hover{ background:#fff; color:var(--dv-maroon) !important; }

/* ---------- Breadcrumb ---------- */
.dv-breadcrumb{ font-size:13px; color:var(--dv-gray); }
.dv-breadcrumb a{ color:var(--dv-gray); text-decoration:none; }
.dv-breadcrumb a:hover{ color:var(--dv-maroon); }
.dv-breadcrumb .current{ color:var(--dv-ink); font-weight:600; }
.dv-breadcrumb .sep{ margin:0 8px; opacity:.6; }

/* ---------- Full-bleed hero banner (About/Tours/Custom/Contact) ---------- */
.dv-hero{ position:relative; min-height:300px; display:flex; align-items:flex-end; background-size:cover; background-position:center; }
.dv-hero::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,8,13,.72) 0%, rgba(20,8,13,.42) 48%, rgba(20,8,13,.18) 100%); }
.dv-hero-inner{ position:relative; z-index:2; padding:70px 0 34px; width:100%; }
.dv-hero-inner h1{ color:#fff; font-family:var(--dv-heading-font); font-weight:400; font-size:clamp(34px,5vw,54px); margin:0 0 8px; }
.dv-hero-inner p{ color:#f2e9ec; font-size:18px; margin:0; }

/* ---------- Home split hero ---------- */
.dv-home-hero{ background:var(--dv-cream); }
.dv-home-hero .dv-eyebrow{ font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--dv-maroon); }
.dv-home-hero h1{ font-family:var(--dv-heading-font); font-weight:400; font-size:clamp(32px,4.4vw,46px); line-height:1.15; margin:6px 0 10px; }
.dv-home-hero .dv-lead{ font-size:19px; color:var(--dv-ink); margin-bottom:6px; }

.dv-photo-frame{ position:relative; border-radius:var(--dv-radius); overflow:hidden; }
.dv-photo-frame img{ display:block; width:100%; height:100%; object-fit:cover; }
.dv-photo-script{ position:absolute; right:22px; top:20px; z-index:2; color:#fff; font-family:var(--dv-script-font); font-size:20px; line-height:1.25; text-align:right; text-shadow:0 2px 10px rgba(0,0,0,.45); }
.dv-photo-script .heart{ font-size:14px; }

/* ---------- Icon feature grid ---------- */
.dv-feature{ text-align:center; padding:6px 14px; }
.dv-feature .dv-icon{ width:56px; height:56px; margin:0 auto 16px; border-radius:50%; background:var(--dv-cream-2); display:flex; align-items:center; justify-content:center; color:var(--dv-maroon); }
.dv-feature .dv-icon svg{ width:26px; height:26px; }
.dv-feature h3{ font-family:var(--dv-heading-font); font-weight:400; font-size:19px; margin:0 0 8px; }
.dv-feature p{ font-size:14.5px; color:var(--dv-gray); margin:0; }
.dv-feature-divider{ width:1px; background:var(--dv-line); }

/* ---------- Testimonials ---------- */
.dv-testimonial{ background:#fff; border:1px solid var(--dv-line); border-radius:var(--dv-radius); padding:30px 26px; text-align:center; height:100%; }
.dv-testimonial .quote-mark{ font-family:Georgia,serif; font-size:40px; color:var(--dv-maroon); line-height:1; display:block; margin-bottom:6px; }
.dv-testimonial p.review-text{ font-size:15px; color:var(--dv-ink); margin:0 0 14px; }
.dv-testimonial .stars{ color:var(--dv-maroon); letter-spacing:2px; margin-bottom:6px; }
.dv-testimonial cite{ font-style:normal; font-size:13px; color:var(--dv-gray); }

/* ---------- CTA band ---------- */
.dv-cta-band{ position:relative; background-size:cover; background-position:center; }
.dv-cta-band::before{ content:""; position:absolute; inset:0; background:rgba(20,8,13,.6); }
.dv-cta-band .dv-cta-inner{ position:relative; z-index:2; text-align:center; padding:70px 20px; }
.dv-cta-band h2{ color:#fff; font-family:var(--dv-heading-font); font-weight:400; font-size:clamp(26px,3.4vw,38px); margin:0 0 10px; }
.dv-cta-band p{ color:#f1e6ea; margin:0 0 26px; font-size:16px; }

/* ---------- Tour cards (Set Tours) ---------- */
.dv-tour-card{ background:#fff; border:1px solid var(--dv-line); border-radius:var(--dv-radius); overflow:hidden; display:flex; flex-direction:column; height:100%; }
.dv-tour-card img{ width:100%; height:160px; object-fit:cover; display:block; }
.dv-tour-card .body{ padding:22px 20px 24px; display:flex; flex-direction:column; flex:1; }
.dv-tour-card h3{ font-family:var(--dv-heading-font); font-weight:400; font-size:21px; margin:0 0 8px; }
.dv-tour-card .desc{ font-size:14px; color:var(--dv-gray); margin-bottom:14px; }
.dv-tour-card ul.dv-check-list{ list-style:none; margin:0 0 16px; padding:0; }
.dv-tour-card ul.dv-check-list li{ font-size:13.5px; color:var(--dv-ink); padding:5px 0; display:flex; align-items:flex-start; gap:9px; }
.dv-tour-card ul.dv-check-list li svg{ width:16px; height:16px; flex-shrink:0; margin-top:2px; color:var(--dv-maroon); }
.dv-tour-card .price{ margin-top:auto; }
.dv-tour-card .price .amount{ color:var(--dv-maroon); font-weight:700; font-size:17px; }
.dv-tour-card .price .meta{ font-size:12.5px; color:var(--dv-gray); margin:2px 0 14px; }
.dv-tour-card .dv-btn, .dv-tour-card .dv-btn.is-outline{ width:100%; justify-content:center; margin-bottom:8px; padding:11px 18px; font-size:13px; }

/* ---------- Custom tour type cards ---------- */
.dv-type-card img{ width:100%; border-radius:var(--dv-radius); display:block; margin-bottom:18px; object-fit:cover; aspect-ratio:4/3; }
.dv-type-card .dv-kicker{ letter-spacing:1.5px; }
.dv-type-card h3{ font-family:var(--dv-heading-font); font-weight:400; font-size:24px; margin:0 0 10px; }
.dv-type-card p{ color:var(--dv-gray); font-size:15px; margin-bottom:16px; }

/* ---------- Signpost / why-choose replacement panel ---------- */
.dv-way-panel{ position:relative; border-radius:var(--dv-radius); overflow:hidden; min-height:340px; background-size:cover; background-position:center; display:flex; align-items:center; }
.dv-way-panel::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,8,13,.15),rgba(20,8,13,.75)); }
.dv-way-list{ position:relative; z-index:2; width:100%; padding:26px; list-style:none; margin:0; }
.dv-way-list li{ color:#fff; font-family:var(--dv-heading-font); font-size:19px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.25); display:flex; justify-content:space-between; }
.dv-way-list li:last-child{ border-bottom:none; }

/* ---------- Contact page ---------- */
.dv-contact-wrap{ background:var(--dv-cream); }
.dv-required{ color:var(--dv-maroon); }
.dv-form label{ display:block; font-size:14px; font-weight:600; margin-bottom:6px; color:var(--dv-ink); }
.dv-form input[type=text], .dv-form input[type=email], .dv-form input[type=tel], .dv-form input[type=date], .dv-form input[type=number], .dv-form textarea, .dv-form select{
  width:100%; border:1px solid var(--dv-line); border-radius:7px; padding:11px 13px; font-size:14px; background:#fff; box-sizing:border-box; font-family:inherit; -moz-appearance:textfield;
}
.dv-form textarea{ min-height:100px; resize:vertical; }
.dv-form .dv-field{ margin-bottom:18px; }
.dv-form .dv-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.dv-form .dv-radio-group{ display:flex; gap:22px; align-items:center; height:44px; }
.dv-form .dv-radio-group label{ display:flex; align-items:center; gap:6px; font-weight:400; margin:0; }
.dv-form .dv-checkbox-box{ border:1px solid var(--dv-line); border-radius:7px; padding:16px 18px; background:#fff; }
.dv-form .dv-checkbox-box .wpcf7-list-item{ display:block !important; margin:0 !important; }
.dv-form .dv-checkbox-box label{ display:flex; align-items:center; gap:8px; font-weight:400; padding:6px 0; margin:0; }
.dv-form .wpcf7-submit{ background:var(--dv-maroon); color:#fff; border:none; padding:15px 30px; border-radius:6px; font-weight:600; text-transform:uppercase; font-size:14px; letter-spacing:.4px; cursor:pointer; }
.dv-form .wpcf7-submit:hover{ background:var(--dv-maroon-dark); }
.dv-form .wpcf7-not-valid-tip{ color:var(--dv-maroon); font-size:12px; }
.dv-form-note{ font-size:12.5px; color:var(--dv-gray); margin-top:10px; }

.dv-details-card h3{ font-family:var(--dv-heading-font); font-weight:400; font-size:22px; margin:0 0 16px; }
.dv-detail-row{ display:flex; align-items:center; gap:12px; margin-bottom:14px; font-size:15px; }
.dv-detail-row .dot{ width:38px; height:38px; border-radius:50%; background:var(--dv-maroon); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.dv-detail-row .dot svg{ width:17px; height:17px; }
.dv-social-row{ display:flex; align-items:center; gap:10px; margin-top:16px; }
.dv-social-row a{ width:34px; height:34px; border-radius:50%; background:var(--dv-ink); color:#fff !important; display:flex; align-items:center; justify-content:center; text-decoration:none; }

.dv-sign-panel{ position:relative; overflow:hidden; background:#FBEDF0; border-radius:var(--dv-radius); padding:40px 26px; text-align:center; color:var(--dv-maroon); }
.dv-sign-panel svg.dv-vine{ position:absolute; inset:0; width:100%; height:100%; opacity:.55; }
.dv-sign-panel .line{ position:relative; z-index:2; font-family:var(--dv-script-font); font-weight:700; font-size:26px; line-height:1.55; }
.dv-sign-panel .heart{ font-size:16px; }

.dv-map-frame{ border-radius:var(--dv-radius); overflow:hidden; border:1px solid var(--dv-line); }
.dv-map-frame iframe{ display:block; width:100%; height:230px; border:0; }

/* ---------- Footer ---------- */
.dv-footer{ }
.dv-footer h3, .dv-footer h4{ font-family:var(--dv-heading-font); font-weight:400; }
.dv-footer a{ text-decoration:none; }
.dv-footer a:hover{ text-decoration:underline; }
.dv-footer-logo{ font-family:var(--dv-heading-font); font-size:24px; color:#fff; }
.dv-footer-logo .dv-heart{ color:#e9b3c2; }
.dv-footer-logo .dv-logo-sub{ color:#e9b3c2; }
.dv-footer-tag{ font-family:var(--dv-script-font); font-size:16px; color:#e9c9d2; }

/* ---------- Utility ---------- */
.dv-bg-cream{ background:var(--dv-cream); }
.dv-bg-cream2{ background:var(--dv-cream-2); }

@media (max-width:1024px){
  .dv-tour-grid{ grid-template-columns:repeat(2,1fr) !important; }
  .dv-icon-grid{ grid-template-columns:repeat(2,1fr) !important; }
  .dv-icon-grid .dv-feature{ border-right:none !important; border-bottom:1px solid var(--dv-line); padding-bottom:24px; }
}

@media (max-width:781px){
  .dv-row{ grid-template-columns:1fr !important; }
  .dv-tour-grid{ grid-template-columns:1fr !important; }
  .dv-icon-grid{ grid-template-columns:1fr !important; }
  .dv-hero-inner{ padding:44px 0 26px; }
  .dv-hero{ min-height:220px; }
}
