*,*::before,*::after{margin:0;padding:0;box-sizing:border-box} html{scroll-behavior:smooth;scroll-padding-top:80px} body{font-family:’Merriweather’,Georgia,serif;background:#F0F8FF;color:#2F4F4F;line-height:1.7;font-size:16px;overflow-x:hidden} a{text-decoration:none;color:inherit;transition:color .3s} img{max-width:100%;height:auto;display:block} .container{max-width:1200px;margin:0 auto;padding:0 24px} header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(0,64,128,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 20px rgba(0,0,0,.15)} .nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:72px} .logo{display:flex;align-items:center;gap:12px} .logo img{height:50px;width:auto} .logo-text{font-family:’Lato’,sans-serif;font-weight:900;font-size:1.4rem;color:#F0F8FF;letter-spacing:1px} nav ul{list-style:none;display:flex;gap:32px} nav ul li a{font-family:’Lato’,sans-serif;font-weight:700;font-size:.95rem;color:#F0F8FF;text-transform:uppercase;letter-spacing:1.5px;position:relative;padding:4px 0} nav ul li a::after{content:”;position:absolute;bottom:-2px;left:0;width:0;height:2px;background:#1E90FF;transition:width .3s} nav ul li a:hover::after{width:100%} nav ul li a:hover{color:#87CEEB} .nav-phone{display:flex;align-items:center;gap:8px;color:#87CEEB;font-family:’Lato’,sans-serif;font-size:.9rem} .nav-phone svg{width:16px;height:16px;fill:#87CEEB} .hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px} .hamburger span{width:28px;height:3px;background:#F0F8FF;border-radius:2px;transition:.3s} .hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(135deg,#004080 0%,#001a33 50%,#002244 100%);overflow:hidden} .hero::before{content:”;position:absolute;inset:0;background:url(‘https://bofor-rigging.com/images/1024%2C3024x4032%2B503%2B-504%2C90/22043846/IMG_3190–mMu11tuI8p16sXqtTGZnQ.JPG’) center/cover no-repeat;opacity:.2} .hero::after{content:”;position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to top,#F0F8FF,transparent)} .hero-content{position:relative;z-index:2;max-width:800px;padding:120px 24px 80px} .hero h1{font-family:’Lato’,sans-serif;font-weight:900;font-size:clamp(2.4rem,5vw,3.8rem);color:#F0F8FF;line-height:1.2;margin-bottom:24px;text-shadow:0 2px 30px rgba(0,0,0,.4)} .hero p{font-size:clamp(1rem,2vw,1.25rem);color:#B0D4F1;line-height:1.8;margin-bottom:36px;font-weight:300} .hero-cta{display:inline-block;padding:16px 40px;background:#1E90FF;color:#fff;font-family:’Lato’,sans-serif;font-weight:700;font-size:1rem;letter-spacing:1px;text-transform:uppercase;border-radius:50px;border:none;cursor:pointer;transition:all .3s;box-shadow:0 4px 20px rgba(30,144,255,.4)} .hero-cta:hover{background:#0077E6;transform:translateY(-2px);box-shadow:0 8px 30px rgba(30,144,255,.5)} .section{padding:100px 0} .section-title{font-family:’Lato’,sans-serif;font-weight:900;font-size:clamp(1.8rem,3.5vw,2.6rem);color:#004080;text-align:center;margin-bottom:16px} .section-subtitle{text-align:center;color:#5A7A8A;font-size:1.05rem;max-width:650px;margin:0 auto 60px;font-weight:300} .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center} .about-image{border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,64,128,.15)} .about-image img{width:100%;height:500px;object-fit:cover;transition:transform .6s} .about-image:hover img{transform:scale(1.03)} .about-text h2{font-family:’Lato’,sans-serif;font-weight:900;font-size:2.2rem;color:#004080;margin-bottom:24px} .about-text p{color:#2F4F4F;line-height:1.9;margin-bottom:16px;font-size:1.02rem} .services-bg{background:linear-gradient(180deg,#F0F8FF 0%,#E0EEF8 100%)} .services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px} .service-card{background:#fff;border-radius:16px;padding:40px 32px;text-align:center;box-shadow:0 8px 40px rgba(0,64,128,.08);transition:transform .3s,box-shadow .3s;border:1px solid rgba(0,64,128,.06)} .service-card:hover{transform:translateY(-8px);box-shadow:0 16px 50px rgba(0,64,128,.15)} .service-icon{width:72px;height:72px;margin:0 auto 24px;background:linear-gradient(135deg,#1E90FF,#004080);border-radius:50%;display:flex;align-items:center;justify-content:center} .service-icon svg{width:32px;height:32px;fill:#fff} .service-card h3{font-family:’Lato’,sans-serif;font-weight:700;font-size:1.25rem;color:#004080;margin-bottom:14px} .service-card p{color:#5A7A8A;font-size:.95rem;line-height:1.7} .coaching-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center} .coaching-image{border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,64,128,.15)} .coaching-image img{width:100%;height:500px;object-fit:cover} .coaching-text h2{font-family:’Lato’,sans-serif;font-weight:900;font-size:2.2rem;color:#004080;margin-bottom:24px} .coaching-text p{color:#2F4F4F;line-height:1.9;margin-bottom:14px;font-size:1.02rem} .coaching-text ul{list-style:none;margin-top:20px} .coaching-text ul li{position:relative;padding-left:28px;margin-bottom:12px;color:#2F4F4F;font-size:1rem} .coaching-text ul li::before{content:”;position:absolute;left:0;top:10px;width:12px;height:12px;border-radius:50%;background:#1E90FF} .contact-section{background:linear-gradient(180deg,#E0EEF8 0%,#F0F8FF 100%)} .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start} .contact-info h2{font-family:’Lato’,sans-serif;font-weight:900;font-size:2.2rem;color:#004080;margin-bottom:24px} .contact-info p{color:#2F4F4F;line-height:1.8;margin-bottom:24px} .contact-detail{display:flex;align-items:center;gap:16px;margin-bottom:16px} .contact-detail-icon{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#1E90FF,#004080);display:flex;align-items:center;justify-content:center;flex-shrink:0} .contact-detail-icon svg{width:20px;height:20px;fill:#fff} .contact-detail-text{font-family:’Lato’,sans-serif;color:#2F4F4F} .contact-detail-text strong{display:block;font-size:.85rem;color:#5A7A8A;text-transform:uppercase;letter-spacing:1px} .contact-detail-text span{font-size:1.05rem} .contact-detail-text a{color:#1E90FF} .contact-detail-text a:hover{color:#004080} .contact-form{background:#fff;padding:48px;border-radius:16px;box-shadow:0 12px 50px rgba(0,64,128,.1)} .contact-form h3{font-family:’Lato’,sans-serif;font-weight:700;font-size:1.4rem;color:#004080;margin-bottom:28px} .form-group{margin-bottom:20px} .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px} .form-group label{display:block;font-family:’Lato’,sans-serif;font-size:.85rem;font-weight:700;color:#004080;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px} .form-group input,.form-group textarea{width:100%;padding:14px 18px;border:2px solid #D8E8F5;border-radius:10px;font-family:’Merriweather’,serif;font-size:.95rem;color:#2F4F4F;background:#FAFCFF;transition:border-color .3s,box-shadow .3s;outline:none} .form-group input:focus,.form-group textarea:focus{border-color:#1E90FF;box-shadow:0 0 0 4px rgba(30,144,255,.1)} .form-group textarea{resize:vertical;min-height:120px} .form-checkbox{display:flex;align-items:center;gap:10px;margin-bottom:24px} .form-checkbox input[type=”checkbox”]{width:18px;height:18px;accent-color:#1E90FF;cursor:pointer} .form-checkbox label{font-size:.9rem;color:#5A7A8A;cursor:pointer} .form-checkbox label a{color:#1E90FF;text-decoration:underline} .btn-submit{display:block;width:100%;padding:16px;background:#1E90FF;color:#fff;border:none;font-family:’Lato’,sans-serif;font-weight:700;font-size:1rem;letter-spacing:1px;text-transform:uppercase;border-radius:50px;cursor:pointer;transition:all .3s;box-shadow:0 4px 20px rgba(30,144,255,.3)} .btn-submit:hover{background:#0077E6;transform:translateY(-2px);box-shadow:0 8px 30px rgba(30,144,255,.4)} footer{background:#004080;color:#B0D4F1;padding:60px 0 0} .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(240,248,255,.1)} .footer-brand h3{font-family:’Lato’,sans-serif;font-weight:900;font-size:1.5rem;color:#F0F8FF;margin-bottom:16px} .footer-brand p{font-size:.95rem;line-height:1.8;color:#8AB4D4} .footer-col h4{font-family:’Lato’,sans-serif;font-weight:700;font-size:1rem;color:#F0F8FF;margin-bottom:20px;text-transform:uppercase;letter-spacing:1px} .footer-col ul{list-style:none} .footer-col ul li{margin-bottom:10px} .footer-col ul li a{color:#8AB4D4;font-size:.95rem;transition:color .3s} .footer-col ul li a:hover{color:#F0F8FF} .footer-contact-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;color:#8AB4D4;font-size:.95rem} .footer-contact-item svg{width:16px;height:16px;fill:#1E90FF;flex-shrink:0;margin-top:4px} .footer-contact-item a{color:#87CEEB} .footer-contact-item a:hover{color:#F0F8FF} .footer-social{display:flex;gap:12px;margin-top:16px} .footer-social a{width:40px;height:40px;border-radius:50%;background:rgba(240,248,255,.1);display:flex;align-items:center;justify-content:center;transition:background .3s} .footer-social a:hover{background:#1E90FF} .footer-social a svg{width:18px;height:18px;fill:#F0F8FF} .footer-bottom{text-align:center;padding:24px 0;font-size:.85rem;color:#6A9CC0} .footer-bottom a{color:#87CEEB} .footer-bottom a:hover{color:#F0F8FF} @media(max-width:968px){.about-grid,.coaching-grid,.contact-grid{grid-template-columns:1fr}.coaching-grid .coaching-image{order:-1}.footer-grid{grid-template-columns:1fr 1fr}} @media(max-width:768px){nav ul{display:none}.hamburger{display:flex}nav ul.active{display:flex;flex-direction:column;position:absolute;top:72px;left:0;right:0;background:rgba(0,64,128,.98);padding:24px;gap:16px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.2)}.nav-phone{display:none}.hero h1{font-size:2rem}.contact-form{padding:32px 24px}.form-row{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.about-image img,.coaching-image img{height:350px}} .fade-up{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease} .fade-up.visible{opacity:1;transform:translateY(0)}

Welcome to Bofor Rigging

Your go-to expert for all boat repairs and rigging needs in San Diego. Whether you need routine maintenance or major upgrades, we’re here to help!

Request a Quote
Bofor Rigging at work

About Bofor Rigging

At Bofor Rigging, we specialize in boat repairs and rigging with years of experience in the industry. Our founder is an experienced sailor from San Diego, who brings in-depth knowledge and skills to ensure your boat is ready for any adventure.

Whether preparing for a regatta or performing routine maintenance, we have the expertise to exceed your expectations.

Our Services

Comprehensive marine solutions for every vessel

Composite Repairs

Comprehensive repairs for fiberglass, carbon fiber, and gelcoat, ensuring safety and performance.

Rigging Services

Expert synthetic rigging replacement and installation to enhance your boat’s performance.

Consultation Services

Personalized advice and support for all your rigging needs.

Upgrades & Modifications

Modern upgrades to improve your boat’s technology and functionality.

Coaching

Personalized coaching for all skill levels ranging from cruisers and first timers to international racers.

  • Experienced in all types of sailboats from sabots to 50+ footers and foilers
  • Detailed sailshape, boathandling, and tactical analysis
  • Regatta preparation and race strategy
  • Custom training programs for your crew
Sailing coaching

Get in Touch for Your Boat Repair Needs

Ready to get started? Send us a message and we’ll get back to you promptly.

Let’s Talk

Bofor Rigging offers top-notch boat repair and rigging services. Experienced in preparing boats for regattas and general maintenance, we serve the San Diego area, including the Mission Bay Yacht Club.

LocationSan Diego, CA
San Diego harbor

Request a Quote

Name
Phone
Email
Date & Time
Message
I have read and understand the privacy policy.
const hamburger=document.getElementById(‘hamburger’);const navMenu=document.getElementById(‘navMenu’); hamburger.addEventListener(‘click’,()=>{hamburger.classList.toggle(‘active’);navMenu.classList.toggle(‘active’)}); navMenu.querySelectorAll(‘a’).forEach(link=>{link.addEventListener(‘click’,()=>{hamburger.classList.remove(‘active’);navMenu.classList.remove(‘active’)})}); const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting)entry.target.classList.add(‘visible’)})},{threshold:.15}); document.querySelectorAll(‘.fade-up’).forEach(el=>observer.observe(el)); document.getElementById(‘quoteForm’).addEventListener(‘submit’,function(e){e.preventDefault();alert(‘Thank you! Your quote request has been submitted. We will get back to you shortly.’);this.reset()});