:root { --ink:#10251f; --moss:#1d4235; --lime:#d9ff72; --sand:#f1eadb; --paper:#fbf8f1; --line:rgba(16,37,31,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope,Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.wrap { width:min(1180px, calc(100% - 48px)); margin:auto; }
.eyebrow { 
	display:flex; gap:10px; align-items:center; 
	font:500 11px/1.2 "DM Mono",monospace; letter-spacing:.14em; text-transform:uppercase; 
}
.eyebrow::before { content:""; width:23px; height:1px; background:currentColor; }
.hero { min-height:780px; color:#fff; position:relative; overflow:hidden; background:#18372f; }
.hero::before { 
	content:""; position:absolute; inset:0; 
	background:linear-gradient(90deg,rgba(7,22,18,.78) 0%,rgba(8,26,21,.40) 48%,rgba(8,26,21,.08)),
	linear-gradient(0deg,rgba(7,20,16,.5),transparent 43%),url('assets/base-hero-wide.webp') center/cover; filter:saturate(.72); 
}
.hero::after { 
	content:""; width:130vw; height:160px; background:var(--paper); position:absolute; bottom:-105px; 
	left:-15vw; border-radius:50% 50% 0 0 / 100% 100% 0 0; 
}
.hero nav { 
	position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; 
	padding:27px 0; border-bottom:1px solid rgba(255,255,255,.25); 
}
.logo { font:700 26px/1 "Playfair Display",serif; letter-spacing:-.06em; display:flex; align-items:center; gap:10px; }
.logo-mark { 
	width:38px; height:38px; border-radius:50%; object-fit:cover; border:1px solid rgba(217,255,114,.75); display:block; 
}
.nav-links { 
	display:flex; align-items:center; gap:30px; font-size:13px; font-weight:600; 
}
.nav-cta, .button { 
	background:var(--lime); color:var(--ink); padding:13px 19px; border-radius:3px; font-weight:800; 
	font-size:12px; text-transform:uppercase; letter-spacing:.05em; border:0; cursor:pointer; 
	display:inline-flex; align-items:center; gap:12px; 
}
.hero-content { position:relative; z-index:1; padding:139px 0 150px; max-width:790px; }
.hero h1 { font:700 clamp(56px,8.1vw,118px)/.88 "Playfair Display",serif; letter-spacing:-.067em; margin:21px 0 28px; }
.hero h1 em { color:var(--lime); font-weight:700; }
.hero-text { max-width:440px; font-size:16px; line-height:1.65; color:rgba(255,255,255,.82); margin:0 0 35px; }
.hero-meta { 
	position:absolute; z-index:1; right:max(24px,calc((100% - 1180px)/2)); 
	bottom:145px; display:flex; gap:30px; color:#fff; 
}
.hero-meta b { display:block; font:700 35px/1 "Playfair Display",serif; color:var(--lime); }
.hero-meta span { 
	font:500 10px/1.5 "DM Mono",monospace; text-transform:uppercase; 
	letter-spacing:.1em; color:rgba(255,255,255,.65); 
}
section { padding:110px 0; }
.intro { display:grid; grid-template-columns:1fr 1.1fr; gap:11vw; align-items:end; }
.intro h2,.section-title { 
	font:700 clamp(38px,4.7vw,65px)/.98 "Playfair Display",serif;
	letter-spacing:-.055em; margin:17px 0 0;
}
.intro-copy { border-left:1px solid var(--ink); padding-left:28px; font-size:17px; line-height:1.75; }
.intro-copy p { margin:0; }
.intro-copy strong { color:#55733b; }
.numbers { 
	margin-top:76px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); 
	border-bottom:1px solid var(--line);
}
.number { padding:27px 18px 28px 0; border-right:1px solid var(--line); }
.number:not(:first-child){padding-left:27px}
.number:last-child{border:0}
.number b { display:block; font:700 48px/1 "Playfair Display",serif; letter-spacing:-.06em; }
.number span { 
	display:block; margin-top:9px; color:#587066; font:500 10px/1.5 "DM Mono",monospace;
	letter-spacing:.08em; text-transform:uppercase; 
}
.programs { background:var(--moss); color:#f9f6ef; }
.programs .eyebrow { color:var(--lime); }
.programs .section-title { max-width:580px; }
.cards { margin-top:55px; display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }
.card { 
	min-height:420px; padding:27px; position:relative; overflow:hidden; display:flex;
	flex-direction:column; justify-content:flex-end; background:#284f41;
}
.card:before { 
	content:""; position:absolute; inset:0; background-size:cover; background-position:center;
	opacity:.55; transition:.4s ease; 
}
.card:hover:before{transform:scale(1.05);opacity:.8;}
.card:nth-child(1):before { 
	background-image:linear-gradient(0deg,rgba(8,23,19,.94),transparent 70%),url('assets/fishing-joy.webp'); 
}
.card:nth-child(2):before { 
	background-image:linear-gradient(0deg,rgba(8,23,19,.94),transparent 70%),url('assets/base-1.webp'); 
}
.card:nth-child(3):before { 
	background-image:linear-gradient(0deg,rgba(8,23,19,.94),transparent 70%),url('assets/base-6.webp'); 
}
.card > * { position:relative; }
.tag { 
	align-self:flex-start; margin-bottom:auto; background:var(--lime); color:var(--ink); 
	padding:7px 10px; font:500 10px "DM Mono",monospace; 
}
.card h3{font:700 32px/1 "Playfair Display",serif;letter-spacing:-.04em;margin:0}
.card p{font-size:13px;line-height:1.55;color:rgba(255,255,255,.77);margin:11px 0 20px}
.card-link{font:700 11px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--lime)}
.prices{background:var(--paper)}
.prices-head{display:flex;justify-content:space-between;align-items:end;gap:50px}
.prices-head>p{max-width:340px;margin:0;font-size:14px;line-height:1.65;color:#52665d}
.price-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:55px}
.price-group{padding:28px;background:var(--sand);min-height:430px}
.price-group-num{font:500 10px/1.4 "DM Mono",monospace;letter-spacing:.09em;text-transform:uppercase;color:#5c7669}
.price-group h3{min-height:63px;font:700 30px/1.05 "Playfair Display",serif;letter-spacing:-.04em;margin:18px 0 27px}
.price-group dl{margin:0}.price-group dl div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--line)}
.price-group dt{font-size:13px;line-height:1.35;font-weight:700}.price-group dt small{display:block;margin-top:4px;font-size:11px;line-height:1.4;font-weight:500;color:#5b6b63}
.price-group dd{flex:0 0 auto;margin:0;text-align:right;font:700 17px/1.25 "Playfair Display",serif;letter-spacing:-.02em}
.price-note{margin:22px 0 0;font-size:12px;line-height:1.6;color:#52665d}
.fishing{background:var(--sand)}
.fishing-head{display:flex;justify-content:space-between;align-items:end;gap:50px}
.fishing-head>p{max-width:330px;margin:0;font-size:14px;line-height:1.65;color:#52665d}
.detail-number{font:500 10px/1.4 "DM Mono",monospace;letter-spacing:.09em;text-transform:uppercase;color:#5c7669}
.fishing-details{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:55px}
.fishing-details article{padding:27px 28px 27px 0;margin-right:28px;border-right:1px solid var(--line)}
.fishing-details article:last-child{border:0;margin:0;padding-right:0}
.fishing-details h3{font:700 24px/1.1 "Playfair Display",serif;letter-spacing:-.03em;margin:13px 0 10px}
.fishing-details p,.fishing-details li{font-size:13px;line-height:1.65;color:#52665d;margin:0}
.fishing-details ul{margin:0;padding-left:17px}
.gallery { padding:100px 0 0; }
.gallery-head { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:34px; }
.gallery-note{max-width:300px;font-size:13px;line-height:1.6;color:#52665d;margin:0}
.gallery-grid{
	display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:245px;gap:12px;
	grid-template-areas:
		"a a b c"
		"a a d d"
		"e f h h"
		"g g h h"
		"i i j k"
		"i i l l"
		"m m m m";
}
.gallery-grid picture{display:block;height:100%;overflow:hidden}
.gallery-grid picture img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-grid picture:nth-child(1){grid-area:a}
.gallery-grid picture:nth-child(2){grid-area:b}
.gallery-grid picture:nth-child(3){grid-area:c}
.gallery-grid picture:nth-child(4){grid-area:d}
.gallery-grid picture:nth-child(5){grid-area:e}
.gallery-grid picture:nth-child(6){grid-area:f}
.gallery-grid picture:nth-child(7){grid-area:g}
.gallery-grid picture:nth-child(8){grid-area:h}
.gallery-grid picture:nth-child(9){grid-area:i}
.gallery-grid picture:nth-child(10){grid-area:j}
.gallery-grid picture:nth-child(11){grid-area:k}
.gallery-grid picture:nth-child(12){grid-area:l}
.gallery-grid picture:nth-child(13){grid-area:m}
.experience { padding-bottom:0; }
.experience-grid { display:grid; grid-template-columns:1fr 1fr; margin-top:55px; }
.experience-image { min-height:640px; display:block; overflow:hidden; }
.experience-image img { width:100%; height:100%; min-height:640px; object-fit:cover; object-position:center; display:block; }
.perks { padding:25px 0 0 55px; }
.perk { padding:26px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:54px 1fr; gap:18px; }
.perk-num{font:500 11px "DM Mono",monospace;color:#698677}
.perk h3{margin:0 0 8px;font:700 24px "Playfair Display",serif;letter-spacing:-.03em}
.perk p{font-size:14px;line-height:1.6;color:#52665d;margin:0;max-width:350px}
.perk a,.faq-list a{color:#315d4d;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.booking { margin-top:110px; background:var(--lime); padding:72px 0; }
.booking-grid { display:grid; grid-template-columns:1fr .94fr; gap:9vw; align-items:center; }
.booking h2{font:700 clamp(39px,4.8vw,67px)/.95 "Playfair Display",serif;letter-spacing:-.06em;margin:16px 0 0}
.booking p{font-size:15px;line-height:1.65;margin:18px 0 0;max-width:410px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.input{
	width:100%;padding:15px 0;border:0;border-bottom:1px solid rgba(16,37,31,.45);
	background:transparent;color:var(--ink);font:600 14px Manrope;outline:0;
}
.form .button{margin-top:12px;justify-content:center;background:var(--ink);color:#fff;grid-column:span 2;padding:17px}
.form .button:disabled{cursor:wait;opacity:.68}
.form-note{font-size:10px;line-height:1.5;color:#3e584c;grid-column:span 2;margin:0}
.form-note a{text-decoration:underline;text-underline-offset:3px}
.form-field{display:flex;flex-direction:column;gap:8px}
.form-field.full{grid-column:span 2}
.form-honeypot{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.form-field>span,.form-services legend{font:500 10px/1.4 "DM Mono",monospace;letter-spacing:.09em;text-transform:uppercase;color:#3e584c}
.form-services{grid-column:span 2;margin:10px 0 0;padding:0;border:0}
.form-services legend{padding:0;margin-bottom:12px}
.service-options{display:flex;flex-wrap:wrap;gap:8px}
.service-choice{position:relative;cursor:pointer}
.service-choice input{position:absolute;opacity:0;inset:0}
.service-choice span{display:block;padding:10px 13px;border:1px solid rgba(16,37,31,.35);font-size:12px;font-weight:800;transition:background .18s ease,color .18s ease,border-color .18s ease}
.service-choice input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.service-choice input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}
.booking-actions{grid-column:span 2;display:flex;align-items:center;flex-wrap:wrap;gap:13px;margin-top:10px}
.booking-actions .button{margin:0;grid-column:auto}
.vk-message-link{font-size:12px;font-weight:800;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.form-consent{grid-column:span 2;display:flex;align-items:flex-start;gap:10px;margin:4px 0 0;color:#3e584c;font-size:11px;line-height:1.55}
.form-consent input{flex:0 0 auto;inline-size:16px;block-size:16px;margin:1px 0 0;accent-color:var(--ink)}
.form-consent a{text-decoration:underline;text-underline-offset:3px}
.form-status{grid-column:span 2;margin:0;padding:12px;background:rgba(255,255,255,.34);font-size:12px;line-height:1.5}
.faq{padding-bottom:110px}
.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}
.faq-intro{max-width:320px;font-size:14px;line-height:1.65;color:#52665d;margin:22px 0 0}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;position:relative;padding:22px 42px 22px 0;font:700 19px/1.25 "Playfair Display",serif;letter-spacing:-.025em}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"+";position:absolute;right:3px;top:16px;font:400 29px/1 Manrope;color:#698677;transition:transform .2s ease}
.faq-list details[open] summary:after{transform:rotate(45deg)}
.faq-list details p{max-width:590px;color:#52665d;font-size:13px;line-height:1.7;margin:0;padding:0 35px 22px 0}
footer{background:var(--ink);color:#f7f4ed;padding:0 0 25px}
.footer-cta{display:flex;align-items:flex-end;justify-content:space-between;gap:45px;padding:68px 0 55px;border-bottom:1px solid rgba(255,255,255,.15)}
.footer-cta h2{font:700 clamp(52px,5.4vw,78px)/.88 "Playfair Display",serif;letter-spacing:-.06em;margin:19px 0 0}
.footer-cta h2 em{color:var(--lime);font-style:italic}
.footer-cta .button{flex:none;margin-bottom:5px}
.footer-top{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:70px;align-items:start;padding:43px 0 50px}
.footer-brand p{max-width:305px;margin:20px 0 0;color:rgba(255,255,255,.55);font-size:12px;line-height:1.7}
.footer-nav{font-size:12px;font-weight:600}
.footer-nav-links{display:grid;grid-template-columns:repeat(2,max-content);gap:12px 28px}
.footer-title{display:block;margin-bottom:18px;font:400 9px "DM Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.43)}
.footer-nav a{transition:color .2s ease}
.footer-nav a:hover,.footer-nav a:focus-visible{color:var(--lime)}
.footer-contact{justify-self:end;text-align:right;font:700 22px/1.25 "Playfair Display",serif}
.footer-contact>a{display:block;width:max-content;margin:7px 0 0 auto;color:var(--lime)}
.footer-contact .footer-vk{margin-top:20px;color:#f7f4ed;font:700 11px/1.3 Manrope,sans-serif;text-decoration:underline;text-underline-offset:5px}
.footer-bottom{
	border-top:1px solid rgba(255,255,255,.15);padding-top:18px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 28px;
	font:400 10px "DM Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.53);
}
.policy-header{background:var(--ink);color:#f7f4ed}
.policy-header .wrap{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.policy-back{font-size:12px;font-weight:800;text-decoration:underline;text-underline-offset:4px}
.policy-page{padding:85px 0 110px}
.policy-content{width:min(820px,calc(100% - 48px));margin:auto}
.policy-content h1{font:700 clamp(42px,5vw,68px)/.98 "Playfair Display",serif;letter-spacing:-.06em;margin:18px 0 28px}
.policy-lead{max-width:710px;font-size:16px;line-height:1.7;color:#52665d;margin:0}
.policy-alert{margin:36px 0;padding:18px 20px;background:var(--lime);font-size:13px;line-height:1.6}
.policy-content section{padding:21px 0;border-top:1px solid var(--line)}
.policy-content h2{font:700 28px/1.15 "Playfair Display",serif;letter-spacing:-.035em;margin:0 0 12px}
.policy-content section p{font-size:14px;line-height:1.75;color:#435a50;margin:9px 0}
@media (max-width:980px){
	.hero{min-height:760px}
	.hero-content{max-width:680px;padding:90px 0 180px}
	.hero h1{font-size:clamp(58px,7.5vw,76px)}
	.hero-meta{bottom:120px}
	.footer-top{grid-template-columns:1fr 1fr}
	.footer-brand{grid-column:span 2}
}
@media (max-width:760px) { 
	.wrap{width:min(100% - 34px,1180px)}
	.hero{min-height:800px}
	.nav-links a:not(.nav-cta){display:none}
	.hero-content{max-width:100%;padding:68px 0 225px}
	.hero h1{font-size:clamp(42px,11vw,58px);line-height:.9;letter-spacing:-.055em;margin:18px 0 22px}
	.hero-text{max-width:520px;font-size:14px;line-height:1.55;margin-bottom:27px}
	.hero-meta{left:17px;right:auto;bottom:82px;gap:20px}
	.hero-meta b{font-size:28px}
	.intro,.booking-grid{grid-template-columns:1fr;gap:35px}
	.numbers{margin-top:50px}
	.number b{font-size:35px}
	.number:not(:first-child){padding-left:13px}
	.number{padding-right:10px}
	.cards{grid-template-columns:1fr}
	.card{min-height:340px}
	.prices-head{align-items:start;flex-direction:column;gap:18px}
	.price-groups{grid-template-columns:1fr;margin-top:38px}
	.price-group{min-height:0;padding:23px}
	.price-group h3{min-height:0;font-size:27px;margin:15px 0 21px}
	.fishing-head{align-items:start;flex-direction:column;gap:18px}
	.fishing-details{grid-template-columns:1fr;margin-top:28px}
	.fishing-details article{padding:23px 0;margin:0;border-right:0;border-bottom:1px solid var(--line)}
	.fishing-details article:last-child{border-bottom:0}
	.gallery{padding-top:70px}
	.gallery-head{align-items:start;flex-direction:column;gap:15px}
	.gallery-grid{
		grid-template-columns:1fr 1fr;grid-auto-rows:170px;
		grid-template-areas:
			"a a"
			"a a"
			"b c"
			"d d"
			"e f"
			"g g"
			"h h"
			"h h"
			"i i"
			"i i"
			"j k"
			"l l"
			"m m";
	}
	.experience-grid{grid-template-columns:1fr}
	.experience-image,.experience-image img{min-height:370px}
	.perks{padding:20px 0}
	.booking{margin-top:75px;padding:57px 0}
	.form-field.full,.form-services,.booking-actions,.form-consent,.form-note,.form-status{grid-column:span 2}
	.faq{padding-bottom:75px}
	.faq-layout{grid-template-columns:1fr;gap:36px}
	.footer-cta{align-items:flex-start;flex-direction:column;padding:55px 0 45px}
	.footer-cta h2{font-size:52px}
	.footer-top{grid-template-columns:1fr;gap:38px;padding:38px 0 43px}
	.footer-brand{grid-column:auto}
	.footer-nav-links{grid-template-columns:1fr 1fr;gap:13px 25px}
	.footer-contact{justify-self:start;text-align:left}
	.footer-contact>a{margin-left:0}
	.footer-bottom{align-items:flex-start;flex-direction:column;gap:12px}
	.policy-header .wrap{min-height:78px}
	.policy-page{padding:60px 0 75px}
	.policy-content{width:min(100% - 34px,820px)}
	.policy-content h2{font-size:25px}
	.section-title{font-size:46px}
	section{padding:75px 0} 
}
@media (max-width:420px){
	.hero nav{padding:20px 0}
	.hero .eyebrow{gap:8px;font-size:9px;letter-spacing:.1em}
	.hero .eyebrow::before{width:18px}
	.hero-content{padding-top:58px}
	.hero h1{font-size:clamp(40px,11.5vw,48px)}
	.hero-meta{gap:16px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card:before,.service-choice span{transition:none}}
