
[hidden]{display:none!important}
.oc-tag{display:inline-block;align-self:flex-start;border:1px solid var(--line-2);border-radius:99px;padding:4px 10px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.oc-home{border-top:1px solid var(--line);padding-top:18px;margin-top:12px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.terr .terr-journey{display:flex;flex-direction:column;gap:10px;flex:1}
.terr .terr-journey .meta{display:flex;flex-direction:column;gap:5px}
.terr:hover .verb{text-decoration:none}
.terr-journey:hover .verb{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}
.oc-home-across{margin-top:32px;max-width:760px}
.oc-home-across .oc-home{margin-top:8px}
.oc-discovery{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:32px}
.pcard .meta{margin-top:0}
.pcard .programme-enquiry,.oc-card>.text-link{margin-top:auto}
.oc-card{border:1px solid var(--line-2)}
.oc-card h3{font-family:var(--font-display);font-size:1.4rem;line-height:1.2;font-weight:500;margin:6px 0}
.oc-card .oc-city-line{font-size:.88rem}
.oc-card .oc-band{font-size:.8rem;margin-top:8px}
.oc-card .oc-continuation{font-size:.9rem}
.oc-head{padding-bottom:28px}
.oc-breadcrumb{margin-bottom:32px;font-size:.9rem}
.oc-band{color:var(--ink-mut);font-size:.85rem;letter-spacing:.05em;margin-bottom:14px}
.oc-head h1{max-width:20ch;margin-top:20px}
.oc-head .lede{margin-top:24px;max-width:60ch}
.oc-times{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);gap:20px;margin-top:32px;padding:20px 0;max-width:900px}
.oc-times p{display:flex;flex-direction:column;font-size:1rem}
.oc-times b{font-weight:600}
.oc-local{margin-top:12px}
.oc-content,.oc-intro{padding-top:24px}
.oc-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:clamp(32px,6vw,88px);align-items:start}
.oc-body p,.oc-intro .prose p{margin:0 0 24px}
.oc-body h2{margin-top:36px;margin-bottom:20px}
.oc-body ul{padding-left:24px}
.oc-body li{margin:14px 0}
.oc-body .oc-outcome{border-left:2px solid var(--bronze);padding-left:24px;margin-top:36px;font-size:1.15rem}
.oc-practical{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.oc-practical h2{font-size:1.7rem;margin-bottom:20px}
.oc-practical ul{padding-left:20px;margin:0}
.oc-practical li{margin-bottom:14px}
.oc-practical p+p{margin-top:20px}
.oc-price{font-family:var(--font-display);font-size:2.2rem;margin:28px 0 16px}
.oc-booking .pill{width:100%;white-space:normal;text-align:center}
.oc-booking button:disabled{opacity:.55;cursor:not-allowed}
.oc-booking [data-booking-status]{margin-top:12px}
.oc-mobile{display:none}
.oc-foot{padding-top:0}
.oc-terms{max-width:760px;border-top:1px solid var(--line);padding-top:32px}
.oc-terms h2{font-size:1.6rem;margin:24px 0 12px}
.oc-related{margin-top:56px}
.oc-related h2{font-size:1.7rem}
.oc-related ul{list-style:none;padding:0;margin:24px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.oc-related li{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:8px}
.oc-related li span{font-size:.9rem;color:var(--ink-mut)}
.oc-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px}
.oc-overview-grid .pcard{padding:28px}
.oc-teasers,.oc-ways{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:32px 0}
.oc-teasers h3{font-size:1.6rem;font-weight:500;border-top:1px solid var(--line);padding-top:24px}
.oc-ways ul{padding-left:20px;margin-top:16px}
.oc-ways li{margin-bottom:12px}
.oc-closing{margin:40px 0 16px}
@media(max-width:760px){
 .oc-layout,.oc-overview-grid,.oc-teasers,.oc-ways,.oc-related ul{grid-template-columns:1fr}
 .oc-times{grid-template-columns:1fr 1fr;gap:20px 12px}
 .oc-mobile{display:block;margin-top:24px}
 .oc-head h1{font-size:clamp(2.3rem,8vw,3.5rem)}
 .oc-practical,.oc-overview-grid .pcard{padding:24px}
 .oc-breadcrumb{margin-bottom:24px}
}

.oc-booking{scroll-margin-top:100px}
.oc-booking form{display:grid;gap:12px}
.oc-booking label{font-weight:600}
.oc-booking input{box-sizing:border-box;width:100%;min-width:0;padding:12px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}
.oc-booking input:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
.oc-booking fieldset{margin-top:16px;padding:12px;border:1px solid var(--line-2)}
.oc-booking fieldset button{margin-top:12px}
