/* Shared building blocks for the inner pages of the ORR DDM concept sites.
   Each page maps its own brand onto these variables, so the blocks take on the site's colors, fonts and corners. */
.ip{--i-gap:clamp(70px,9vw,130px);color:var(--i-tx);background:var(--i-bg)}
.ip *{box-sizing:border-box}
.ip img{display:block;max-width:100%}
.ip a{color:inherit}
.ip-w{max-width:1280px;margin:0 auto;padding:0 clamp(16px,4vw,48px)}
.ip-sec{padding:var(--i-gap) 0}
.ip-sec.alt{background:var(--i-bg2)}
.ip-h{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(26px,3vw,44px)}
.ip-ey{display:inline-flex;align-items:center;gap:12px;font:600 12px/1.4 var(--i-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--i-acc)}
.ip-ey::before{content:"";width:30px;height:1px;background:currentColor}
.ip h1,.ip h2,.ip h3{font-family:var(--i-disp);font-weight:var(--i-hw,700);letter-spacing:-.015em;color:var(--i-tx);margin:0}
.ip h1 em,.ip h2 em{font-style:normal;font-weight:var(--i-lw,400);color:var(--i-acc)}
.ip h2{font-size:clamp(38px,4.4vw,72px);line-height:1;margin-top:12px}
.ip p{margin:0}
.ip-lead{font-size:clamp(17px,1.4vw,20px);line-height:1.7;color:var(--i-tx2);max-width:46ch}
.ip-btns{display:flex;gap:10px;flex-wrap:wrap}
.ip-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:var(--i-br,999px);background:var(--i-btn,var(--i-acc));color:var(--i-btnfg,#fff);text-decoration:none;font:700 15px var(--i-sans);border:1px solid transparent;cursor:pointer;transition:transform .3s,opacity .3s}
.ip-btn:hover{transform:translateY(-2px)}
.ip a.ip-btn,.ip button.ip-btn{color:var(--i-btnfg,#fff)}
.ip a.ip-btn.ln,.ip button.ip-btn.ln{color:var(--i-tx)}
.ip-hero.ip-cover a.ip-btn.ln{color:#fff}
.ip-btn.ln{background:transparent;color:var(--i-tx);border-color:var(--i-line2,var(--i-line))}
.ip [data-fade]{opacity:0;translate:0 34px;transition:opacity 1s cubic-bezier(.16,.84,.24,1),translate 1s cubic-bezier(.16,.84,.24,1)}
.ip [data-fade].in{opacity:1;translate:0 0}

/* breadcrumb */
.ip-crumb{display:flex;gap:10px;align-items:center;font:500 13px var(--i-sans);color:var(--i-tx2);margin-bottom:18px;flex-wrap:wrap}
.ip-crumb a{text-decoration:none}
.ip-crumb a:hover{color:var(--i-acc)}
.ip-crumb i{opacity:.5;font-style:normal}

/* hero variants */
.ip-hero{padding:clamp(130px,14vw,190px) 0 clamp(50px,6vw,90px)}
.ip-hero.ip-split .ip-w{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:center}
.ip-hero h1{font-size:clamp(50px,6.4vw,112px);line-height:.95;margin:6px 0 22px}
.ip-hero .im{border-radius:var(--i-r,24px);overflow:hidden;aspect-ratio:4/5}
.ip-hero .im img{width:100%;height:100%;object-fit:cover}
.ip-hero.ip-cover{position:relative;min-height:92vh;display:flex;align-items:flex-end;padding-bottom:clamp(40px,5vw,70px);color:#fff}
.ip-hero.ip-cover .bgim{position:absolute;inset:0;overflow:hidden}
.ip-hero.ip-cover .bgim img{width:100%;height:100%;object-fit:cover}
.ip-hero.ip-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25),transparent 35%,rgba(0,0,0,.72))}
.ip-hero.ip-cover .ip-w{position:relative;z-index:2;width:100%}
.ip-hero.ip-cover h1,.ip-hero.ip-cover .ip-lead,.ip-hero.ip-cover .ip-crumb{color:#fff}
.ip-hero.ip-cover .ip-lead{color:rgba(255,255,255,.88)}
.ip-hero.ip-cover .ip-btn.ln{color:#fff;border-color:rgba(255,255,255,.5)}
.ip-hero.ip-type{text-align:center}
.ip-hero.ip-type .ip-crumb{justify-content:center}
.ip-hero.ip-type h1{font-size:clamp(56px,9vw,170px);line-height:.9;max-width:14ch;margin-inline:auto}
.ip-hero.ip-type .ip-lead{margin:0 auto}
.ip-hero.ip-type .ip-btns{justify-content:center;margin-top:26px}
.ip-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:clamp(40px,5vw,70px)}
.ip-strip img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--i-r,24px)}
.ip-strip img:nth-child(even){margin-top:40px}

/* stats */
.ip-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--i-line);border-bottom:1px solid var(--i-line)}
.ip-stats>div{padding:26px 18px;border-inline-start:1px solid var(--i-line)}
.ip-stats>div:first-child{border-inline-start:0}
.ip-stats b{display:block;font:var(--i-hw,700) clamp(34px,3.4vw,54px)/1 var(--i-disp);color:var(--i-tx)}
.ip-stats span{font-size:14px;color:var(--i-tx2)}

/* text + image */
.ip-t2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,90px);align-items:center}
.ip-t2.rev .im{order:2}
.ip-t2 .im{border-radius:var(--i-r,24px);overflow:hidden;aspect-ratio:4/3}
.ip-t2 .im img{width:100%;height:100%;object-fit:cover}
.ip-t2 .tx p{color:var(--i-tx2);line-height:1.8;margin-top:14px}
.ip-t2 .tx p.big{font:var(--i-lw,400) clamp(22px,2vw,30px)/1.45 var(--i-disp);color:var(--i-tx)}

/* specs */
.ip-specs{display:grid;grid-template-columns:repeat(2,1fr);gap:0 50px}
.ip-specs>div{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--i-line);font-size:15px}
.ip-specs dt{color:var(--i-tx2)}
.ip-specs dd{margin:0;font-weight:700;text-align:end}

/* gallery */
.ip-gal{display:grid;grid-template-columns:1fr;gap:10px}
.ip-gal .main{border-radius:var(--i-r,24px);overflow:hidden;aspect-ratio:4/3;background:var(--i-bg2)}
.ip-gal .main img{width:100%;height:100%;object-fit:cover;transition:opacity .35s}
.ip-gal .th{display:flex;gap:8px;overflow-x:auto}
.ip-gal .th button{flex:0 0 86px;height:86px;border-radius:calc(var(--i-r,24px)/2);overflow:hidden;border:2px solid transparent;padding:0;background:none;cursor:pointer;opacity:.65;transition:opacity .25s,border-color .25s}
.ip-gal .th button[aria-pressed=true]{border-color:var(--i-acc);opacity:1}
.ip-gal .th img{width:100%;height:100%;object-fit:cover}

/* buy box */
.ip-buy{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,64px);align-items:start;padding-top:clamp(120px,12vw,160px)}
.ip-buy .box{position:sticky;top:110px;display:flex;flex-direction:column;gap:18px}
.ip-buy h1{font-size:clamp(40px,4vw,64px);line-height:1}
.ip-price{font:var(--i-hw,700) 34px/1 var(--i-disp);color:var(--i-tx)}
.ip-price small{font:400 14px var(--i-sans);color:var(--i-tx2);margin-inline-start:8px}
.ip-og{display:flex;flex-direction:column;gap:10px}
.ip-og>span{font:600 12px var(--i-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--i-tx2)}
.ip-chips{display:flex;gap:8px;flex-wrap:wrap}
.ip-chips button{min-height:44px;min-width:44px;padding:0 16px;border-radius:var(--i-br,999px);border:1px solid var(--i-line2,var(--i-line));background:transparent;color:var(--i-tx);font:600 14px var(--i-sans);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.ip-chips button[aria-pressed=true]{background:var(--i-tx);color:var(--i-bg);border-color:var(--i-tx)}
.ip-qty{display:inline-flex;align-items:center;border:1px solid var(--i-line2,var(--i-line));border-radius:var(--i-br,999px)}
.ip-qty button{width:46px;height:46px;background:none;border:0;color:var(--i-tx);font-size:20px;cursor:pointer}
.ip-qty output{min-width:30px;text-align:center;font-weight:700}
.ip-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ip-row .ip-btn{flex:1}
.ip-perks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--i-tx2)}
.ip-perks li::before{content:"✓";color:var(--i-acc);margin-inline-end:10px;font-weight:700}
.ip details{border-bottom:1px solid var(--i-line);padding:16px 0}
.ip summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px;font:700 17px var(--i-sans);color:var(--i-tx)}
.ip summary::-webkit-details-marker{display:none}
.ip summary::after{content:"+";color:var(--i-acc);font-size:22px;line-height:1}
.ip details[open] summary::after{content:"−"}
.ip details p{color:var(--i-tx2);margin-top:10px;line-height:1.75;font-size:15px}
.ip-note{display:none;padding:14px 16px;border-radius:calc(var(--i-r,24px)/2);background:var(--i-bg2);font-size:15px;color:var(--i-tx)}
.ip-note.on{display:block}
.ip-note a{color:var(--i-acc);font-weight:700}

/* steps */
.ip-steps{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:16px;counter-reset:s}
.ip-step{padding:26px;border-radius:var(--i-r,24px);background:var(--i-bg2);display:flex;flex-direction:column;gap:10px}
.ip-sec.alt .ip-step{background:var(--i-bg)}
.ip-step b{font:var(--i-hw,700) 44px/1 var(--i-disp);color:var(--i-acc)}
.ip-step h3{font-size:22px;line-height:1.15}
.ip-step p{font-size:15px;color:var(--i-tx2);line-height:1.7}

/* cards */
.ip-cards{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:16px}
.ip-card{display:flex;flex-direction:column;gap:12px;text-decoration:none}
.ip-card .im{border-radius:var(--i-r,24px);overflow:hidden;aspect-ratio:var(--ar,4/5);background:var(--i-bg2)}
.ip-card .im img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,.84,.24,1)}
.ip-card:hover .im img{transform:scale(1.05)}
.ip-card h3{font-size:24px;line-height:1.1}
.ip-card p{font-size:15px;color:var(--i-tx2);line-height:1.65}
.ip-card small{font:600 12px var(--i-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--i-acc)}

/* list rows (menus, schedules, tracks) */
.ip-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.ip-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--i-line)}
.ip-li{display:grid;grid-template-columns:1fr auto;gap:6px 24px;padding:22px 0;border-bottom:1px solid var(--i-line)}
.ip-li h3{font-size:clamp(21px,1.8vw,27px);line-height:1.15}
.ip-li p{grid-column:1;font-size:15px;color:var(--i-tx2);line-height:1.6}
.ip-li .r{grid-row:1/3;grid-column:2;text-align:end;font:var(--i-hw,700) 22px/1.1 var(--i-disp);white-space:nowrap}
.ip-li .r small{display:block;font:500 12px var(--i-sans);color:var(--i-tx2);margin-top:6px}
.ip-li .tags{display:flex;gap:6px;flex-wrap:wrap;grid-column:1}
.ip-li .tags span{font-size:11px;font-weight:700;letter-spacing:.06em;padding:3px 9px;border-radius:999px;border:1px solid var(--i-line2,var(--i-line));color:var(--i-tx2)}
.ip-li[hidden]{display:none}

/* statement */
.ip-quote{font:var(--i-lw,400) clamp(30px,3.6vw,58px)/1.2 var(--i-disp);color:var(--i-tx);max-width:22ch;margin:0 auto;text-align:center}
.ip-quote em{font-style:normal;color:var(--i-acc)}
.ip-quote+p{text-align:center;color:var(--i-tx2);margin-top:20px;font-size:14px;letter-spacing:.14em;text-transform:uppercase}

/* svg panels: floorplan, map, chart */
.ip-panel{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,4vw,60px);align-items:center}
.ip-svg{border-radius:var(--i-r,24px);background:var(--i-bg2);padding:clamp(16px,2vw,28px);border:1px solid var(--i-line)}
.ip-svg svg{width:100%;height:auto;display:block}
.ip-legend{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.ip-legend li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--i-line);font-size:15px}
.ip-legend li b{font-weight:700}
.ip-legend li span{color:var(--i-tx2)}
.ip-legend li i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--i-acc);margin-inline-end:10px}

/* bars */
.ip-bars{display:flex;align-items:flex-end;gap:6px;height:220px;padding-top:10px}
.ip-bars i{flex:1;border-radius:6px 6px 0 0;background:var(--i-acc);opacity:.85;transform-origin:bottom;transform:scaleY(0);transition:transform 1s cubic-bezier(.16,.84,.24,1)}
.ip-bars.in i{transform:scaleY(1)}
.ip-axis{display:flex;justify-content:space-between;font-size:12px;color:var(--i-tx2);margin-top:8px}

/* player */
.ip-player{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.ip-pv{position:relative;border-radius:var(--i-r,24px);overflow:hidden;aspect-ratio:16/9;background:#000;width:100%;border:0;padding:0;cursor:pointer;display:block}
.ip-pv img{width:100%;height:100%;object-fit:cover;opacity:.75}
.ip-pv .pl{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;background:var(--i-acc);display:flex;align-items:center;justify-content:center}
.ip-pv .pl svg{width:28px;height:28px;fill:var(--i-btnfg,#fff)}
.ip-pv .bar{position:absolute;left:0;right:0;bottom:0;height:5px;background:rgba(255,255,255,.25);direction:ltr}
.ip-pv .bar i{display:block;height:100%;width:0;background:var(--i-acc);transition:width .2s linear}
.ip-ch{list-style:none;padding:8px;margin:0;border-radius:var(--i-r,24px);background:var(--i-bg2);border:1px solid var(--i-line)}
.ip-ch button{width:100%;min-height:56px;display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:center;padding:8px 12px;border-radius:12px;background:none;border:0;color:var(--i-tx);font:500 15px var(--i-sans);text-align:start;cursor:pointer}
.ip-ch button[aria-current=true]{background:var(--i-bg);color:var(--i-acc)}
.ip-ch b{font:var(--i-hw,700) 18px var(--i-disp);color:var(--i-acc)}
.ip-ch time{font-size:13px;color:var(--i-tx2);direction:ltr}
.ip-tab{margin-top:14px;font:600 13px/1.55 ui-monospace,Menlo,monospace;color:var(--i-acc);white-space:pre;direction:ltr;text-align:left;overflow:auto;background:var(--i-bg2);border-radius:16px;padding:16px;border:1px solid var(--i-line)}

/* closing band + next page */
.ip-cta{border-radius:var(--i-r,24px);background:var(--i-band,var(--i-bg2));color:var(--i-bandtx,var(--i-tx));padding:clamp(34px,5vw,72px);display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:end}
.ip-cta h2{color:inherit}
.ip-cta p{color:inherit;opacity:.82;margin-top:14px;max-width:44ch;line-height:1.7}
.ip-cta .ip-btns{justify-content:flex-end}
.ip-next{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:34px 0;border-top:1px solid var(--i-line);margin-top:clamp(50px,6vw,80px);text-decoration:none}
.ip-next span{font:600 12px var(--i-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--i-tx2)}
.ip-next b{font:var(--i-hw,700) clamp(30px,4vw,62px)/1 var(--i-disp);transition:color .3s}
.ip-next:hover b{color:var(--i-acc)}

@media (max-width:900px){
  .ip-hero.ip-split .ip-w,.ip-t2,.ip-buy,.ip-panel,.ip-player,.ip-cta{grid-template-columns:1fr}
  .ip-t2.rev .im{order:0}
  .ip-hero .im{aspect-ratio:4/3}
  .ip-buy .box{position:static}
  .ip-steps,.ip-cards{grid-template-columns:1fr 1fr}
  .ip-stats{grid-template-columns:1fr 1fr}.ip-stats>div:nth-child(3){border-inline-start:0}.ip-stats>div:nth-child(n+3){border-top:1px solid var(--i-line)}
  .ip-specs{grid-template-columns:1fr}
  .ip-strip{grid-template-columns:1fr 1fr}
  .ip-cta .ip-btns{justify-content:flex-start}
}
@media (max-width:560px){.ip-steps,.ip-cards{grid-template-columns:1fr}.ip-li{grid-template-columns:1fr}.ip-li .r{grid-row:auto;grid-column:1;text-align:start}}
@media (prefers-reduced-motion:reduce){.ip [data-fade]{opacity:1;translate:none;transition:none}.ip-bars i{transform:none;transition:none}}
