/* Standalone catalogue: does not override the existing site's page styles. */ :root {
    --ink:#17352f;
    --body:#61716b;
    --gold:#a77930;
    --paper:#fbfaf7;
    --line:#e5e7df;
    --cream:#f2efe5;
    --font:'Poppins',Arial,sans-serif;
    --display:'Outfit','Trebuchet MS',sans-serif
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:110px
}

body {
    margin:0;
    color:var(--ink);
    background:var(--paper);
    font:14px/1.65 var(--font)
}

button,input,select,textarea {
    font:inherit
}

button,a,input,select,textarea {
    -webkit-tap-highlight-color:transparent
}

button,a {
    touch-action:manipulation
}

button {
    cursor:pointer
}

a {
    color:inherit;
    text-decoration:none
}

img {
    max-width:100%;
    display:block
}

button {
    color:inherit
}

button:disabled {
    cursor:wait
}

h1,h2,h3,p {
    margin-top:0
}

h1,h2,h3 {
    font-family:var(--display);
    font-weight:500
}

button,input,select,textarea {
    border-radius:0
}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
    outline:3px solid #b38034;
    outline-offset:4px
}

[hidden] {
    display:none!important
}

.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
}

.skip-link {
    position:fixed;
    top:8px;
    left:16px;
    z-index:100;
    padding:12px 18px;
    background:var(--ink);
    color:white;
    transform:translateY(-200%)
}

.skip-link:focus {
    transform:translateY(0)
}

.catalog-container {
    width:min(1376px,88%);
    margin-inline:auto
}

.catalog-topbar {
    background:var(--ink);
    color:#fff;
    font-size:10px;
    letter-spacing:.45px
}

.catalog-topbar .catalog-container {
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:center;
    min-height:32px
}

.catalog-topbar a {
    color:#f3eedc
}

.catalog-topbar a span {
    margin:0 9px
}

.catalog-header {
    position:sticky;
    top:0;
    background:rgba(251,250,247,.97);
    z-index:20;
    border-bottom:1px solid var(--line);
    backdrop-filter:blur(14px)
}

.header-inner {
    height:91px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px
}

.catalog-logo img {
    width:155px;
    height:63px;
    object-fit:contain
}

.catalog-nav {
    display:flex;
    align-items:center;
    gap:27px;
    font-size:12px;
    font-weight:500
}

.catalog-nav>a,.catalog-nav summary {
    padding:14px 0;
    white-space:nowrap
}

.catalog-nav>a:hover,.current-nav {
    color:var(--gold)
}

.current-nav {
    border-bottom:1px solid var(--gold)
}

.catalog-kids-dropdown {
    position:relative
}

@media (hover:hover) and (pointer:fine) {
    .catalog-kids-dropdown .catalog-mega {
        display:none;
        z-index:20
    }
    .catalog-kids-dropdown:hover .catalog-mega,
    .catalog-kids-dropdown:focus-within .catalog-mega {
        display:block
    }
}

.catalog-kids-dropdown summary {
    list-style:none;
    cursor:pointer
}

.catalog-kids-dropdown summary::-webkit-details-marker {
    display:none
}

.catalog-kids-dropdown summary span {
    margin-left:6px
}

.catalog-mega {
    position:absolute;
    top:100%;
    left:-24px;
    width:240px;
    background:white;
    padding:16px;
    border:1px solid var(--line);
    border-radius:12px;
    box-shadow:0 18px 45px #17352f14
}

.catalog-mega a {
    display:block;
    padding:9px 12px;
    border-radius:5px
}

.catalog-mega a:first-child {
    font-weight:600;
    border-bottom:1px solid var(--line);
    margin-bottom:6px
}

.catalog-mega a:hover {
    background:var(--cream)
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    padding:13px 22px;
    border:1px solid transparent;
    border-radius:6px;
    font-size:12px;
    font-weight:500;
    line-height:1.5;
    text-align:center;
    transition:background .2s,transform .2s
}

.button span {
    font-size:18px;
    line-height:1
}

.button-primary {
    background:var(--ink);
    color:#fff
}

.button-primary:hover {
    background:#285347;
    transform:translateY(-1px)
}

.button-outline {
    border-color:#c9cfc5;
    background:transparent
}

.button-outline:hover {
    background:var(--cream)
}

.button-light {
    background:#f7f4e9;
    color:var(--ink)
}

.button-light:hover {
    background:white
}

.header-enquiry {
    padding:10px 17px;
    gap:18px;
    white-space:nowrap
}

.nav-toggle {
    display:none
}

.catalog-page .bread-back {
    position:relative;
    overflow:hidden;
    background:#fddc08 url('../img/breadback-yellow.jpg') center/cover no-repeat;
    padding:108px 0 42px;
    text-align:center
}

.catalog-page .bread-back .bb {
    margin:0 0 12px;
    font-size:35px;
    font-family:'Paytone One',sans-serif;
    font-weight:400;
    color:#0e2b5c;
    line-height:1.2
}

.catalog-page .bread-back .breadd {
    display:flex;
    justify-content:center
}

.catalog-page .bread-back .breadcrumb {
    display:inline-block;
    gap:0;
    margin:0 auto;
    padding:5px 20px;
    background:#fff;
    border-radius:50px;
    list-style:none;
    font-size:12px;
    color:#d3343b
}

.catalog-page .bread-back .breadcrumb>li {
    display:inline-block;
    color:#d3343b;
    font-weight:700;
    font-size:12px;
    text-transform:uppercase
}

.catalog-page .bread-back .breadcrumb>li a {
    color:#12366b
}

.catalog-page .bread-back .breadcrumb>li+li:before {
    padding:0 5px;
    color:#7d8da4;
    content:"/\00a0"
}

.catalog-hero {
    background:linear-gradient(105deg,#f4f1e8,#f9f7f0 65%,#f0eee5);
    overflow:hidden
}

.breadcrumb {
    display:flex;
    gap:14px;
    align-items:center;
    padding-top:22px;
    font-size:10px;
    color:#758078
}

.breadcrumb a:hover {
    text-decoration:underline
}

.breadcrumb>span:last-child {
    color:var(--ink)
}

.hero-layout {
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:7%;
    padding:26px 0 34px
}

.eyebrow {
    color:var(--gold);
    font-size:10px;
    font-weight:500;
    letter-spacing:2px;
    margin-bottom:16px
}

.hero-copy .eyebrow {
    display:flex;
    align-items:center;
    gap:10px
}

.tiny-spark {
    font-size:22px;
    line-height:1
}

.hero-copy h1 {
    font-size:clamp(44px,4.6vw,73px);
    line-height:1.06;
    letter-spacing:-2.5px;
    margin:20px 0 22px;
    font-weight:500
}

.hero-copy h1 em {
    font-style:normal;
    color:var(--gold)
}

.hero-description {
    max-width:420px;
    color:var(--body);
    font-size:13px;
    line-height:1.9;
    margin-bottom:26px
}

.hero-cta {
    padding:15px 22px
}

.hero-note {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:10px;
    color:var(--body);
    margin-top:29px
}

.note-line {
    width:29px;
    height:1px;
    background:#b7b8a8
}

.hero-showcase {
    position:relative;
    min-width:0;
    max-width:580px;
    background:#f4f1e8;
    border:1px solid #dedecf;
    border-radius:48% 48% 15px 15px;
    overflow:hidden
}

.showcase-label {
    position:absolute;
    top:34px;
    left:0;
    right:0;
    text-align:center;
    font-size:8px;
    letter-spacing:2px;
    z-index:1;
    color:#6d7567
}

.hero-product {
    display:block;
    aspect-ratio:1.25;
    overflow:hidden
}

.hero-product img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 53%;
    mix-blend-mode:multiply;
    transition:transform .6s
}

.hero-product:hover img {
    transform:scale(1.035)
}

.hero-spark {
    position:absolute;
    top:21%;
    right:8%;
    color:var(--gold);
    font-size:43px;
    line-height:1;
    pointer-events:none
}

.showcase-caption {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:18px 28px;
    border-top:1px solid #dedecf;
    background:#f8f6f0
}

.showcase-caption div {
    display:grid;
    gap:3px
}

.showcase-caption span {
    font-size:8px;
    letter-spacing:1.8px;
    color:var(--body)
}

.showcase-caption strong {
    font-family:var(--display);
    font-size:21px;
    font-weight:500
}

.circle-link {
    height:38px;
    width:38px;
    display:grid;
    place-items:center;
    border:1px solid #c8cabc;
    border-radius:50%;
    font-size:23px
}

.circle-link:hover {
    background:var(--ink);
    color:white
}

.hero-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:22px 0;
    border-top:1px solid #dcdfd3;
    font-size:11px
}

.hero-bottom>span {
    display:flex;
    align-items:center;
    gap:12px
}

.hero-bottom i {
    font-style:normal;
    color:var(--gold);
    font-size:9px
}

.hero-bottom a {
    font-size:10px;
    color:var(--body)
}

.hero-bottom a span {
    margin-left:14px
}

.play-worlds {
    padding-block:64px 54px
}

.section-intro {
    display:flex;
    justify-content:space-between;
    gap:22px;
    align-items:end;
    margin-bottom:25px
}

.section-intro .eyebrow {
    font-size:9px;
    margin-bottom:9px
}

.section-intro h2 {
    font-size:clamp(28px,2.7vw,39px);
    line-height:1.18;
    letter-spacing:-.8px;
    margin-bottom:0
}

.text-link {
    padding:0 0 4px;
    background:none;
    border:0;
    border-bottom:1px solid #bcc6b8;
    font-size:11px;
    font-weight:500;
    white-space:nowrap
}

.text-link span {
    margin-left:15px
}

.world-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px
}

.world-card {
    position:relative;
    display:flex;
    align-items:center;
    min-height:186px;
    border-radius:10px;
    overflow:hidden;
    padding:24px
}

.world-card>div {
    position:relative;
    z-index:1;
    width:53%;
    pointer-events:none
}

.world-card span:not(.world-arrow) {
    font-size:7px;
    letter-spacing:1.2px
}

.world-card h3 {
    font-size:23px;
    line-height:1.18;
    letter-spacing:-.4px;
    margin:10px 0 16px
}

.world-arrow {
    display:grid;
    place-items:center;
    border:1px solid #17352f35;
    border-radius:50%;
    width:28px;
    height:28px;
    font-size:20px
}

.world-card img {
    position:absolute;
    right:-4%;
    bottom:14px;
    width:53%;
    height:145px;
    object-fit:contain;
    transition:transform .35s
}

.world-card:hover img {
    transform:scale(1.055) rotate(-3deg)
}

.world-blue {
    background:#e7edf0
}

.world-peach {
    background:#f2e7da
}

.world-mint {
    background:#e8ede1
}

.world-card .world-photo {
    right:0;
    bottom:-8px;
    mix-blend-mode:multiply;
    border-radius:50%;
    height:170px
}

.collection-section {
    padding:12px 0 65px;
    scroll-margin-top:25px
}

.collection-intro {
    margin-bottom:31px
}

.collection-subtitle {
    font-size:11px;
    color:var(--body);
    line-height:1.8;
    margin-bottom:0
}

.collection-layout {
    display:grid;
    grid-template-columns:210px minmax(0,1fr);
    gap:37px
}

.category-sidebar {
    border-right:1px solid var(--line);
    padding-right:25px
}

.sidebar-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    font-size:12px;
    font-weight:500;
    padding:13px 0 19px
}

.sidebar-heading span {
    font-size:19px;
    color:var(--gold)
}

#category-list {
    display:grid;
    gap:4px
}

.category-button {
    border:0;
    background:transparent;
    border-radius:5px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    text-align:left;
    width:100%;
    padding:10px 11px;
    font-size:11px;
    color:#627269;
    line-height:1.5
}

.category-button:hover {
    background:#f0f0e8
}

.category-button.is-active {
    background:var(--ink);
    color:white
}

.category-count {
    font-size:9px;
    opacity:.75
}

.sidebar-help {
    margin-top:28px;
    padding:22px 17px;
    background:#f2eee3;
    border-radius:8px
}

.sidebar-help>span {
    font-size:27px;
    color:var(--gold)
}

.sidebar-help h3 {
    font-size:22px;
    margin:8px 0
}

.sidebar-help p {
    font-size:10px;
    color:var(--body);
    line-height:1.8;
    margin-bottom:17px
}

.sidebar-help .text-link {
    font-size:10px
}

.catalog-toolbar {
    display:flex;
    align-items:center;
    gap:18px;
    justify-content:space-between
}

.search-field {
    display:flex;
    align-items:center;
    gap:11px;
    padding:11px 15px;
    border:1px solid #dfe3d9;
    border-radius:6px;
    background:white;
    flex:1;
    min-width:100px
}

.search-field svg {
    flex:none;
    color:#768076
}

.search-field input {
    min-width:0;
    width:100%;
    background:none;
    border:0;
    color:var(--ink);
    font-size:11px;
    padding:3px 0
}

.search-field:focus-within {
    outline:2px solid #a77930;
    outline-offset:2px
}

.search-field input:focus-visible {
    outline:0
}

.sort-field {
    display:flex;
    align-items:center;
    gap:8px;
    white-space:nowrap;
    font-size:10px;
    color:var(--body)
}

.sort-field select {
    max-width:145px;
    background:transparent;
    border:0;
    color:var(--ink);
    font-size:11px;
    padding:12px 4px;
    cursor:pointer
}

.mobile-category {
    display:none
}

.collection-meta {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:19px 0 17px;
    font-size:9px;
    color:var(--body)
}

.collection-meta p {
    margin:0
}

.collection-meta>span {
    font-size:8px;
    color:#7b8277
}

.product-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:25px 18px
}

.product-card {
    min-width:0;
    border:1px solid #e3e5da;
    border-radius:10px;
    background:white;
    overflow:hidden;
    transition:box-shadow .25s,transform .25s;
    display:flex;
    flex-direction:column
}

.product-card:hover {
    box-shadow:0 10px 28px #17352f0b;
    transform:translateY(-3px)
}

.product-card-image {
    display:block;
    position:relative;
    aspect-ratio:1.12;
    overflow:hidden;
    background:#f2f0e9;
    border:0;
    width:100%;
    padding:0
}

.product-card-image img {
    height:100%;
    width:100%;
    object-fit:contain;
    transition:transform .4s;
    mix-blend-mode:multiply
}

.product-card:hover .product-card-image img {
    transform:scale(1.035)
}

.product-badge {
    position:absolute;
    left:12px;
    top:12px;
    padding:5px 9px;
    background:#fffdf4e8;
    color:#84632c;
    border:1px solid #e4dec7;
    border-radius:4px;
    font-size:7px;
    letter-spacing:.3px
}

.product-card-body {
    display:flex;
    flex-direction:column;
    flex:1;
    padding:19px 17px 16px
}

.product-eyebrow {
    color:var(--gold);
    font-size:9px;
    letter-spacing:1.2px;
    text-transform:uppercase;
    margin-bottom:8px
}

.product-card h3 {
    font-size:21px;
    letter-spacing:-.4px;
    line-height:1.2;
    margin:0 0 11px
}

.product-card-title {
    color:inherit;
    text-decoration:none
}

.product-card-title:hover {
    color:var(--gold)
}

.product-price {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:6px;
    margin:0 0 6px;
    font-size:18px;
    font-weight:600;
    color:var(--ink)
}

.product-price span {
    font-size:13px;
    font-weight:400;
    color:var(--body)
}

.product-moq {
    margin:0 0 12px;
    font-size:12px;
    color:var(--ink)
}

.product-description {
    color:var(--body);
    font-size:12px;
    line-height:1.85;
    margin-bottom:19px
}

.product-card-footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-top:14px;
    border-top:1px solid #eaede5;
    margin-top:auto
}

.view-details {
    background:none;
    border:0;
    font-size:10px;
    padding:5px 0;
    white-space:nowrap
}

.view-details:after {
    content:' ↗';
    font-size:14px;
    margin-left:5px
}

.view-details:hover {
    text-decoration:underline
}

.product-card-footer .button {
    font-size:10px;
    padding:8px 13px;
    border-radius:4px
}

.collection-footnote {
    font-size:10px;
    color:var(--body);
    border-top:1px solid var(--line);
    padding-top:24px;
    margin:28px 0 0
}

.catalog-empty {
    text-align:center;
    padding:70px 20px;
    background:#f2f0e7;
    border-radius:10px
}

.catalog-empty>span {
    font-size:48px;
    color:var(--gold)
}

.catalog-empty h3 {
    font-size:28px
}

.catalog-empty p {
    color:var(--body);
    font-size:12px
}

.catalog-cta {
    display:flex;
    align-items:center;
    gap:32px;
    justify-content:space-between;
    background:var(--ink);
    color:#fff;
    border-radius:12px;
    padding:42px 45px;
    overflow:hidden
}

.cta-spark {
    font-size:72px;
    color:#c6aa6f;
    line-height:1
}

.catalog-cta>div {
    flex:1
}

.catalog-cta .eyebrow {
    color:#d0b880;
    font-size:8px;
    margin-bottom:10px
}

.catalog-cta h2 {
    font-size:34px;
    line-height:1.2;
    letter-spacing:-.5px;
    margin:0 0 10px
}

.catalog-cta p:last-child {
    font-size:11px;
    color:#c4d0c5;
    margin-bottom:0
}

.catalog-cta .button {
    flex-shrink:0
}

.catalog-footer {
    padding-top:65px
}

.footer-grid {
    display:grid;
    grid-template-columns:1.5fr .8fr .8fr 1.1fr;
    gap:35px;
    padding-bottom:42px
}

.footer-brand img {
    width:150px;
    height:60px;
    object-fit:contain;
    object-position:left
}

.footer-brand p {
    font-size:10px;
    color:var(--body);
    line-height:1.9;
    margin:14px 0 0
}

.footer-grid h2 {
    font:500 11px var(--font);
    margin:12px 0 20px
}

.footer-grid>div>a:not(:first-child) {
    display:block;
    font-size:10px;
    color:var(--body);
    margin:9px 0
}

.footer-grid a:hover {
    color:var(--gold)
}

.footer-contact p {
    font-size:10px;
    color:var(--body);
    line-height:1.9;
    margin-top:17px
}

.footer-bottom {
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:20px 0 24px;
    font-size:9px;
    color:var(--body)
}

.footer-bottom span span {
    color:var(--gold);
    font-size:14px;
    margin-left:10px
}

/* Product and enquiry dialogs. Native dialog supplies focus trapping and Escape. */ .catalog-dialog-open {
    overflow:hidden
}

.catalog-dialog {
    padding:0;
    color:var(--ink);
    border:1px solid #e3e5da;
    border-radius:16px;
    background:var(--paper);
    width:min(920px,calc(100% - 40px));
    max-height:calc(100dvh - 48px);
    overflow:auto;
    box-shadow:0 30px 100px #0f241c40
}

.catalog-dialog::backdrop {
    background:#10291f9c;
    backdrop-filter:blur(5px)
}

.dialog-shell {
    padding:38px;
    position:relative
}

.dialog-close {
    position:absolute;
    right:14px;
    top:14px;
    z-index:2;
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    border:1px solid #d8ddcf;
    border-radius:50%;
    background:#fffef7;
    font-size:25px;
    line-height:1
}

.dialog-close:hover {
    background:var(--ink);
    color:white
}

.product-detail {
    display:grid;
    grid-template-columns:1.15fr 1fr;
    gap:35px;
    align-items:center
}

.detail-gallery {
    min-width:0
}

.detail-image-frame {
    aspect-ratio:1;
    background:#f0eee5;
    border-radius:9px;
    overflow:hidden
}

.detail-main-image {
    width:100%;
    height:100%;
    object-fit:contain;
    mix-blend-mode:multiply
}

.detail-thumbnails {
    display:flex;
    gap:9px;
    margin-top:12px;
    overflow:auto;
    padding:3px
}

.detail-thumbnail {
    flex:none;
    width:58px;
    height:58px;
    padding:3px;
    background:#f1eee4;
    border:1px solid #dcded3;
    border-radius:6px;
    overflow:hidden
}

.detail-thumbnail.is-active {
    border:2px solid var(--gold)
}

.detail-thumbnail img {
    width:100%;
    height:100%;
    object-fit:contain;
    mix-blend-mode:multiply
}

.detail-copy {
    padding:16px 0
}

.detail-copy .product-eyebrow {
    font-size:9px
}

.detail-copy h2 {
    font-size:36px;
    letter-spacing:-1px;
    line-height:1.1;
    margin-bottom:12px
}

.detail-price {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:8px 12px;
    margin:0 0 8px
}

.detail-price strong {
    font-size:28px;
    font-weight:600
}

.detail-unit {
    font-size:14px;
    color:var(--body)
}

.detail-latest-price {
    padding:0;
    border:0;
    background:none;
    color:#1a7a74;
    font-size:14px;
    font-weight:600;
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer
}

.detail-moq {
    margin:0 0 14px;
    font-size:14px;
    color:var(--ink)
}

.detail-spec-table {
    width:100%;
    border-collapse:collapse;
    border:1px solid #e4e0d4;
    margin:0 0 16px;
    background:#fff
}

.detail-spec-table th,
.detail-spec-table td {
    width:50%;
    padding:11px 14px;
    border-bottom:1px solid #e4e0d4;
    text-align:left;
    font-size:13px;
    font-weight:400
}

.detail-spec-table th {
    color:#5c5c5c
}

.detail-spec-table tr:last-child th,
.detail-spec-table tr:last-child td {
    border-bottom:0
}

.detail-extra {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin:16px 0 18px;
    padding-top:14px;
    border-top:1px solid var(--line)
}

.detail-extra dt {
    font-size:11px;
    letter-spacing:.4px;
    text-transform:uppercase;
    color:#8a8478;
    margin-bottom:4px
}

.detail-extra dd {
    margin:0;
    font-size:13px;
    font-weight:500
}

.detail-description {
    color:var(--body);
    font-size:12px;
    line-height:1.9
}

.detail-features {
    list-style:none;
    padding:18px 0;
    margin:22px 0;
    border-block:1px solid var(--line)
}

.detail-features li {
    font-size:11px;
    color:var(--body);
    padding:6px 0 6px 20px;
    position:relative
}

.detail-features li:before {
    content:'✓';
    position:absolute;
    left:0;
    color:var(--gold)
}

.enquiry-dialog {
    max-width:640px
}

.enquiry-shell {
    padding:38px
}

.enquiry-shell>.eyebrow {
    margin-bottom:12px
}

.enquiry-shell h2 {
    font-size:32px;
    letter-spacing:-.8px;
    line-height:1.15;
    margin:0 28px 15px 0
}

.enquiry-intro {
    font-size:11px;
    color:var(--body);
    margin-bottom:25px
}

.enquiry-intro strong {
    color:var(--ink);
    font-weight:500
}

.enquiry-fields {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px
}

.enquiry-fields label {
    font-size:10px;
    font-weight:500
}

.enquiry-fields input,.enquiry-fields textarea {
    display:block;
    width:100%;
    margin-top:7px;
    padding:11px 12px;
    border:1px solid #d7ded0;
    border-radius:5px;
    background:white;
    color:var(--ink);
    font-size:11px;
    font-weight:400
}

.enquiry-fields textarea {
    resize:vertical;
    min-height:90px
}

.full-field {
    grid-column:1/-1
}

.optional {
    font-size:9px;
    color:var(--body);
    font-weight:400
}

.enquiry-note {
    font-size:10px;
    color:var(--body);
    line-height:1.8;
    margin:19px 0 16px
}

.enquiry-actions {
    display:flex;
    gap:11px
}

.enquiry-actions .button {
    font-size:11px;
    gap:12px
}

.enquiry-contact {
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:9px;
    border-top:1px solid var(--line);
    padding-top:18px;
    margin-top:24px;
    font-size:10px
}

.enquiry-contact>span {
    color:var(--body)
}

.gt-contact-status {
    border:1px solid #bdcfb8;
    border-radius:6px;
    background:#eef4e9;
    color:#30523b;
    font-size:11px;
    line-height:1.8;
    padding:12px;
    margin-top:18px
}

@media(min-width:1600px) {
    .hero-layout {
        padding-block:35px 48px
    }

    .hero-product {
        aspect-ratio:1.3
    }

    .product-card-image {
        aspect-ratio:1.13
    }
}

@media(max-width:1180px) {
    .catalog-container {
        width:91%
    }

    .header-inner {
        gap:18px
    }

    .catalog-nav {
        gap:18px;
        font-size:11px
    }

    .catalog-logo img {
        width:137px
    }

    .header-enquiry {
        font-size:10px;
        padding:9px 13px
    }

    .collection-layout {
        grid-template-columns:180px minmax(0,1fr);
        gap:24px
    }

    .category-sidebar {
        padding-right:18px
    }

    .product-grid {
        gap:18px 12px
    }

    .product-card-body {
        padding:17px 13px
    }

    .product-card h3 {
        font-size:20px
    }

    .world-card {
        padding:21px 17px
    }

    .world-card h3 {
        font-size:21px
    }

    .hero-layout {
        gap:5%
    }

    .hero-copy h1 {
        font-size:57px
    }

    .hero-description {
        font-size:12px
    }

    .hero-bottom {
        font-size:10px
    }

    .catalog-cta {
        padding:36px 28px;
        gap:22px
    }

    .catalog-cta h2 {
        font-size:29px
    }
}

@media(max-width:960px) {
    .catalog-nav {
        position:absolute;
        left:0;
        right:0;
        top:100%;
        padding:18px 6%;
        display:none;
        flex-direction:column;
        align-items:stretch;
        gap:2px;
        background:var(--paper);
        border-bottom:1px solid var(--line);
        box-shadow:0 15px 30px #17352f12;
        max-height:calc(100dvh - 90px);
        overflow:auto;
        font-size:13px
    }

    .catalog-nav.is-open {
        display:flex
    }

    .catalog-nav>a,.catalog-nav summary {
        padding:11px 0
    }

    .catalog-kids-dropdown {
        width:100%
    }

    .current-nav {
        border-bottom:0
    }

    .catalog-mega {
        position:static;
        width:100%;
        box-shadow:none;
        padding:6px 10px;
        font-size:12px
    }

    .header-inner {
        height:76px;
        gap:18px
    }

    .catalog-logo {
        margin-right:auto
    }

    .nav-toggle {
        display:inline-flex;
        align-items:center;
        gap:8px;
        font-size:12px;
        padding:10px 12px;
        border:1px solid #d7dccf;
        background:transparent;
        border-radius:6px;
        order:3
    }

    .header-enquiry {
        font-size:11px
    }

    .hero-copy h1 {
        font-size:49px
    }

    .hero-description {
        font-size:12px
    }

    .hero-copy .eyebrow {
        font-size:8px;
        letter-spacing:1.2px
    }

    .hero-note {
        font-size:8px;
        margin-top:22px
    }

    .hero-layout {
        padding-block:26px 34px
    }

    .showcase-label {
        top:26px;
        font-size:6px
    }

    .hero-spark {
        font-size:30px
    }

    .hero-bottom>span {
        font-size:9px;
        gap:8px
    }

    .hero-bottom a {
        font-size:9px
    }

    .play-worlds {
        padding:42px 0
    }

    .world-grid {
        gap:12px
    }

    .world-card {
        min-height:170px;
        padding:18px 14px
    }

    .world-card h3 {
        font-size:20px
    }

    .world-card span:not(.world-arrow) {
        font-size:6px;
        letter-spacing:.6px
    }

    .world-card img {
        width:55%;
        height:120px
    }

    .world-card .world-photo {
        height:138px
    }

    .collection-layout {
        grid-template-columns:160px minmax(0,1fr);
        gap:20px
    }

    .category-sidebar {
        padding-right:12px
    }

    .category-button {
        font-size:9px;
        padding:9px
    }

    .sidebar-heading {
        font-size:10px
    }

    .product-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:20px 15px
    }

    .collection-meta>span {
        display:none
    }

    .catalog-toolbar {
        gap:10px
    }

    .sort-field>span {
        display:none
    }

    .search-field input {
        font-size:10px
    }

    .catalog-cta {
        gap:22px
    }

    .cta-spark {
        font-size:48px
    }

    .catalog-cta h2 {
        font-size:27px
    }

    .catalog-cta .button {
        font-size:10px;
        padding:12px 14px
    }

    .footer-grid {
        grid-template-columns:1.2fr .8fr .8fr;
        gap:25px
    }

    .footer-contact {
        grid-column:1/-1;
        display:flex;
        gap:25px;
        align-items:baseline;
        flex-wrap:wrap
    }

    .footer-contact h2 {
        margin:0
    }

    .footer-contact p {
        margin:0
    }

    .footer-grid .footer-contact>a {
        margin:0
    }

    .footer-grid {
        padding-bottom:30px
    }
}

@media(max-width:680px) {
    html {
        scroll-padding-top:90px
    }

    .catalog-container {
        width:89%
    }

    .catalog-topbar .catalog-container {
        justify-content:center;
        min-height:29px;
        font-size:9px
    }

    .catalog-topbar a {
        display:none
    }

    .header-inner {
        height:72px;
        gap:12px
    }

    .catalog-logo img {
        width:130px;
        height:54px
    }

    .header-enquiry {
        padding:9px 12px;
        font-size:9px;
        gap:8px
    }

    .header-enquiry span {
        font-size:15px
    }

    .nav-toggle {
        font-size:0;
        padding:10px 11px
    }

    .nav-toggle span {
        font-size:17px;
        line-height:1
    }

    .breadcrumb {
        padding-top:18px;
        font-size:9px
    }

    .hero-layout {
        grid-template-columns:1fr;
        gap:30px;
        padding:28px 0
    }

    .hero-copy {
        text-align:center
    }

    .hero-copy .eyebrow {
        justify-content:center;
        font-size:8px;
        letter-spacing:1.6px
    }

    .hero-copy h1 {
        font-size:clamp(45px,10.5vw,64px);
        letter-spacing:-1.9px;
        margin:16px 0 17px
    }

    .hero-description {
        max-width:390px;
        margin:0 auto 23px;
        font-size:11px;
        line-height:1.9
    }

    .hero-cta {
        font-size:11px;
        padding:13px 18px
    }

    .hero-note {
        justify-content:center;
        font-size:8px;
        margin-top:18px
    }

    .hero-showcase {
        width:100%;
        max-width:420px;
        margin-inline:auto
    }

    .hero-product {
        aspect-ratio:1.4
    }

    .showcase-label {
        font-size:7px;
        top:25px
    }

    .showcase-caption {
        padding:14px 22px
    }

    .showcase-caption strong {
        font-size:20px
    }

    .showcase-caption span {
        font-size:7px
    }

    .hero-spark {
        font-size:30px
    }

    .hero-bottom {
        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:8px;
        padding:19px 0
    }

    .hero-bottom>span {
        display:block;
        font-size:8px;
        text-align:center
    }

    .hero-bottom i {
        display:block;
        font-size:8px;
        margin-bottom:3px
    }

    .hero-bottom>a {
        display:none
    }

    .play-worlds {
        padding:35px 0 32px
    }

    .section-intro {
        align-items:start;
        gap:18px;
        margin-bottom:20px
    }

    .section-intro .eyebrow {
        font-size:7px;
        letter-spacing:1.35px;
        margin-bottom:8px
    }

    .section-intro h2 {
        font-size:29px;
        letter-spacing:-.7px
    }

    .play-worlds .section-intro>.text-link {
        display:none
    }

    .world-grid {
        grid-template-columns:1fr;
        gap:10px
    }

    .world-card {
        min-height:127px;
        padding:20px 22px
    }

    .world-card>div {
        width:65%
    }

    .world-card h3 {
        font-size:23px;
        margin:7px 0 11px
    }

    .world-card span:not(.world-arrow) {
        font-size:7px;
        letter-spacing:1.1px
    }

    .world-arrow {
        position:absolute;
        right:16px;
        bottom:0;
        width:25px;
        height:25px;
        font-size:17px;
        display:none
    }

    .world-card img {
        width:37%;
        height:118px;
        bottom:4px;
        right:2%
    }

    .world-card .world-photo {
        height:135px;
        width:35%;
        bottom:-8px;
        right:1%
    }

    .collection-section {
        padding:10px 0 38px
    }

    .collection-intro {
        margin-bottom:22px
    }

    .collection-subtitle {
        display:none
    }

    .collection-layout {
        display:block
    }

    .category-sidebar {
        display:none
    }

    .catalog-toolbar {
        gap:12px;
        align-items:stretch
    }

    .search-field {
        padding:10px;
        gap:8px
    }

    .search-field input {
        font-size:10px
    }

    .sort-field select {
        font-size:10px;
        max-width:105px
    }

    .mobile-category {
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:10px;
        margin-top:13px;
        padding:10px 12px;
        border:1px solid var(--line);
        border-radius:5px;
        background:white
    }

    .mobile-category>span {
        font-size:9px;
        color:var(--body)
    }

    .mobile-category select {
        min-width:0;
        max-width:65%;
        padding:3px 0;
        border:0;
        background:white;
        font-size:10px;
        color:var(--ink)
    }

    .collection-meta {
        padding:16px 0;
        font-size:9px
    }

    .product-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:16px 11px
    }

    .product-card {
        border-radius:8px
    }

    .product-card-image {
        aspect-ratio:1
    }

    .product-card-body {
        padding:13px 11px 11px
    }

    .product-badge {
        left:7px;
        top:7px;
        font-size:6px;
        padding:3px 6px
    }

    .product-eyebrow {
        font-size:7px;
        letter-spacing:.65px;
        margin-bottom:6px
    }

    .product-card h3 {
        font-size:18px;
        margin-bottom:8px;
        line-height:1.15
    }

    .product-description {
        font-size:11px;
        line-height:1.7;
        margin-bottom:14px
    }

    .product-card-footer {
        gap:5px;
        padding-top:11px;
        flex-wrap:wrap
    }

    .view-details {
        font-size:9px;
        min-height:36px;
        display:inline-flex;
        align-items:center
    }

    .view-details:after {
        font-size:12px;
        margin-left:1px
    }

    .product-card-footer .button {
        font-size:9px;
        padding:7px 10px;
        min-height:36px
    }

    .collection-footnote {
        font-size:9px;
        padding-top:20px;
        margin-top:23px
    }

    .catalog-cta {
        padding:29px 24px;
        display:block;
        border-radius:9px;
        position:relative
    }

    .cta-spark {
        position:absolute;
        right:18px;
        top:18px;
        font-size:40px;
        opacity:.3
    }

    .catalog-cta .eyebrow {
        font-size:6px;
        letter-spacing:1.5px;
        max-width:230px
    }

    .catalog-cta h2 {
        font-size:30px;
        max-width:270px
    }

    .catalog-cta p:last-child {
        font-size:10px;
        max-width:240px;
        line-height:1.9
    }

    .catalog-cta .button {
        margin-top:22px;
        font-size:11px
    }

    .catalog-footer {
        padding-top:37px
    }

    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:25px 20px;
        padding-bottom:24px
    }

    .footer-brand {
        grid-column:1/-1
    }

    .footer-brand img {
        width:130px;
        height:52px
    }

    .footer-brand p {
        font-size:10px;
        margin-top:10px
    }

    .footer-grid h2 {
        font-size:10px;
        margin:0 0 16px
    }

    .footer-grid>div>a:not(:first-child) {
        font-size:10px
    }

    .footer-contact {
        display:block
    }

    .footer-grid .footer-contact>a {
        margin:10px 0
    }

    .footer-contact p {
        margin-top:14px
    }

    .footer-bottom {
        font-size:8px;
        padding-top:17px;
        flex-direction:column;
        gap:4px
    }

    .footer-bottom span span {
        font-size:11px
    }

    .catalog-dialog {
        width:calc(100% - 24px);
        max-height:calc(100dvh - 24px);
        border-radius:11px
    }

    .dialog-shell {
        padding:24px 20px
    }

    .product-detail {
        grid-template-columns:1fr;
        gap:18px
    }

    .detail-gallery {
        padding-top:22px
    }

    .detail-image-frame {
        max-height:340px;
        aspect-ratio:1.15
    }

    .detail-copy {
        padding:0
    }

    .detail-copy h2 {
        font-size:30px;
        margin-bottom:14px
    }

    .detail-copy .product-eyebrow {
        font-size:8px
    }

    .detail-spec-table th,
    .detail-spec-table td {
        display:block;
        width:100%;
        padding:8px 12px
    }

    .detail-spec-table th {
        padding-bottom:2px;
        border-bottom:0;
        font-size:11px
    }

    .detail-spec-table td {
        padding-top:0
    }

    .detail-extra {
        grid-template-columns:1fr
    }

    .detail-description {
        font-size:11px;
        margin-bottom:0
    }

    .detail-features {
        margin:17px 0;
        padding:13px 0
    }

    .detail-features li {
        font-size:10px
    }

    .detail-copy>.button {
        width:100%;
        font-size:11px
    }

    .detail-thumbnail {
        width:48px;
        height:48px
    }

    .enquiry-shell {
        padding:30px 21px 23px
    }

    .enquiry-shell>.eyebrow {
        font-size:8px;
        margin-top:8px
    }

    .enquiry-shell h2 {
        font-size:28px;
        max-width:240px
    }

    .enquiry-intro {
        font-size:10px;
        line-height:1.8
    }

    .enquiry-fields {
        gap:15px 12px
    }

    .enquiry-fields label {
        font-size:9px
    }

    .optional {
        font-size:8px
    }

    .enquiry-fields input,.enquiry-fields textarea {
        font-size:16px;
        padding:10px
    }

    .enquiry-actions {
        flex-direction:column
    }

    .enquiry-actions .button {
        width:100%;
        padding:12px
    }

    .enquiry-note {
        font-size:9px
    }

    .enquiry-contact {
        font-size:9px
    }

    .dialog-close {
        width:32px;
        height:32px;
        font-size:23px;
        right:10px;
        top:10px
    }

    .gt-contact-status {
        font-size:10px
    }
}

@media(max-width:360px) {
    .catalog-container {
        width:91%
    }

    .catalog-logo img {
        width:112px
    }

    .header-enquiry {
        font-size:8px
    }

    .hero-copy h1 {
        font-size:43px
    }

    .product-card-body {
        padding:12px 9px
    }

    .product-card h3 {
        font-size:17px
    }

    .product-card-footer {
        align-items:stretch;
        flex-direction:column;
        gap:5px
    }

    .product-card-footer .button {
        padding-block:8px
    }

    .view-details {
        width:100%;
        text-align:center
    }

    .enquiry-fields {
        grid-template-columns:1fr
    }

    .catalog-toolbar {
        gap:6px
    }

    .sort-field select {
        max-width:95px;
        font-size:9px
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }

    *,*:before,*:after {
        transition:none!important;
        animation:none!important
    }
}
