/* Troianiello Cigars - Global Responsive Overrides
   Loaded after page styles. Keeps existing functionality while adapting layouts
   from small phones through tablets, laptops and large desktops. */

:root {
  --tc-mobile-gutter: 16px;
  --tc-tablet-gutter: 24px;
  --tc-gold: #b8860b;
}

*, *::before, *::after { box-sizing: border-box; }
html { width: 100%; max-width: 100%; overflow-x: hidden; -webkit-text-size-adjust: 100%; }
body { width: 100%; max-width: 100%; overflow-x: hidden !important; }
img, video, iframe, svg, canvas { max-width: 100%; }
img, video { height: auto; }
input, select, textarea, button { max-width: 100%; }
pre, code { max-width: 100%; overflow-wrap: anywhere; }
.table-responsive, .table-wrap, .orders-table-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
table { max-width: 100%; }

/* Shared fixed navigation/footer protection */
@media (max-width: 991.98px) {
  html, body { min-height: 100%; height: auto !important; overflow-y: auto !important; }
  body:not(.tc-age-body-locked):not(.tc-scroll-locked) { overflow-y: auto !important; }
  .top-bar {
    min-height: 40px !important;
    padding: 6px 10px !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }
  .top-bar a { white-space: normal !important; overflow-wrap: anywhere; }
  .custom-navbar { top: 40px !important; padding: 5px 12px !important; background: #000 !important; }
  .custom-navbar .container-fluid { padding-left: 0 !important; padding-right: 0 !important; }
  .custom-navbar .logo-img, .logo-img { height: 58px !important; width: auto !important; max-width: 180px !important; object-fit: contain; }
  .custom-navbar .navbar-collapse {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-height: calc(100svh - 105px) !important;
    overflow-y: auto !important;
    background: rgba(0,0,0,.98) !important;
    padding: 12px 18px 20px !important;
    border-top: 1px solid #222 !important;
  }
  .custom-navbar .navbar-nav { width: 100% !important; align-items: stretch !important; gap: 0 !important; }
  .custom-navbar .nav-item { width: 100% !important; }
  .custom-navbar .nav-link { min-height: 44px !important; padding: 10px 4px !important; white-space: normal !important; display: flex !important; align-items: center !important; }
  .custom-navbar .dropdown-menu { position: static !important; width: 100% !important; }
  .bottom-nav { padding: 8px 12px !important; min-height: 56px !important; justify-content: center !important; }
  .bottom-nav .footer-links { display: none !important; }
  .bottom-nav .social-icons { margin: 0 auto !important; }
  body { padding-bottom: 72px !important; }
}

/* Homepage / shop */
@media (max-width: 991.98px) {
  .hero-slider-section, .hero-slider, .hero-slide, .visitus-section {  }
  .hero-content { width: min(92%, 720px) !important; padding-left: var(--tc-mobile-gutter) !important; padding-right: var(--tc-mobile-gutter) !important; }
  .hero-content h1, section h1 { font-size: clamp(28px, 7vw, 46px) !important; line-height: 1.1 !important; }
  .shop-section, .page, .tc-main-container, .frc-section { width: 100% !important; max-width: 100% !important; padding-left: var(--tc-tablet-gutter) !important; padding-right: var(--tc-tablet-gutter) !important; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
  .tc-shop-header-row, .frc-heading-row { gap: 12px !important; flex-wrap: wrap !important; }
  .event-card { width: 100% !important; max-width: 100% !important; }
}
@media (max-width: 575.98px) {
  .hero-slider-section, .hero-slider, .hero-slide, .visitus-section {  }
  .shop-section, .page, .tc-main-container, .frc-section { padding-left: var(--tc-mobile-gutter) !important; padding-right: var(--tc-mobile-gutter) !important; }
  .product-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .product-card { width: 100% !important; max-width: 100% !important; }
  .section-title, .tc-main-title { font-size: clamp(24px, 8vw, 34px) !important; }
  .control-btn { width: 42px !important; height: 42px !important; }
}
@media (max-width: 767px) {
    .event-gallery {
        display: flex;
        flex-direction: column;
        gap: 20px;
        width: 100%;
        height: auto;
    }
    .troianiello-content-wrapper {
        display: flex;
        align-items: center;
        gap: 20px;
        max-width: 100%;
        width: 100%;
        flex-direction: column;
        padding: 0 15px;
    }
}

/* Accessories / Premium Cigars */
@media (max-width: 991.98px) {
  .acc-main { width: 100% !important; max-width: 100% !important; padding-left: var(--tc-tablet-gutter) !important; padding-right: var(--tc-tablet-gutter) !important; }
  .acc-hero { min-height: 300px !important; height: auto !important; padding: 130px var(--tc-tablet-gutter) 50px !important; }
  .acc-filters { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; }
  .filter-search { width: 100% !important; max-width: none !important; }
  .acc-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 18px !important; }
  .acc-card { min-width: 0 !important; }
}
@media (max-width: 575.98px) {
  .acc-main { padding-left: var(--tc-mobile-gutter) !important; padding-right: var(--tc-mobile-gutter) !important; }
  .acc-hero { padding: 120px var(--tc-mobile-gutter) 40px !important; }
  .acc-grid { grid-template-columns: 1fr !important; }
  .filter-btn { flex: 1 1 calc(50% - 10px); min-height: 44px; }
}

/* Product details */
@media (max-width: 900px) {
  .tc-dt-page-bg { min-height: 100svh !important; height: auto !important; overflow: visible !important; }
  .tc-dt-main-container { width: 100% !important; max-width: 100% !important; padding: 130px var(--tc-tablet-gutter) 90px !important; }
  .tc-dt-split-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .tc-dt-media-box, .tc-dt-info-panel { width: 100% !important; max-width: 100% !important; }
  .tc-dt-main-img { width: 100% !important; height: auto !important; max-height: 520px !important; object-fit: contain !important; }
  .tc-dt-option-row, .tc-dt-action-row { flex-wrap: wrap !important; }
  .tc-dt-option-btn, .tc-dt-btn-cart, .tc-dt-btn-buy { min-height: 46px !important; }
}
@media (max-width: 575.98px) {
  .tc-dt-main-container { padding: 115px var(--tc-mobile-gutter) 82px !important; }
  .tc-dt-product-name { font-size: clamp(27px, 9vw, 38px) !important; }
  .tc-dt-option-row { display: grid !important; grid-template-columns: 1fr !important; }
  .tc-dt-option-btn, .tc-dt-btn-cart, .tc-dt-btn-buy { width: 100% !important; }
  .tc-dt-action-row { flex-direction: column !important; }
}

/* Checkout */
@media (max-width: 900px) {
  .tc-ch-page-bg { min-height: 100svh !important; height: auto !important; overflow: visible !important; }
  .tc-ch-main-wrapper { width: 100% !important; max-width: 100% !important; padding: 130px var(--tc-tablet-gutter) 95px !important; }
  .tc-ch-header-row { flex-wrap: wrap !important; gap: 12px !important; }
  .tc-ch-body-layout { grid-template-columns: 1fr !important; gap: 24px !important; }
  .tc-ch-items-panel, .tc-ch-summary-card, .tc-ch-form-panel { width: 100% !important; max-width: 100% !important; position: static !important; }
  .tc-ch-item-card { grid-template-columns: 90px minmax(0,1fr) !important; gap: 14px !important; }
  .tc-ch-flex-row { flex-wrap: wrap !important; }
  .tc-ch-flex-row > * { flex: 1 1 220px !important; }
}
@media (max-width: 575.98px) {
  .tc-ch-main-wrapper { padding: 115px var(--tc-mobile-gutter) 82px !important; }
  .tc-ch-main-title { font-size: clamp(25px, 8vw, 34px) !important; }
  .tc-ch-item-card { grid-template-columns: 72px minmax(0,1fr) !important; padding: 12px !important; }
  .tc-ch-item-img-frame { width: 72px !important; height: 72px !important; }
  .tc-ch-form-panel, .tc-ch-summary-card { padding: 18px !important; }
  .tc-ch-flex-row { display: block !important; }
  .tc-ch-btn-submit, .tc-ch-btn-shop-now { width: 100% !important; min-height: 48px !important; }
  .tc-ch-form-input { font-size: 16px !important; }
}

/* About timeline */
@media (max-width: 768px) {
  .tc-about-banner { height: auto !important; min-height: 250px !important; padding: 120px var(--tc-mobile-gutter) 42px !important; }
  .tc-banner-content { width: 100% !important; padding: 0 !important; }
  .tc-banner-content h1 { font-size: clamp(30px, 9vw, 42px) !important; }
  .tc-timeline-container { width: 100% !important; max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
  .tc-timeline-container::after { left: 25px !important; }
  .tc-timeline-block { width: 100% !important; left: 0 !important; padding-left: 58px !important; padding-right: var(--tc-mobile-gutter) !important; text-align: left !important; }
  .tc-timeline-node-icon { left: 4px !important; right: auto !important; }
  .tc-timeline-card { width: 100% !important; max-width: 100% !important; }
  .tc-card-media-wrapper { height: clamp(180px, 55vw, 260px) !important; }
}

/* Contact */
@media (max-width: 900px) {
  .tc-contact-wrapper { width: 100% !important; max-width: 100% !important; padding: 130px var(--tc-tablet-gutter) 90px !important; display: grid !important; grid-template-columns: 1fr !important; gap: 30px !important; }
  .tc-contact-left-col, .tc-contact-right-col { width: 100% !important; max-width: 100% !important; }
}
@media (max-width: 575.98px) {
  .tc-contact-wrapper { padding: 115px var(--tc-mobile-gutter) 82px !important; }
  .tc-info-detail-card { align-items: flex-start !important; }
  .tc-form-input { font-size: 16px !important; }
  .tc-submit-btn { width: 100% !important; min-height: 48px !important; }
}

/* Event booking */
@media (max-width: 768px) {
  .tc-page-layout-wrapper { width: 100% !important; max-width: 100% !important; padding: 120px var(--tc-mobile-gutter) 82px !important; justify-content: flex-start !important; }
  .tc-booking-card-panel { width: 100% !important; padding: 20px !important; }
  .tc-page-heading { font-size: clamp(23px, 7vw, 30px) !important; }
  .tc-inline-calendar-frame { padding: 10px !important; overflow: hidden; }
  .tc-calendar-current-month { font-size: 15px !important; }
  .tc-calendar-days-layout { gap: 3px !important; }
  .tc-form-input, .tc-form-select { font-size: 16px !important; padding: 12px !important; }
  .tc-form-submit-btn { width: 100% !important; min-height: 48px !important; }
  .tc-status-modal-box { width: calc(100% - 28px) !important; max-width: 500px !important; }
}

/* Profile */
@media (max-width: 900px) {
  .profile-wrapper { width: 100% !important; max-width: 100% !important; padding: 125px var(--tc-tablet-gutter) 90px !important; }
  .profile-header { flex-wrap: wrap !important; gap: 14px !important; }
  .profile-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
  .profile-card { width: 100% !important; }
  .orders-table-wrap { width: 100% !important; overflow-x: auto !important; }
  .orders-table { min-width: 720px; }
  .bill-modal-box { width: calc(100% - 28px) !important; max-height: calc(100svh - 30px) !important; overflow-y: auto !important; }
  .bill-detail-grid { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 575.98px) {
  .profile-wrapper { padding: 112px var(--tc-mobile-gutter) 80px !important; }
  .profile-row { display: grid !important; grid-template-columns: 1fr !important; gap: 6px !important; }
  .bill-detail-grid { grid-template-columns: 1fr !important; }
  .chat-input-row { flex-direction: column !important; }
  .chat-send-btn, .logout-btn, .edit-btn, .save-btn, .download-pdf-btn { width: 100% !important; }
}

/* Login / signup */
@media (max-width: 575.98px) {
  .auth-box { width: calc(100% - 28px) !important; max-width: 430px !important; margin-left: auto !important; margin-right: auto !important; padding: 24px 18px !important; }
  .auth-box input, .auth-box select { font-size: 16px !important; }
  .auth-btn { width: 100% !important; min-height: 48px !important; }
}

/* Admin / add product */
@media (max-width: 991.98px) {
  .stats-grid, .chart-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .toolbar, .action-row { flex-wrap: wrap !important; gap: 10px !important; }
  .table-wrap { overflow-x: auto !important; }
  .table-wrap table { min-width: 760px; }
  .add-product-container { width: calc(100% - 32px) !important; max-width: 720px !important; margin-left: auto !important; margin-right: auto !important; }
  .preview-box { width: calc(100% - 28px) !important; max-height: calc(100svh - 30px) !important; overflow-y: auto !important; }
}
@media (max-width: 575.98px) {
  .stats-grid, .chart-grid { grid-template-columns: 1fr !important; }
  .panel, .stat-card { padding: 15px !important; }
  .toolbar > *, .action-row > * { width: 100% !important; }
  .add-product-container { width: calc(100% - 24px) !important; padding: 18px !important; }
}

/* Gallery page */
@media (max-width: 991.98px) {
  .cg-navbar .container-fluid { padding-left: var(--tc-mobile-gutter) !important; padding-right: var(--tc-mobile-gutter) !important; }
  .cg-navbar .navbar-collapse { background: #090909; padding: 14px; }
}

/* Success */
@media (max-width: 575.98px) {
  .success-card { width: 100% !important; max-width: 100% !important; padding: 30px 18px !important; }
  .button-row { flex-direction: column !important; }
  .btn-custom { width: 100% !important; }
}

/* Extra-small phone polish */
@media (max-width: 374.98px) {
  :root { --tc-mobile-gutter: 12px; }
  .custom-navbar .logo-img, .logo-img { height: 48px !important; max-width: 145px !important; }
  .top-bar { font-size: 10px !important; }
  h1 { overflow-wrap: anywhere; }
}

/* ─── Mobile: disable snap-scroll leftovers ─────────────────────
   Snap-scroll JS now only runs on desktop (>=992px). This makes
   sure no leftover inline transform or nav-dots UI shows on
   mobile/tablet, so scrolling stays fully normal there. */
@media (max-width: 991.98px) {
  .nav-dots { display: none !important; }
  #container { transform: none !important; }
}