/* =============================================================================
   partner-pages.css: the one stylesheet for every partner page in /partners/.

   1. Page frame      room for the fixed header, white page
   2. Partner pages   each partner's layout and words, in the site's design:
                      colours, type, cards and buttons from the product pages
   3. Enquiry popup   the Request to Contact button and form, in the style of
                      the contact page
   ============================================================================= */

/* ---- 1. Page frame ---- */
#navbar { display: block; height: 80px; }   /* the shared header is fixed; this keeps the page below it */
body.partner_body { background: #fff; }

/* ---- 2. Partner pages ---- */
.partner_page {
  --ink: #141821; --body: #3a4250; --slate: #5b6472;
  --line: #e7ebf1; --line-strong: #d6e0f0;
  --navy: #16469c; --navy-deep: #0f2b5c;
  --paper: #fafbfc; --tint: #f6f8fc;
  display: block; color: var(--body); line-height: 1.6;
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
}
.partner_page *, .partner_page *::before, .partner_page *::after { box-sizing: border-box; }
.partner_wrap { width: 82%; max-width: 1120px; margin: 0 auto; }
.partner_page a:focus-visible, .partner_page button:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(22, 70, 156, 0.3); }
.partner_page [hidden] { display: none !important; }   /* items behind See More stay hidden until it is pressed */

/* Hero: their text on the left, their banner slider on the right */
.partner_hero {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4rem); align-items: center;
  padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3rem, 6vw, 4.5rem);
}
.partner_hero_site { margin: 0 0 1rem; font-size: 0.95rem; font-weight: 600; letter-spacing: 0.02em; }
.partner_hero_site a { color: var(--navy); text-decoration: none; }
.partner_hero_site a:hover { text-decoration: underline; text-underline-offset: 3px; }
.partner_hero_title {
  margin: 0; font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 800;
  letter-spacing: -0.03em; line-height: 1.05; color: var(--ink);
}
.partner_hero_desc { margin: 1.5rem 0 0; max-width: 60ch; font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.7; color: var(--slate); }
.partner_hero_desc + .partner_hero_desc { margin-top: 1rem; }
.partner_hero_desc strong { font-weight: 600; color: var(--ink); }

.partner_hero_slider {
  position: relative; overflow: hidden;
  border: 1px solid var(--line); border-radius: 12px; background: var(--paper);
}
.partner_slide { animation: partner_fade 0.5s ease; }
.partner_slide_img { display: block; width: 100%; height: auto; }
.partner_slide { position: relative; }
/* the next slide fades in on top of the current one, so the image never blanks */
.partner_slide_next { position: absolute; inset: 0; height: 100%; object-fit: contain; opacity: 0; transition: opacity 0.4s ease; }
.partner_slide_next.is-shown { opacity: 1; }
@keyframes partner_fade { from { opacity: 0; } to { opacity: 1; } }
.partner_slider_btns {
  position: absolute; left: 0; right: 0; bottom: 1rem; padding: 0 1rem;
  display: flex; justify-content: space-between; pointer-events: none;
}
.partner_slider_btn {
  pointer-events: auto; display: grid; place-items: center; width: 40px; height: 40px; padding: 0;
  border: 1px solid var(--line-strong); border-radius: 50%; background: #fff; color: var(--navy);
  font-size: 1rem; cursor: pointer; box-shadow: 0 2px 8px rgba(15, 37, 80, 0.12);
  transition: border-color 0.2s ease;
}
.partner_slider_btn:hover { border-color: var(--navy); }

/* Sections: each in a light panel, title centred above, as before */
.partner_section { padding-bottom: clamp(2rem, 4vw, 3rem); }
.partner_products, .partner_services, .partner_solutions, .partner_news {
  padding: clamp(1.75rem, 4vw, 3rem); border-radius: 16px; background: var(--tint);
}
.partner_products > h2, .partner_services > h2, .partner_solutions > h2, .partner_news > h2 {
  margin: 0 0 clamp(1.5rem, 3.5vw, 2.25rem); text-align: center;
  font-size: clamp(1.6rem, 2.8vw, 2.1rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; color: var(--ink);
}

/* Products: image, name, description, Learn More */
.partner_product_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.partner_product {
  display: flex; min-width: 0; overflow: hidden; color: inherit; text-decoration: none;
  border: 1px solid var(--line); border-radius: 12px; background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.partner_product:hover { border-color: var(--line-strong); box-shadow: 0 6px 20px rgba(15, 37, 80, 0.08); text-decoration: none; }
.partner_product_body { display: flex; flex-direction: column; width: 100%; }
.partner_product_img {
  display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: contain; padding: 0.85rem;
  background: var(--paper); border-bottom: 1px solid var(--line);
}
.partner_product h3 { margin: 1rem 1.15rem 0; text-align: center; font-size: 1.05rem; font-weight: 700; line-height: 1.4; color: var(--ink); }
.partner_product p { margin: 0.55rem 1.15rem 0; font-size: 0.97rem; line-height: 1.6; color: var(--body); }
.partner_product_body > span { margin-top: auto; padding: 1rem 1.15rem 1.15rem; }
.partner_product_btn {
  padding: 0.6rem 1.1rem; border: 0; border-radius: 8px; background: var(--navy); color: #fff;
  font-weight: 600; font-size: 0.92rem; line-height: 1.2; font-family: inherit; cursor: pointer; transition: background-color 0.2s ease;
}
.partner_product:hover .partner_product_btn { background: var(--navy-deep); }
.partner_more_btn {
  display: block; margin: 2rem auto 0; padding: 0.8rem 1.5rem; cursor: pointer;
  border: 1.5px solid var(--line-strong); border-radius: 8px; background: #fff;
  font-weight: 600; font-size: 1rem; line-height: 1.2; font-family: inherit; color: var(--navy);
}
.partner_more_btn:hover { border-color: var(--navy); }

/* Services: title and description cards */
.partner_service_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.partner_service { padding: 1.25rem 1.35rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.partner_service h3 { margin: 0; font-size: 1.05rem; font-weight: 700; line-height: 1.4; color: var(--ink); }
.partner_service p { margin: 0.45rem 0 0; font-size: 0.97rem; line-height: 1.6; color: var(--body); }

/* Solutions: small image beside the title, description below */
.partner_solution_grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.partner_solution { padding: 1.25rem 1.35rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.partner_solution_head { display: flex; align-items: center; gap: 1rem; }
.partner_solution_img { flex: none; width: 64px; height: 64px; object-fit: cover; border-radius: 10px; }
.partner_solution_head a { text-decoration: none; }
.partner_solution_title { margin: 0; font-size: 1.1rem; font-weight: 700; line-height: 1.35; color: var(--ink); }
.partner_solution_head a:hover .partner_solution_title { color: var(--navy); }
.partner_solution_desc { margin: 0.85rem 0 0; font-size: 0.97rem; line-height: 1.6; color: var(--body); }

@media (max-width: 1000px) {
  .partner_product_grid, .partner_service_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .partner_hero { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .partner_solution_grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .partner_wrap { width: 88%; }
  .partner_product_grid, .partner_service_grid { grid-template-columns: minmax(0, 1fr); }
  .partner_products, .partner_services, .partner_solutions, .partner_news { padding: 1.25rem; border-radius: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .partner_slide { animation: none; }
  .partner_slide_next { transition: none; }
  .partner_product, .partner_product_btn, .partner_slider_btn, .partner_buy_btn { transition: none; }
}

/* A short intro line under a section title (Neutrik: Where to buy) */
.partner_services > p, .partner_news > p { margin: -1rem auto clamp(1.5rem, 3vw, 2rem); max-width: 60ch; text-align: center; color: var(--slate); }

/* Teledyne LeCroy: the label above each solution */
.partner_solution_label {
  display: inline-block; margin-bottom: 0.75rem; padding: 0.2rem 0.65rem; border-radius: 999px;
  background: #eef2fb; color: var(--navy); font-size: 0.8rem; font-weight: 600;
}

/* Neutrik: Where to buy */
.partner_buy_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.partner_buy_img { display: block; max-height: 40px; margin-bottom: 0.75rem; }
.partner_buy_img[src=""] { display: none; }
.partner_service > a { display: inline-block; margin-top: 1rem; text-decoration: none; }
.partner_buy_btn {
  display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.6rem 1.1rem; border: 0; border-radius: 8px;
  background: var(--navy); color: #fff; font-weight: 600; font-size: 0.92rem; line-height: 1.2; font-family: inherit; cursor: pointer; transition: background-color 0.2s ease;
}
.partner_buy_btn:hover { background: var(--navy-deep); }

/* Neutrik: News */
.partner_news_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.partner_news_card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.partner_news_img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--paper); border-bottom: 1px solid var(--line); }
.partner_news_card h3 { margin: 1rem 1.15rem 0; font-size: 1.05rem; font-weight: 700; line-height: 1.4; color: var(--ink); }
.partner_news_card p { margin: 0.55rem 1.15rem 0; font-size: 0.97rem; line-height: 1.6; color: var(--body); }
.partner_news_card > a { margin-top: auto; padding: 1rem 1.15rem 1.15rem; font-weight: 600; color: var(--navy); text-decoration: none; }
.partner_news_card > a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Neutrik dealers page: title with the search beside it, then the dealer cards */
.partner_dealers_head {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem;
  padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(1.75rem, 4vw, 2.5rem);
}
.partner_dealers_title { margin: 0; font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; color: var(--ink); }
.partner_dealers_search { flex: 0 1 360px; }
.partner_dealers_input {
  width: 100%; padding: 0.75rem 0.9rem; border: 1.5px solid #e4e4e4; border-radius: 8px; background: #f6f8fc;
  font-size: 0.97rem; line-height: 1.4; font-family: inherit; color: #1a1a1a;
}
.partner_dealers_input:focus { outline: none; border-color: var(--navy); background: #fff; box-shadow: 0 0 0 3px rgba(22, 70, 156, 0.12); }
.partner_dealer_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.partner_dealer { padding: 1.25rem 1.35rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.partner_dealer_name { margin: 0; font-size: 1.05rem; font-weight: 700; line-height: 1.35; color: var(--ink); }
.partner_dealer_address { margin: 0.5rem 0 0; font-size: 0.95rem; line-height: 1.55; color: var(--slate); }
.partner_dealer_contact { margin: 0.4rem 0 0; font-size: 0.95rem; color: var(--body); overflow-wrap: anywhere; }
.partner_dealers_note { margin: clamp(2rem, 4vw, 3rem) auto clamp(3rem, 6vw, 4.5rem); max-width: 70ch; text-align: center; color: var(--slate); }
.partner_dealers_note a { font-weight: 600; color: var(--navy); }

@media (max-width: 1000px) {
  .partner_buy_grid, .partner_news_grid, .partner_dealer_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .partner_buy_grid, .partner_news_grid, .partner_dealer_grid { grid-template-columns: minmax(0, 1fr); }
  .partner_dealers_search { flex-basis: 100%; }
}

/* ---- 3. Enquiry popup ---- */
/* Request to Contact: the floating button and the enquiry popup, in the same
   style as the site's contact page (labels, fields, button, messages). The
   button sits just above the WhatsApp button so the two never overlap. */
.enquiry_btn {
  position: fixed; right: 24px; bottom: 96px; z-index: 9990;
  display: inline-flex; align-items: center; gap: 0.55rem;
  padding: 0.8rem 1.25rem; border: 0; border-radius: 999px;
  background: #16469c; color: #fff; cursor: pointer;
  font: 600 0.95rem/1 "Segoe UI", system-ui, sans-serif;
  box-shadow: 0 6px 20px rgba(15, 37, 80, 0.25);
  transition: background-color 0.2s ease;
}
.enquiry_btn:hover { background: #123a83; }
.enquiry_btn:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(22, 70, 156, 0.35), 0 6px 20px rgba(15, 37, 80, 0.25); }

.enquiry_overlay {
  position: fixed; inset: 0; z-index: 10000;
  display: grid; place-items: center; padding: 1rem;
  background: rgba(15, 23, 42, 0.55);
}
.enquiry_overlay[hidden] { display: none; }
body.enquiry_open { overflow: hidden; }          /* the page behind stays still */

.enquiry_dialog {
  box-sizing: border-box;                      /* the padding counts inside the width: stays within small screens */
  position: relative; width: min(720px, 100%); max-height: 100%; overflow-y: auto; overscroll-behavior: contain;   /* never taller than the visible screen (100vh is taller on phones) */
  padding: clamp(1.25rem, 3vw, 2rem); border-radius: 16px; background: #fff;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.3);
  font-family: "Segoe UI", system-ui, sans-serif; color: #1a1a1a; text-align: left; line-height: 1.5;
}
.enquiry_close {
  position: absolute; top: 0.75rem; right: 0.75rem; width: 40px; height: 40px;
  border: 0; border-radius: 50%; background: #f1f4f9; color: #3a3a3a;
  font-size: 1.5rem; line-height: 1; cursor: pointer;
}
.enquiry_close:hover { background: #e4e9f2; }
.enquiry_source {
  display: inline-block; margin: 0 0 0.75rem; padding: 0.3rem 0.75rem; border-radius: 999px;
  background: #eef3fb; color: #16469c; font-size: 0.85rem; font-weight: 600;
}
.enquiry_title { margin: 0; font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 700; color: #16469c; letter-spacing: -0.01em; line-height: 1.1; }
.enquiry_sub { margin: 0.6rem 0 1.25rem; max-width: 52ch; color: #5b5b5b; font-size: 1rem; line-height: 1.55; }

.enquiry_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem 1rem; }
.enquiry_field { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.enquiry_field_full { grid-column: 1 / -1; }
.enquiry_field label { font-size: 0.88rem; font-weight: 600; color: #3a3a3a; }
.enquiry_field .req { color: #16469c; }
.enquiry_field .opt { color: #8b8b8b; font-weight: 500; }
.enquiry_field input, .enquiry_field select, .enquiry_field textarea {
  width: 100%; box-sizing: border-box; margin: 0;
  font-family: inherit; font-size: 0.97rem; color: #1a1a1a;
  padding: 0.75rem 0.9rem; border: 1.5px solid #e4e4e4; border-radius: 8px; background: #f6f8fc;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.enquiry_field textarea { resize: vertical; min-height: 88px; line-height: 1.55; }
.enquiry_field input::placeholder, .enquiry_field textarea::placeholder { color: #b6b6b6; }
.enquiry_field input:focus, .enquiry_field select:focus, .enquiry_field textarea:focus {
  outline: none; border-color: #16469c; background: #fff; box-shadow: 0 0 0 3px rgba(22, 70, 156, 0.12);
}
.enquiry_field .is-invalid { border-color: #c0392b; background: #fdf3f2; }
.enquiry_hint { font-size: 0.8rem; color: #8b8b8b; }
.enquiry_extra { display: none !important; }      /* spam traps, as on the contact page */

.enquiry_turnstile { margin-top: 1rem; }
.enquiry_turnstile:empty { display: none; }
.enquiry_submit_row { margin-top: 1.25rem; }
.enquiry_submit {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0.9rem 2rem; border: 0; border-radius: 8px;
  background: #16469c; color: #fff; font: 600 1rem/1 "Segoe UI", system-ui, sans-serif; cursor: pointer;
}
.enquiry_submit:hover { background: #123a83; }
.enquiry_submit:active { transform: translateY(1px); }
.enquiry_submit:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(22, 70, 156, 0.35); }
.enquiry_submit:disabled { opacity: 0.7; cursor: default; }

.enquiry_status { margin: 1rem 0 0; padding: 0.75rem 0.9rem; border-radius: 8px; font-size: 0.95rem; }
.enquiry_status.is-error { color: #b23b2e; background: #fdf3f2; border: 1px solid #f3d5d1; }
.enquiry_status.is-info { color: #16469c; background: #eef3fb; border: 1px solid #d6e0f0; }
.enquiry_success { padding: 1.5rem 1rem 0.5rem; text-align: center; }
.enquiry_success_icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 1rem; border-radius: 50%; background: #eef7f1; color: #1e6b3a; font-size: 1.4rem; }
.enquiry_success_title { margin: 0 0 0.4rem; font-size: 1.25rem; font-weight: 700; color: #16469c; }
.enquiry_success_note { margin: 0; font-size: 1rem; color: #5b5b5b; }
.enquiry_alt { margin: 1.5rem 0 0; font-size: 0.95rem; color: #5b5b5b; }
.enquiry_alt a { color: #16469c; font-weight: 600; text-decoration: none; }
.enquiry_alt a:hover { text-decoration: underline; }

@media (max-width: 600px) {
  .enquiry_btn { right: 16px; bottom: 80px; padding: 0.7rem 1.05rem; font-size: 0.9rem; }
  .enquiry_grid { grid-template-columns: 1fr; }
  .enquiry_submit { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .enquiry_btn, .enquiry_field input, .enquiry_field select, .enquiry_field textarea { transition: none; }
}
@media print { .enquiry_btn, .enquiry_overlay { display: none !important; } }