/* Elysian live-site palette; typography inherits Porto without loading another font. */
.ely-points { --ep-bg:#fff; --ep-panel:#edf7f7; --ep-text:var(--porto-heading-color,#222529); --ep-muted:#526065; --ep-accent:var(--porto-primary-color,#00a1ad); background:var(--ep-bg); color:var(--ep-text); padding:0; margin:0; border-radius:0; font-family:inherit; }
.ely-points *, .ely-points *::before, .ely-points *::after { box-sizing:border-box; }
.ely-points__inner { max-width:var(--porto-container-width,1380px); margin:0 auto; }
.ely-points .ely-points__label { margin:0 0 12px; color:#006d77; font-size:12px; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; }
.ely-points .ely-points__title { margin:0 0 16px; color:var(--ep-text); font-family:inherit; font-size:clamp(24px,2.4vw,28px); font-weight:700; line-height:1.25; letter-spacing:-.02em; text-wrap:balance; }
.ely-points .ely-points__intro { max-width:68ch; margin:0 0 28px; color:var(--ep-muted); font-size:16px; line-height:1.7; white-space:pre-line; }
.ely-points__layout { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,3fr); gap:clamp(20px,3vw,40px); align-items:start; }
.ely-points__photo { position:relative; min-width:0; border-radius:12px; }
.ely-points .ely-points__image { display:block; width:100%; height:auto; max-width:100%; margin:0; border-radius:12px; }
.ely-points .ely-points__marker { position:absolute; left:clamp(22px,var(--point-x),calc(100% - 22px)); top:clamp(22px,var(--point-y),calc(100% - 22px)); transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:#073b40; text-decoration:none; z-index:1; border-radius:50%; }
.ely-points__marker span { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#fff; color:#006d77; border:1px solid var(--ep-accent); font-size:12px; font-weight:700; line-height:1; transition:background .15s ease,transform .15s ease; }
.ely-points .ely-points__marker:hover span, .ely-points .ely-points__marker[aria-current="true"] span { background:var(--ep-accent); color:var(--ep-text); transform:scale(1.05); }
.ely-points .ely-points__marker[aria-current="true"] span { outline:2px solid #fff; outline-offset:1px; }
.ely-points .ely-points__list { list-style:none; padding:0; margin:0; min-width:0; }
.ely-points .ely-points__item { margin:0 0 4px; padding:0; border-radius:8px; scroll-margin-block:120px 24px; }
.ely-points__item.is-active { background:var(--ep-panel); }
.ely-points .ely-points__heading { margin:0; padding:0; font:inherit; color:inherit; }
.ely-points .ely-points__trigger { display:flex; gap:12px; align-items:center; width:100%; min-height:52px; padding:12px 14px; border:0; border-radius:8px; background:transparent; color:var(--ep-text); font-family:inherit; font-size:15px; font-weight:600; line-height:1.5; text-align:left; white-space:normal; cursor:pointer; box-shadow:none; letter-spacing:normal; text-transform:none; }
.ely-points .ely-points__trigger:disabled { cursor:default; opacity:1; }
.ely-points .ely-points__trigger:hover { background:#f3f6f5; }
.ely-points__number { display:grid; place-items:center; flex:0 0 28px; height:28px; border:1px solid #dce5e4; border-radius:50%; color:#006d77; font-size:13px; font-weight:600; }
.ely-points__item.is-active .ely-points__number { background:var(--ep-accent); border-color:var(--ep-accent); color:var(--ep-text); }
.ely-points .ely-points__description { margin:0; padding:0 14px 16px 54px; color:var(--ep-muted); font-size:14px; line-height:1.65; white-space:pre-line; overflow-wrap:anywhere; }
.ely-points .ely-points__description[hidden] { display:none; }
.ely-points .ely-points__marker:focus-visible, .ely-points .ely-points__trigger:focus-visible { outline:2px solid #006d77; outline-offset:3px; }
.ely-points ::selection { color:#fff; background:#006d77; }
@media (max-width:767px) { .ely-points { padding:0; } .ely-points__layout { grid-template-columns:minmax(0,1fr); gap:20px; } .ely-points .ely-points__intro { margin-bottom:24px; } .ely-points .ely-points__trigger { padding-left:10px; padding-right:10px; } .ely-points .ely-points__description { padding-left:50px; padding-right:10px; } }
@media (prefers-reduced-motion:reduce) { .ely-points__marker span { transition:none; } }


.ely-points-spec { margin:32px 0 0; }
.ely-points-spec > summary { display:flex;align-items:center;justify-content:center;gap:14px;width:max-content;max-width:100%;min-height:48px;margin:0 auto;padding:10px 20px;border:1px solid #006d77;border-radius:999px;color:#006d77;font-size:15px;font-weight:600;line-height:1.4;text-align:center;cursor:pointer;list-style:none; }
.ely-points-spec > summary::-webkit-details-marker { display:none; }
.ely-points-spec > summary::after { content:"+";font-size:21px;line-height:1; }
.ely-points-spec[open] > summary::after { content:"−"; }
.ely-points-spec > summary:hover { background:#edf7f7; }
.ely-points-spec > summary:focus-visible { outline:2px solid #006d77;outline-offset:4px; }
.ely-points-spec__grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px; }
.ely-points-spec__card { min-width:0;padding:22px;border:1px solid #dce5e4;border-radius:12px;background:#f7fbfa; }
.ely-points .ely-points-spec__card h3 { margin:0 0 16px;color:#006d77;font-size:14px;font-weight:700;line-height:1.4; }
.ely-points-spec__image { display:block;max-width:100%;height:auto;margin:0 auto 16px; }
.ely-points-spec__card dl { margin:0; }
.ely-points-spec__row { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;margin:0 0 10px;font-size:14px;line-height:1.55; }
.ely-points-spec__row:last-child { margin-bottom:0; }
.ely-points-spec__row dt { color:#526065;font-weight:400;overflow-wrap:anywhere; }
.ely-points-spec__row dd { margin:0;color:#222529;font-weight:600;text-align:right;overflow-wrap:anywhere; }
@media(max-width:1023px) { .ely-points-spec__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .ely-points-spec__grid { grid-template-columns:1fr; } .ely-points-spec__card { padding:18px; } }
