/**
 * PaneRide — mobile-first TOP optimizations (max-width: 767px).
 * Desktop (768px+) uses main.css defaults; PC tables/cards toggled via .paneride-only-*.
 */

.paneride-only-mobile {
	display: none;
}

@media (max-width: 767px) {
	html {
		overflow-x: clip;
	}

	body {
		overflow-x: clip;
		font-size: 1rem;
		line-height: 1.7;
	}

	.paneride-only-mobile {
		display: block;
	}

	.paneride-only-desktop {
		display: none !important;
	}

	.paneride-container,
	.paneride-header .paneride-container {
		padding-inline: 1.125rem;
	}

	/* Header */
	.paneride-header {
		position: sticky;
	}

	.paneride-header__inner {
		min-height: 3.75rem;
		gap: 0.5rem;
		flex-wrap: nowrap;
	}

	.paneride-header__brand {
		flex: 1;
		min-width: 0;
	}

	.paneride-logo__img {
		height: 2.25rem;
		max-width: 9.5rem;
	}

	.paneride-powered-by--header {
		font-size: 0.625rem;
		line-height: 1.3;
		max-width: 11rem;
	}

	.paneride-header__tools {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		flex-shrink: 0;
	}

	.paneride-header__cta {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 2.75rem;
		padding: 0.4rem 0.75rem;
		font-size: 0.8125rem;
		white-space: nowrap;
	}

	.paneride-nav-toggle {
		min-width: 2.75rem;
		min-height: 2.75rem;
		padding: 0.5rem;
		justify-content: center;
	}

	.paneride-nav-toggle__label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
	}

	.paneride-nav__list a {
		min-height: 2.75rem;
		display: flex;
		align-items: center;
		padding: 0.75rem 0;
		font-size: 1rem;
	}

	.paneride-nav__cta {
		min-height: 3rem;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	/* Typography */
	.paneride-section__title {
		font-size: clamp(1.625rem, 7.5vw, 2rem);
		line-height: 1.35;
		margin-bottom: 1.25rem;
	}

	.paneride-section__lead,
	.paneride-section__lead--compact {
		font-size: 1rem;
		line-height: 1.75;
		margin-bottom: 1.5rem;
	}

	.paneride-prose p {
		font-size: 1rem;
		line-height: 1.75;
		margin-bottom: 1.15rem;
	}

	.paneride-note {
		font-size: 0.9375rem;
		line-height: 1.7;
	}

	/* Buttons / taps */
	.paneride-btn {
		min-height: 3rem;
		font-size: 1rem;
		padding: 0.75rem 1.25rem;
	}

	/* Hero */
	.paneride-hero--photo {
		min-height: clamp(32rem, 92vh, 40rem);
		padding-top: 4.5rem;
		padding-bottom: 2.25rem;
	}

	.paneride-hero--photo .paneride-hero__overlay {
		background: linear-gradient(
			180deg,
			rgba(0, 0, 0, 0.25) 0%,
			rgba(0, 0, 0, 0.45) 38%,
			rgba(0, 0, 0, 0.82) 72%,
			rgba(0, 0, 0, 0.9) 100%
		);
	}

	.paneride-hero--photo .paneride-hero__inner {
		align-items: flex-end;
	}

	.paneride-hero__logo {
		width: min(72vw, 13.5rem);
	}

	.paneride-hero__title {
		font-size: clamp(2rem, 8.5vw, 2.5rem);
		line-height: 1.28;
		margin-bottom: 1rem;
	}

	.paneride-hero__lead {
		font-size: 1rem;
		line-height: 1.75;
		margin-bottom: 1.5rem;
	}

	.paneride-hero__actions {
		flex-direction: column;
		align-items: stretch;
		gap: 0.75rem;
	}

	.paneride-hero__actions .paneride-btn {
		width: 100%;
		min-height: 3rem;
	}

	.paneride-hero__note {
		font-size: 0.875rem;
		line-height: 1.65;
		color: rgba(255, 255, 255, 0.58);
	}

	.paneride-powered-by--hero {
		font-size: 0.6875rem;
		margin-top: 0.5rem;
	}

	.paneride-section--prose,
	.paneride-section--compact {
		padding-top: 2.75rem;
		padding-bottom: 2.75rem;
	}

	.paneride-section--visual {
		padding-top: 2.75rem;
		padding-bottom: 2.75rem;
	}

	.paneride-features__item p {
		font-size: 1rem;
		line-height: 1.75;
	}

	.paneride-features__title {
		font-size: 1.0625rem;
	}

	/* Before / After */
	.paneride-ba__frame {
		aspect-ratio: 4 / 3;
		min-height: clamp(15rem, 58vw, 22rem);
		border-radius: 2px;
	}

	.paneride-ba__range {
		min-height: 2.75rem;
	}

	.paneride-ba-tabs__btn {
		min-height: 2.75rem;
		padding: 0.5rem 0.85rem;
		font-size: 0.9375rem;
	}

	.paneride-ba-tags li {
		font-size: 0.875rem;
		min-height: 2.25rem;
		display: inline-flex;
		align-items: center;
		padding: 0.35rem 0.75rem;
	}

	/* Gallery */
	.paneride-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}

	.paneride-gallery__img {
		max-height: none;
		width: 100%;
		aspect-ratio: 4 / 3;
		object-fit: cover;
	}

	.paneride-gallery__title {
		font-size: 0.9375rem;
	}

	.paneride-gallery__desc {
		font-size: 0.875rem;
		-webkit-line-clamp: 3;
	}

	/* Tags */
	.paneride-tags li {
		font-size: 0.9375rem;
		min-height: 2.25rem;
		display: inline-flex;
		align-items: center;
		padding: 0.45rem 0.85rem;
	}

	/* Board wall */
	.paneride-board-wall__grid {
		display: flex;
		flex-direction: column;
		gap: 1.5rem;
	}

	.paneride-board-wall__img {
		width: 100%;
		border-radius: 2px;
	}

	.paneride-board-wall__prose p {
		font-size: 1rem;
		line-height: 1.75;
	}

	/* Product cards */
	.paneride-finish-grid {
		grid-template-columns: 1fr;
		gap: 1.125rem;
		margin-top: 1.5rem;
	}

	.paneride-finish-card__highlights {
		padding: 0.85rem 0.85rem 0.55rem;
		gap: 0.4rem;
	}

	.paneride-finish-card__name {
		font-size: 1.25rem;
		margin-left: 1rem;
		margin-right: 1rem;
		margin-bottom: 0.25rem;
	}

	.paneride-finish-card__highlights li {
		font-size: 0.9375rem;
		min-height: 2rem;
		padding: 0.35rem 0.65rem;
	}

	.paneride-finish-card__catch {
		font-size: 1rem;
		margin: 0 1rem 0.45rem;
	}

	.paneride-finish-card__media {
		background: var(--pr-black);
		line-height: 0;
	}

	.paneride-finish-card__media img {
		display: block;
		width: 100%;
		height: clamp(15.25rem, 58vw, 17.25rem);
		min-height: 15.25rem;
		max-height: 17.25rem;
		aspect-ratio: auto;
		object-fit: contain;
		object-position: center;
		padding: 0 0.125rem;
		box-sizing: border-box;
	}

	.paneride-finish-card__summary p {
		font-size: 0.9375rem;
		line-height: 1.7;
	}

	.paneride-panel-type-contrast__grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.paneride-panel-type-contrast__traits li {
		font-size: 0.9375rem;
		min-height: 2rem;
	}

	/* Compare cards (mobile) */
	.paneride-compare-cards {
		display: flex;
		flex-direction: column;
		gap: 1rem;
		margin-top: 1.25rem;
	}

	.paneride-compare-card {
		border: 1px solid rgba(0, 0, 0, 0.1);
		border-radius: 3px;
		background: var(--pr-white);
		overflow: hidden;
	}

	.paneride-compare-card__title {
		margin: 0;
		padding: 0.85rem 1rem;
		font-size: 1.0625rem;
		font-weight: 700;
		background: #e8e6e0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	}

	.paneride-compare-card--premium .paneride-compare-card__title {
		background: rgba(201, 162, 74, 0.18);
	}

	.paneride-compare-card__rows {
		margin: 0;
		padding: 0.5rem 1rem 0.85rem;
	}

	.paneride-compare-card__row {
		display: grid;
		grid-template-columns: 5.5rem 1fr;
		gap: 0.65rem;
		padding: 0.55rem 0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.06);
		font-size: 0.9375rem;
		line-height: 1.55;
	}

	.paneride-compare-card__row:last-child {
		border-bottom: none;
	}

	.paneride-compare-card__row dt {
		margin: 0;
		font-weight: 600;
		color: rgba(0, 0, 0, 0.55);
	}

	.paneride-compare-card__row dd {
		margin: 0;
		color: rgba(0, 0, 0, 0.88);
	}

	/* Price cards (mobile) */
	.paneride-price-cards {
		margin-top: 1.25rem;
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}

	.paneride-price-card {
		border: 1px solid rgba(0, 0, 0, 0.1);
		border-radius: 3px;
		background: var(--pr-white);
		overflow: hidden;
	}

	.paneride-price-card__title {
		margin: 0;
		padding: 0.85rem 1rem;
		font-size: 1.0625rem;
		font-weight: 700;
		background: #e8e6e0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	}

	.paneride-price-card--premium .paneride-price-card__title {
		background: rgba(201, 162, 74, 0.18);
	}

	.paneride-price-card__list {
		list-style: none;
		margin: 0;
		padding: 0.35rem 1rem 0.65rem;
	}

	.paneride-price-card__row {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 0.75rem;
		padding: 0.55rem 0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.06);
		font-size: 1rem;
	}

	.paneride-price-card__row:last-child {
		border-bottom: none;
	}

	.paneride-price-card__dims {
		display: block;
		font-size: 0.8125rem;
		color: rgba(0, 0, 0, 0.5);
		margin-top: 0.15rem;
	}

	.paneride-price-card__amount {
		font-weight: 600;
		white-space: nowrap;
	}

	.paneride-price-cards__suffix {
		margin: 0.25rem 0 0;
		font-size: 0.9375rem;
		font-weight: 600;
		text-align: center;
		color: rgba(0, 0, 0, 0.72);
	}

	.paneride-price-tax-note,
	.paneride-shipping-note {
		font-size: 0.9375rem;
		line-height: 1.65;
	}

	.paneride-shipping-note__title {
		font-size: 1.0625rem;
		margin-bottom: 0.75rem;
	}

	.paneride-shipping-note__grid {
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}

	/* Frame prices */
	.paneride-frame-prices {
		margin-top: 2rem;
		padding-top: 1.5rem;
	}

	.paneride-frame-prices__figure {
		max-width: none;
		width: 100%;
		margin: 1rem 0;
	}

	.paneride-frame-prices__img {
		width: 100%;
	}

	.paneride-frame-prices__intro {
		font-size: 0.9375rem;
	}

	.paneride-frame-prices__types-label {
		margin: 0 0 0.5rem;
		font-size: 0.9375rem;
		font-weight: 600;
	}

	.paneride-frame-list--compact li {
		font-size: 0.9375rem;
		min-height: 2rem;
		display: flex;
		align-items: center;
	}

	.paneride-frame-price-cards {
		display: flex;
		flex-direction: column;
		gap: 0.85rem;
		margin-top: 1rem;
	}

	.paneride-frame-price-card {
		border: 1px solid rgba(0, 0, 0, 0.1);
		border-radius: 3px;
		background: var(--pr-white);
	}

	.paneride-frame-price-card__title {
		margin: 0;
		padding: 0.75rem 1rem;
		font-size: 1rem;
		font-weight: 700;
		background: #ebe9e4;
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	}

	.paneride-frame-price-card__list {
		list-style: none;
		margin: 0;
		padding: 0.25rem 1rem 0.5rem;
	}

	.paneride-frame-price-card__row {
		display: flex;
		justify-content: space-between;
		padding: 0.45rem 0;
		font-size: 1rem;
		border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	}

	.paneride-frame-price-card__row:last-child {
		border-bottom: none;
	}

	.paneride-frame-price-card__amount {
		font-weight: 600;
	}

	/* Scenes */
	.paneride-scenes {
		display: flex;
		flex-direction: column;
		gap: 0.65rem;
	}

	.paneride-scenes li {
		font-size: 1rem;
		min-height: 2.75rem;
		display: flex;
		align-items: center;
		padding: 0.65rem 1rem;
	}

	/* Photo guide */
	.paneride-checklist {
		font-size: 1rem;
		line-height: 1.75;
		padding-left: 1.35rem;
	}

	.paneride-checklist li {
		margin-bottom: 0.5rem;
		padding-left: 0.25rem;
	}

	/* Flow */
	.paneride-flow {
		max-width: none;
	}

	.paneride-flow__label {
		font-size: 0.8125rem;
		margin-bottom: 0.35rem;
	}

	.paneride-flow__item {
		padding-bottom: 1.75rem;
		padding-left: 1.35rem;
	}

	.paneride-flow__item p {
		font-size: 1rem;
		line-height: 1.65;
	}

	/* FAQ */
	.paneride-faq__question {
		font-size: 1rem;
		line-height: 1.55;
		min-height: 3.25rem;
		display: flex;
		align-items: center;
		padding: 0.85rem 2.25rem 0.85rem 0;
		position: relative;
	}

	.paneride-faq__question::after {
		content: "+";
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
		width: 2rem;
		height: 2rem;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 1.25rem;
		font-weight: 400;
		color: var(--pr-gold-muted);
	}

	.paneride-faq__item[open] .paneride-faq__question::after {
		content: "−";
	}

	.paneride-faq__answer {
		font-size: 0.9375rem;
		line-height: 1.75;
		padding-bottom: 1.15rem;
	}

	/* About Re:Fish */
	.paneride-section--about-refish .paneride-section__title {
		font-size: clamp(1.5rem, 6.5vw, 1.85rem);
	}

	.paneride-about-refish__badge {
		font-size: 0.6875rem;
	}

	.paneride-about-refish__cta .paneride-btn {
		width: 100%;
		min-height: 3rem;
	}

	/* Final CTA */
	.paneride-final-cta__title {
		font-size: clamp(1.75rem, 7vw, 2.25rem);
	}

	.paneride-final-cta__lead {
		font-size: 1rem;
		line-height: 1.75;
	}

	.paneride-final-cta .paneride-btn--large {
		display: flex;
		width: 100%;
		max-width: 100%;
		min-height: 3.25rem;
		align-items: center;
		justify-content: center;
	}

	.paneride-final-cta__note {
		font-size: 0.9375rem;
	}

	/* Footer */
	.paneride-footer {
		font-size: 0.9375rem;
		padding: 2rem 0 2.5rem;
	}

	.paneride-footer__inner {
		gap: 1.25rem;
	}

	.paneride-footer__nav ul {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.paneride-footer__nav a {
		display: flex;
		align-items: center;
		min-height: 2.75rem;
		font-size: 0.9375rem;
	}

	.paneride-footer__refish {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.35rem;
	}

	.paneride-footer__refish-sep {
		display: none;
	}

	.paneride-footer__operator {
		font-size: 0.8125rem;
	}

	.paneride-product-frames__link a {
		display: inline-flex;
		min-height: 2.75rem;
		align-items: center;
	}
}

@media (min-width: 960px) {
	.paneride-header__cta {
		display: none;
	}

	.paneride-header__tools {
		display: contents;
	}
}

@media (max-width: 359px) {
	.paneride-gallery {
		grid-template-columns: 1fr;
	}

	.paneride-header__cta {
		display: none;
	}
}

/* Mobile sticky bottom CTA */
@media (max-width: 767px) {
	/* SP: icon-only floating LINE CTA (48px) */
	body.paneride-has-line-float .paneride-line-float {
		right: 0.75rem;
		bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 0;
		width: 48px;
		height: 48px;
		min-width: 48px;
		max-width: 48px;
		min-height: 48px;
		max-height: 48px;
		padding: 0;
		border: none;
		background: transparent;
		border-radius: 50%;
		box-shadow: 0 3px 14px rgba(0, 0, 0, 0.38);
	}

	body.paneride-has-line-float.paneride-has-sticky-cta .paneride-line-float {
		bottom: calc(4.75rem + 0.875rem + env(safe-area-inset-bottom, 0px));
	}

	body.paneride-has-line-float.paneride-is-order-page .paneride-line-float {
		bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
	}

	.paneride-line-float__icon {
		flex: 0 0 auto;
		flex-shrink: 0;
		width: 48px;
		height: 48px;
		aspect-ratio: 1 / 1;
		border-radius: 50%;
		overflow: hidden;
	}

	.paneride-line-float__icon-img {
		width: 48px;
		height: 48px;
	}

	body.paneride-has-sticky-cta {
		padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
	}

	.paneride-mobile-sticky-cta {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		padding: 0.5rem 1.125rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
		background: linear-gradient(180deg, rgba(10, 10, 10, 0) 0%, rgba(10, 10, 10, 0.35) 24%, rgba(10, 10, 10, 0.96) 100%);
		pointer-events: none;
	}

	.paneride-mobile-sticky-cta[hidden] {
		display: none !important;
	}

	.paneride-mobile-sticky-cta__inner {
		display: grid;
		grid-template-columns: 1fr 1.15fr;
		gap: 0.5rem;
		max-width: 28rem;
		margin: 0 auto;
		min-height: 3.75rem;
		align-items: stretch;
		pointer-events: auto;
	}

	.paneride-mobile-sticky-cta__secondary,
	.paneride-mobile-sticky-cta__primary {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 3rem;
		padding: 0.65rem 0.75rem;
		font-size: 0.9375rem;
		font-weight: 600;
		text-decoration: none;
		border-radius: 4px;
		line-height: 1.3;
		text-align: center;
	}

	.paneride-mobile-sticky-cta__secondary {
		color: #fafafa;
		background: rgba(255, 255, 255, 0.1);
		border: 1px solid rgba(255, 255, 255, 0.22);
	}

	.paneride-mobile-sticky-cta__primary {
		color: #1a1a1a;
		background: #b8956a;
		border: 1px solid #b8956a;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.28);
	}

	.paneride-mobile-sticky-cta__primary:active {
		background: #9a7d52;
		border-color: #9a7d52;
	}

	.paneride-is-order-page .paneride-header__cta {
		display: none !important;
	}

	/* Frame prices collapsible (TOP) */
	.paneride-frame-prices__mobile-lead {
		margin: 0 0 0.75rem;
		font-size: 1rem;
		line-height: 1.65;
		color: rgba(0, 0, 0, 0.78);
	}

	.paneride-frame-prices__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		min-height: 3rem;
		padding: 0.75rem 1rem;
		font-size: 1rem;
		font-weight: 600;
		color: #1a1a1a;
		background: #fff;
		border: 1px solid rgba(0, 0, 0, 0.12);
		border-radius: 4px;
		cursor: pointer;
	}

	.paneride-frame-prices__toggle .paneride-collapsible-icon {
		color: #b8956a;
		font-size: 1.125rem;
		font-weight: 400;
	}

	.paneride-frame-prices__panel:not(.is-open) {
		margin-top: 0;
	}

	.paneride-collapsible-panel:not(.is-open) {
		display: none;
	}

	.paneride-frame-prices__panel.is-open {
		margin-top: 1rem;
	}
}

@media (min-width: 768px) {
	.paneride-mobile-sticky-cta {
		display: none !important;
	}

	.paneride-frame-prices__mobile-intro {
		display: none !important;
	}

	.paneride-frame-prices__panel.paneride-collapsible-panel {
		display: block !important;
		margin-top: 1rem;
	}
}
