.surf-page .ag-layout{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:28px}.surf-content{min-width:0}.surf-gallery{margin:0}.surf-gallery-frame{aspect-ratio:3/2;background:#edf3ef;border-radius:16px;overflow:hidden;position:relative}.surf-gallery-frame img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:contain}.surf-gallery figcaption{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;min-height:26px;font-size:14px}.surf-photo-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.surf-photo-controls button{min-height:44px;border:1px solid #ccc;background:#fff;border-radius:24px;padding:10px 16px;font-size:14px;cursor:pointer}.surf-photo-controls #surf-photo-play{margin-left:auto}.surf-summary{margin:32px 0}.surf-summary h2,.surf-companies-title{font-size:26px;line-height:1.25;letter-spacing:-.025em;margin:0 0 16px}.surf-summary p{font-size:16px;color:#626262;margin:0 0 16px}.surf-company-jump{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#13654e!important;text-underline-offset:4px}.surf-map-report{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:32px 0 40px;align-items:start}.surf-map-panel,.surf-report{border:1px solid #ddd;border-radius:16px;padding:20px;min-width:0}.surf-map-panel h2,.surf-report h2{font-size:22px;line-height:1.25;margin:0 0 12px;letter-spacing:-.025em}.surf-map-panel>p{font-size:14px;color:#626262;margin:0 0 14px}.surf-map-controls{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.surf-map-controls button{min-height:44px;background:#fff;border:1px solid #ccc;border-radius:22px;padding:10px 12px;font-size:14px;cursor:pointer}.surf-map-controls button[aria-pressed=true]{background:#13654e;color:#fff;border-color:#13654e}.surf-location-map{width:100%;height:330px;background:#edf3ef;border-radius:10px;overflow:hidden;position:relative;z-index:0}.surf-location-map>p{padding:18px;font-size:14px;color:#626262}.surf-map-panel .surf-map-note{font-size:12px;line-height:1.5;margin:14px 0 0}.surf-page .leaflet-popup-content{font:14px/1.5 Arial}.surf-page .leaflet-popup-content h3{font-size:16px;margin:0 0 10px}.surf-page .leaflet-popup-content button{display:block;width:100%;text-align:left;border:1px solid #ddd;border-radius:8px;background:#fff;color:#13654e;font:14px Arial;min-height:44px;padding:10px;margin-top:8px;cursor:pointer}.surf-page .leaflet-control-attribution{font-size:11px}.surf-report{min-height:450px}.surf-report #surf-report-issued{font-size:12px;color:#626262;min-height:36px;margin:0 0 12px;line-height:1.5}.surf-report label{display:block;font-size:14px;font-weight:700;margin:0 0 8px}.surf-report select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #bbb;background:#fff;border-radius:8px;font-size:14px;color:#222}.surf-coast-diagram{display:grid;grid-template-columns:1fr 1.35fr 1fr;grid-template-rows:58px 105px 58px;align-items:center;gap:8px;margin:20px 0}.surf-coast{text-align:center;border-radius:10px;background:#f3f7f4;padding:8px 4px;min-width:0}.surf-coast span{display:block;font-size:13px;color:#626262}.surf-coast strong{font-size:18px;color:#153e34;white-space:nowrap}.surf-coast.north{grid-column:2;grid-row:1}.surf-coast.west{grid-column:1;grid-row:2}.surf-coast.east{grid-column:3;grid-row:2}.surf-coast.south{grid-column:2;grid-row:3}.surf-coast-island{position:relative;grid-column:2;grid-row:2}.surf-coast-island svg{width:100%;height:100px;display:block}.surf-coast-island>span{position:absolute;inset:0;display:grid;place-items:center;font-weight:700;font-size:14px;color:#234b34}.surf-report-note{font-size:12px;color:#626262;line-height:1.5;margin:0 0 14px}.surf-report details{border-top:1px solid #ddd;padding:12px 0}.surf-report summary{cursor:pointer;font-size:14px;font-weight:700;min-height:30px}.surf-report details p{font-size:14px;white-space:pre-line;line-height:1.6;color:#626262;margin:10px 0 0}.surf-report>a{font-size:14px;color:#13654e;text-underline-offset:3px;display:inline-block;min-height:44px;padding-top:8px}.surf-page .ag-calendar-top label{display:block;font-size:14px;font-weight:700;margin:16px 0 7px}.surf-page .ag-calendar-top select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #bbb;border-radius:8px;background:#fff;font-size:14px;color:#222}.surf-page #surf-sidebar-book{display:block;width:100%;min-height:48px;background:#13654e;color:#fff;text-decoration:none;border-radius:8px;padding:12px;margin:16px 0;font-size:14px;font-weight:700}.surf-page #surf-sidebar-book:disabled{background:#e7ece9;color:#626262;cursor:default}.surf-page .ag-card.is-selected{outline:3px solid #13654e;outline-offset:3px}.surf-page #surf-companies{scroll-margin-top:24px}@media(max-width:1180px){.surf-map-report{grid-template-columns:1fr}}@media(max-width:950px){.surf-page .ag-layout{grid-template-columns:1fr}}@media(max-width:650px){.surf-gallery{min-height:calc(66.6667vw + 85.333px)}.surf-photo-controls button{font-size:13px;padding:10px 12px}.surf-summary h2,.surf-companies-title{font-size:24px}.surf-map-panel,.surf-report{padding:18px}.surf-page .ag-cards{grid-template-columns:1fr}.surf-coast-diagram{grid-template-columns:1fr 1.35fr 1fr}}
.surf-gallery-frame .surf-photo-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1;width:36px;height:36px;min-height:36px;display:grid;place-items:center;padding:0;border:1px solid #ddd;border-radius:50%;background:#fffffff0;color:#222;font:24px/1 Arial;box-shadow:0 1px 6px #0002;cursor:pointer}.surf-photo-arrow.previous{left:10px}.surf-photo-arrow.next{right:10px}.surf-photo-dots{display:flex;justify-content:center;gap:2px;margin-top:9px;min-height:32px}.surf-photo-dots button{width:28px;height:32px;min-height:32px;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}.surf-photo-dots button span{width:6px;height:6px;border-radius:50%;background:#b9c6bf}.surf-photo-dots button[aria-current=true] span{background:#13654e}
.page-inner:has(.surf-page){overflow:visible!important}.surf-map-panel{background:linear-gradient(145deg,#eefdff,#fff9ed);border-color:#c9e8e9}.surf-map-panel h2{color:#075f78}.surf-map-panel .surf-location-map{border:2px solid #b8e0e4;box-shadow:0 4px 14px #16758b12}.surf-page .leaflet-tile{filter:saturate(1.13)}.surf-school-icon{background:none!important;border:0!important}.surf-school-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.surf-school-legend button{display:flex;align-items:center;gap:7px;min-height:40px;text-align:left;border:1px solid #d6e7e5;border-radius:22px;background:#fff;padding:7px 10px;font:13px Arial;color:#234d55;cursor:pointer}.surf-school-number{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:12px;font-weight:700;flex:none}.school-0{background:#008fa8}.school-1{background:#16a085}.school-2{background:#e77243}.school-3{background:#4b78d0}.school-4{background:#9b5eb5}.surf-report{min-height:365px;background:#f7fbfd;border-color:#d1e6ec}.surf-report #surf-report-issued{min-height:22px;margin-bottom:10px;color:#45718a}.surf-report .surf-coast-diagram{margin:12px 0 20px}.surf-report .surf-coast{background:#eaf4fa}.surf-report .surf-coast strong{color:#075f78;font-size:21px}.surf-report>a{display:inline-flex;align-items:center;justify-content:center;background:#007faf;color:#fff;border-radius:24px;padding:11px 16px;min-height:44px;text-decoration:none;font-weight:700}.surf-report .surf-report-note{font-size:12px;margin-bottom:16px}

/* Surf page: report, map, then booking in the desktop sidebar. */
.surf-page .surf-sidebar{display:flex;flex-direction:column;gap:22px;align-self:stretch;min-width:0}
.surf-page .surf-sidebar>.ag-calendar-column{position:sticky;top:20px;width:100%}
.surf-page .surf-sidebar>.surf-report,.surf-page .surf-sidebar>.surf-map-panel{width:100%;box-sizing:border-box}
@media(max-width:950px){
 .surf-page .ag-layout{display:flex;flex-direction:column;gap:0}
 .surf-page .surf-content,.surf-page .surf-sidebar{display:contents}
 .surf-page .surf-gallery{order:0;width:100%;min-height:0}
 .surf-page .surf-summary{order:1;width:100%}
 .surf-page .surf-report{order:2;width:100%;margin-bottom:22px}
 .surf-page .surf-map-panel{order:3;width:100%;margin-bottom:22px}
 .surf-page .surf-sidebar>.ag-calendar-column{order:4;position:static;width:100%;margin-bottom:36px;display:block}
 .surf-page .surf-sidebar>.ag-calendar-column:empty{display:none}
 .surf-page #surf-companies{order:5;width:100%}
 .surf-page .ag-faq{order:6;width:100%}
}

.surf-page .ag-heading>a.surf-starting-price{display:inline-flex;align-items:center;justify-content:center;min-width:0;white-space:nowrap;background:#13654e;border-color:#13654e;color:#fff}
@media(max-width:650px){.surf-page .ag-heading>a.surf-starting-price{margin-top:16px}}

.surf-school-price{display:inline-flex;align-items:center;justify-content:center;min-width:65px;min-height:26px;padding:2px 7px;border-radius:16px;color:#fff;font-size:12px;font-weight:700;white-space:nowrap;flex:none;box-sizing:border-box}
.surf-school-price.school-0{background:#00758a}.surf-school-price.school-1{background:#0c7b64}.surf-school-price.school-2{background:#b44c23}.surf-school-price.school-3{background:#365fae}.surf-school-price.school-4{background:#834da0}
.surf-page .leaflet-popup-content .surf-popup-price{font-weight:700;color:#13654e;margin:10px 0}
.surf-price-icon svg{filter:drop-shadow(0 2px 2px #183e4230)}
.surf-price-icon:focus-visible{outline:3px solid #183e42;outline-offset:3px;border-radius:18px}
