/* Swan Diamond — v2 design system (navy on white, hairline rules). */

:root{
  --swan-ink:#05233C;
  --swan-ink-2:#0A3050;
  --swan-grey:#56697A;
  --swan-grey-2:#4E6373;
  --swan-rule:#E6EBEF;
  --swan-tint:#F4F6F8;
  --swan-accent:#2E6A96;
  --swan-wa:#25D366;
  --swan-wa-ink:#06301A;
  --swan-serif:"Figtree",system-ui,-apple-system,sans-serif;
  --swan-sans:"Figtree",system-ui,-apple-system,sans-serif;
  --swan-mono:"Figtree",system-ui,-apple-system,sans-serif;
  --swan-pad:56px;
}
@media (max-width:900px){:root{--swan-pad:20px}}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--swan-ink);font-family:var(--swan-sans);font-weight:300;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--swan-ink);text-decoration:none}
a:hover{color:var(--swan-accent)}
h1,h2,h3{margin:0;font-family:var(--swan-serif);font-weight:300;letter-spacing:-.01em}

.swan-h1{font-size:clamp(34px,4.4vw,62px);line-height:1.06}
.swan-h2{font-size:clamp(28px,3vw,38px);line-height:1.14}
.swan-lede{font-size:15px;line-height:1.75;color:#5D7080;margin:14px 0 0;max-width:46ch;text-wrap:pretty}
.swan-eyebrow{margin:0;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--swan-grey);font-weight:400}
.swan-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--swan-grey-2)}
.swan-mono{font-family:var(--swan-mono);font-size:11px;color:var(--swan-grey-2)}
.swan-mono--accent{color:var(--swan-accent)}
.swan-note{font-size:12px;line-height:1.5;color:var(--swan-grey-2)}
.swan-wrap{padding:0 var(--swan-pad)}
.swan-wrap--narrow{max-width:760px;margin:0 auto;padding:64px var(--swan-pad)}
.swan-prose{font-size:15px;line-height:1.8;color:#5D7080}
.swan-prose p{margin:0 0 1em}

/* Buttons */
.swan-btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 30px;font-family:var(--swan-sans);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;border:1px solid transparent;cursor:pointer;transition:.18s}
.swan-btn--wa{background:var(--swan-wa);color:var(--swan-wa-ink)}
.swan-btn--wa:hover{background:#1FBE5A;color:var(--swan-wa-ink)}
.swan-btn--outline{background:transparent;border-color:var(--swan-ink);color:var(--swan-ink)}
.swan-btn--outline:hover{background:var(--swan-ink);color:#fff}
.swan-btn--ghost{background:transparent;border-color:var(--swan-ink);color:var(--swan-ink)}
.swan-btn--ghost:hover{background:var(--swan-ink);color:#fff}
.swan-btn--sm{height:38px;padding:0 20px;font-size:11px}

/* Header */
.swan-utility{display:flex;align-items:center;justify-content:space-between;gap:20px;height:34px;padding:0 var(--swan-pad);background:#FAFBFC;border-bottom:1px solid var(--swan-rule);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--swan-grey-2)}
.swan-utility__list{display:flex;gap:26px}
.swan-header{position:sticky;top:0;z-index:40;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;min-height:82px;padding:0 var(--swan-pad);background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--swan-rule)}
.swan-header__nav ul{display:flex;gap:30px;margin:0;padding:0;list-style:none}
.swan-header__nav--right{display:flex;justify-content:flex-end;align-items:center;gap:26px}
.swan-header__nav a{font-size:11px;letter-spacing:.18em;text-transform:uppercase;padding-bottom:3px;border-bottom:1px solid transparent}
.swan-header__nav a:hover{border-bottom-color:var(--swan-ink)}
.swan-header__brand img,.swan-custom-logo-link img{max-height:46px;width:auto}
.swan-wordmark{font-family:var(--swan-serif);font-size:18px;letter-spacing:.3em;text-transform:uppercase}
.swan-wordmark--light{color:#fff}
.swan-burger{display:none;width:44px;height:44px;border:1px solid var(--swan-rule);background:#fff;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.swan-burger span{width:18px;height:1px;background:var(--swan-ink)}

/* Hero */
.swan-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:560px;border-bottom:1px solid var(--swan-rule)}
.swan-hero__text{display:flex;flex-direction:column;justify-content:center;padding:86px var(--swan-pad) 76px;border-right:1px solid var(--swan-rule)}
.swan-hero__text .swan-h1{margin-top:22px}
.swan-hero__cta{display:flex;align-items:center;gap:14px;margin-top:34px;flex-wrap:wrap}
.swan-hero__media{position:relative;background:var(--swan-tint);min-height:360px}
.swan-hero__media img{width:100%;height:100%;object-fit:cover}

/* Stats */
.swan-stats{display:flex;flex-wrap:wrap;gap:0 34px;margin-top:44px;border-top:1px solid var(--swan-rule)}
.swan-stat{padding:18px 0 0}
.swan-stat__value{display:block;font-family:var(--swan-serif);font-size:30px;line-height:1}
.swan-stat__label{display:block;margin-top:8px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--swan-grey-2)}

/* Testimonial slider */
.swan-slider{border-bottom:1px solid var(--swan-rule)}
.swan-slider__viewport{overflow:hidden}
.swan-slider__track{display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.swan-quote{flex:none;margin:0;padding:34px 40px 30px;border-right:1px solid var(--swan-rule)}
.swan-stars{font-size:11px;letter-spacing:.2em;color:var(--swan-accent)}
.swan-quote blockquote{margin:12px 0 0;font-family:var(--swan-serif);font-size:17px;line-height:1.7;min-height:82px;text-wrap:pretty}
.swan-quote figcaption{margin-top:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--swan-grey-2)}
.swan-slider__controls{display:flex;align-items:center;justify-content:space-between;padding:0 var(--swan-pad) 26px}
.swan-dots{display:flex;gap:7px}
.swan-dot{width:7px;height:7px;border:none;padding:0;background:#C7D3DC;cursor:pointer;transition:width .3s}
.swan-dot.is-active{width:22px;background:var(--swan-ink)}
.swan-slider__nav{display:flex;align-items:center;gap:20px}
.swan-arrow{width:40px;height:40px;border:1px solid var(--swan-rule);background:#fff;color:var(--swan-ink);cursor:pointer;font-size:14px}
.swan-arrow:hover{border-color:var(--swan-ink)}

/* Catalogue */
.swan-catalogue{padding-bottom:52px}
.swan-section-head{padding:64px var(--swan-pad) 0}
.swan-section-head .swan-h2{margin-top:14px}
.swan-filters{position:sticky;top:82px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding:0 var(--swan-pad);background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--swan-rule);border-bottom:1px solid var(--swan-rule)}
.swan-filters__row{display:flex;gap:28px;overflow-x:auto;scrollbar-width:none}
.swan-filters__row::-webkit-scrollbar{display:none}
.swan-chip{flex:none;padding:20px 0 18px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--swan-grey-2);border-bottom:1px solid transparent;white-space:nowrap}
.swan-chip sup{margin-left:5px;font-family:var(--swan-mono);font-size:9px;opacity:.7}
.swan-chip.is-active{color:var(--swan-ink);border-bottom-color:var(--swan-ink)}
.swan-filters__url{white-space:nowrap}

.swan-grid{display:grid;gap:36px 28px;padding:36px var(--swan-pad) 0}
.swan-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.swan-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.swan-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.swan-card{cursor:pointer;transition:opacity .2s}
.swan-card:hover{opacity:.86}
.swan-card__media{position:relative;display:block;aspect-ratio:4/5;background:var(--swan-tint);overflow:hidden}
.swan-card__img{width:100%;height:100%;object-fit:cover}
.swan-card__ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--swan-mono);font-size:11px;color:var(--swan-grey-2);background:repeating-linear-gradient(135deg,#EEF2F5 0 8px,#F6F8FA 8px 16px);text-align:center;padding:10px}
.swan-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--swan-ink);display:flex;align-items:center;justify-content:center;font-size:12px}
.swan-badge{position:absolute;top:0;left:0;background:#fff;color:var(--swan-ink);padding:8px 11px;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.swan-badge--sm{padding:6px 9px}
.swan-card__body{padding-top:16px;display:grid;gap:6px}
.swan-card__title{font-size:19px;line-height:1.2}
.swan-card__no{font-family:var(--swan-mono)}
.swan-card__specs{margin:8px 0 0;padding-top:9px;border-top:1px solid var(--swan-rule);font-size:11.5px;line-height:1.6;color:var(--swan-grey)}
.swan-loadmore{display:flex;align-items:center;justify-content:center;gap:20px;padding:52px var(--swan-pad) 0}
.swan-count{font-family:var(--swan-mono);font-size:11px;color:var(--swan-grey-2)}

/* Steps / custom */
.swan-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--swan-rule)}
.swan-step{padding:40px 40px 44px;border-right:1px solid var(--swan-rule)}
.swan-step h3{margin-top:16px;font-size:19px;line-height:1.25}
.swan-step p{margin:9px 0 0;font-size:12.5px;line-height:1.7;color:var(--swan-grey)}
.swan-custom{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;padding:64px var(--swan-pad);border-top:1px solid var(--swan-rule)}
.swan-custom .swan-btn{margin-top:26px}
.swan-accordion{border-top:1px solid var(--swan-rule);padding-top:16px}
.swan-accordion summary{cursor:pointer;font-family:var(--swan-serif);font-size:20px;list-style:none}
.swan-accordion summary::-webkit-details-marker{display:none}
.swan-sizes{width:100%;border-collapse:collapse;margin-top:14px;font-family:var(--swan-mono);font-size:12px}
.swan-sizes td{padding:11px 0;border-bottom:1px solid var(--swan-rule)}
.swan-accordion p{font-size:12px;line-height:1.7;color:var(--swan-grey)}

/* Single design + drawer */
.swan-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.swan-detail__media{position:relative;background:var(--swan-tint);min-height:600px}
.swan-detail__media img,.swan-video{width:100%;height:100%;object-fit:cover}

/* Media carousel (single design + drawer): video first, then gallery photos */
.swan-media-carousel{position:relative;width:100%;height:100%}
.swan-media-carousel__viewport{width:100%;height:100%;overflow:hidden}
.swan-media-carousel__track{display:flex;width:100%;height:100%;transition:transform .4s cubic-bezier(.4,0,.2,1)}
.swan-media-carousel__slide{position:relative;flex:none;width:100%;height:100%}
.swan-media-carousel__slide img,.swan-media-carousel__slide video{width:100%;height:100%;object-fit:cover;display:block}
.swan-media-carousel .swan-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;border-radius:50%;background:rgba(255,255,255,.92)}
.swan-media-carousel .swan-arrow--prev{left:16px}
.swan-media-carousel .swan-arrow--next{right:16px}
.swan-media-carousel__dots{position:absolute;left:0;right:0;bottom:16px;z-index:2;justify-content:center}
.swan-media-carousel__dots .swan-dot{background:rgba(255,255,255,.6)}
.swan-media-carousel__dots .swan-dot.is-active{background:#fff}
.swan-media-carousel__caption{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:30px 20px 34px;background:linear-gradient(to top,rgba(5,35,60,.72),transparent);color:#fff;font-family:var(--swan-sans);font-size:11.5px;letter-spacing:.04em}
.swan-detail__body{padding:52px var(--swan-pad) 44px}
.swan-detail__body .swan-h1{margin-top:14px;font-size:24px;font-weight:700;color:var(--swan-accent)}
.swan-specs{margin:30px 0 0;border-top:1px solid var(--swan-rule)}
.swan-specs__row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--swan-rule)}
.swan-specs dt{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--swan-accent)}
.swan-specs dd{margin:0;font-size:13px}
.swan-detail__body .swan-btn,.swan-drawer .swan-btn{margin-top:30px;width:100%}
.swan-reassure{margin:12px 0 0;font-size:11.5px;line-height:1.7;color:var(--swan-grey-2)}
.swan-msg{margin-top:18px;background:#F7F9FA;padding:14px 16px}
.swan-msg code{display:block;margin-top:8px;font-family:var(--swan-mono);font-size:11.5px;line-height:1.7;color:var(--swan-ink)}

.swan-drawer{position:fixed;inset:0;z-index:100}
.swan-drawer[hidden]{display:none}
.swan-drawer__scrim{position:absolute;inset:0;background:rgba(5,35,60,.35)}
.swan-drawer__panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1060px,92vw);max-height:88vh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#fff;box-shadow:0 30px 80px rgba(5,35,60,.22);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.swan-drawer__close{position:absolute;top:14px;right:16px;width:36px;height:36px;border:none;background:#fff;color:var(--swan-ink);font-size:16px;cursor:pointer;z-index:2}

/* Footer + floating CTA */
.swan-footer{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr);gap:40px;padding:56px var(--swan-pad) 46px;background:var(--swan-ink);color:#fff}
.swan-footer p{font-size:12.5px;line-height:1.75;color:rgba(255,255,255,.66);max-width:320px}
.swan-footer__logo{max-height:44px;width:auto;filter:brightness(0) invert(1)}
.swan-footer__nav ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px 30px;margin:0;padding:0;list-style:none}
.swan-footer__nav a{font-size:13px;color:rgba(255,255,255,.82)}
.swan-footer__nav a:hover{color:#fff}
.swan-footer .swan-mono{color:rgba(255,255,255,.55)}
.swan-float{position:fixed;right:20px;bottom:20px;z-index:90;display:inline-flex;align-items:center;height:46px;padding:0 20px;background:var(--swan-wa);color:var(--swan-wa-ink);font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;box-shadow:0 10px 24px rgba(5,35,60,.2)}

/* Responsive */
@media (max-width:1100px){
  .swan-grid--4{grid-template-columns:repeat(3,minmax(0,1fr))}
  .swan-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .swan-utility{display:none}
  .swan-header{grid-template-columns:auto 1fr;min-height:70px}
  .swan-header__nav{display:none}
  .swan-header.is-open .swan-header__nav{display:block;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--swan-rule);padding:16px var(--swan-pad)}
  .swan-header.is-open .swan-header__nav ul{flex-direction:column;gap:16px}
  .swan-burger{display:flex;justify-self:end}
  .swan-hero{grid-template-columns:minmax(0,1fr)}
  .swan-hero__text{padding:34px var(--swan-pad) 30px;border-right:none}
  .swan-hero__media{min-height:0;aspect-ratio:4/3}
  .swan-quote{padding:24px var(--swan-pad) 20px;border-right:none}
  .swan-grid--4,.swan-grid--3,.swan-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}
  .swan-filters{top:70px}
  .swan-custom,.swan-detail,.swan-footer{grid-template-columns:minmax(0,1fr)}
  .swan-detail__media{width:100%;min-height:0;aspect-ratio:4/5}
  .swan-drawer__panel{display:block;width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;top:0;left:0;transform:none}
  .swan-drawer__panel .swan-detail__body{width:100%}
  .swan-detail__body{padding-top:22px;padding-bottom:28px}
  .swan-detail__body .swan-h1{margin-top:8px}
  .swan-detail__body .swan-prose{margin-top:8px}
  .swan-specs{margin-top:16px}
  .swan-specs__row{padding:8px 0}
  .swan-detail__body .swan-btn{margin-top:18px}
  .swan-reassure{margin-top:8px}
  .swan-msg{margin-top:12px;padding:10px 12px}
  .swan-step{padding:26px var(--swan-pad) 28px;border-right:none;border-bottom:1px solid var(--swan-rule)}
}
@media (prefers-reduced-motion:reduce){
  .swan-slider__track,.swan-media-carousel__track{transition:none}
}
