/* ==========================================================================
   Allrise Rentals — GreenMango integration styles
   --------------------------------------------------------------------------
   style.css carries the original design. This file adds only what the
   GreenMango-generated markup needs on top of it:

     1.  Brand fallback / header account menu
     2.  Blog (list, detail, sidebar)
     3.  Gallery tiles
     4.  Pagination
     5.  Checkout: address cards, summary extras, OTP step
     6.  Product detail extras
     7.  Footer extras
     8.  CMS page content
     9.  Misc utilities the Razor views reference
   Every value is expressed through the design tokens declared in style.css.
   ========================================================================== */

/* 1. Brand fallback / header account ------------------------------------- */
.navbar-brand .brand-logo {
  max-height: 44px;
  width: auto;
}

.navbar-brand .brand-fallback .brand-name {
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: .02em;
  color: var(--primary);
  line-height: 1.1;
}

.site-footer .footer-logo {
  max-height: 38px;
  width: auto;
}

.nav-account,
.account-menu {
  display: inline-flex;
  align-items: center;
}

.account-menu .dropdown-menu {
  min-width: 220px;
}

/* 2. Blog ----------------------------------------------------------------- */
.post-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
}

.post-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.post-card__img {
  display: block;
  aspect-ratio: 5 / 3;
  background: var(--gray-bg);
}

.post-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.post-card__body {
  padding: 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  flex: 1 1 auto;
}

.post-card__meta,
.post-mini__date {
  font-size: .78rem;
  color: var(--text-gray);
  margin: 0;
}

.post-card__body h3 {
  font-size: 1.02rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.35;
}

.post-card__body h3 a {
  color: var(--text-dark);
  text-decoration: none;
}

.post-card__body h3 a:hover {
  color: var(--primary);
}

.post-card__brief {
  font-size: .87rem;
  color: var(--text-gray);
  margin-bottom: .35rem;
}

.post-card__body .view-all {
  margin-top: auto;
}

.post-detail__img {
  width: 100%;
  height: auto;
  border-radius: var(--radius);
  display: block;
}

.post-detail__body {
  color: var(--text-gray);
  line-height: 1.75;
}

.post-detail__body h2,
.post-detail__body h3,
.post-detail__body h4 {
  color: var(--text-dark);
  margin: 1.75rem 0 .75rem;
}

.post-detail__body img {
  max-width: 100%;
  height: auto;
  border-radius: .6rem;
}

.post-share a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-dark);
  text-decoration: none;
  transition: all .18s ease;
}

.post-share a:hover {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}

.post-mini {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
  text-decoration: none;
}

.post-mini img {
  width: 72px;
  height: 72px;
  flex: none;
  object-fit: cover;
  border-radius: .5rem;
  background: var(--gray-bg);
}

.post-mini__title {
  display: block;
  font-size: .88rem;
  font-weight: 700;
  color: var(--text-dark);
  line-height: 1.35;
  margin-bottom: .2rem;
}

.post-mini:hover .post-mini__title {
  color: var(--primary);
}

/* 3. Gallery -------------------------------------------------------------- */
.gallery-tile {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--gray-bg);
}

.gallery-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.gallery-tile:hover img {
  transform: scale(1.05);
}

.gallery-tile__ov {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.3rem;
  background: rgba(43, 32, 38, .35);
  opacity: 0;
  transition: opacity .2s ease;
}

.gallery-tile:hover .gallery-tile__ov {
  opacity: 1;
}

/* 4. Pagination ----------------------------------------------------------- */
.pagination {
  gap: .35rem;
  flex-wrap: wrap;
}

.pagination .page-link {
  min-width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: .55rem;
  color: var(--text-dark);
  font-weight: 600;
  font-size: .88rem;
}

.pagination .page-link:hover {
  border-color: var(--primary);
  color: var(--primary);
  background: var(--primary-050);
}

.pagination .page-item.active .page-link {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}

.pagination .page-item.disabled .page-link {
  opacity: .45;
  pointer-events: none;
}

/* 5. Checkout ------------------------------------------------------------- */
.address-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}

.address-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--primary-050);
}

.address-card__title {
  font-size: .95rem;
  font-weight: 700;
  margin: 0;
}

.address-card__actions {
  display: inline-flex;
  gap: .35rem;
}

.address-card__icon {
  width: 32px;
  height: 32px;
  border-radius: .4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-gray);
  border: 1px solid var(--border);
  background: #fff;
  font-size: .8rem;
}

.address-card__icon:hover {
  color: var(--primary);
  border-color: var(--primary);
}

.address-card__icon--danger:hover {
  color: var(--red);
  border-color: var(--red);
}

.address-card__body {
  padding: 1rem;
  font-size: .87rem;
  color: var(--text-gray);
}

.address-card__foot {
  padding: 0 1rem 1rem;
}

.address-card--new {
  border-style: dashed;
  border-width: 2px;
  color: var(--primary);
  min-height: 190px;
  background: var(--primary-050);
}

.address-card--new:hover {
  border-color: var(--primary);
}

.address-card--new i {
  font-size: 1.9rem;
}

.summary-promo {
  display: flex;
  gap: .5rem;
}

.summary-promo .form-control {
  font-size: .85rem;
}

.summary-trust p {
  font-size: .8rem;
  color: var(--text-gray);
}

.checkout-login-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  background: var(--primary-050);
  color: var(--primary);
  font-size: 1.5rem;
}

.notice-box--warn {
  border-color: var(--amber);
  background: #FFF8EC;
}

.payment-options-inner {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  padding: 1.5rem;
}

/* Cart row inline loading indicator */
.loding_icon {
  display: none;
  width: 1rem;
}

/* 6. Product detail extras ----------------------------------------------- */
.detail-rate-inline {
  font-size: .88rem;
  color: var(--text-gray);
}

.detail-rate-inline strong {
  color: var(--text-dark);
}

.buy-qty .form-label {
  font-size: .82rem;
  font-weight: 600;
}

.feature-list-rich {
  color: var(--text-gray);
  line-height: 1.75;
}

.feature-list-rich ul,
.feature-list-rich ol {
  padding-left: 1.15rem;
}

.feature-list-rich li {
  margin-bottom: .4rem;
}

/* 7. Footer extras -------------------------------------------------------- */
.footer-hours-row {
  display: block;
  font-size: .82rem;
}

.footer-newsletter h4 {
  margin-top: 0;
}

.footer-newsletter .form-control {
  font-size: .85rem;
}

.filter-cat-links a {
  text-decoration: none;
  font-weight: 600;
}

/* 8. CMS page content ----------------------------------------------------- */
.cms-content {
  color: var(--text-gray);
  line-height: 1.75;
}

.cms-content h1,
.cms-content h2,
.cms-content h3,
.cms-content h4 {
  color: var(--text-dark);
  margin: 1.75rem 0 .75rem;
}

.cms-content h1:first-child,
.cms-content h2:first-child {
  margin-top: 0;
}

.cms-content img {
  max-width: 100%;
  height: auto;
  border-radius: .6rem;
}

.cms-content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.25rem;
}

.cms-content table th,
.cms-content table td {
  border: 1px solid var(--border);
  padding: .6rem .75rem;
  font-size: .9rem;
}

/* 9. Misc ----------------------------------------------------------------- */
.cta-sub {
  color: #E3C9D6;
}

.home-map {
  line-height: 0;
}

.home-map iframe {
  width: 100%;
  height: 380px;
  border: 0;
  display: block;
}

/* Bootstrap form controls follow the brand focus ring */
.form-control:focus,
.form-select:focus {
  border-color: var(--secondary);
  box-shadow: 0 0 0 .18rem rgba(143, 64, 100, .12);
}

/* Accordion / list-group accents used by the account pages */
.accordion-button:not(.collapsed) {
  background: var(--primary-050);
  color: var(--primary);
}

.accordion-button:focus {
  box-shadow: 0 0 0 .18rem rgba(143, 64, 100, .12);
}

.list-group-item.active {
  background: var(--primary);
  border-color: var(--primary);
}

/* Search box inside a narrower page column */
.search-box .form-control {
  min-width: 0;
}

/* 10. Unbookable equipment ---------------------------------------------------
   An item that is out on rent gets no date picker (the server's checkout guard
   would reject the order anyway), so the calendar slot carries a message and
   the quantity control is locked. */
.rental-calendar-off {
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  background: var(--gray-bg);
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.rental-calendar-off__msg {
  text-align: center;
  color: var(--text-gray);
  max-width: 22rem;
}

.rental-calendar-off__msg i {
  font-size: 1.75rem;
  color: var(--amber);
  display: block;
  margin-bottom: .6rem;
}

.qty-control input:disabled,
.qty-control button:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.btn.btn-teal:disabled,
.btn.btn-teal[disabled] {
  opacity: .55;
  cursor: not-allowed;
}

/* 11. Category grid loading --------------------------------------------------
   The grid is refetched from the server when a category is ticked; dim it while
   the request is in flight so the swap does not look like a glitch. */
.equip-grid.is-loading {
  opacity: .45;
  pointer-events: none;
  transition: opacity .15s ease;
}

/* 12. Rent Now as a link -----------------------------------------------------
   The card action navigates to the product page (dates are picked there), so
   .btn-rent is now an <a>. It is already inline-flex/full-width in style.css;
   it only needs the anchor underline removed. */
a.btn-rent,
a.btn-rent:hover,
a.btn-rent:focus {
  text-decoration: none;
}
