/* ==========================================================================
   Posilan child theme for WHMCS (parent: twenty-one)
   Brings the client area and cart in line with www.posilan.com
   ========================================================================== */

:root {
  --pl-navy: #0F1B2D;
  --pl-red: #DA1A21;
  --pl-red-dark: #C8141B;
  --pl-blue: #0071BC;
  --pl-light: #F4F6F9;
  --pl-soft: #D7DEE8;
  --pl-text: #3A4453;
  --pl-border: #E2E7EE;
}

/* Typography ------------------------------------------------------------- */
body,
.btn, input, select, textarea, .form-control {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
body { color: var(--pl-text); background: var(--pl-light); }
h1, h2, h3, h4, h5, h6,
.card-title, .primary-content h1 { color: var(--pl-navy); font-weight: 700; letter-spacing: -0.01em; }
a { color: var(--pl-blue); }
a:hover { color: var(--pl-red); }

/* Posilan top bar (added by hook) --------------------------------------- */
.pl-topbar { background: var(--pl-navy); color: #fff; font-size: 13px; font-weight: 600; }
.pl-topbar .container { display: flex; align-items: center; justify-content: space-between; min-height: 38px; gap: 16px; }
.pl-topbar a { color: #fff; text-decoration: none; }
.pl-topbar a:hover { color: var(--pl-soft); }
.pl-topbar .pl-phone { white-space: nowrap; }
.pl-topbar .pl-phone i { margin-right: 6px; }
.pl-topbar nav { display: flex; align-items: center; gap: 20px; }
.pl-topbar .pl-pill { background: var(--pl-red); border-radius: 999px; padding: 4px 14px; }
.pl-topbar .pl-pill:hover { background: var(--pl-red-dark); color: #fff; }
@media (max-width: 767px) {
  .pl-topbar nav a:not(.pl-pill) { display: none; }
}

/* Main header ------------------------------------------------------------ */
#header.header { background: #fff; border-bottom: 1px solid var(--pl-border); box-shadow: 0 2px 10px rgba(15,27,45,.06); }
#header .logo-img { max-height: 46px; }
#header .main-navbar-wrapper,
.main-navbar-wrapper { background: #fff; border-top: 1px solid var(--pl-border); }
#header .navbar-nav .nav-link,
.main-navbar-wrapper .navbar-nav > li > a,
.main-navbar-wrapper .navbar-nav .nav-link { color: var(--pl-navy); font-weight: 500; font-size: 15px; }
.main-navbar-wrapper .navbar-nav > li > a:hover,
.main-navbar-wrapper .navbar-nav .nav-link:hover,
.main-navbar-wrapper .navbar-nav .active > a { color: var(--pl-red); }
.pl-back-link { font-weight: 600; color: var(--pl-blue) !important; }

/* Breadcrumb strip -> navy hero band like the main site */
.master-breadcrumb { background: var(--pl-navy); border: 0; }
.master-breadcrumb .breadcrumb { background: transparent; }
.master-breadcrumb .breadcrumb-item,
.master-breadcrumb .breadcrumb-item a,
.master-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: var(--pl-soft); }
.master-breadcrumb .breadcrumb-item.active { color: #fff; }

/* Homepage domain search band */
.home-domain-search { background: var(--pl-navy) !important; color: #fff; }
.home-domain-search h2 { color: #fff; }
.home-domain-search > .container > div > a,
.home-domain-search a.btn-link,
.home-domain-search .text-right a { color: var(--pl-soft); }
.home-domain-search .input-group-wrapper,
.home-domain-search .p-4 { border-radius: 10px; }

/* Buttons ---------------------------------------------------------------- */
.btn { border-radius: 6px; font-weight: 600; }
.btn-primary, .btn-success, .btn-checkout, .btn-order-now, #btnCompleteOrder {
  background: var(--pl-red) !important; border-color: var(--pl-red) !important; color: #fff !important;
}
.btn-primary:hover, .btn-success:hover, .btn-checkout:hover, .btn-order-now:hover, #btnCompleteOrder:hover {
  background: var(--pl-red-dark) !important; border-color: var(--pl-red-dark) !important;
}
.btn-outline-primary, .btn-default { color: var(--pl-blue); border-color: var(--pl-blue); background: #fff; }
.btn-outline-primary:hover, .btn-default:hover { background: var(--pl-blue); color: #fff; }
.btn-info { background: var(--pl-blue); border-color: var(--pl-blue); }

/* Cards and panels ------------------------------------------------------- */
.card, .panel, .product, .tile, .client-home-cards .card {
  border: 1px solid var(--pl-border); border-radius: 10px; box-shadow: 0 2px 10px rgba(15,27,45,.04);
}
.card-header, .panel-heading { background: #fff; border-bottom: 1px solid var(--pl-border); }
.card-sidebar .card-header, .sidebar .card-header { background: var(--pl-navy); color: #fff; border-radius: 10px 10px 0 0; }
.card-sidebar .card-header .card-title, .sidebar .card-header .card-title { color: #fff; }
.list-group-item.active, .list-group-item.active:hover { background: var(--pl-blue); border-color: var(--pl-blue); }
.tiles .tile .stat { color: var(--pl-navy); }
.tiles .tile .highlight { background: var(--pl-red) !important; }

/* Forms ------------------------------------------------------------------ */
.form-control { border-color: var(--pl-soft); border-radius: 6px; background: #fff; }
.form-control:focus { border-color: var(--pl-blue); box-shadow: 0 0 0 3px rgba(0,113,188,.15); }

/* Store / cart (standard_cart) ------------------------------------------ */
#order-standard_cart .products .product header { background: var(--pl-navy); color: #fff; border-radius: 10px 10px 0 0; }
#order-standard_cart .products .product header span { color: #fff; }
#order-standard_cart .products .product .price { color: var(--pl-navy); font-weight: 700; }
#order-standard_cart .summary-container,
#order-standard_cart .order-summary { border-radius: 10px; }
#order-standard_cart .order-summary { background: var(--pl-navy); }
#order-standard_cart .order-summary h2 { color: #fff; }
#order-standard_cart .header-lined h1, .header-lined h1 { color: var(--pl-navy); }

/* Posilan footer (added by hook); hide the default one ------------------- */
#footer.footer { display: none; }
.pl-footer { background: var(--pl-navy); color: var(--pl-soft); font-size: 14px; margin-top: 48px; }
.pl-footer .container { padding-top: 48px; padding-bottom: 24px; }
.pl-footer h4 { color: #fff; font-size: 16px; margin-bottom: 14px; }
.pl-footer a { color: var(--pl-soft); }
.pl-footer a:hover { color: #fff; }
.pl-footer ul { list-style: none; padding: 0; margin: 0; }
.pl-footer li { padding: 3px 0; }
.pl-footer .pl-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.pl-footer .pl-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 32px; padding-top: 16px; font-size: 13px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
@media (max-width: 767px) { .pl-footer .pl-cols { grid-template-columns: 1fr 1fr; } }

/* Social icons: same spacing as the main site (fixed-width boxes so f and Instagram line up) */
.pl-topbar .pl-left { display: flex; align-items: center; gap: 15px; }
.pl-topbar .pl-phone { margin-right: 13px; }
.pl-topbar .pl-social { display: inline-block; width: 14px; text-align: center; font-size: 14px; line-height: 1; }
.pl-footer .pl-social { display: inline-block; width: 24px; text-align: center; font-size: 20px; line-height: 1; margin-left: 25px; vertical-align: middle; }
.pl-footer .pl-social:first-of-type { margin-left: 32px; }
.pl-topbar .pl-social:hover, .pl-footer .pl-social:hover { color: var(--pl-red); }

/* Cart / store sidebar headings: white on the navy bar */
.sidebar .card-header .panel-title,
.sidebar .panel-heading .panel-title,
.card-sidebar .panel-title,
#order-standard_cart .sidebar .panel-title { color: #fff !important; }
.sidebar .card-header, .sidebar .panel-heading { background: var(--pl-navy) !important; }

/* Tickets aren't used in WHMCS (support is in Zammad): hide the Tickets count tile
   and let the remaining three tiles share the row */
.tiles [class*="col-"]:has(a[href*="supporttickets"]) { display: none !important; }
@media (min-width: 1200px) {
  .tiles .row > [class*="col-"] { flex: 1 1 0; max-width: none; }
}

/* Homepage domain search: one clean search bar on a navy band ----------- */
#frmDomainHomepage .home-domain-search { background: var(--pl-navy) !important; }
#frmDomainHomepage .home-domain-search .p-5 { max-width: 860px; margin: 0 auto; padding: 56px 0 36px !important; }
#frmDomainHomepage h2 { color: #fff; font-size: 38px; margin-bottom: 8px; }
#frmDomainHomepage .pl-domain-sub { color: var(--pl-soft); text-align: center; font-size: 17px; margin: 0 0 28px; }
#frmDomainHomepage .advanced-input { position: relative; background: #fff; border-radius: 12px; box-shadow: 0 12px 32px rgba(0,0,0,.28); padding: 8px 8px 6px; border: 0; flex-wrap: wrap; }
#frmDomainHomepage .advanced-input textarea { flex: 1 1 100%; width: 100%; height: 68px !important; min-height: 68px; resize: none; border: 0 !important; box-shadow: none !important; outline: none; font-size: 18px; line-height: 1.4; padding: 21px 250px 10px 16px; color: var(--pl-navy); background: transparent; overflow: hidden; }
#frmDomainHomepage .advanced-input textarea::placeholder { color: #8A94A6; }
#frmDomainHomepage .advanced-input .input-group-append { position: absolute; top: 14px; right: 14px; display: flex; gap: 8px; }
#frmDomainHomepage .advanced-input .input-group-append .btn { height: 52px; padding: 0 24px; font-size: 16px; border-radius: 8px !important; margin: 0 !important; }
#frmDomainHomepage .home-domain-search .btn-success { background: #fff !important; color: var(--pl-blue) !important; border: 2px solid var(--pl-blue) !important; }
#frmDomainHomepage .home-domain-search .btn-success:hover { background: var(--pl-blue) !important; color: #fff !important; }
#frmDomainHomepage .advanced-input .btn-group,
#frmDomainHomepage .advanced-input > label { margin: 6px 0 2px 8px; font-size: 13px; color: #5A6577; }
#frmDomainHomepage .advanced-input .btn-group .btn-default { background: var(--pl-light); border: 1px solid var(--pl-border); color: var(--pl-text); border-radius: 999px; font-size: 13px; padding: 4px 12px; font-weight: 500; }
#frmDomainHomepage .btn-link { color: var(--pl-soft) !important; font-weight: 600; }
@media (max-width: 575px) { #frmDomainHomepage .advanced-input textarea { padding-right: 16px; height: 88px !important; } }

/* Client notification strip (Notifications / Logged in as): light, so it doesn't merge with the navy top bar */
.topbar { background: var(--pl-light) !important; color: var(--pl-text) !important; border-bottom: 1px solid var(--pl-border); }
.topbar .btn, .topbar a, .topbar .input-group-text { color: var(--pl-navy) !important; font-weight: 500; }
.topbar .btn:hover, .topbar a:hover { color: var(--pl-red) !important; }
