:root {
  --bg-color: #faf9f6;
  --main: #fff;
  --highlight-color: #dedace;
  --highlight-hover: #c6c2b4;
  --link-hover: #b0ab9b;
  --text-color: #333333;
  --font-header: 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif;
  --font-body: Optima, Candara, 'Noto Sans', source-sans-pro, sans-serif;
}

html.theme-1 { --bg-color: #faf9f6; --highlight-color: #dedace; --highlight-hover: #c6c2b4; --link-hover: #b0ab9b; }
html.theme-2 { --bg-color: #f5f5f5; --highlight-color: #d3d3d3; --highlight-hover: #bcbcbc; --link-hover: #999999; }
html.theme-3 { --bg-color: #f4f0e0; --highlight-color: #dcd4b4; --highlight-hover: #c5be9e; --link-hover: #a49a78; }
html.theme-4 { --bg-color: #fdfcfa; --highlight-color: #e8e5d8; --highlight-hover: #d0cdc0; --link-hover: #bda58a; }
html.theme-5 { --bg-color: #f8ebeb; --highlight-color: #93d2b7; --highlight-hover: #7bc1a3; --link-hover: #e38d8d; }
html { background: var(--bg-color); font-size: 100%; }
body { text-align:center; color: var(--text-color); font-family: var(--font-body); font-size:0.917rem; overflow-y:scroll;}
body { padding-top:2px; }
a { color:#7d7d7d; }
a:hover { color: var(--link-hover); }
em { font-style: italic; }
strong { font-weight:bold; }
img { border-radius: 3px; max-width: 100%; height: auto; display: block; }
td,
th { font-size:inherit; vertical-align:top; }
th { font-weight: bold; }
tr img { clear:both; }
p { margin:15px 0; }
p.note { font-size:0.792rem; margin: 0 inherit; }
h1, h2, h3, h4, h5, .nav { font-family: var(--font-header); color:#171717; }
h1 { font-size: 1.583rem; font-weight:bold; margin-bottom:5px; }
h2 { font-size: 1.417rem; margin-bottom:5px; }
h3 { font-size: 1.167rem; }
h4 { font-size: 1rem; margin-top: 5px; }
h2 span { font-size: 0.917rem; font-weight: normal; }
h5 { font-size: 0.833rem; font-weight:normal; }
h6 { font-size: 0.75rem; }

.wrap { width: 100%; max-width: 100%; padding: 0 5px; box-sizing: border-box; margin: 0 auto; text-align:left; }
.c { text-align: center; }
.header { position: relative; }
.nav-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  padding: 6px;
  cursor: pointer;
  position: absolute;
  top: -15px;
  right: -5px;
  z-index: 30;
  color: var(--highlight-hover);
}
.logo {
  display: block;
  margin: 10px auto;
}
.logo a {
  display: block;
  width: 170px;
  height: 55px;
  min-height: 55px;
  margin: 0 auto;
  text-indent: -50em;
  background: url(images/unveiled_logo.svg) no-repeat center center / contain;
  overflow: hidden;
}
#nav-menu li.nav-social {
  display: block;
  margin-top: 5px;
  text-align: center;
  width: 100%;
}
#nav-menu li#logo.desktop-logo {
  display: none;
}
.nav { position: relative; }
.nav ul {
  width: 100%;
  margin: 0;
  padding: 0;
  background: var(--main);
  display: none;
}
.nav ul.nav-open {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--bg-color);
  z-index: 100;
  padding: 10px 0 20px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
  border-radius: 0 0 6px 6px;
}
.nav li {
  margin: 0;
  display: block;
  list-style: none;
  border-bottom: none;
  width: 100%;
}
.nav li.selected { border-color: transparent; }
.nav li.selected:hover { border-color: var(--link-hover); }
.nav li a { display:block; padding: 10px 0; color: #000; font-weight: 600; text-transform: uppercase; text-decoration: none; box-sizing: border-box; }
.nav li a:hover { color: var(--link-hover); }
.cls { zoom:1; }
.cls:after { content:"."; display:block; height:0; clear:both; visibility:hidden; }

.main-content { padding: 3px 16px; background: var(--main); position: relative; }
table, th, td { border: 1px solid black #000; }
.contect {border-color: silver #000}

.main-content ul { margin: 15px 24px; padding: 0; }
.main-content ul li { list-style:disc;margin: 7px 0; }

.main-content ol { margin: 15px 24px; padding: 0; }
.main-content ol li { list-style:number; margin:0 0 5px; font-size: inherit; }
.main-content { border-radius: 5px; }

img.right { float:right; padding-left:20px; }

/* About Page Styling */
.about p {
  font-size: 1rem;
}
.stylist-card {
  margin-bottom: 40px;
  border-bottom: 1px solid var(--highlight-color);
  padding-bottom: 25px;
}
.stylist-card:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.stylist-photo {
  margin: 0 0 15px;
}
.stylist-photo img {
  max-width: 140px;
  margin: 0 auto;
}
.stylist-info h2 {
  margin-top: 0;
  font-size: 1.25rem;
  margin-bottom: 15px;
}

.services h2 { margin: 30px 0 5px; }
.services h2 span { font-size: 0.917rem; font-weight: normal; }
.services h3 { margin: 30px 10px 15px 0; }
.services h4 { margin: 20px 10px 5px 5px; }
.services p.price_list  { font-size: 1.167rem; margin: 20px 10px 30px; }
.services p { margin: 10px 0; }
.services p.note { font-size: 0.792rem; }

/* services page responsive 2-column layout */
.services-container {
  display: flex;
  flex-direction: column;
  gap: 30px;
  text-align: left;
}
.services-col-left {
  flex: 1;
  min-width: 0;
}
.services-col-right {
  width: 100%;
  flex: none;
  padding-top: 0;
}
.services-img-wrap {
  margin: 0 0 20px;
}
.services-img-wrap img {
  width: 100%;
  max-width: 350px;
  height: auto;
  aspect-ratio: 350 / 473;
  object-fit: cover;
  display: block;
  margin: 0 auto;
}

/* services 2-column grid */
.wedding-services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px 20px;
  margin: 15px 0;
}
.wedding-service-item h3 {
  margin: 10px 0 5px 0;
}

.services-fees-full {
  margin: 0;
}
.services-fees-full h2 { margin-bottom:22px; }
.fees-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px 30px;
  margin-top: 15px;
}
.fee-item h3 {
  margin-top: 0;
}

.praise-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 225px));
  gap: 25px 35px;
  margin: 20px 0;
  justify-content: center;
}
.praise-card {
  width: 100%;
  max-width: 225px;
  margin: 0 auto;
  text-align: center;
}
.praise-card img {
  display: block;
  width: 100%;
  max-width: 225px;
  height: auto;
  margin: 0 auto;
}
.praise-card p {
  width: 100%;
  font-size: 0.875rem;
  padding: 0;
  text-align: left;
  margin: 10px 0;
  box-sizing: border-box;
}
.praise-card cite {
  display: block;
  width: 100%;
  margin-top: 8px;
  text-align: left;
  font-weight: bold;
  font-size: 0.75rem;
}

@media (max-width: 980px) {
  .praise-grid {
    grid-template-columns: repeat(3, minmax(0, 225px));
  }
}
@media (max-width: 720px) {
  .praise-grid {
    grid-template-columns: repeat(2, minmax(0, 225px));
  }
}
@media (max-width: 480px) {
  .praise-grid {
    grid-template-columns: 1fr;
  }
}
section.faq {
  display: flex;
  flex-direction: column;
}
.faq-item:first-of-type {
  order: -2;
  padding-top: 10px;
}
section.faq hr:first-of-type {
  order: -1;
}
.faq-item {
  margin-bottom: 20px;
}
.faq-item h3 {
  font-size: 1.083rem;
  margin: 0 0 8px;
  text-align: left;
  font-weight: bold;
}
.faq-item p,
.faq-item ol {
  font-size: 0.917rem;
  font-weight: normal;
  line-height: 1.5;
  margin: 0 0 0 10px;
  text-align: left;
}
.faq-item ol {
  padding-left: 20px;
}
.faq hr {
  border: 0;
  border-top: 1px solid var(--highlight-color);
  width: 50%;
  margin: 20px auto;
}
.faq-image {
  margin: 0 0 20px 0;
}
.faq-image img {
  margin: 0 auto;
}

/* helper classes for semantic HTML cleanup */
.dbr { display: none; }
.success-message { font-size: 1.5rem; font-weight: bold; margin: 20px 0; }

/* contact page form & layout styling */
.contact-container {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 15px;
}
.contact-main {
  flex: 1;
}
.contact-sidebar {
  width: 100%;
}
.contact-img {
  width: 100%;
  min-height: 130px;
  object-fit: cover;
  margin-top: 15px;
}
.contact-blurb {
  width: 100%;
  margin: 15px 0;
  box-sizing: border-box;
  padding: 10px 0;
  text-align: left;
}
.notice-box {
  width: 100%;
  margin: 15px 0 20px;
  box-sizing: border-box;
  background: #fdf5f6;
  border-left: 3px solid #e38d8d;
  padding: 10px 14px;
  text-align: left;
  font-size: 0.875rem;
  color: #333;
}
.notice-box a {
  font-weight: bold;
}

#form .form-row {
  display: block;
  margin-bottom: 10px;
}
#form .label,
#form .field {
  display: block;
  width: 100%;
  vertical-align: top;
  padding: 2px 0;
  box-sizing: border-box;
}
#form .label {
  text-align: left;
  padding-right: 0;
  padding-bottom: 4px;
  font-weight: 500;
}
#form input,
#form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-family: inherit;
  font-size: 16px;
}
#form input {
  padding: 0 12px;
  height: 44px;
}
#form textarea {
  padding: 8px 12px;
}
#form input[type="submit"] {
  background-color: var(--highlight-color);
  color: #333;
  border: none;
  width: 100%;
  height: 44px;
  font-weight: bold;
  letter-spacing: 0.5px;
  cursor: pointer;
  border-radius: 3px;
  margin-bottom: 10px;
  font-size: 16px;
}
#form input[type="submit"]:hover {
  background-color: var(--highlight-hover);
}

/* portfolio gallery centering and spacing (loose match selector) */
div[id^="vlightbox"] {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px 30px;
  margin: 20px auto;
  width: 100%;
}
div[id^="vlightbox"] a[class^="vlightbox"] {
  display: inline-block;
  float: none;
  margin: 0;
}
div[id^="vlightbox"] a[class^="vlightbox"] img {
  width: 200px;
  height: 200px;
  object-fit: cover;
  display: block;
}

/* homepage featured gallery centering and spacing */
.home-gallery {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 15px auto 25px;
}
.home-gallery a {
  display: none;
}
.home-gallery a:first-child {
  display: block;
  overflow: hidden;
  border-radius: 4px;
}
.home-gallery img {
  height: 320px;
  object-fit: cover;
  object-position: bottom center;
  display: block;
}

.social {
  position: absolute;
  top: 32px;
  right: 24px;
  display: none;
}
.home .social,
.contact-sidebar .social {
  text-align: center;
  position: static;
  display: inline-block;
}
.contact-sidebar .social {
  position: static;
  display: block;
  margin-top: 10px;
}
.social a {
  outline: none;
}
.social-icon:hover { background-color: var(--link-hover); }
.social-icon {
  display: inline-block;
  width: 32px;
  height: 32px;
  background-color: var(--highlight-color); /* Default Theme 1 highlight */
  -webkit-mask-image: url(images/social.svg);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 300% 100%;
  mask-image: url(images/social.svg);
  mask-repeat: no-repeat;
  mask-size: 300% 100%;
  transition: background-color 0.2s ease;
  vertical-align: middle;
  margin: 0 3px;
  border-radius: 50%;
}
.home-socials {
  width: 100%;
  margin: 15px auto;
}
.social-lg .social-icon {
  width: 40px;
  height: 40px;
  margin: 0 4px;
}
.social-icon.instagram {
  -webkit-mask-position: 0% 0;
  mask-position: 0% 0;
}
.social-icon.facebook {
  -webkit-mask-position: 50% 0;
  mask-position: 50% 0;
}
.social-icon.pinterest {
  -webkit-mask-position: 100% 0;
  mask-position: 100% 0;
}
/* Nav social icons */
.nav-social .social { display: flex; justify-content: center; position: static; }
.nav-social a { display: inline-block; padding: 0; min-height: auto; border: none; }
.nav-social .social-icon { background-color: var(--link-hover); }
.nav-social .social-icon:hover { background-color: var(--highlight-color); }

/* Desktop & Tablet Media Queries */
@media (min-width: 768px) {
  .wrap {
    max-width: 1000px;
    width: 90%;
    padding: 0 20px;
  }
  .main-content {
    padding: 10px 24px;
  }

  /* Navigation */
  header #nav-toggle.nav-toggle {
    display: none;
  }
  .logo {
    position: absolute;
    top: 0;
    left: 52%;
    transform: translateX(-50%);
    margin: 0;
    z-index: 10;
  }
  .logo a {
    width: 215px;
    max-width: 215px;
    height: 66px;
    min-height: 66px;
    background-size: auto;
  }
  #nav-menu li.nav-social {
    display: none;
  }
  .social {
    display: inline-block;
    position: absolute;
  }
  .nav ul {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    height: 66px;
    max-width: 720px;
    margin: 0 auto 2ex;
    background: transparent;
  }
  .nav ul.nav-open {
    display: flex;
    position: static;
    background: transparent;
    box-shadow: none;
    padding: 0;
    margin: 0 auto 2ex;
  }
  .nav li {
    margin: 0 1.1ex 0;
    display: block;
    width: auto;
    border-bottom: 1px solid transparent;
  }
  .nav li#services {
    margin-right: auto;
  }
  .nav li#faq {
    margin-left: auto;
  }
  .nav li.selected {
    border-color: #333;
  }
  .nav ul.nav-open li {
    display: block;
  }
  .nav li a {
    display: inline-block;
    margin: 0 0 -4px;
    padding: 0;
    min-height: auto;
  }

  /* Home Gallery */
  .home-gallery {
    flex-direction: row;
    gap: 20px;
  }
  .home-gallery a {
    display: block;
    height: auto;
    overflow: visible;
  }
  .home-gallery img {
    width: 200px;
    height: 434px;
    object-position: center center;
  }

  /* Services Page */
  .services-container {
    flex-direction: row;
    position: relative;
  }
  .services-col-right {
    width: 350px;
    flex: 0 0 350px;
    padding-top: 518px; /* 25px initial padding + 473px image height + 20px gap */
  }
  .services-img-wrap {
    position: absolute;
    top: 25px;
    right: 0;
    margin: 0;
    width: 350px;
  }
  .wedding-services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .fees-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Contact Page */
  .contact-container {
    flex-direction: row;
  }
  .contact-sidebar {
    width: 237px;
  }
  .contact-blurb {
    width: 75%;
    margin: 15px 0 0 auto;
    padding: 10px 14px;
  }
  .notice-box {
    width: 50%;
    margin: 15px 0 20px auto;
  }
  #form {
    display: table;
    width: 100%;
  }
  #form .form-row {
    display: table-row;
    margin-bottom: 0;
  }
  #form .label,
  #form .field {
    display: table-cell;
    width: 50%;
    padding: 3px 0;
  }
  #form .label {
    text-align: right;
    padding-right: 10px;
    padding-bottom: 0;
  }

  /* About Page Desktop Layout */
  .stylist-card {
    display: flex;
    align-items: flex-start;
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 25px;
  }
  .stylist-photo {
    flex: 0 0 140px;
    margin: 0 20px 0 0;
  }
  .stylist-photo img {
    margin: 0;
  }
  .stylist-info {
    flex: 1;
  }
  .mbr {
    display: none;
  }
  .dbr {
    display: inline;
  }
  section.faq {
    display: block;
  }
  .faq-image {
    float: right;
    margin: 25px 0 20px 20px;
  }
  #form input,
  #form textarea {
    font-size: 0.833rem;
    padding: 6px 8px;
  }
  #form input {
    height: auto;
  }
  #form input[type="submit"] {
    height: auto;
    padding: 8px 16px;
    font-size: 0.917rem;
  }
  .contact-img {
    min-height: auto;
    object-fit: fill;
  }
}
