/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */


/* ==== Blueflower custom styles (ported from Joomla design) ==== */
/* Blueflower — Joomla design port. Palette: #1268b3 blue, #333 text, #566069 nav grey */
:root {
  --bf-blue: #1268b3;
  --bf-text: #333333;
  --bf-grey: #566069;
  --bf-beige: #f6f3ef;
}
body { color: var(--bf-text); }

.bf-blue-heading, .bf-highlights h3 {
  color: var(--bf-blue); font-weight: 700; font-size: 28px; text-align: center; margin: 0 0 18px;
}

/* Buttons */
.bf-btn { display:inline-block; font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase;
  padding: 13px 28px; text-decoration:none; transition:all .2s; cursor:pointer; }
.bf-btn-solid { background: var(--bf-blue); color:#fff !important; border:1px solid var(--bf-blue); box-shadow: 3px 3px 0 rgba(0,0,0,.08); }
.bf-btn-solid:hover { background:#0e548f; }
.bf-btn-ghost { background:transparent; color:var(--bf-blue) !important; border:1px solid var(--bf-blue); }
.bf-btn-ghost:hover { background:var(--bf-blue); color:#fff !important; }

/* Highlights */
.bf-highlights ul { list-style:none; margin:0; padding:0; max-width:420px; margin-inline:auto; }
.bf-highlights li { position:relative; padding: 6px 0 6px 34px; font-size:16px; }
.bf-highlights li::before { content:"\2740"; position:absolute; left:0; top:6px; color:#aebdc9; font-size:17px; }

/* Facts bar */
.bf-facts { display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch; gap:0; border-top:1px solid #e2e2e2; border-bottom:1px solid #e2e2e2; padding: 18px 0; }
.bf-fact { flex:1 1 180px; text-align:center; padding: 10px 24px; border-left:1px solid #e2e2e2; display:flex; flex-direction:column; justify-content:center; }
.bf-fact:first-child { border-left:none; }
.bf-fact-label { display:block; text-transform:uppercase; letter-spacing:2px; font-size:13px; color:var(--bf-grey); margin-bottom:6px; }
.bf-fact-value { font-size:19px; font-weight:400; color:var(--bf-text); }
.bf-fact-cta { justify-content:center; }

/* Gallery */
.bf-gallery { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.bf-gallery-item { position:relative; margin:0; overflow:hidden; aspect-ratio: 3/2; }
.bf-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.bf-gallery-item:hover img { transform:scale(1.04); }
.bf-gallery-item figcaption { position:absolute; inset:auto 0 0 0; padding: 40px 24px 22px; color:#fff; font-size:20px; text-align:center;
  background:linear-gradient(transparent, rgba(0,0,0,.55)); }
@media (max-width: 767px){ .bf-gallery { grid-template-columns:1fr; } }

/* Itinerary */
.bf-itinerary { list-style:none; counter-reset:bf; max-width:860px; margin:0 auto; padding:0; }
.bf-itinerary li { counter-increment:bf; position:relative; padding: 0 0 34px 74px; }
.bf-itinerary li::before { content:counter(bf); position:absolute; left:0; top:0; width:48px; height:48px; border-radius:50%;
  background:var(--bf-blue); color:#fff; font-size:22px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.bf-itinerary h4 { color:var(--bf-blue); font-size:19px; font-weight:700; margin:10px 0 8px; }
.bf-itinerary p { margin:0; text-align:justify; }

/* Related cards */
.bf-related { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.bf-related .bf-card { display:flex; flex-direction:column; text-decoration:none; color:var(--bf-text); text-align:center; }
.bf-card-img { display:block; aspect-ratio:1/1; background-size:cover; background-position:center; margin-bottom:16px; transition:opacity .3s; }
.bf-card:hover .bf-card-img { opacity:.88; }
.bf-card-title { font-size:22px; color:var(--bf-blue); font-weight:400; margin-bottom:10px; }
.bf-card-excerpt { font-size:15px; color:var(--bf-grey); margin-bottom:16px; flex-grow:1; }
.bf-card .bf-btn { align-self:center; }
@media (max-width:767px){ .bf-related { grid-template-columns:1fr; } }

/* Why Blueflower */
.bf-why h4 { color:var(--bf-blue); letter-spacing:2px; font-size:16px; font-weight:700; margin-bottom:14px; }
.bf-why ul { list-style:none; margin:0; padding:0; }
.bf-why li { position:relative; padding:7px 0 7px 30px; font-size:15px; }
.bf-why li::before { content:"\2740"; position:absolute; left:0; top:7px; color:#aebdc9; }

/* WPForms — match old form look */
.bf-enquiry .wpforms-container input[type=text], .bf-enquiry .wpforms-container input[type=email],
.bf-enquiry .wpforms-container input[type=tel], .bf-enquiry .wpforms-container input[type=number],
.bf-enquiry .wpforms-container select, .bf-enquiry .wpforms-container textarea {
  border:1px solid #ddd; background:#fff; border-radius:0; padding:12px 14px; font-size:15px; width:100%;
}
.bf-enquiry .wpforms-container button[type=submit] {
  background:var(--bf-blue) !important; color:#fff !important; border:none !important; border-radius:0 !important;
  text-transform:uppercase; letter-spacing:1.5px; font-weight:600 !important; font-size:13px !important; padding:15px 34px !important;
  box-shadow:3px 3px 0 rgba(0,0,0,.08);
}
.bf-enquiry .wpforms-container .wpforms-field-label { font-size:14px; color:var(--bf-grey); font-weight:400; }

/* archive cards */
.elementor-post__meta-data { display:none !important; }
.elementor-post__title, .elementor-post__title a { text-transform:none !important; }
.elementor-post__read-more { text-transform:uppercase; letter-spacing:1.5px; font-weight:600; border:1px solid var(--bf-blue); padding:10px 22px; display:inline-block; }

/* header layout fixes */
.bf-header-logo { flex:0 0 190px !important; width:190px !important; }
.bf-header-logo img { width:180px !important; max-width:180px !important; height:auto; }
.bf-header-phone { flex:0 0 auto !important; width:auto !important; }
[data-elementor-type="header"] .elementor-widget-button { flex:0 0 auto; }
[data-elementor-type="header"] .elementor-widget-nav-menu { min-width:0; }
/* full-width header like the original site */
[data-elementor-type="header"] > .e-con > .e-con-inner,
[data-elementor-type="header"] .e-con-inner { max-width:100% !important; width:100% !important; padding-left:28px; padding-right:28px; }
[data-elementor-type="header"] .elementor-widget-nav-menu { flex:1 1 auto; }
[data-elementor-type="header"] .elementor-nav-menu { justify-content:center; }
/* tighten nav so all items fit on one line */
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-item { padding-left:10px; padding-right:10px; font-size:12.5px; }
/* footer links (original style) */
.bf-flink { text-transform:uppercase; letter-spacing:2px; font-size:13px; line-height:2.4; color:#c9c9c9; margin:0; }
.bf-flink a { color:#c9c9c9 !important; text-decoration:none; transition:color .2s; }
.bf-flink a:hover { color:#ffffff !important; }
.bf-flink .bf-fphone { font-size:19px; font-weight:700; color:#ffffff !important; letter-spacing:1px; }

/* uniform square images (team etc.) */
.bf-img-square img { aspect-ratio:1/1; object-fit:cover; width:100%; max-width:340px; }

/* uniform landscape images (events etc.) */
.bf-img-landscape img { aspect-ratio:3/2; object-fit:cover; width:100%; }

/* archive hero */
.bf-arch-hero { position:relative; min-height:46vh; display:flex; align-items:flex-end; justify-content:center; background-size:cover; background-position:center; margin:0; }
.bf-arch-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(0,0,0,.05), rgba(0,0,0,.35)); }
.bf-arch-hero[data-nobg] { min-height:22vh; background:#1268b3; }
.bf-arch-hero-inner { position:relative; text-align:center; padding: 60px 20px; }
.bf-arch-hero-inner h1 { color:#fff; font-family:Lato,sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:3px; font-size:52px; margin:0; text-shadow:0 2px 14px rgba(0,0,0,.35); }
.bf-arch-hero-desc { color:#fff; font-size:18px; font-weight:300; max-width:720px; margin:12px auto 0; }
@media (max-width:767px){ .bf-arch-hero-inner h1 { font-size:32px; } }


/* archive intro (migrated landing text) */
.bf-arch-intro { text-align:center; }
.bf-arch-intro p { margin:0 0 18px; font-size:17px; color:#566069; line-height:1.65; }
.bf-arch-intro .text-blue { color:#1268b3; }
.bf-arch-intro .text-bold { font-weight:700; }
.bf-arch-intro .bf-intro-cta { margin-top:26px; }

/* archive trip cards — original site style */
.elementor-posts-container .elementor-post { text-align:center; }
.elementor-posts-container .elementor-post__text { text-align:center; }
.elementor-posts-container .elementor-post__title { margin:18px 0 10px; }
.elementor-posts-container .elementor-post__title a { color:#1268b3 !important; font-size:24px; font-weight:400; line-height:1.3; }
.elementor-posts-container .elementor-post__excerpt p { color:#566069; font-size:15px; line-height:1.6; }
.elementor-posts-container .elementor-post__read-more { margin:14px auto 0; display:inline-block; font-size:12px; }
.elementor-posts-container .elementor-post__thumbnail img { aspect-ratio:3/2; object-fit:cover; }


/* card buttons — solid blue like the original site */
.elementor-posts-container .elementor-post__read-more {
  background:#1268b3; color:#fff !important; border:1px solid #1268b3;
  padding:13px 30px; letter-spacing:2px; font-weight:600; text-transform:uppercase; transition:background .2s;
}
.elementor-posts-container .elementor-post__read-more:hover { background:#0e548f; color:#fff !important; }
.bf-card .bf-btn, .bf-related .bf-btn-ghost {
  background:var(--bf-blue); color:#fff !important; border:1px solid var(--bf-blue);
}
.bf-card .bf-btn:hover, .bf-related .bf-btn-ghost:hover { background:#0e548f; }

/* card buttons: square corners */
.elementor-posts-container .elementor-post__read-more,
.bf-card .bf-btn, .bf-related .bf-btn, .bf-btn,
.elementor-widget-button .elementor-button { border-radius: 0 !important; }
