/* Independent theme foundation and progressive enhancement. */
html { background: #17100b; }
body { margin: 0; font-family: 'Jost', sans-serif; line-height: 1.5; }
img { max-width: 100%; }
button, input, textarea, select { font: inherit; }
.cosmos-site-header a, .cosmos-page a { color: var(--ivoire); }
.cosmos-home .cosmos-btn, .cosmos-home .cosmos-ticker__item { color: var(--or-clair); }
.cosmos-home .cosmos-btn--ghost { color: var(--ivoire); }
.cosmos-home .cosmos-btn:hover { color: var(--nuit); }
.cosmos-home .cosmos-btn--ghost:hover { color: var(--or-clair); }
.cosmos-home a:focus-visible, .cosmos-home button:focus-visible { outline: 2px solid var(--or-clair); outline-offset: 4px; }
.cosmos-site-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; padding: 1rem clamp(1.2rem, 4vw, 4rem); border-bottom: 1px solid rgba(201,160,92,.22); }
.cosmos-site-brand { font-family: 'Cormorant Garamond',serif; letter-spacing: .1em; font-size: 1.35rem; }
.cosmos-site-brand span { font-size: .9rem; color: var(--or-clair); }
.cosmos-site-header ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 1rem; flex-wrap: wrap; }
.cosmos-site-header .sub-menu { display: block; padding: .5rem; font-size: .85rem; }
.cosmos-page { max-width: 1080px; margin: auto; padding: 3rem 1.2rem; min-height: 60vh; }
.cosmos-skip { position: fixed; top: -100px; left: 1rem; z-index: 10000; padding: .8rem; background: #f3e8d8; color: #17100b; }
.cosmos-skip:focus { top: 1rem; }
.cosmos-slide-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.cosmos-portrait { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; border-radius: inherit; }
.cosmos-circle-image { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.cosmos-ticker__set { display: flex; }
.cosmos-ticker:has(.cosmos-ticker__item:focus-visible) .cosmos-ticker__track { animation: none; transform: none; }
.cosmos-ticker:has(.cosmos-ticker__item:focus-visible) { overflow-x: auto; }
.cosmos-ticker:has(.cosmos-ticker__item:focus-visible) .cosmos-ticker__set[aria-hidden] { display: none; }
.cosmos-slider__dot { position: relative; }
.cosmos-slider__dot::before { content: ''; position: absolute; inset: -8px; }
.cosmos-slider__dots { gap: 1rem; }
.cosmos-motion-toggle { position: relative; z-index: 3; margin-top: 1.3rem; background: transparent; color: var(--or-clair); border: 1px solid rgba(201,160,92,.4); border-radius: 999px; padding: .4rem .8rem; font-size: .7rem; cursor: pointer; }
.cosmos-paused *, .cosmos-paused *::before, .cosmos-paused *::after { animation-play-state: paused !important; }
.cosmos-paused .cosmos-reveal { opacity: 1; filter: none; transform: none; }
.cosmos-paused .has-tilt { transform: none !important; }
.cosmos-btn[aria-disabled] { cursor: default; }
.cosmos-ripple { background: rgba(227,201,138,.45); }
@media (prefers-reduced-motion: reduce) {
 .cosmos-home *, .cosmos-home *::before, .cosmos-home *::after { transition: none !important; scroll-behavior: auto !important; }
 .cosmos-home .cosmos-reveal { opacity: 1; transform: none; filter: none; }
 .cosmos-home .has-tilt:hover, .cosmos-home .has-tilt:active { transform: none; }
 .cosmos-ticker__set[aria-hidden] { display: none; }
 .cosmos-ticker__track, .cosmos-ticker__set { width: 100%; flex-wrap: wrap; justify-content: center; gap: .65rem 0; }
 .cosmos-ticker::before, .cosmos-ticker::after { display: none; }
}

/* A short dynamic catalogue still fills both halves of the seamless ticker. */
.cosmos-ticker__set { flex-shrink: 0; }
.cosmos-ticker__track { animation: none; }
.cosmos-ticker__track.is-looping { animation: cosmos-ticker-scroll 32s linear infinite; }
.cosmos-ticker:hover .cosmos-ticker__track.is-looping { animation-play-state: paused; }
.cosmos-ticker:has(.cosmos-ticker__item:focus-visible) .cosmos-ticker__track { animation: none; transform: none; }
.cosmos-ticker:has(.cosmos-ticker__item:focus-visible) [data-ticker-fill] { display: none; }
@media (prefers-reduced-motion: reduce) {
 .cosmos-ticker__track.is-looping { animation: none; }
 .cosmos-ticker [data-ticker-fill] { display: none; }
}
/* Keep the founders introduction and both portraits within a typical viewport. */
.cosmos-home .cosmos-fondateurs { padding: clamp(1rem, 3svh, 2rem) 1.2rem; overflow: visible; }
.cosmos-home .cosmos-fondateurs h2 { font-size: clamp(1.65rem, 4vw, 2.5rem); line-height: 1.15; margin: .35rem 0 .6rem; }
.cosmos-home .cosmos-fondateurs > p { margin-bottom: clamp(.8rem, 2svh, 1.4rem); line-height: 1.5; }
.cosmos-home .cosmos-fondateurs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.65rem, 2vw, 2rem); max-width: 720px; }
.cosmos-home .cosmos-fondateur { padding: clamp(.5rem, 1.5vw, 1rem); border-radius: 18px; min-width: 0; }
.cosmos-home .cosmos-fondateur__photo { width: min(100%, 32svh); aspect-ratio: 4 / 5; margin-bottom: .75rem; flex-shrink: 0; }
.cosmos-home .cosmos-fondateur__nom { font-size: clamp(1.05rem, 2.4vw, 1.65rem); overflow-wrap: anywhere; margin-bottom: .25rem; }
.cosmos-home .cosmos-fondateur__nom::after { margin-top: .45rem; }
.cosmos-home .cosmos-fondateur__poste { font-size: .7rem; letter-spacing: .08em; }
@media (max-height: 500px) and (min-width: 641px) {
 .cosmos-home .cosmos-fondateurs { padding-block: .75rem; }
 .cosmos-home .cosmos-fondateurs h2 { font-size: 1.65rem; }
 .cosmos-home .cosmos-fondateurs > p { margin-bottom: .65rem; }
 .cosmos-home .cosmos-fondateur__photo { width: 16svh; margin-bottom: .4rem; }
}
/* Homepage occasions only: arch cards and a separate standard collection banner. */
.cosmos-occasions--arches > p { max-width: 560px; text-wrap: balance; color: #d8c7af; }
.cosmos-occasions--arches .cosmos-occasion-list { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; max-width:1080px; padding:0; margin:0 auto; list-style:none; }
.cosmos-occasions--arches .cosmos-occasion-list > li { display:flex; flex:0 0 calc((100% - 60px)/4); min-width:0; }
.cosmos-occasions--arches .cosmos-occasion { display:flex; flex-direction:column; align-items:center; width:100%; padding:16px; border:1px solid rgba(201,160,92,.3); border-radius:12px; background:#302119; color:var(--ivoire); text-decoration:none; transition:transform 200ms,border-color 200ms; }
.cosmos-occasions--arches .cosmos-occasion__media { display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1.6; border-radius:50% 50% 0 0 / 85% 85% 0 0; border:1px solid rgba(201,160,92,.6); background:#3b2a20; overflow:hidden; color:var(--or); transition:border-color 200ms,box-shadow 200ms; }
.cosmos-occasions--arches .cosmos-occasion__media img { display:block; width:100%; height:100%; object-fit:cover; }
.cosmos-occasions--arches .cosmos-occasion__media svg { flex:none; }
.cosmos-occasions--arches .cosmos-occasion__title { font-family:'Cormorant Garamond',Georgia,serif; font-size:22px; line-height:1.2; margin-top:16px; }
.cosmos-occasions--arches .cosmos-occasion__arabic { font-family:Amiri,serif; font-size:15px; line-height:1.4; color:#d8c7af; }
.cosmos-occasions--arches .cosmos-occasion__description { font-size:13px; line-height:1.5; color:#d8c7af; margin:8px 0 16px; text-wrap:balance; }
.cosmos-occasions--arches .cosmos-occasion__action { color:var(--or); font-size:13px; margin-top:auto; display:flex; gap:8px; align-items:center; }
.cosmos-occasions--arches .cosmos-occasion:hover,.cosmos-occasions--arches .cosmos-occasion:focus-visible { border-color:var(--or); transform:translateY(-3px); }
.cosmos-occasions--arches .cosmos-occasion:hover .cosmos-occasion__media,.cosmos-occasions--arches .cosmos-occasion:focus-visible .cosmos-occasion__media { border-color:var(--or); box-shadow:inset 0 0 0 1px var(--or); }
.cosmos-occasions--arches a:focus-visible { outline:2px solid var(--or); outline-offset:4px; }
.cosmos-occasions--arches a[aria-disabled] { cursor:default; }
.cosmos-occasions--arches .cosmos-occasion-standard { max-width:1080px; margin:24px auto 0; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px; background:#302119; border:1px solid rgba(201,160,92,.3); border-radius:12px; text-align:left; }
.cosmos-occasions--arches .cosmos-occasion-standard h3 { font-size:26px; }
.cosmos-occasions--arches .cosmos-occasion-standard p { color:#d8c7af; font-size:14px; margin:8px 0 0; text-wrap:balance; }
.cosmos-occasions--arches .cosmos-occasion-standard__link { flex-shrink:0; display:inline-flex; gap:10px; padding:10px 20px; border:1px solid var(--or); border-radius:8px; color:var(--or); text-decoration:none; transition:transform 200ms,border-color 200ms; }
.cosmos-occasions--arches .cosmos-occasion-standard__link:hover { transform:translateY(-3px); border-color:var(--or-clair); }
@media (min-width:640px) and (max-width:1099px) { .cosmos-occasions--arches .cosmos-occasion-list > li { flex-basis:calc((100% - 40px)/3); } }
@media (min-width:640px) and (max-width:719px) { .cosmos-occasions--arches .cosmos-occasion-list > li { flex-basis:calc((100% - 20px)/2); } }
@media (max-width:639px) {
 .cosmos-occasions--arches .cosmos-occasion-list { gap:12px; }
 .cosmos-occasions--arches .cosmos-occasion-list > li { flex-basis:calc((100% - 12px)/2); }
 .cosmos-occasions--arches .cosmos-occasion__media { aspect-ratio:auto; height:90px; }
 .cosmos-occasions--arches .cosmos-occasion__title { font-size:18px; }
 .cosmos-occasions--arches .cosmos-occasion__description { font-size:12px; }
 .cosmos-occasions--arches .cosmos-occasion-standard { flex-direction:column; text-align:center; padding:20px 16px; gap:16px; }
}
@media (prefers-reduced-motion:reduce) { .cosmos-occasions--arches .cosmos-occasion:hover,.cosmos-occasions--arches .cosmos-occasion:focus-visible,.cosmos-occasions--arches .cosmos-occasion-standard__link:hover { transform:none; } }
/* Immersive specialty cards, scoped exclusively to the homepage specialty section. */
.cosmos-features > p { max-width:560px; text-wrap:balance; }
.cosmos-features .cosmos-features__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:1040px; gap:24px; margin:0 auto; }
.cosmos-features .cosmos-feature { position:relative; isolation:isolate; display:flex; align-items:flex-end; min-height:420px; min-width:0; overflow:hidden; border:1px solid rgba(201,160,92,.3); border-radius:12px; color:var(--ivoire); text-decoration:none; text-align:left; background:#3f281c; transition:border-color 300ms; }
.cosmos-features .cosmos-feature--mignardises { background:#4a3022; }
.cosmos-features .cosmos-feature__media { position:absolute; inset:0; z-index:-1; }
.cosmos-features .cosmos-feature__media img { display:block; width:100%; height:100%; object-fit:cover; border-radius:0; transition:transform 300ms; }
.cosmos-features .cosmos-feature__label { position:absolute; top:16px; left:16px; padding:6px 12px; border:1px solid rgba(201,160,92,.4); border-radius:999px; background:rgba(26,15,10,.96); color:var(--or); font-size:12px; line-height:1.5; }
.cosmos-features .cosmos-feature__content { width:100%; padding:22px; background:rgba(26,15,10,.96); }
.cosmos-features .cosmos-feature__content h3 { font-family:'Cormorant Garamond',Georgia,serif; font-size:24px; line-height:1.2; color:var(--ivoire); margin:0; }
.cosmos-features .cosmos-feature__content p { color:#d8c7af; font-size:13px; line-height:1.5; margin:8px 0 16px; text-wrap:balance; }
.cosmos-features .cosmos-feature__action { display:flex; align-items:center; gap:8px; font-size:13px; line-height:1.5; color:var(--or); }
.cosmos-features .cosmos-feature__action svg { transition:transform 300ms; }
.cosmos-features .cosmos-feature__soon { display:inline-block; font-size:12px; color:#d8c7af; }
.cosmos-features .cosmos-feature[href]:hover { border-color:var(--or); }
.cosmos-features .cosmos-feature[href]:hover .cosmos-feature__media img { transform:scale(1.04); }
.cosmos-features .cosmos-feature[href]:hover .cosmos-feature__action svg { transform:translateX(4px); }
.cosmos-features .cosmos-feature:focus-visible { outline:2px solid var(--or); outline-offset:4px; }
.cosmos-features .cosmos-feature[aria-disabled] { cursor:default; }
@media (min-width:768px) and (max-width:1099px) { .cosmos-features .cosmos-feature__content p { min-height:3em; } }
@media (max-width:767px) {
 .cosmos-features .cosmos-features__grid { grid-template-columns:1fr; gap:16px; }
 .cosmos-features .cosmos-feature { min-height:340px; }
 .cosmos-features .cosmos-feature__content { padding:20px; }
 .cosmos-features .cosmos-feature__content p { min-height:3em; }
}
@media (prefers-reduced-motion:reduce) {
 .cosmos-features .cosmos-feature,.cosmos-features .cosmos-feature__media img,.cosmos-features .cosmos-feature__action svg { transition:none; }
 .cosmos-features .cosmos-feature[href]:hover .cosmos-feature__media img,.cosmos-features .cosmos-feature[href]:hover .cosmos-feature__action svg { transform:none; }
}
/* Homepage hero presentation only; slider timing and animation controls are unchanged. */
.cosmos-hero .cosmos-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.cosmos-home .cosmos-hero { --cosmos-gutter:clamp(20px,5vw,80px); min-height:max(560px,calc(100svh - var(--wp-admin--admin-bar--height, 0px))); padding:90px 24px 110px; }
.cosmos-hero .cosmos-slider__slide { --cosmos-focus-x:50%; --cosmos-focus-y:50%; }
.cosmos-hero .cosmos-slider__slide:nth-child(1) { --cosmos-focus-x:60%; --cosmos-focus-y:50%; }
.cosmos-hero .cosmos-slider__slide:nth-child(2) { --cosmos-focus-x:50%; --cosmos-focus-y:45%; }
.cosmos-hero .cosmos-slider__slide:nth-child(3) { --cosmos-focus-x:40%; --cosmos-focus-y:50%; }
.cosmos-hero .cosmos-slide-image { object-position:var(--cosmos-focus-x) var(--cosmos-focus-y); }
/* A subtle backing reinforces contrast beneath the decorative layers. */
.cosmos-hero .cosmos-hero__overlay::after { content:""; position:absolute; inset:0; background:rgba(20,11,7,.2); pointer-events:none; }
/* Warm tint blends with the photographs only, below the shared readability veil. */
.cosmos-hero .cosmos-hero__slider::after { content:''; position:absolute; inset:0; z-index:1; background:rgba(60,35,22,.35); mix-blend-mode:multiply; pointer-events:none; }
.cosmos-hero .cosmos-hero__overlay { background:linear-gradient(rgba(20,11,7,.65),transparent) top / 100% 220px no-repeat,radial-gradient(ellipse 60% 50% at 50% 55%,rgba(20,11,7,.55),transparent 75%),linear-gradient(rgba(26,15,10,.62),rgba(26,15,10,.62)); }
.cosmos-hero .cosmos-hero__particles { z-index:1; pointer-events:none; }
.cosmos-hero .cosmos-hero__content { z-index:2; }
.cosmos-hero .cosmos-hero__eyebrow { font-size:clamp(.875rem,.8vw + .6rem,1rem); font-weight:500; letter-spacing:.18em; color:#d9b97e; text-shadow:0 1px 12px rgba(20,11,7,.6); margin-bottom:20px; }
.cosmos-home .cosmos-hero h1 { max-width:14em; font-size:clamp(2.25rem,5vw,4.25rem); line-height:1.1; text-wrap:balance; color:var(--ivoire); background:none; animation:cosmos-rise .9s ease .5s both; }
.cosmos-hero h1 em { color:#e2c58e; font-style:italic; margin:0; word-spacing:normal; text-shadow:0 2px 18px rgba(20,11,7,.6); }
.cosmos-home .cosmos-hero p.cosmos-tagline { max-width:520px; font-size:clamp(1.0625rem,.9vw + .8rem,1.375rem); line-height:1.65; text-wrap:balance; color:#f3e8d6; text-shadow:0 1px 14px rgba(20,11,7,.6); }
.cosmos-hero .cosmos-hero__ctas { gap:24px; }
.cosmos-hero .cosmos-hero__primary { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 28px; border:1px solid var(--or); border-radius:999px; background:var(--or); color:#140b07; font-size:16px; font-weight:500; text-decoration:none; }
.cosmos-hero .cosmos-hero__primary:hover { background:var(--or-clair); }
.cosmos-hero .cosmos-hero__secondary { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; color:#f3e8d6; font-size:15px; text-decoration:underline; text-decoration-color:var(--or); text-decoration-thickness:1px; text-underline-offset:6px; }
.cosmos-hero .cosmos-hero__secondary svg { color:var(--or); }
.cosmos-hero .cosmos-hero__secondary:hover { text-decoration-thickness:2px; }
.cosmos-hero .cosmos-hero__controls { position:absolute; z-index:3; bottom:32px; left:var(--cosmos-gutter); display:flex; gap:16px; align-items:center; padding:6px 10px; border-radius:999px; background:rgba(20,11,7,.75); }
.cosmos-hero .cosmos-motion-toggle { width:36px; height:36px; padding:0; margin:0; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--or); border-radius:50%; color:var(--or); background:transparent; }
.cosmos-hero .cosmos-motion-toggle[hidden] { display:none; }
.cosmos-hero .cosmos-hero__play-icon { display:none; }
.cosmos-hero .cosmos-motion-toggle[aria-pressed=true] .cosmos-hero__pause-icon { display:none; }
.cosmos-hero .cosmos-motion-toggle[aria-pressed=true] .cosmos-hero__play-icon { display:block; }
.cosmos-hero .cosmos-hero__slider-dots { margin:0; gap:4px; align-items:center; }
.cosmos-hero .cosmos-slider__dot { width:32px; height:24px; background:transparent; border-radius:6px; transform:none; position:relative; }
.cosmos-hero .cosmos-slider__dot::before { content:''; position:absolute; inset:auto; top:7px; left:11px; width:10px; height:10px; border-radius:999px; background:#ad9d85; }
.cosmos-hero .cosmos-slider__dot.is-active::before { width:28px; left:2px; background:var(--or); }
.cosmos-hero .cosmos-hero__scroll { position:absolute; z-index:3; bottom:32px; min-height:48px; justify-content:center; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--ivoire); font-size:.875rem; text-decoration:none; }
.cosmos-hero .cosmos-hero__scroll svg { animation:cosmos-hero-scroll 1.8s ease-in-out infinite; }
@keyframes cosmos-hero-scroll { 50% { transform:translateY(4px); } }
.cosmos-hero a:focus-visible,.cosmos-hero button:focus-visible { outline:2px solid var(--or); outline-offset:4px; }
@media(max-width:639px) {
 .cosmos-home .cosmos-hero { padding:72px 20px 110px; }
 .cosmos-hero .cosmos-hero__ctas { flex-direction:column; width:100%; max-width:320px; gap:24px; }
 .cosmos-hero .cosmos-hero__ctas > a { width:100%; }
 .cosmos-hero .cosmos-hero__controls { left:50%; transform:translateX(-50%); bottom:32px; }
 .cosmos-hero .cosmos-hero__scroll { display:none; }
 .cosmos-hero .cosmos-fleck:nth-child(n+6) { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 .cosmos-hero .cosmos-slider__slide,.cosmos-hero .cosmos-slider__slide.is-active,.cosmos-hero .cosmos-hero__scroll svg,.cosmos-home .cosmos-hero h1,.cosmos-hero .cosmos-hero__eyebrow,.cosmos-hero p.cosmos-tagline,.cosmos-hero .cosmos-hero__ctas,.cosmos-hero .cosmos-hero__stars,.cosmos-hero .cosmos-fleck { animation:none; transition:none; }
}

/* Slide-specific tint stays inside the slide's opacity/zoom stacking context. */
.cosmos-hero .cosmos-slider__slide:nth-child(2)::after { content:''; position:absolute; inset:0; background:rgba(60,35,22,.4); mix-blend-mode:multiply; pointer-events:none; }
.cosmos-hero .cosmos-hero__controls,.cosmos-hero .cosmos-hero__controls button { font-size:.875rem; }

/* Shared breadcrumb presentation: existing collection and product markup is compatible. */
.cosmos-home :is(.cosmos-occasion-collection,.cosmos-model,.cosmos-gallery) .cosmos-breadcrumb { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; font-size:14px; color:#bfa98f; }
.cosmos-home :is(.cosmos-occasion-collection,.cosmos-model,.cosmos-gallery) .cosmos-breadcrumb a { color:#bfa98f; }
.cosmos-home :is(.cosmos-occasion-collection,.cosmos-model,.cosmos-gallery) .cosmos-breadcrumb [aria-current] { color:#fbf3e7; }
.cosmos-home :is(.cosmos-occasion-collection,.cosmos-model,.cosmos-gallery) .cosmos-breadcrumb a:hover { text-decoration:underline; text-decoration-color:#c9a05c; text-underline-offset:4px; }

/* Pointer focus pauses the ticker without moving or removing the clicked link. */
.cosmos-ticker:focus-within .cosmos-ticker__track.is-looping,
.cosmos-ticker:active .cosmos-ticker__track.is-looping { animation-play-state: paused; }
