/* Montserrat served from the site itself (from Braden's Downloads folder) */
@font-face { font-family: Montserrat; src: url(assets/fonts/Montserrat-VariableFont_wght.ttf) format("truetype"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: Montserrat; src: url(assets/fonts/Montserrat-Italic-VariableFont_wght.ttf) format("truetype"); font-weight: 100 900; font-style: italic; font-display: swap; }
/* Tony Kelly-style layout layer: signature top-left + breadcrumbs, slide-out menu,
   3-column square galleries with hover overlay, split detail view. */

/* Header */
#header { display: none !important; }
.tk-header {
  position: absolute; top: 0; left: 0; right: 0; z-index: 1000;
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 18px 28px 0; height: 110px; box-sizing: border-box; background: #fff;
}
.tk-brand img { display: block; height: 58px; width: auto; }
.tk-crumbs { margin-top: 6px; font-size: 13px; letter-spacing: .01em; color: #9a9a9a; }
.tk-crumbs a { color: #222; text-decoration: none; }
.tk-crumbs a:hover { text-decoration: underline; }
.tk-crumbs .sep { margin: 0 7px; color: #bbb; }
.tk-burger {
  margin-top: 14px; width: 30px; height: 22px; padding: 0; border: 0; background: none; cursor: pointer;
  display: flex; flex-direction: column; justify-content: space-between;
}
.tk-burger span { display: block; height: 3px; background: #111; border-radius: 1px; }

/* Slide-out menu */
.tk-scrim { position: fixed; inset: 0; z-index: 1001; background: rgba(0,0,0,.08); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.tk-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 1002; width: 300px; max-width: 86vw;
  background: #fff; border-left: 1px solid #eee; box-shadow: -8px 0 30px rgba(0,0,0,.06);
  transform: translateX(100%); transition: transform .35s cubic-bezier(.4,0,.2,1);
  padding: 74px 30px 30px; box-sizing: border-box; overflow-y: auto;
}
.tk-menu-open .tk-drawer { transform: none; }
.tk-menu-open .tk-scrim { opacity: 1; visibility: visible; }
.tk-close { position: absolute; top: 22px; right: 24px; border: 0; background: none; font-size: 34px; line-height: 1; cursor: pointer; color: #111; }
.tk-drawer nav { border-bottom: 1px solid #eee; padding-bottom: 18px; }
.tk-drawer nav a {
  display: block; text-align: center; padding: 11px 0; color: #111; text-decoration: none;
  font-weight: 700; font-size: 16px; letter-spacing: .06em; text-transform: uppercase;
}
.tk-drawer nav a:hover, .tk-drawer nav a[aria-current] { opacity: .55; }
.tk-social { display: flex; justify-content: center; gap: 14px; padding-top: 20px; }
.tk-social a { width: 22px; height: 22px; color: #111; }
.tk-social svg { width: 100%; height: 100%; fill: currentColor; }

/* Galleries: 3 big square tiles */
.gallery-grid-wrapper, .gallery-masonry-wrapper {
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important;
  gap: clamp(14px, 1.2vw, 30px) !important; max-width: 2200px; margin: 0 auto !important; height: auto !important;
}
.gallery-grid .gallery-grid-item-wrapper { padding-bottom: 100% !important; }
.gallery-masonry-item { position: relative !important; transform: none !important; width: auto !important; }
.gallery-masonry-item-wrapper { position: relative !important; height: 0 !important; padding-bottom: 100% !important; overflow: hidden; }
.gallery-masonry-item-wrapper > a { position: absolute !important; inset: 0; display: block; }
.gallery-masonry-item-wrapper img { position: absolute !important; inset: 0; display: block; width: 100% !important; height: 100% !important; object-fit: cover !important; }
.gallery-grid-lightbox-link, .gallery-masonry-lightbox-link { position: absolute !important; inset: 0; display: block; }
.gallery-grid-lightbox-link::after, .gallery-masonry-lightbox-link::after {
  content: attr(data-tk-label); position: absolute; inset: 0; z-index: 2;
  display: flex; align-items: center; justify-content: center; white-space: pre-line; text-align: center;
  background: rgba(255,255,255,.62); color: #111; font-weight: 700; font-size: 15px; letter-spacing: .08em; line-height: 2;
  opacity: 0; transition: opacity .25s;
}
.gallery-grid-lightbox-link:hover::after, .gallery-masonry-lightbox-link:hover::after { opacity: 1; }
.gallery-section .content-wrapper { padding-left: 4vw !important; padding-right: 4vw !important; }
.gallery-grid, .gallery-masonry { padding-left: 0 !important; padding-right: 0 !important; }
@media (max-width: 767px) {
  .tk-header { padding: 14px 16px 0; height: 92px; }
  .tk-brand img { height: 46px; }
  .gallery-grid-wrapper, .gallery-masonry-wrapper { grid-template-columns: 1fr !important; gap: 16px !important; }
}

/* Split detail view */
.tk-detail { position: fixed; inset: 0; z-index: 99999; background: #fff; display: none; }
.tk-detail.open { display: grid; grid-template-columns: minmax(300px, 38%) 1fr; align-items: center; }
.tk-detail-info { padding: 0 3vw 0 8vw; max-width: 440px; font-family: inherit; color: #222; }
.tk-detail-info h2 {
  margin: 0 0 22px; font-family: inherit !important; font-weight: 400 !important; font-size: 24px !important;
  line-height: 1.25 !important; letter-spacing: .04em !important; text-transform: uppercase;
}
.tk-detail-info p { margin: 0 0 14px; font-size: 13px; line-height: 1.55; color: #333; white-space: pre-line; }
.tk-detail-info .tk-meta { margin: 0 0 18px; }
.tk-detail-info .tk-sizes-title { margin: 6px 0 10px; }
.tk-detail-info ul { margin: 0 0 18px; padding-left: 18px; font-size: 13px; line-height: 1.55; }
.tk-detail-info li { margin-bottom: 14px; white-space: pre-line; }
.tk-detail-info .tk-count { color: #aaa; font-size: 12px; }
.tk-detail-info [hidden] { display: none !important; }
.tk-inquire {
  display: inline-block; margin-top: 8px; padding: 4px 9px; border: 2px solid #111; color: #111;
  font-weight: 700; font-size: 13px; letter-spacing: .06em; text-decoration: none; text-transform: uppercase;
}
.tk-inquire:hover { background: #111; color: #fff; }
.tk-detail-media { height: 100vh; display: flex; align-items: center; justify-content: center; padding: 70px 7vw 70px 0; box-sizing: border-box; }
.tk-detail-media img { max-width: 100%; max-height: 100%; object-fit: contain; }
.tk-detail button { position: absolute; border: 0; background: none; cursor: pointer; color: #111; }
.tk-d-close { top: 22px; right: 26px; font-size: 38px; line-height: 1; }
.tk-d-prev, .tk-d-next { top: 50%; transform: translateY(-50%); font-size: 44px; color: #aaa !important; padding: 20px; }
.tk-d-prev { left: 2vw; } .tk-d-next { right: 1vw; }
@media (max-width: 767px) {
  .tk-detail.open { display: flex; flex-direction: column-reverse; justify-content: center; overflow-y: auto; }
  .tk-detail-media { height: auto; padding: 70px 16px 10px; }
  .tk-detail-media img { max-height: 60vh; }
  .tk-detail-info { padding: 10px 24px 30px; text-align: center; }
  .tk-d-prev, .tk-d-next { top: 35%; }
}

/* --- fixes from the site check --- */
/* closed drawer must not cast its shadow onto the page */
.tk-drawer { visibility: hidden; transition: transform .35s cubic-bezier(.4,0,.2,1), visibility 0s linear .35s; }
.tk-menu-open .tk-drawer { visibility: visible; transition: transform .35s cubic-bezier(.4,0,.2,1); }
/* comfortable tap target for the menu button */
.tk-burger { box-sizing: content-box; padding: 11px; margin: 3px -11px 0 0; }
/* the breadcrumbs under the signature replace Squarespace's product breadcrumb */
.product-nav { display: none !important; }
/* product photos: one at a time with arrows + thumbnails */
.product-gallery-slides-item { display: none !important; }
.product-gallery-slides-item.tk-active { display: block !important; position: relative !important; }
.product-gallery-slides-item .product-image-zoom-duplicate { display: none !important; }
.product-gallery-slides-item img { width: 100%; height: auto; display: block; }
.product-gallery-slides { position: relative; }
.product-gallery-carousel-controls { position: absolute; inset: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; pointer-events: none; }
.product-gallery-carousel-control { pointer-events: auto; width: 44px; height: 44px; border: 0; background: rgba(255,255,255,.75); cursor: pointer; font-size: 26px; color: #111; }
.product-gallery-prev::before { content: "\2039"; } .product-gallery-next::before { content: "\203A"; }
.product-gallery-current-slide-indicator { position: absolute; right: 10px; bottom: 10px; z-index: 2; background: rgba(255,255,255,.8); padding: 2px 8px; font-size: 12px; }
.product-gallery-scroll { display: block !important; margin-top: 10px; overflow-x: auto; }
.product-gallery-thumbnails { display: flex !important; gap: 8px; }
.product-gallery-thumbnails-item { flex: 0 0 64px; width: 64px; height: 64px; padding: 0; border: 2px solid transparent; background: none; cursor: pointer; opacity: .6; }
.product-gallery-thumbnails-item[aria-current="true"] { border-color: #111; opacity: 1; }
.product-gallery-thumbnails-item img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.product-gallery { height: auto !important; }
/* gallery page pagination ("next project") must stay inside the screen on phones */
.item-pagination, .item-pagination-link { max-width: 100%; box-sizing: border-box; }
.pagination-title-wrapper { min-width: 0; }
.item-pagination-title { overflow-wrap: anywhere; }
@media (max-width: 767px) { .item-pagination-title { font-size: 7vw !important; } }
.product-gallery-slides-item.tk-active { z-index: 1 !important; }
.product-gallery-carousel-controls, .product-gallery-current-slide-indicator { z-index: 5 !important; opacity: 1 !important; visibility: visible !important; }

/* Typeface: Montserrat everywhere, like tonykellyworld.com */
html body, body *:not(svg):not(path):not(use) { font-family: Montserrat, "Helvetica Neue", Arial, sans-serif !important; }
body h1 { font-weight: 500 !important; letter-spacing: 0 !important; }
body h2, body h3, body h4 { font-weight: 700 !important; letter-spacing: 0 !important; }
body p, body li { font-weight: 400 !important; }
.tk-drawer nav a { font-weight: 700 !important; font-size: 18px !important; }
/* bolder titles */
body h1 { font-weight: 700 !important; }
.tk-detail-info h2 { font-weight: 600 !important; }
