@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800&display=swap');

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Montserrat', sans-serif;
  background-color: #FFFFFF;
  color: #1A1A1A;
}

/* Header */
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid #F5F5F5;
  position: sticky;
  top: 0;
  background: #FFFFFF;
  z-index: 100;
}

.header-icon {
  font-size: 22px;
  color: #CC1417;
  text-decoration: none;
  cursor: pointer;
  background: none;
  border: none;
}

.header-title {
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 3px;
}

/* Container to center content on desktop */
.page-container {
  max-width: 500px;
  margin: 0 auto;
  padding: 24px;
  padding-bottom: 100px;
}

@media (min-width: 768px) {
  .page-container {
    max-width: 600px;
  }
}

/* Logo */
.logo-img {
  display: block;
  max-width: 320px;
  width: auto;
  height: auto;
  margin: 30px auto 24px auto;
}

/* Book Now Button */
.book-button {
  display: block;
  width: 100%;
  background-color: #CC1417;
  color: #FFFFFF;
  text-align: center;
  padding: 18px;
  border-radius: 3px;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 4px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  margin-bottom: 32px;
  box-shadow: 0 4px 8px rgba(204, 20, 23, 0.3);
}

.book-button:hover {
  background-color: #A30F12;
}

/* Section */
.section {
  margin-bottom: 32px;
}

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.section-title {
  font-weight: 700;
  font-size: 18px;
}

.section-sub {
  font-size: 12px;
  color: #CC1417;
}

/* Availability Slots */
.slots-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.slot-card {
  background-color: #FAFAFA;
  border: 1px solid #F0F0F0;
  border-radius: 4px;
  padding: 16px;
  text-align: center;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.slot-time {
  font-weight: 800;
  font-size: 18px;
  color: #CC1417;
  margin-bottom: 4px;
}

.slot-avail {
  font-weight: 600;
  font-size: 9px;
  color: #999999;
  letter-spacing: 1px;
}

/* Featured Card */
.featured-card {
  position: relative;
  height: 200px;
  background-color: #1A1A1A;
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  text-decoration: none;
  cursor: pointer;
}

.featured-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background-color: #CC1417;
  padding: 4px 10px;
  border-radius: 2px;
  z-index: 2;
}

.featured-badge-text {
  font-weight: 800;
  font-size: 9px;
  color: #FFFFFF;
  letter-spacing: 1px;
}

.featured-content {
  padding: 20px;
  z-index: 2;
  position: relative;
}

.featured-title {
  font-weight: 800;
  font-size: 24px;
  color: #FFFFFF;
  margin-bottom: 6px;
}

.featured-desc {
  font-size: 12px;
  color: rgba(255,255,255,0.8);
  line-height: 18px;
  margin-bottom: 8px;
}

.featured-price {
  font-weight: 800;
  font-size: 20px;
  color: #CC1417;
}

/* Hero (Services page) */
.hero {
  background-color: #1A1A1A;
  border-radius: 4px;
  padding: 24px;
  margin-bottom: 16px;
}

.hero-title {
  font-weight: 800;
  font-size: 26px;
  color: #FFFFFF;
  margin-bottom: 8px;
}

.hero-sub {
  font-size: 13px;
  color: rgba(255,255,255,0.7);
  line-height: 20px;
}

/* Filter Pills */
.filters-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 16px 0;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.filters-row::-webkit-scrollbar {
  display: none;
}

.pill {
  border: 1px solid #E0E0E0;
  padding: 8px 16px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 11px;
  color: #666666;
  letter-spacing: 1px;
  white-space: nowrap;
  cursor: pointer;
  background: #FFFFFF;
}

.pill.active {
  background-color: #CC1417;
  border-color: #CC1417;
  color: #FFFFFF;
}

/* Services List */
.category-title {
  font-weight: 800;
  font-size: 16px;
  margin: 16px 0 12px 0;
}

.service-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #F0F0F0;
  border-radius: 4px;
  padding: 16px;
  margin-bottom: 10px;
}

.service-name {
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 4px;
}

.service-duration {
  font-size: 11px;
  color: #999999;
  letter-spacing: 1px;
}

.service-right {
  display: flex;
  align-items: center;
  gap: 14px;
}

.service-price {
  font-weight: 800;
  font-size: 18px;
  color: #CC1417;
}

/* Contact Page */
.address-card {
  padding: 24px 0;
  border-top: 1px solid #F0F0F0;
  border-bottom: 1px solid #F0F0F0;
  margin-bottom: 24px;
}

.address-label {
  font-weight: 800;
  font-size: 10px;
  color: #CC1417;
  letter-spacing: 3px;
  margin-bottom: 10px;
}

.address-text {
  font-weight: 600;
  font-size: 16px;
  line-height: 26px;
}

.map-container {
  height: 280px;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 24px;
}

.map-container iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.maps-button {
  display: block;
  background-color: #CC1417;
  color: #FFFFFF;
  text-align: center;
  padding: 18px;
  border-radius: 3px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 3px;
  text-decoration: none;
}

/* Bookings page */
.booking-iframe {
  width: 100%;
  height: calc(100vh - 140px);
  border: none;
}

/* Bottom Navigation */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #FFFFFF;
  border-top: 1px solid #F0F0F0;
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 10px 0;
  z-index: 100;
}

.nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #999999;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.5px;
  gap: 4px;
}

.nav-item.active {
  color: #CC1417;
}

.nav-icon {
  font-size: 20px;
}

.nav-icon.bookings-badge {
  background-color: #CC1417;
  color: #FFFFFF;
  border-radius: 12px;
  padding: 4px 8px;
}

.nav-item.active .nav-icon.bookings-badge {
  background-color: #CC1417;
}


/* ===== Barber Pole (centered above logo) ===== */
.logo-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 30px;
  margin-bottom: 24px;
}

.barber-pole {
  position: relative;
  width: 34px;
  height: 130px;
  display: flex;
  flex-direction: column;
  align-items: center;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,0.25));
  margin-bottom: 12px;
}

.pole-cap {
  width: 40px;
  height: 16px;
  background: linear-gradient(180deg, #E8C660, #B8912E);
  border-radius: 6px;
  z-index: 3;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
}

.pole-cap-top {
  border-radius: 6px 6px 3px 3px;
}

.pole-cap-bottom {
  border-radius: 3px 3px 6px 6px;
}

.pole-stripes {
  width: 34px;
  height: 130px;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  border: 2px solid #ddd;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.15), inset 4px 0 8px rgba(255,255,255,0.3);
  background: repeating-linear-gradient(
    -45deg,
    #CC1417 0px,
    #CC1417 12px,
    #FFFFFF 12px,
    #FFFFFF 24px,
    #1A3E8C 24px,
    #1A3E8C 36px,
    #FFFFFF 36px,
    #FFFFFF 48px
  );
  background-size: 68px 68px;
  animation: spin-pole 1.2s linear infinite;
}

@keyframes spin-pole {
  from { background-position: 0 0; }
  to { background-position: 0 68px; }
}

/* Little glossy highlight overlay for that "glass tube" look */
.pole-stripes::after {
  content: '';
  position: absolute;
  top: 0;
  left: 4px;
  width: 6px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,0.5), rgba(255,255,255,0.1));
  border-radius: 4px;
  pointer-events: none;
}

/* Mobile adjustment so it doesn't overlap the logo awkwardly */
@media (max-width: 480px) {
  .barber-pole {
    right: 4%;
    width: 26px;
    height: 120px;
  }
  .pole-stripes {
    width: 26px;
    height: 96px;
  }
  .pole-cap {
    width: 30px;
  }
}

/* ===== Opening Hours Card ===== */
.hours-card {
  border: 1px solid #F0F0F0;
  border-radius: 6px;
  padding: 4px 20px;
  background: #FAFAFA;
}

.hours-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  transition: background 0.2s ease;
}

.hours-day {
  font-weight: 700;
  font-size: 14px;
  color: #1A1A1A;
  letter-spacing: 0.3px;
}

.hours-time {
  font-weight: 800;
  font-size: 14px;
  color: #666666;
  letter-spacing: 0.5px;
}

.hours-divider {
  height: 1px;
  background: #EAEAEA;
}

/* Highlight today's hours */
.hours-active {
  position: relative;
}

.hours-active .hours-day {
  color: #CC1417;
}

.hours-active .hours-time {
  color: #CC1417;
}

.hours-active::before {
  content: '';
  position: absolute;
  left: -20px;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #CC1417;
  border-radius: 0 4px 4px 0;
}

.hours-active::after {
  content: 'TODAY';
  position: absolute;
  right: 0;
  top: -2px;
  font-size: 8px;
  font-weight: 800;
  color: #FFFFFF;
  background: #CC1417;
  padding: 2px 6px;
  border-radius: 3px;
  letter-spacing: 1px;
}

/* ===== Install Button ===== */
.install-button {
  display: block;
  width: 100%;
  background-color: #FFFFFF;
  color: #CC1417;
  text-align: center;
  padding: 14px;
  border-radius: 3px;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 2px;
  border: 1.5px solid #CC1417;
  cursor: pointer;
  margin-bottom: 32px;
  margin-top: -12px;
  font-family: 'Montserrat', sans-serif;
}

.install-button:hover {
  background-color: #FFF5F5;
}

.install-button.hidden {
  display: none;
}

/* iOS Instructions Modal */
.ios-modal-overlay {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.6);
  z-index: 1000;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.ios-modal-overlay.show {
  display: flex;
}

.ios-modal-box {
  background: #FFFFFF;
  border-radius: 6px;
  max-width: 340px;
  width: 100%;
  overflow: hidden;
}

.ios-modal-header {
  background: #CC1417;
  color: #FFFFFF;
  text-align: center;
  padding: 16px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 3px;
}

.ios-modal-body {
  padding: 24px;
}

.ios-step {
  font-size: 14px;
  color: #1A1A1A;
  margin-bottom: 16px;
  line-height: 20px;
}

.ios-icon {
  font-size: 16px;
}

.ios-modal-close {
  display: block;
  width: 100%;
  background: #CC1417;
  color: #FFFFFF;
  border: none;
  padding: 16px;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 2px;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
}

/* ===== Header Phone Number ===== */
.header {
  justify-content: center;
}

.phone-link {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  background: #FAFAFA;
  border: 1px solid #F0F0F0;
  padding: 8px 18px;
  border-radius: 20px;
  transition: background 0.2s ease;
}

.phone-link:hover {
  background: #FFF0F0;
  border-color: #CC1417;
}

.phone-icon {
  font-size: 16px;
}

.phone-number {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #1A1A1A;
  letter-spacing: 0.5px;
}

.phone-link:hover .phone-number {
  color: #CC1417;
}

/* ===== Notice Board ===== */
.notice-board {
  position: relative;
  background: #FFFDF7;
  border: 1px solid #EDE6D3;
  border-radius: 4px;
  padding: 26px 22px 22px 22px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.06);
}

.notice-pin {
  position: absolute;
  top: -9px;
  left: 50%;
  transform: translateX(-50%);
  width: 18px;
  height: 18px;
  background: radial-gradient(circle at 35% 30%, #E8433A, #A30F12);
  border-radius: 50%;
  box-shadow: 0 3px 4px rgba(0,0,0,0.3);
}

.notice-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 14px;
}

.notice-icon {
  font-size: 14px;
}

.notice-title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 3px;
  color: #CC1417;
}

.notice-text {
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #333333;
  text-align: center;
  line-height: 21px;
  margin: 0 0 16px 0;
}

.notice-text strong {
  color: #1A1A1A;
  font-weight: 800;
}

.notice-divider {
  height: 1px;
  background: repeating-linear-gradient(
    90deg,
    #E0D8C0 0px,
    #E0D8C0 6px,
    transparent 6px,
    transparent 12px
  );
  margin-bottom: 16px;
}

.notice-schedule {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.notice-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.notice-tag {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 8px;
  letter-spacing: 0.5px;
  padding: 5px 9px;
  border-radius: 3px;
  min-width: 92px;
  text-align: center;
  white-space: nowrap;
}

.notice-tag-booking {
  background: #CC1417;
  color: #FFFFFF;
}

.notice-tag-walkin {
  background: #1A1A1A;
  color: #FFFFFF;
}

.notice-days {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 13px;
  color: #444444;
}

/* ===== Featured Card with Background Image ===== */
.featured-card-image {
  background-image: url('../images/seapowder.png');
  background-size: cover;
  background-position: center;
}

.featured-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,0.15) 0%,
    rgba(0,0,0,0.55) 65%,
    rgba(0,0,0,0.85) 100%
  );
  z-index: 1;
}