/* Catalogue: scoped additions keep established specifications and legal pages intact. */
[hidden] { display:none !important; }
.skip-link { position:fixed; top:8px; left:16px; z-index:200; padding:12px 20px; background:var(--ivory); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.catalogue-eyebrow { font-size:.73rem; font-weight:700; letter-spacing:.15em; color:var(--lagoon); margin:0 0 16px; }
.catalogue-intro { padding-top:52px; padding-bottom:30px; }
.catalogue-intro h1 { font-size:clamp(2.4rem,5vw,4rem); max-width:820px; letter-spacing:-.025em; }
.catalogue-intro > p:last-child { max-width:670px; color:#526159; font-size:1.1rem; }
.catalogue-section { padding-top:24px; padding-bottom:72px; }
.catalogue-controls { display:grid; grid-template-columns:2fr 1fr 1fr; gap:20px; padding:24px; background:#eeeadd; border-radius:18px; }
.catalogue-controls label { font-size:.8rem; font-weight:600; color:var(--evergreen); }
.catalogue-controls input,.catalogue-controls select { display:block; margin-top:7px; width:100%; min-height:48px; padding:11px 14px; border:1px solid #a1ada4; border-radius:9px; font:inherit; font-size:1rem; color:var(--evergreen); background:#fff; }
.catalogue-chips { display:flex; gap:8px; flex-wrap:wrap; padding:22px 0 6px; }
.catalogue-chips button { min-height:44px; padding:10px 18px; border:1px solid #bcc8bd; border-radius:30px; color:var(--evergreen); background:transparent; font:inherit; font-size:.86rem; cursor:pointer; }
.catalogue-chips button[aria-pressed=true] { background:var(--evergreen); color:white; border-color:var(--evergreen); }
.catalogue-results { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:20px 0 24px; font-size:.9rem; }
.catalogue-results p { margin:0; color:#55645c; }
.catalogue-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 24px; }
.catalogue-card { min-width:0; }
.catalogue-card > a { display:block; text-decoration:none; color:inherit; height:100%; }
.catalogue-picture { position:relative; overflow:hidden; border-radius:18px; background:#ebe5d9; aspect-ratio:4/5; }
.catalogue-picture img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.catalogue-card[data-category=keychains-and-charms] .catalogue-picture { background:#ece8de; }
.catalogue-card[data-category=keychains-and-charms] .catalogue-picture img { object-fit:contain; }
.catalogue-card a:hover .catalogue-picture img { transform:scale(1.025); }
.catalogue-badge { position:absolute; top:14px; left:14px; border-radius:30px; padding:5px 11px; background:rgba(250,246,239,.96); color:#244438; font-size:.69rem; font-weight:600; }
.catalogue-copy { padding:18px 3px 0; }
.catalogue-category { color:#596b61; text-transform:uppercase; letter-spacing:.08em; font-size:.64rem; margin:0 0 7px; }
.catalogue-copy h2 { font-size:1.5rem; margin-bottom:8px; }
.catalogue-copy > p:not(.catalogue-category) { font-size:.92rem; line-height:1.5; margin-bottom:9px; }
.catalogue-copy .catalogue-fact { color:#657168; font-size:.8rem !important; }
.catalogue-link { display:flex; justify-content:space-between; border-top:1px solid #d8ded5; padding-top:12px; margin-top:16px; font-size:.84rem; font-weight:600; color:var(--evergreen); }
.catalogue-disclosure { max-width:800px; color:#657168; font-size:.81rem; line-height:1.65; margin:38px 0 0; }
#catalogue-empty { text-align:center; padding:60px 16px; background:var(--ivory-dim); border-radius:20px; }
.catalogue-back { display:inline-block; font-size:.83rem; margin-bottom:22px; text-decoration:none; }
.page-hero .catalogue-back { color:var(--ivory); }
.catalogue-home-hero { padding:30px 0 44px; background:#e9eddf; }
.catalogue-home-hero > .wrap { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.catalogue-home-copy h1 { font-size:clamp(3rem,5.7vw,5.2rem); letter-spacing:-.045em; line-height:1.02; margin-bottom:24px; }
.catalogue-home-copy > p:not(.catalogue-eyebrow) { max-width:420px; font-size:1.08rem; color:#43564b; }
.catalogue-secondary { display:block; font-size:.88rem; margin-top:20px; text-underline-offset:4px; }
.catalogue-home-image { display:block; position:relative; border-radius:20px; overflow:hidden; }
.catalogue-home-image img { width:100%; height:560px; object-fit:cover; }
.catalogue-home-image > span { position:absolute; bottom:20px; left:20px; background:var(--ivory); color:var(--evergreen); border-radius:10px; padding:12px 18px; font-size:.65rem; letter-spacing:.08em; }
.catalogue-home-image strong { font-size:1rem; letter-spacing:0; }
.catalogue-home-collections { padding-top:56px; padding-bottom:30px; }
.catalogue-section-heading { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-bottom:28px; }
.catalogue-section-heading h2 { font-size:clamp(1.8rem,3vw,2.6rem); margin:0; }
.catalogue-section-heading p { margin:0; color:#596b61; }
.collection-rail { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.collection-rail a { text-decoration:none; }
.collection-rail img { width:100%; height:250px; object-fit:cover; border-radius:14px; }
.collection-rail a:nth-child(2) img { object-fit:contain; background:#e9e3d6; }
.collection-rail h3 { display:flex; justify-content:space-between; font-size:1rem; margin-top:14px; }
.catalogue-story { background:#ecd5c5; padding:64px 0; }
.catalogue-story h2 { font-size:clamp(2.4rem,4vw,3.8rem); }
.catalogue-story p { max-width:490px; }
.catalogue-detail .product-media > img { aspect-ratio:auto; height:auto; max-height:700px; object-fit:contain; box-shadow:none; }
.catalogue-detail .product-media { position:relative; }
.image-expand { display:block; background:var(--ivory); color:var(--evergreen); border:1px solid #acb9ad; border-radius:24px; font:inherit; font-size:.83rem; min-height:44px; margin-top:14px; padding:8px 18px; cursor:pointer; }
.catalogue-image-note { font-size:.75rem; color:#647066; margin:10px 0 8px; }
.cad-link { font-size:.85rem; }
.catalogue-related { padding-top:54px; padding-bottom:64px; }
.catalogue-lightbox { padding:20px; border:0; border-radius:16px; background:var(--ivory); max-width:min(1100px,94vw); max-height:94vh; }
.catalogue-lightbox::backdrop { background:rgba(13,30,23,.85); }
.catalogue-lightbox img { width:100%; height:auto; max-height:76vh; object-fit:contain; }
.catalogue-lightbox button { display:block; margin:0 0 12px auto; min-height:44px; padding:8px 18px; font:inherit; border:1px solid #99a797; border-radius:24px; background:white; color:var(--evergreen); cursor:pointer; }
.catalogue-lightbox p { font-size:.8rem; margin:10px 0 0; }
@media(max-width:1000px) { .catalogue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.catalogue-home-hero > .wrap { gap:28px; }.catalogue-home-image img { height:490px; }.collection-rail { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .catalogue-controls { grid-template-columns:1fr 1fr; padding:18px; gap:14px; }.catalogue-search { grid-column:1/-1; }.catalogue-grid { grid-template-columns:1fr; gap:34px; }.catalogue-intro { padding-top:30px; }.catalogue-home-hero > .wrap { grid-template-columns:1fr; }.catalogue-home-copy { padding:18px 0; }.catalogue-home-image img { height:auto; max-height:540px; }.collection-rail { gap:16px; }.collection-rail img { height:190px; }.collection-rail h3 { line-height:1.3; }.catalogue-chips { gap:7px; }.catalogue-chips button { padding:9px 12px; font-size:.8rem; }.catalogue-detail .page-hero p:not(.breadcrumb):not(.eyebrow) { font-size:.92rem; }.catalogue-badge { font-size:.72rem; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
/* Keep the primary navigation on one line and the first products close to the controls. */
@media(min-width:1051px) { nav.main-nav { gap:20px; flex-wrap:nowrap; } nav.main-nav a { font-size:.88rem; white-space:nowrap; } }
.catalogue-intro { padding-top:32px; padding-bottom:8px; }
.catalogue-intro h1 { font-size:clamp(2.3rem,4.5vw,3.35rem); margin-bottom:12px; }
.catalogue-intro > p:last-child { margin-bottom:0; max-width:800px; }
.catalogue-controls { padding:18px; }
