/* ============================================================
   base.css — replaces Bootstrap 3 with only what this site uses.
   Covers reset, container, 12-col grid, utilities, btn/form base,
   navbar primitives, and glyphicon replacement (CSS mask + SVG).
   ============================================================ */

/* Reset */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }
img { vertical-align: middle; border: 0; max-width: 100%; height: auto; }
button { font: inherit; color: inherit; }
ul, ol { margin: 0; padding: 0; }

/* Container — matches BS3 max-widths */
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}
@media (min-width: 768px)  { .container { width: 750px; } }
@media (min-width: 992px)  { .container { width: 970px; } }
@media (min-width: 1200px) { .container { width: 1170px; } }

/* Grid — 12-col flexbox, mobile-first stacking */
.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -15px;
  margin-right: -15px;
}
.row > [class*="col-"] {
  position: relative;
  min-height: 1px;
  padding-left: 15px;
  padding-right: 15px;
}

/* Mobile default: columns stack full-width. Kept at the same specificity as the
   responsive rules below so the breakpoint overrides actually win. */
[class*="col-"] { width: 100%; }

.col-xs-4 { width: 33.3333%; }

@media (min-width: 768px) {
  .col-sm-4 { width: 33.3333%; }
  .col-sm-6 { width: 50%; }
}
@media (min-width: 992px) {
  .col-md-2  { width: 16.6667%; }
  .col-md-4  { width: 33.3333%; }
  .col-md-6  { width: 50%; }
  .col-md-8  { width: 66.6667%; }
  .col-md-10 { width: 83.3333%; }
  .col-md-offset-1 { margin-left: 8.3333%; }
}
@media (min-width: 1200px) {
  .col-lg-7 { width: 58.3333%; }
  .col-lg-offset-1 { margin-left: 8.3333%; }
}

/* Utilities */
.text-center  { text-align: center; }
.text-right   { text-align: right; }
.text-left    { text-align: left; }
.center-block { display: block; margin-left: auto; margin-right: auto; }
.img-responsive { display: block; max-width: 100%; height: auto; }
.full-width   { width: 100%; }
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* Buttons — base only (.btn-acc-* live in style.css) */
.btn {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-weight: 400;
  line-height: 1.42857;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  white-space: nowrap;
  background: none;
  border: 1px solid transparent;
  text-decoration: none;
}
.btn:focus, .btn:active { outline: 0; }

/* Forms */
.form-group { margin-bottom: 15px; }
.form-control {
  display: block;
  width: 100%;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857;
  color: #555;
  background-color: #fff;
  border: 1px solid #ccc;
}
.input-lg {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333;
}
textarea.form-control { resize: vertical; }

/* Navbar primitives — project-specific rules live in style.css */
.navbar {
  position: relative;
  min-height: 50px;
  margin-bottom: 0;
  border: none;
}
.navbar-header { float: left; }
.navbar-nav {
  list-style: none;
  margin: 0;
  padding: 0;
}
.navbar-nav > li { display: block; }
.navbar-nav > li > a {
  display: block;
  padding: 15px;
  text-decoration: none;
}
.navbar-toggle {
  position: relative;
  float: right;
  padding: 9px 10px;
  background: none;
  border: 1px solid transparent;
  cursor: pointer;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  background-color: #888;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar { margin-top: 4px; }
.navbar-collapse { padding: 0 15px; }

.collapse { display: none; }
.collapse.in { display: block; }
@media (min-width: 992px) {
  .navbar-nav > li { float: left; }
  .navbar-right { float: right !important; }
  .navbar-collapse.collapse { display: block !important; height: auto !important; padding: 0; }
  .navbar-toggle { display: none; }
}

/* Glyphicons replacement — CSS mask + inline SVG (inherits currentColor).
   Drops the 40 KB Glyphicons Halflings font entirely. */
.glyphicon {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.glyphicon-envelope {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2zm13 2.383-4.708 2.825L15 11.105V5.383zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741zM1 11.105l4.708-2.897L1 5.383v5.722z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2zm13 2.383-4.708 2.825L15 11.105V5.383zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741zM1 11.105l4.708-2.897L1 5.383v5.722z'/%3E%3C/svg%3E");
}
.glyphicon-earphone {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1.885.511a1.745 1.745 0 0 1 2.61.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.678.678 0 0 0 .178.643l2.457 2.457a.678.678 0 0 0 .644.178l2.189-.547a1.745 1.745 0 0 1 1.494.315l2.306 1.794c.829.645.905 1.87.163 2.611l-1.034 1.034c-.74.74-1.846 1.065-2.877.702a18.634 18.634 0 0 1-7.01-4.42 18.634 18.634 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877L1.885.511z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1.885.511a1.745 1.745 0 0 1 2.61.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.678.678 0 0 0 .178.643l2.457 2.457a.678.678 0 0 0 .644.178l2.189-.547a1.745 1.745 0 0 1 1.494.315l2.306 1.794c.829.645.905 1.87.163 2.611l-1.034 1.034c-.74.74-1.846 1.065-2.877.702a18.634 18.634 0 0 1-7.01-4.42 18.634 18.634 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877L1.885.511z'/%3E%3C/svg%3E");
}
.glyphicon-heart {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.314C12.438-3.248 23.534 4.735 8 15-7.534 4.736 3.562-3.248 8 1.314z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.314C12.438-3.248 23.534 4.735 8 15-7.534 4.736 3.562-3.248 8 1.314z'/%3E%3C/svg%3E");
}
