.memory-photo{padding-bottom:65px}.memory-photo img{width:100%;max-height:520px;object-fit:cover}.memory-photo figcaption{font-size:16px;color:var(--muted);margin-top:15px}.site-nav{font-size:16px}.booking-links>a{background:var(--ink);color:var(--paper);padding:26px;margin-bottom:16px;border:1px solid var(--ink)}.booking-links>a:hover{background:var(--deep);color:var(--paper)}.booking-links .booking-duration{color:var(--accent)}.booking-links small{color:var(--paper);opacity:.9;font-size:15px}.booking-links strong{font-size:21px}.booking-arrow{color:var(--accent)}
@media(min-width:901px) and (max-width:1100px){.site-header{flex-wrap:wrap;gap:12px 22px}.menu-toggle:not([hidden]){display:inline-flex;margin-left:auto}.book-header{margin-left:0}.site-nav{flex-basis:100%;order:5;justify-content:flex-start;flex-wrap:wrap;gap:0 30px}.js .site-nav{display:none}.js .site-nav.is-open{display:flex}}
@media(max-width:600px){.memory-photo{padding-bottom:40px}.memory-photo img{height:230px}.memory-photo figcaption{font-size:14px}.booking-links>a{padding:21px 18px;gap:15px}.booking-links strong{font-size:18px;line-height:1.4}.booking-links small{font-size:14px}}

@media(max-width:600px){.site-header{flex-wrap:wrap}.book-header{flex-basis:100%;justify-content:space-between;font-size:15px;padding-inline:17px}}
/* Shared page refresh: brighter Coastal blue and generous, readable controls. */
:root[data-design=coastal]{--accent:#0066db;--button-ink:#fff;--muted:#425c63}
.button,.booking-links>a{border-radius:999px}
.button{font-size:17px;min-height:56px}
.book-header{font-size:16px;min-height:54px;padding-inline:23px}
.button-outline{color:var(--ink)}
[data-design=coastal] .button:not(.button-outline){background:var(--accent);color:#fff}
[data-design=coastal] .button:not(.button-outline):hover{background:#0054b5}
[data-design=coastal] .closing-band .eyebrow{color:#a9d8ff}
[data-design=coastal] .contact-card.featured{background:var(--accent);border-color:var(--accent);color:#fff}
[data-design=coastal] .contact-card.featured .eyebrow{color:#fff}
[data-design=coastal] .contact-card.featured .contact-card-action{border-color:#ffffff80}
.booking-links>a{min-height:144px;padding:28px 32px;gap:24px}
.booking-links strong{font-size:21px}
.booking-links small{font-size:16px;opacity:1}
.booking-duration>span{font-size:14px}
[data-design=coastal] .booking-links>a{background:var(--accent);border-color:var(--accent);color:#fff}
[data-design=coastal] .booking-links>a:hover{background:#0054b5;border-color:#0054b5;color:#fff}
[data-design=coastal] .booking-links .booking-duration,[data-design=coastal] .booking-arrow,[data-design=coastal] .booking-links small{color:#fff}
.review-bar{font-size:14px}
.brand small,.footer-brand small,.eyebrow,.story-margin .eyebrow,.footer-label,.footer-bottom{font-size:14px}
.site-nav{font-size:16px}
.story-photo figcaption,.memory-photo figcaption,.contact-card-top>.eyebrow{font-size:14px}
.story-copy p{font-size:19px}
.story-copy p:first-of-type{font-size:23px}
.story-copy .signature{font-size:46px}
.memory-photo img{aspect-ratio:16/9;object-fit:cover;object-position:center 50%}
.contact-card>p:not(.contact-value){font-size:17px}
.contact-card-action{font-size:17px}
.seasonal-launches{margin-top:30px;border-top:1px solid var(--line)}
.seasonal-launches>div{padding:25px 0;border-bottom:1px solid var(--line)}
.seasonal-launches .eyebrow{font-size:14px}
.seasonal-launches h3{font:600 24px/1.4 var(--sans);margin-top:10px}
.seasonal-launches p:not(.eyebrow){font-size:18px;margin-top:10px}
.meet-copy .meet-note{font-size:17px}
@media(max-width:1150px){
 .brand small{font-size:14px;letter-spacing:.03em}.brand>span{font-size:23px}
 .book-header{font-size:16px;padding-inline:21px}.site-nav{font-size:16px}
 .contact-card-top>.eyebrow{font-size:14px}.contact-card>p:not(.contact-value){font-size:17px}
 .email-card .contact-value{font-size:17px}
}
@media(max-width:900px){
 .social-buttons .button,.closing-band .button{font-size:17px;min-height:56px}
 .booking-links strong{font-size:20px}.booking-links small{font-size:16px}
 .brand small,.footer-brand small,.eyebrow,.footer-label,.footer-bottom{font-size:14px}
}
@media(max-width:600px){
 body{font-size:17px}.review-bar{font-size:14px;gap:15px}.review-bar a{min-height:48px}
 .brand>span{font-size:23px}.brand small{font-size:14px;letter-spacing:0;margin-top:8px}
 .brand img{width:38px;height:44px}.brand{gap:12px}
 .site-header{gap:14px;padding-block:18px}
 .menu-toggle{font-size:16px;gap:10px;padding:8px 12px;min-height:48px}
 .menu-toggle span{font-size:24px}
 .book-header{font-size:17px;min-height:56px;padding-inline:23px}
 .book-header span[aria-hidden]{font-size:23px}
 .eyebrow,.story-margin .eyebrow,.story-photo figcaption,.memory-photo figcaption{font-size:14px}
 .story-copy p{font-size:18px}.story-copy p:first-of-type{font-size:21px}.story-copy .signature{font-size:44px}
 .social-buttons .button,.social-buttons>.text-link{font-size:17px;min-height:56px}
 .closing-band .button{font-size:17px;min-height:56px}
 .footer-brand small,.footer-label,.footer-bottom{font-size:14px}
 .footer-columns a{font-size:15px;min-height:48px}
 .memory-photo img{height:auto;aspect-ratio:16/10}
 .contact-card-top>.eyebrow{font-size:14px}.contact-card>p:not(.contact-value){font-size:17px}
 .contact-card-action{font-size:17px;min-height:48px}
 .booking-links>a{padding:27px 25px;gap:17px;min-height:150px}
 .booking-links strong{font-size:19px}.booking-links small{font-size:15px}
 .booking-duration{font-size:56px;width:55px}.booking-duration>span{font-size:14px;letter-spacing:.04em}
 .booking-arrow{font-size:26px}.booking-heading>p:last-child{font-size:17px}
 .meet-copy p{font-size:17px}.meet-copy .meet-note{font-size:17px}
 .meet-copy .text-link{font-size:17px}.seasonal-launches p:not(.eyebrow){font-size:17px}
 .contact-preference{font-size:17px}
}
@media(max-width:370px){
 .brand>span{font-size:23px}.brand small{font-size:14px}.brand img{width:34px}.brand{gap:9px;flex-basis:calc(100% - 60px)}
 .menu-toggle{font-size:0;padding-inline:8px;gap:0}.menu-toggle span{font-size:25px}
 .review-bar{font-size:14px;flex-direction:column;gap:0;align-items:flex-start}
 .book-header{font-size:17px;min-height:56px;padding-inline:23px}
 .booking-links>a{padding:26px 23px;gap:14px}.booking-links strong{font-size:18px}.booking-links small{font-size:14px}
 .booking-duration{font-size:50px;width:48px}.booking-duration>span{font-size:14px}
}
/* Keep supporting information readable on every shared page. */
.affiliate-disclosure .source-date,.result-count,.category-count,.category-heading p,.gear-notes .notes-date,.tackle-hero-photo figcaption{font-size:14px}

.memory-photo img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;border-radius:18px}
/* Full business name, kept compact and legible across shared pages. */
.brand-location{display:block;font-size:12px;line-height:1.5;letter-spacing:.08em;margin-top:3px}
.brand>span{line-height:1.05}
.brand small{font-size:14px;letter-spacing:.07em;margin-top:7px}
.footer-brand .brand-location{font-size:12px}
@media(max-width:600px){.brand img{width:34px;height:48px}.brand{gap:10px}.brand>span{font-size:23px}.brand small{font-size:14px;letter-spacing:.04em}.brand-location{font-size:12px}.site-header{padding-block:17px}.footer-brand small{font-size:14px}}
@media(max-width:370px){.brand>span{font-size:21px}.brand small{font-size:14px}.brand-location{font-size:12px}.brand img{width:30px}.brand{gap:8px}}

/* Put the preferred contact method beside the introduction, within easy reach. */
.contact-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:8%;align-items:center}
.contact-intro-copy{min-width:0}
.texting-callout{padding:32px;background:var(--accent);color:var(--button-ink);border-radius:24px;box-shadow:0 12px 32px #132f3512}
.texting-callout>p{font-size:25px;font-weight:700;line-height:1.45;margin:0 0 25px}
[data-design] .texting-callout .texting-primary{display:flex;width:100%;background:#fffdf8;color:#132f35;border:1px solid #fffdf8;border-radius:20px;min-height:88px;padding:18px 23px;gap:16px}
[data-design] .texting-callout .texting-primary:hover{background:#eaf2fc;color:#132f35}
.texting-primary>span:first-child{font-size:16px;line-height:1.5}
.texting-primary strong{display:block;font-size:25px;line-height:1.45;white-space:nowrap}
.texting-primary>span[aria-hidden]{font-size:28px}
@media(max-width:900px){.contact-intro{gap:5%}.texting-callout{padding:27px}.texting-callout>p{font-size:22px}.texting-primary strong{font-size:23px}}
@media(max-width:700px){.contact-intro{grid-template-columns:minmax(0,1fr);gap:30px;padding-top:32px}.contact-intro h1{font-size:clamp(64px,17vw,88px);line-height:1.05;margin-top:18px}.contact-intro .intro-lead{margin-top:22px}.texting-callout{max-width:480px;padding:27px}.texting-callout>p{font-size:23px;margin-bottom:22px}}
@media(max-width:370px){.texting-callout{padding:23px}.texting-callout>p{font-size:21px}[data-design] .texting-callout .texting-primary{padding:16px;gap:12px}.texting-primary strong{font-size:21px}}

.message-section{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:8%;padding-top:65px;padding-bottom:85px;border-top:1px solid var(--line)}
.message-intro h2{margin-top:22px}.message-intro>p:not(.eyebrow){font-size:18px;color:var(--muted);margin-top:25px;max-width:42ch}.message-intro .text-link{margin-top:22px}
.contact-message-form{min-width:0;padding:30px;background:var(--panel);border:1px solid var(--line);border-radius:22px}.contact-message-form fieldset{border:0;padding:0;margin:0;min-width:0}.form-preview-status{background:#eaf2fc;color:#164a83;padding:13px 16px;border-radius:10px;font-size:15px;line-height:1.6;margin-bottom:24px}
.message-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}.message-wide{grid-column:1/-1}.message-fields label{display:block;font-size:16px;font-weight:700;line-height:1.6;margin-bottom:9px}.message-fields label span{font-size:14px;font-weight:400;color:var(--muted)}
.message-fields input,.message-fields select,.message-fields textarea{display:block;width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);font:inherit;font-size:17px;padding:13px 14px;opacity:1}.message-fields input,.message-fields select{min-height:54px}.message-fields textarea{resize:vertical;line-height:1.7}.message-note{font-size:15px;line-height:1.75;color:var(--muted);margin:23px 0}.message-submit{min-height:58px;border-radius:999px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:800px){.message-section{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:45px;padding-bottom:55px}.message-intro h2{font-size:52px}.message-intro>p:not(.eyebrow){max-width:55ch}}
@media(max-width:600px){.contact-message-form{padding:24px}.message-fields{grid-template-columns:minmax(0,1fr);gap:20px}.message-wide{grid-column:auto}.message-submit{width:100%}.message-intro>p:not(.eyebrow){font-size:17px}}

.form-honeypot{display:none!important}
.message-privacy{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 24px}
.message-privacy a{text-decoration:underline;text-underline-offset:3px}
.contact-message-form :is(input,select,textarea):focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.message-submit:disabled{opacity:.65;cursor:wait}
.message-sent{min-height:65vh;padding-top:100px;padding-bottom:100px;max-width:900px}
.message-sent h1{font-size:clamp(56px,7vw,100px);line-height:1.05;margin:22px 0 30px}
.message-sent>p:not(.eyebrow){max-width:55ch;margin-bottom:24px;font-size:19px}
.message-sent .button{margin:8px 12px 8px 0}

.gear-row > a .gear-amazon-label { font-size: inherit; white-space: normal; }
.gear-amazon-label small { display: block; font-size: .9em; }
