/** Shopify CDN: Minification failed

Line 177:25 Unexpected ";"

**/
/* SHOPIFY_STYLESHEETS_VERSION: 1.0 */


/* CSS from section stylesheet tags */
/* START_SECTION:pd-band (INDEX:19) */
/* Owner, 2026-09-14 (desktop screenshot): the right half of the band sat as a
   short block at the top of a tall photograph and the rest was empty. Same
   content, same type sizes as every other section (the owner rejected a
   bigger heading and paragraph here: "it is breaking consistency"). The space
   is filled by the column centring itself against the photo, the four points
   sitting two by two with bigger icons and wider gaps, and more room around
   everything. Phones are untouched. */
@media(min-width:900px){
  .band .band__body{align-self:center;padding:clamp(40px,5vw,88px) clamp(40px,5vw,96px)}
  .band .band__body .lede{margin-top:20px!important}
  .band .pts{grid-template-columns:repeat(2,1fr);gap:clamp(36px,3.8vw,60px) 32px;
    margin-top:clamp(40px,4.4vw,68px);max-width:640px}
  .band .pt svg{width:clamp(36px,2.8vw,46px);height:clamp(36px,2.8vw,46px)}
  .band .pt b{margin-top:14px;font-size:clamp(12px,.9vw,13.5px)}
  .band .band__body>p:last-child{margin-top:clamp(40px,4.2vw,64px)!important}
}
/* END_SECTION:pd-band */

/* START_SECTION:pd-circles (INDEX:23) */
.circles__head{position:relative;z-index:1;text-align:center;margin:0 0 28px}
/* The two scattered sprigs in this section used to run down into the material
   band's photograph, which is opaque, so they were cut in half at the section
   edge. They now sit low on the right of the row, inside the section, and any
   overshoot goes upward into the hero, where nothing covers it. */
[id$="__circles"] .flora[style*="left:21.7%"]{left:58%!important;top:auto!important;bottom:32px!important}
[id$="__circles"] .flora[style*="left:22.7%"]{left:78%!important;top:auto!important;bottom:40px!important}
/* END_SECTION:pd-circles */

/* START_SECTION:pd-collection (INDEX:24) */
/* ---------------- collection filter bar ---------------- */
/* Square edges, hairlines and the moss button colour, the same vocabulary as
   the rest of the theme. No pills, no cards. */
.fbar{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  margin-bottom:clamp(22px,3vw,32px)}
.fbar__row{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:4px 0}
.fbar__btn{display:inline-flex;align-items:center;gap:9px;background:none;border:0;
  padding:12px 0;font:inherit;font-weight:500;font-size:11.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--text);cursor:pointer}
.fbar__btn:hover{color:var(--accent)}
.fbar__ic{width:15px;height:15px;flex:none}
.fbar__n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;
  background:var(--btn);color:var(--btn-ink);font-size:10.5px;letter-spacing:0;line-height:1}
.fbar__sort{display:flex;align-items:center;gap:9px;min-width:0}
.fbar__sort label{font-weight:500;font-size:11.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted)}
.fbar__sort select{font:inherit;font-size:14px;color:var(--text);background-color:transparent;
  border:0;border-bottom:1px solid var(--hair);border-radius:0;padding:7px 20px 7px 2px;
  max-width:180px;cursor:pointer;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'><path d='M1 1l4 4 4-4' fill='none' stroke='%236A7A84' stroke-width='1.3'/></svg>");
  background-repeat:no-repeat;background-position:right 2px center}
.fbar__sort select:focus{outline:0;border-bottom-color:var(--accent)}
@media(max-width:520px){
  .fbar__sort label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
    clip-path:inset(50%);white-space:nowrap}
  .fbar__sort select{font-size:13.5px;max-width:150px}
}

/* selections in force */
.fon{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 0 12px}
.fon__x{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;
  border:1px solid var(--accent);color:var(--accent);font-size:13px;line-height:1.15}
.fon__x span{font-size:15px;line-height:1}
.fon__x:hover{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.fon__clr{font-weight:500;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-left:4px}
.fon__clr:hover{color:var(--accent)}

/* the panel */
.fpanel{border-top:1px solid var(--hair);padding:20px 0 24px}
.fgrid{display:grid;gap:22px 30px}
@media(min-width:640px){.fgrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.fgrid{grid-template-columns:repeat(3,1fr)}}
.fg{min-width:0}
.fg__h{font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin:0 0 11px}
.fchips{display:flex;flex-wrap:wrap;gap:7px}
.fchip{display:inline-block;padding:8px 11px;border:1px solid var(--hair);background:var(--page);
  font-size:13.5px;line-height:1.15;color:var(--text);
  transition:border-color .18s ease,background .18s ease,color .18s ease}
.fchip:hover{border-color:var(--accent);color:var(--accent)}
.fchip.is-on{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.fchip.is-on:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-ink)}
.fchip__n{color:inherit;opacity:.6;font-size:12px}
.fcb{display:inline-block;position:relative}
.fcb__i{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.fcb__i:checked+.fchip{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.fcb__i:disabled+.fchip{opacity:.4;cursor:not-allowed}
.fcb__i:focus-visible+.fchip{outline:2px solid var(--accent);outline-offset:2px}
.fprice{display:flex;align-items:center;gap:10px}
.fprice__f{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--hair);
  background:var(--page);padding:7px 10px;font-size:14px;color:var(--muted)}
.fprice__i{width:6ch;font:inherit;font-size:14px;color:var(--text);background:transparent;
  border:0;padding:0;border-radius:0;-moz-appearance:textfield}
.fprice__i::-webkit-outer-spin-button,.fprice__i::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0}
.fprice__i:focus{outline:0}
.fprice__f:focus-within{border-color:var(--accent)}
.fprice__d{font-size:13px;color:var(--muted)}
.fpanel__foot{margin-top:22px}
.fpanel__foot .btn{padding:13px 24px}

/* while a filtered page is being fetched */
[data-pd-coll].is-busy .grid,[data-pd-coll].is-busy .pgn{opacity:.4;
  transition:opacity .15s ease;pointer-events:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  clip-path:inset(50%);white-space:nowrap}
/* END_SECTION:pd-collection */

/* START_SECTION:pd-header (INDEX:28) */
.wsw{display:flex;gap:26px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.wsw a{color:var(--muted);text-decoration:none;padding:2px 0 4px}
.wsw a[aria-current]{color:var(--text);box-shadow:inset 0 -1px 0 var(--accent)}
.wsw a:hover{color:var(--text)}
@media(max-width:899px){html[data-world="clothing"] .hd .hd__in{flex-wrap:wrap;row-gap:0}html[data-world="clothing"] .hd .wsw{order:10;flex-basis:100%;justify-content:center;margin-top:12px;padding-top:9px;border-top:1px solid var(--hair)}}
@media(min-width:900px){html[data-world="clothing"] .hd .hd__in{display:grid;grid-template-columns:1fr auto 1fr;row-gap:0;padding-bottom:0}html[data-world="clothing"] .hd .wsw{grid-column:1;grid-row:1;justify-self:start}html[data-world="clothing"] .hd .brand{grid-column:2;grid-row:1}html[data-world="clothing"] .hd .icons{grid-column:3;grid-row:1;justify-self:end}html[data-world="clothing"] .hd .menu{grid-column:1/-1;grid-row:2;justify-content:center;margin-top:12px;padding:10px 0;border-top:1px solid var(--hair)}}
/* Submenus on desktop. A menu item with children opens a small panel on hover
   or keyboard focus, with a small caret on the parent. */
.menu>li{position:relative}
.menu__caret{width:9px;height:6px;stroke:currentColor;fill:none;stroke-width:1.4;
  margin-left:4px;vertical-align:middle;opacity:.7}
.menu>li.has-sub::after{content:"";position:absolute;left:0;right:0;top:100%;height:16px}
.menu__sub{position:absolute;left:-16px;top:calc(100% + 10px);margin:0;padding:12px 20px 10px;
  list-style:none;min-width:200px;background:var(--page);
  box-shadow:0 22px 44px -26px var(--shadow);z-index:40;
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}
.menu>li:hover>.menu__sub,.menu>li:focus-within>.menu__sub{opacity:1;visibility:visible;transform:none;
  transition-delay:0s}
.menu__sub li{padding:0}
.menu__sub a{display:block;padding:7px 0;font-weight:500;font-size:14.5px;color:var(--muted);
  white-space:nowrap}
.menu__sub a:hover,.menu__sub a[aria-current="page"]{color:var(--text)}

/* The phone menu: its own full screen view. */
/* overflow-x is LOCKED. The three sprigs below are pushed 6 to 9% past the
   drawer's edges on purpose, and with overflow-y:auto alone the panel treats
   that as 39px of sideways scroll (measured at 393: scrollWidth 432 against a
   393 viewport). On a phone that reads as the whole menu drifting left and
   right under the thumb, with the close button pushed off screen (owner
   screenshots, 2026-09-14). Clipping keeps the sprigs where they are and
   removes the slack. */
.mnav{position:fixed;inset:0;z-index:60;background:var(--page);overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .28s ease,transform .28s cubic-bezier(.2,.6,.2,1),visibility 0s linear .28s}
.mnav.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
@media(min-width:900px){.mnav{display:none}}
body.mnav-open{overflow:hidden}
.mnav__bar{display:flex;align-items:center;justify-content:space-between;
  padding-top:14px;padding-bottom:14px;position:sticky;top:0;background:var(--page);z-index:3}
.mnav__close{background:0;border:0;padding:6px;margin:-6px;cursor:pointer;color:var(--text);display:flex}
.mnav__close svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.4}
/* overflow:clip (not hidden) so this never becomes a second scroll container:
   the sprigs are clipped at the body's edge and stop counting towards the
   drawer's scrollable width at all. Belt and braces with the rule above. */
.mnav__body{position:relative;padding-top:8px;padding-bottom:56px;min-height:calc(100% - 68px);overflow:clip}
.mnav__body>*:not(.flora){position:relative;z-index:1}
.mnav__fl{position:absolute;z-index:0;pointer-events:none;opacity:var(--flora-op)}
.mnav__fl--1{width:36%;right:-8%;top:-1%;transform:rotate(8deg)}
.mnav__fl--2{width:30%;left:-9%;top:46%;transform:rotate(-12deg)}
.mnav__fl--3{width:38%;right:-6%;bottom:2%;transform:rotate(5deg)}
.mnav__eyebrow{margin:24px 0 16px}
.mnav__grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 22px;padding:10px 8px 8px}
.mnav__tile{display:block}
.mnav__tile .pola__c{font-size:18px;padding:10px 2px 12px}
  opacity:var(--flora-op);pointer-events:none}
.mnav__list{list-style:none;margin:30px 0 0;padding:0}
.mnav__list a{display:block;padding:11px 0;font-family:var(--display);font-weight:300;
  font-size:28px;line-height:1.15;color:var(--text)}
.mnav__meta{margin-top:34px}
/* 2026-10-13: minimal phone menu. One list in the display face, children as a
   small row beneath their parent, no prints, no sprigs. */
.mnav .mnav__list{list-style:none;margin:6px 0 0;padding:0}
.mnav .mnav__list>li{border-bottom:1px solid var(--hair)}
.mnav .mnav__list>li>a{display:block;padding:16px 0;font-family:var(--display);font-weight:300;font-size:24px;line-height:1.2;color:var(--text)}
.mnav .mnav__sub{list-style:none;margin:-8px 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px}
.mnav .mnav__sub a{display:inline-block;padding:4px 0;font-size:15px;color:var(--muted)}
.mnav .mnav__list--more{margin-top:22px}
.mnav .mnav__list--more>li{border-bottom:0}
.mnav .mnav__list--more>li>a{font-family:var(--body);font-weight:500;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:11px 0}
.mnav .mnav__meta{margin-top:28px}
.wsw a[aria-current]{box-shadow:inset 0 -1px 0 var(--text)}
/* END_SECTION:pd-header */

/* START_SECTION:pd-hero (INDEX:29) */
/* 2026-10-13: hero laid out like the jewellery world's. Copy on the left, one
   straight photo on the right; no blob, no sprigs, no taped frames. */
.hero--split{display:grid;gap:28px;align-items:stretch;padding:clamp(20px,3vw,36px) 0 clamp(40px,5vw,64px)}
.hero--split .hero__copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}
.hero--split .h-hero{margin-top:14px;max-width:12ch}
.hero--split .lede{margin-top:clamp(18px,2.6vw,28px);max-width:42ch}
.hero--split .hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(22px,3vw,30px)}
.hero--split .hero__cta .btn{border-radius:8px}
.hero--split .hero__cta .btn--ghost{padding:10px 16px;font-size:12px;letter-spacing:.08em}
.hero--split .hero__proof{margin-top:18px}
.hero--split .hero__proof b{color:var(--text);font-weight:500}
.hero--split .hero__art{position:relative;overflow:hidden;border-radius:0;aspect-ratio:1;background:var(--card)}
.hero--split .hero__art img,.hero--split .hero__art svg{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
@media(min-width:900px){.hero--split{grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:stretch}.hero--split .hero__art{aspect-ratio:1;width:100%;max-width:none;justify-self:stretch}}
/* END_SECTION:pd-hero */

/* START_SECTION:pd-product (INDEX:34) */
/* Owner, 2026-09-14: "scroll tab for more images instead of +4", then "give a
   left right swipe on the main image also". The main image is a track: every
   photo is a full width slide, snapped, swiped on touch and dragged or
   arrowed with a mouse. A small counter sits on the image. The thumbnail
   strip under it scrolls sideways, marks the photo on screen, and jumps to a
   photo on tap. Each thumb is a fifth of the width so the fifth is cut off at
   the edge and the strip reads as scrollable. Replaces the +N tile. */
.gal .gal__stage{grid-column:1/-1;position:relative}
.gal .gal__main{display:flex;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;outline:none}
.gal .gal__main::-webkit-scrollbar{display:none}
.gal .gal__slide{flex:0 0 100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always}
.gal .gal__slide img{width:100%;height:100%;object-fit:cover;display:block;cursor:grab}
/* Owner, 2026-09-14 (phone screenshots): colour charts, size charts and the
   "Specially for you" card are square or landscape, and cropping them to the
   3:4 frame cut their text and swatches off. A portrait photo (aspect .85 or
   narrower) still fills the frame; anything wider is shown whole on the page
   colour, the same in the thumbnail strip. */
.gal .gal__slide--fit img,.gal .gal__ts .gal__t--fit img{object-fit:contain;background:var(--page)}
.gal .gal__nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;
  border-radius:50%;border:1px solid var(--hair);background:rgba(244,240,232,.88);
  display:grid;place-items:center;cursor:pointer;padding:0;z-index:2;color:var(--text)}
.gal .gal__nav svg{width:18px;height:9px;stroke:currentColor;fill:none;stroke-width:1.4}
.gal .gal__nav--prev{left:12px}
.gal .gal__nav--next{right:12px}
.gal .gal__nav:hover{background:var(--page)}
@media(max-width:899px){.gal .gal__nav{display:none}}
.gal .gal__count{position:absolute;right:12px;bottom:10px;z-index:2;padding:4px 9px;
  background:rgba(244,240,232,.88);border:1px solid var(--hair);font-size:11px;
  letter-spacing:.16em;font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}
.gal .gal__ts{grid-column:1/-1;display:flex;gap:10px;overflow-x:auto;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding:2px 2px 4px;margin:-2px -2px -4px}
.gal .gal__ts::-webkit-scrollbar{display:none}
.gal .gal__ts .gal__t{flex:0 0 20%;scroll-snap-align:start;padding:0;font:inherit;
  transition:border-color .2s}
.gal .gal__ts .gal__t.is-on{border-color:var(--text)}
/* END_SECTION:pd-product */